From 3157ad68e9e54a2b71e50b55f77ae5e905339cf2 Mon Sep 17 00:00:00 2001 From: Oliver Bell Date: Sat, 2 May 2026 20:04:21 +0100 Subject: [PATCH 1/4] move most of the sa1 non match filess, name gSpriteTransform globals --- asm/non_matching/engine/UnusedTransform.inc | 30 +- asm/non_matching/engine/sa2__sub_8004E14.inc | 56 +- ...select__CreateCharacterSelectionScreen.inc | 912 +++++++++ .../game/char_select__Task_805A060.inc | 644 +++++++ .../game/char_select__Task_805A54C.inc | 288 +++ .../game/char_select__Task_805A798.inc | 254 +++ .../game/char_select__sub_805B324.inc | 262 +++ .../game/egg_rocket_trans__Task_8028CE4.inc | 280 +++ .../game/egg_rocket_trans__Task_8029194.inc | 386 ++++ .../game/egg_rocket_trans__Task_80294A8.inc | 400 ++++ .../game/gTask_3006240__sub_8052AA4.inc | 120 ++ .../game/gTask_3006240__sub_8052D64.inc | 114 ++ .../game/gTask_3006240__sub_8052EF0.inc | 75 + .../game/gTask_3006240__sub_8052F78.inc | 179 ++ .../game/gTask_3006240__sub_80530CC.inc | 176 ++ .../game/gTask_3006240__sub_805321C.inc | 178 ++ .../game/gTask_3006240__sub_8053370.inc | 126 ++ .../game/gTask_3006240__sub_805345C.inc | 103 + .../game/gTask_3006240__sub_80535FC.inc | 60 + .../game/gTask_3006240__unused_8052B84.inc | 142 ++ .../game/intro_anim__Task_80640C8.inc | 188 ++ .../menus/mp_mode_select__Task_SinglePak.inc | 443 +++++ .../multiplayer/chao_message__sub_803AB60.inc | 1303 +++++++++++++ .../special_stage/UpdateObjectsAndRender.inc | 851 +++++++++ .../game/sa1/special_stage/sub_802A4C4.inc | 80 + .../game/sa1/special_stage/sub_802B07C.inc | 129 ++ .../game/sa1/special_stage/sub_802B66C.inc | 291 +++ .../game/sa1/special_stage/sub_802BC6C.inc | 208 ++ .../game/sa1/special_stage/sub_802BE0C.inc | 109 ++ .../game/sa1/stage/Player__Player_80447D8.inc | 134 ++ .../stage/Player__Player_Tails_804571C.inc | 315 +++ .../game/sa1/stage/Player__Task_804597C.inc | 185 ++ .../game/sa1/stage/Player__sub_8044434.inc | 190 ++ .../game/sa1/stage/Player__sub_8048230.inc | 353 ++++ .../game/sa1/stage/Player__sub_8048980.inc | 197 ++ .../game/sa1/stage/Player__sub_8049BAC.inc | 54 + .../StageBgUpdate_Zone2_Interior.inc | 229 +++ .../game/sa1/stage/enemies/.gitkeep | 0 .../enemies/Drisame__Task_DrisameInit.inc | 315 +++ .../sa1/stage/enemies/Kuraa__Task_80737A8.inc | 252 +++ .../sa1/stage/enemies/Leon__Task_LeonInit.inc | 321 ++++ .../enemies/Pen__Task_PenMk1Snowball.inc | 314 +++ .../stage/enemies/Senbon__Task_SenbonInit.inc | 246 +++ .../enemies/Slot__Task_SlotProjectileMain.inc | 278 +++ .../game/sa1/stage/enemies/Task_Pierrot.inc | 381 ++++ .../stage/enemies/Tentou__Task_TantouMain.inc | 273 +++ .../sa1/stage/enemies/Tentou__sub_8074928.inc | 292 +++ .../sa1/stage/enemies/Wamu__Task_Wamu.inc | 968 ++++++++++ .../enemies/Yukimaru__YukimaruGroundInit.inc | 284 +++ .../stage/enemies/boss_1__Task_80264C8.inc | 913 +++++++++ .../stage/enemies/boss_1__Task_80271E4.inc | 116 ++ .../stage/enemies/boss_1__Task_8027600.inc | 139 ++ .../stage/enemies/boss_1__Task_EHTHammer.inc | 163 ++ .../enemies/boss_4__CreateIciclePlatform.inc | 136 ++ .../boss_5__Task_MechaKnucklesInit.inc | 412 ++++ .../boss_5__Task_MechaKnucklesRocketInit.inc | 367 ++++ .../enemies/boss_6__CreateEntity_EggSnake.inc | 248 +++ .../stage/enemies/boss_6__Task_8032370.inc | 555 ++++++ .../stage/enemies/boss_6__Task_8033AA0.inc | 786 ++++++++ .../enemies/boss_6__Task_EggSnakeInit.inc | 217 +++ .../stage/enemies/boss_x1__Task_803491C.inc | 302 +++ .../stage/enemies/boss_x1__Task_80352C0.inc | 77 + .../stage/enemies/boss_x1__Task_8035354.inc | 94 + .../stage/enemies/boss_x1__Task_803540C.inc | 113 ++ .../stage/enemies/boss_x1__Task_80354F4.inc | 79 + .../stage/enemies/boss_x1__Task_8035588.inc | 227 +++ .../stage/enemies/boss_x3__Task_803775C.inc | 1090 +++++++++++ .../stage/enemies/boss_x3__Task_8039A64.inc | 913 +++++++++ .../stage/enemies/boss_x3__sub_803A170.inc | 58 + .../stage/enemies/boss_x3__sub_803A6EC.inc | 113 ++ .../stage/enemies/boss_xtra__sub_8050194.inc | 419 ++++ .../stage/enemies/boss_xtra__sub_80504DC.inc | 435 +++++ .../stage/enemies/boss_xtra__sub_8050A88.inc | 632 ++++++ .../stage/enemies/boss_xtra__sub_8050FB4.inc | 448 +++++ .../stage/enemies/boss_xtra__sub_8051344.inc | 342 ++++ .../stage/enemies/boss_xtra__sub_8051604.inc | 351 ++++ .../stage/enemies/boss_xtra__sub_80519E8.inc | 288 +++ .../stage/enemies/boss_xtra__sub_8051C44.inc | 235 +++ .../stage/enemies/boss_xtra__sub_8051E38.inc | 233 +++ .../fireball__CreateFireballSparks.inc | 99 + .../sa1/stage/game_over__Task_8056348.inc | 157 ++ .../sa1/stage/game_over__Task_805648C.inc | 154 ++ .../sa1/stage/game_over__Task_805676C.inc | 253 +++ .../BreakableWall__Task_BreakableWall2.inc | 348 ++++ .../CreateEntity_SecurityGate.inc | 112 ++ .../CreateEntity_SegaSonicLetter.inc | 161 ++ .../interactables/Spring__sub_8022640.inc | 236 +++ .../stage/interactables/Task_InclineRamp.inc | 606 ++++++ .../interactables/Task_Interactable034.inc | 152 ++ .../stage/interactables/Task_PartyBalloon.inc | 384 ++++ .../interactables/Task_SegaSonicLetter.inc | 287 +++ .../TeleportOrb__Task_TeleportOrb.inc | 729 +++++++ .../air_bubbles__Task_BubbleContainingAir.inc | 408 ++++ .../interactables/bowl__Task_BowlRotating.inc | 961 ++++++++++ .../bumpers__BumperCheckCollAndPosC1.inc | 574 ++++++ .../bumpers__BumperCheckCollAndPosC3.inc | 1160 ++++++++++++ .../carousel__Task_CarouselIdle.inc | 640 +++++++ .../carousel__Task_RidingCarousel.inc | 1155 +++++++++++ .../grind_rail__Task_GrindRailStart.inc | 194 ++ .../interactables/half_pipe__sub_804D4A0.inc | 189 ++ .../interactables/hook__Task_SwingingHook.inc | 1399 ++++++++++++++ .../hook_rail__Task_HookRail_Type0_2.inc | 452 +++++ .../hook_rail__Task_HookRail_Type1_2.inc | 351 ++++ .../ice_block__Task_IceBlock.inc | 320 ++++ .../lava_platform__Task_80929A0.inc | 724 +++++++ ...arble_track_exit__Task_MarbleTrack_Dir.inc | 869 +++++++++ ...rble_track_exit__Task_MarbleTrack_Exit.inc | 887 +++++++++ ...arble_track_exit__Task_MarbleTrack_Unk.inc | 776 ++++++++ .../interactables/pipe__Task_8095E90.inc | 316 +++ .../interactables/pipe__Task_PipeExit.inc | 228 +++ .../platform_spiked__sub_80805C8.inc | 185 ++ .../platform_sq__Task_BarrelOfDoomMini.inc | 620 ++++++ .../platform_sq__sub_807E914.inc | 188 ++ .../interactables/red_flag__sub_8077FA4.inc | 139 ++ .../interactables/red_flag__sub_80780B4.inc | 155 ++ .../interactables/red_flag__sub_80781E4.inc | 178 ++ .../interactables/run_wheel__sub_808EC84.inc | 553 ++++++ .../spiked_barrel__Task_SpikedBarrel.inc | 582 ++++++ .../spring_hiding__sub_8095224.inc | 329 ++++ .../stage_goal__Task_StageGoal.inc | 500 +++++ .../swing_rope__Task_SwingRope.inc | 1087 +++++++++++ .../toggle_gravity__Task_ToggleGravity.inc | 254 +++ .../water_bridge__Task_WaterBridge.inc | 305 +++ .../stage/intro__LoadStageIntroGraphics.inc | 793 ++++++++ .../sa1/stage/results_2__Task_ChaoHuntHUD.inc | 460 +++++ .../game/sa1/stage/results_2__sub_800FD9C.inc | 150 ++ .../game/sa1/stage/results__Task_801874C.inc | 439 +++++ .../sa1/stage/results_b__Task_8018ECC.inc | 561 ++++++ .../sa1/stage/results_b__Task_80196FC.inc | 636 +++++++ .../RingsScatterMultipak_FlippedGravity.inc | 641 +++++++ .../RingsScatterMultipak_NormalGravity.inc | 642 +++++++ ...ingsScatterSingleplayer_FlippedGravity.inc | 533 ++++++ ...RingsScatterSingleplayer_NormalGravity.inc | 566 ++++++ .../stage/some_task_manager__sub_804D060.inc | 93 + .../stage_results__CreateStageResults.inc | 589 ++++++ .../stage/stage_ui__CreateSpecialStageUI.inc | 36 + .../game/sa1/stage/stage_ui__Task_8055458.inc | 348 ++++ .../game/sa1/stage/stage_ui__Task_8055798.inc | 190 ++ .../stage_ui__Task_SpecialStageUIMain.inc | 411 ++++ .../sa1/stage/stage_ui__Task_StageUIMain.inc | 223 +++ .../game/sa1/stage/stage_ui__sub_8053BAC.inc | 184 ++ .../game/sa1/stage/stage_ui__sub_80550F8.inc | 401 ++++ .../game/sa1/stage/unk_1__Task_801D200.inc | 177 ++ .../course_select__Task_CourseSelectInit.inc | 348 ++++ .../ui/extra_stage_results__Task_8066520.inc | 131 ++ .../ui/extra_stage_results__Task_8067C24.inc | 290 +++ .../game/sa1/ui/game2_0__sub_805BC94.inc | 951 ++++++++++ .../game/sa1/ui/game2_1__sub_805D048.inc | 563 ++++++ .../game/sa1/ui/game2_1__sub_805D4F0.inc | 197 ++ .../game/sa1/ui/game2_3__Task_8063638.inc | 243 +++ ..._input_menu__CreatePlayerNameInputMenu.inc | 585 ++++++ .../player_name_input_menu__Task_80595DC.inc | 239 +++ .../player_name_input_menu__sub_8058830.inc | 1687 +++++++++++++++++ .../game/sa1/ui/sound_test__sub_805F950.inc | 189 ++ .../sa1/ui/staff_credits__Task_805E888.inc | 155 ++ .../ui/time_attack_record__sub_8061144.inc | 308 +++ .../ui/time_attack_record__sub_8061480.inc | 449 +++++ .../ui/time_attack_records__Task_806BBC0.inc | 171 ++ .../game/sa1/ui/vs_record__Task_8060874.inc | 523 +++++ asm/non_matching/game/save__WriteSaveGame.inc | 133 ++ .../stage/collision__Coll_Player_Itembox.inc | 538 ++++++ .../stage/collision__sa2__sub_800D0A0.inc | 1561 +++++++++++++++ .../shared/stage/collision__sub_800C1E8.inc | 115 ++ .../shared/stage/collision__sub_800C934.inc | 349 ++++ .../shared/stage/collision__sub_800CBBC.inc | 333 ++++ ...mgr__ReceiveRoomEvent_ReachedStageGoal.inc | 375 ++++ .../stage/item_box__Task_ItemBoxMain.inc | 553 ++++++ .../shared/stage/sa1_Task_SpotlightBeam.inc | 582 ++++++ ...p_player__Task_CreateMultiplayerPlayer.inc | 1275 +++++++++++++ .../stage/sa1_mp_player__sa2__sub_8017670.inc | 757 ++++++++ include/core.h | 6 +- .../non_matching/engine/UnusedTransform.inc | 30 +- .../non_matching/engine/sa2__sub_8004E14.inc | 32 +- .../stage/enemies/boss_1__Task_80264C8.inc | 24 +- .../stage/enemies/boss_1__Task_80271E4.inc | 4 +- .../stage/enemies/boss_1__Task_8027600.inc | 4 +- .../stage/enemies/boss_1__Task_EHTHammer.inc | 4 +- src/core.c | 12 +- .../stage/enemies/boss_1_egg_hammer_tank.c | 38 +- src/game/shared/stage/stage.c | 6 +- src/sprite.c | 20 +- 181 files changed, 66545 insertions(+), 133 deletions(-) create mode 100644 asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc create mode 100644 asm/non_matching/game/char_select__Task_805A060.inc create mode 100644 asm/non_matching/game/char_select__Task_805A54C.inc create mode 100644 asm/non_matching/game/char_select__Task_805A798.inc create mode 100644 asm/non_matching/game/char_select__sub_805B324.inc create mode 100644 asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc create mode 100644 asm/non_matching/game/egg_rocket_trans__Task_8029194.inc create mode 100644 asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_8052AA4.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_8052D64.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_8052EF0.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_8052F78.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_80530CC.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_805321C.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_8053370.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_805345C.inc create mode 100644 asm/non_matching/game/gTask_3006240__sub_80535FC.inc create mode 100644 asm/non_matching/game/gTask_3006240__unused_8052B84.inc create mode 100644 asm/non_matching/game/intro_anim__Task_80640C8.inc create mode 100644 asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc create mode 100644 asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc create mode 100644 asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc create mode 100644 asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc create mode 100644 asm/non_matching/game/sa1/special_stage/sub_802B07C.inc create mode 100644 asm/non_matching/game/sa1/special_stage/sub_802B66C.inc create mode 100644 asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc create mode 100644 asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__Task_804597C.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__sub_8044434.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__sub_8048230.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__sub_8048980.inc create mode 100644 asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc create mode 100644 asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/.gitkeep create mode 100644 asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc create mode 100644 asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc create mode 100644 asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc create mode 100644 asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc create mode 100644 asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc create mode 100644 asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc create mode 100644 asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc create mode 100644 asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc create mode 100644 asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc create mode 100644 asm/non_matching/game/sa1/stage/results__Task_801874C.inc create mode 100644 asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc create mode 100644 asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc create mode 100644 asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc create mode 100644 asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc create mode 100644 asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc create mode 100644 asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc create mode 100644 asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc create mode 100644 asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc create mode 100644 asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc create mode 100644 asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc create mode 100644 asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc create mode 100644 asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc create mode 100644 asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc create mode 100644 asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc create mode 100644 asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc create mode 100644 asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc create mode 100644 asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc create mode 100644 asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc create mode 100644 asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc create mode 100644 asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc create mode 100644 asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc create mode 100644 asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc create mode 100644 asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc create mode 100644 asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc create mode 100644 asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc create mode 100644 asm/non_matching/game/save__WriteSaveGame.inc create mode 100644 asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc create mode 100644 asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc create mode 100644 asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc create mode 100644 asm/non_matching/game/shared/stage/collision__sub_800C934.inc create mode 100644 asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc create mode 100644 asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc create mode 100644 asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc create mode 100644 asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc create mode 100644 asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc create mode 100644 asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc diff --git a/asm/non_matching/engine/UnusedTransform.inc b/asm/non_matching/engine/UnusedTransform.inc index 9f24e8cb52..dc6fd3696f 100644 --- a/asm/non_matching/engine/UnusedTransform.inc +++ b/asm/non_matching/engine/UnusedTransform.inc @@ -30,7 +30,7 @@ _08004AD8: subs r2, #0x18 str r2, [sp, #0x28] ldrh r0, [r7] - ldr r3, _08004D5C @ =gUnknown_03001944 + ldr r3, _08004D5C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 ldr r2, _08004D60 @ =0x000003FF @@ -50,7 +50,7 @@ _08004AD8: add r3, sp mov r8, r3 ldrh r0, [r7] - ldr r5, _08004D5C @ =gUnknown_03001944 + ldr r5, _08004D5C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -63,7 +63,7 @@ _08004AD8: add r6, sp, #0xc movs r0, #2 ldrsh r1, [r7, r0] - ldr r2, _08004D68 @ =gUnknown_030017F0 + ldr r2, _08004D68 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -73,7 +73,7 @@ _08004AD8: mov sl, r3 movs r5, #4 ldrsh r1, [r7, r5] - ldr r2, _08004D6C @ =gUnknown_03005394 + ldr r2, _08004D6C @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -147,7 +147,7 @@ _08004AD8: movs r2, #2 ldrsh r0, [r7, r2] rsbs r0, r0, #0 - ldr r3, _08004D68 @ =gUnknown_030017F0 + ldr r3, _08004D68 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 @@ -155,7 +155,7 @@ _08004AD8: _08004BF0: movs r4, #4 ldrsh r0, [r7, r4] - ldr r5, _08004D6C @ =gUnknown_03005394 + ldr r5, _08004D6C @ =gSpriteTransformScaleY ldrh r3, [r5] ldrh r2, [r7, #4] mov r1, sp @@ -169,7 +169,7 @@ _08004BF0: asrs r0, r0, #8 mov r5, sl strh r0, [r5] - ldr r0, _08004D6C @ =gUnknown_03005394 + ldr r0, _08004D6C @ =gSpriteTransformScaleY ldrh r3, [r0] _08004C14: mov r2, sp @@ -225,7 +225,7 @@ _08004C14: asrs r0, r0, #8 strh r0, [r6] add r5, sp, #0x18 - ldr r1, _08004D5C @ =gUnknown_03001944 + ldr r1, _08004D5C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 @@ -236,14 +236,14 @@ _08004C14: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08004D68 @ =gUnknown_030017F0 + ldr r6, _08004D68 @ =gSpriteTransformScaleX ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r5] mov r2, sp adds r2, #0x1a - ldr r1, _08004D5C @ =gUnknown_03001944 + ldr r1, _08004D5C @ =gSpriteTransformRotation ldrh r0, [r1] lsls r0, r0, #1 adds r0, r0, r4 @@ -256,7 +256,7 @@ _08004C14: asrs r0, r0, #8 strh r0, [r2] add r4, sp, #0x1c - ldr r6, _08004D5C @ =gUnknown_03001944 + ldr r6, _08004D5C @ =gSpriteTransformRotation ldrh r0, [r6] lsls r0, r0, #1 ldr r1, _08004D64 @ =gSineTable @@ -278,7 +278,7 @@ _08004C14: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08004D6C @ =gUnknown_03005394 + ldr r6, _08004D6C @ =gSpriteTransformScaleY ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 @@ -335,11 +335,11 @@ _08004C14: b _08004D86 .align 2, 0 _08004D58: .4byte gOamBuffer + 0x6 -_08004D5C: .4byte gUnknown_03001944 +_08004D5C: .4byte gSpriteTransformRotation _08004D60: .4byte 0x000003FF _08004D64: .4byte gSineTable -_08004D68: .4byte gUnknown_030017F0 -_08004D6C: .4byte gUnknown_03005394 +_08004D68: .4byte gSpriteTransformScaleX +_08004D6C: .4byte gSpriteTransformScaleY _08004D70: .4byte gUnknown_0300194C _08004D74: .4byte gUnknown_03002820 _08004D78: diff --git a/asm/non_matching/engine/sa2__sub_8004E14.inc b/asm/non_matching/engine/sa2__sub_8004E14.inc index 6876345a8f..2713abcbb4 100644 --- a/asm/non_matching/engine/sa2__sub_8004E14.inc +++ b/asm/non_matching/engine/sa2__sub_8004E14.inc @@ -29,7 +29,7 @@ _08004E30: subs r2, #0x18 str r2, [sp, #0x28] @ sp28 = &us->qDirX ldrh r0, [r6] - ldr r3, _0800512C @ =gUnknown_03001944 + ldr r3, _0800512C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 ldr r2, _08005130 @ =0x000003FF @@ -44,12 +44,12 @@ _08004E30: lsls r0, r0, #0x10 asrs r0, r0, #0x16 ldr r1, [sp, #0x28] - strh r0, [r1] @ us.qDirX = COS_24_8((transform->rotation + gUnknown_03001944) & ONE_CYCLE); + strh r0, [r1] @ us.qDirX = COS_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); movs r3, #0xa add r3, sp mov r8, r3 @ r8 = r3 = &us.qDirY ldrh r0, [r6] @ r0 = transform->rotation - ldr r5, _0800512C @ =gUnknown_03001944 + ldr r5, _0800512C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -58,25 +58,25 @@ _08004E30: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - strh r0, [r3] @ us.qDirY = SIN_24_8((transform->rotation + gUnknown_03001944) & ONE_CYCLE); + strh r0, [r3] @ us.qDirY = SIN_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); add r7, sp, #0xc @ r7 = us->unkC[0] movs r0, #2 ldrsh r1, [r6, r0] @ r1 = transform->width - ldr r2, _08005138 @ =gUnknown_030017F0 + ldr r2, _08005138 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r7] @ us->unkC[0] = ((transform->width * gUnknown_030017F0) >> 8) + strh r0, [r7] @ us->unkC[0] = ((transform->width * gSpriteTransformScaleX) >> 8) movs r3, #0xe add r3, sp mov sl, r3 movs r5, #4 ldrsh r1, [r6, r5] @ r1 = transform->height - ldr r2, _0800513C @ =gUnknown_03005394 + ldr r2, _0800513C @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r3] @ us->unkC[1] = ((transform->height * gUnknown_03005394) >> 8); + strh r0, [r3] @ us->unkC[1] = ((transform->height * gSpriteTransformScaleY) >> 8); movs r5, #0x80 lsls r5, r5, #9 ldrh r1, [r7] @ r1 = us->unkC[0] @@ -146,15 +146,15 @@ _08004E30: movs r2, #2 ldrsh r0, [r6, r2] rsbs r0, r0, #0 - ldr r3, _08005138 @ =gUnknown_030017F0 + ldr r3, _08005138 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r7] @ us->unkC[0] = I(-transform->width * gUnknown_030017F0); + strh r0, [r7] @ us->unkC[0] = I(-transform->width * gSpriteTransformScaleX); _08004F48: movs r4, #4 ldrsh r0, [r6, r4] - ldr r5, _0800513C @ =gUnknown_03005394 + ldr r5, _0800513C @ =gSpriteTransformScaleY ldrh r4, [r5] ldrh r2, [r6, #4] mov r1, sp @@ -168,7 +168,7 @@ _08004F48: asrs r0, r0, #8 mov r4, sl @ r4 = sl = &us->unkC[1] strh r0, [r4] - ldrh r4, [r5] @ r4 = gUnknown_03005394 + ldrh r4, [r5] @ r4 = gSpriteTransformScaleY _08004F6A: mov r2, sp @ r2 = &us ldr r5, [sp, #0x28] @@ -224,7 +224,7 @@ _08004F6A: strh r0, [r3] @ us.unk0[3] = I(+us.qDirX * us.unkC[1]); add r0, sp, #0x18 mov r8, r0 @ r8 = &us.unk18[0][0] - ldr r1, _0800512C @ =gUnknown_03001944 + ldr r1, _0800512C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 @@ -235,12 +235,12 @@ _08004F6A: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r5, _08005138 @ =gUnknown_030017F0 + ldr r5, _08005138 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 lsls r2, r2, #8 - asrs r2, r2, #0x10 @ r2 = (COS_24_8(gUnknown_03001944) * gUnknown_030017F0) + asrs r2, r2, #0x10 @ r2 = (COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) ldrh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -251,13 +251,13 @@ _08004F6A: lsls r0, r0, #8 @ r0 = Q(us.unkC[0] * gUnknown_03005398) asrs r0, r0, #0x10 @ r0 = (Q(us.unkC[0] * gUnknown_03005398) >> 16) muls r0, r2, r0 - asrs r0, r0, #8 @ r0 = I((COS_24_8(gUnknown_03001944) * gUnknown_030017F0) * (Q(us.unkC[0] * gUnknown_03005398) >> 16)) + asrs r0, r0, #8 @ r0 = I((COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) * (Q(us.unkC[0] * gUnknown_03005398) >> 16)) mov r1, r8 strh r0, [r1] @ us.unk18[0][0] = I(r2 * r0) movs r2, #0x1a add r2, sp mov ip, r2 @ ip = us.unk18[0][1] - ldr r5, _0800512C @ =gUnknown_03001944 + ldr r5, _0800512C @ =gSpriteTransformRotation ldrh r0, [r5] lsls r0, r0, #1 ldr r1, _08005134 @ =gSineTable @@ -265,8 +265,8 @@ _08004F6A: movs r2, #0 ldrsh r0, [r0, r2] rsbs r0, r0, #0 - asrs r0, r0, #6 @ r0 = (SIN(-gUnknown_03001944) >> 6) - ldr r5, _08005138 @ =gUnknown_030017F0 + asrs r0, r0, #6 @ r0 = (SIN(-gSpriteTransformRotation) >> 6) + ldr r5, _08005138 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 @@ -285,7 +285,7 @@ _08004F6A: mov r1, ip strh r0, [r1] @ us.unk18[0][1] = add r5, sp, #0x1c - ldr r2, _0800512C @ =gUnknown_03001944 + ldr r2, _0800512C @ =gSpriteTransformRotation ldrh r0, [r2] lsls r0, r0, #1 ldr r7, _08005134 @ =gSineTable @@ -293,9 +293,9 @@ _08004F6A: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - adds r2, r0, #0 @ r2 = SIN_24_8(gUnknown_03001944) - muls r2, r4, r2 @ r2 *= gUnknown_03005394 - lsls r2, r2, #8 @ r2 = Q(+SIN_24_8(gUnknown_03001944) * gUnknown_03005394) + adds r2, r0, #0 @ r2 = SIN_24_8(gSpriteTransformRotation) + muls r2, r4, r2 @ r2 *= gSpriteTransformScaleY + lsls r2, r2, #8 @ r2 = Q(+SIN_24_8(gSpriteTransformRotation) * gSpriteTransformScaleY) asrs r2, r2, #0x10 mov r1, sl @ r1 = sl = &us->unkC[1] ldrh r0, [r1] @@ -311,7 +311,7 @@ _08004F6A: strh r0, [r5] @ us.unk18[1][0] = mov r4, sp adds r4, #0x1e - ldr r7, _0800512C @ =gUnknown_03001944 + ldr r7, _0800512C @ =gSpriteTransformRotation ldrh r0, [r7] movs r1, #0x80 lsls r1, r1, #1 @@ -322,7 +322,7 @@ _08004F6A: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r7, _0800513C @ =gUnknown_03005394 + ldr r7, _0800513C @ =gSpriteTransformScaleY ldrh r1, [r7] adds r2, r0, #0 muls r2, r1, r2 @@ -395,11 +395,11 @@ _08004F6A: b _0800515A .align 2, 0 _08005128: .4byte gOamBuffer + 0x6 -_0800512C: .4byte gUnknown_03001944 +_0800512C: .4byte gSpriteTransformRotation _08005130: .4byte 0x000003FF _08005134: .4byte gSineTable -_08005138: .4byte gUnknown_030017F0 -_0800513C: .4byte gUnknown_03005394 +_08005138: .4byte gSpriteTransformScaleX +_0800513C: .4byte gSpriteTransformScaleY _08005140: .4byte gUnknown_03005398 _08005144: .4byte gUnknown_0300194C _08005148: .4byte gUnknown_03002820 diff --git a/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc b/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc new file mode 100644 index 0000000000..aa44bf2bf3 --- /dev/null +++ b/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc @@ -0,0 +1,912 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x34] + ldr r1, _08059BD8 @ =gTailsEnabled + movs r0, #0 + strb r0, [r1] + ldr r0, _08059BDC @ =gMultiplayerMissingHeartbeats + movs r5, #0 + strb r5, [r0, #3] + strb r5, [r0, #2] + strb r5, [r0, #1] + strb r5, [r0] + bl sub_80535FC + bl UiGfxStackInit + ldr r1, _08059BE0 @ =gDispCnt + movs r2, #0x92 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + ldr r3, _08059BE4 @ =gBgCntRegs + mov r8, r3 + ldr r0, _08059BE8 @ =0x00001907 + strh r0, [r3, #2] + ldr r0, _08059BEC @ =gBgScrollRegs + strh r5, [r0, #4] + strh r5, [r0, #6] + strh r5, [r0, #8] + strh r5, [r0, #0xa] + ldr r0, _08059BF0 @ =Task_8059F9C + movs r4, #0x80 + lsls r4, r4, #6 + str r5, [sp] + movs r1, #0x3c + adds r2, r4, #0 + movs r3, #0 + bl TaskCreate + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r2, r0 + ldr r1, [sp, #0x34] + movs r3, #3 + ands r1, r3 + lsls r0, r1, #8 + adds r0, r0, r4 + strh r0, [r7, #0x28] + adds r1, #0x20 + ldr r4, _08059BF4 @ =0x0300002A + adds r0, r2, r4 + strb r1, [r0] + ldr r3, _08059BF8 @ =0x0300002B + adds r0, r2, r3 + strb r1, [r0] + adds r4, #2 + adds r0, r2, r4 + movs r1, #0 + strb r1, [r0] + adds r3, #2 + adds r0, r2, r3 + strb r1, [r0] + adds r4, #2 + adds r0, r2, r4 + strb r1, [r0] + str r5, [r7, #0x24] + ldr r0, _08059BFC @ =0x03000039 + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08059C00 @ =0x0300002F + adds r2, r2, r1 + movs r3, #0 + strb r3, [r2] + strh r5, [r7] + strh r5, [r7, #2] + movs r4, #2 + strh r4, [r7, #4] + strh r5, [r7, #6] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r7, #8] + movs r4, #1 + strb r4, [r7, #0xa] + ldr r6, _08059C04 @ =0x00002030 + str r5, [sp] + ldr r0, _08059C08 @ =Task_nullsub_805B980 + movs r1, #0x20 + adds r2, r6, #0 + movs r3, #0 + bl TaskCreate + adds r3, r0, #0 + ldrh r0, [r3, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0, #0xa] + movs r1, #0x40 + strh r1, [r0, #0xc] + movs r1, #8 + strh r1, [r0, #0xe] + strh r5, [r0, #0x10] + movs r1, #0xf + strh r1, [r0, #0x12] + strb r4, [r0, #0x16] + movs r1, #0x5a + strh r1, [r0, #8] + str r5, [r0, #0x18] + ldrh r1, [r7, #0x28] + strh r1, [r0, #0x1c] + ldrh r1, [r7, #0x28] + strh r1, [r0, #0x1e] + str r3, [r7, #0x10] + movs r2, #0x81 + lsls r2, r2, #6 + str r5, [sp] + ldr r0, _08059C08 @ =Task_nullsub_805B980 + movs r1, #0x20 + movs r3, #0 + bl TaskCreate + adds r3, r0, #0 + ldrh r0, [r3, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r0, r0, r2 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0xa] + movs r1, #0x28 + strh r1, [r0, #0xc] + strh r4, [r0, #0xe] + strh r4, [r0, #0x10] + strh r5, [r0, #0x12] + movs r2, #1 + strb r2, [r0, #0x16] + strh r5, [r0, #8] + str r5, [r0, #0x18] + strh r5, [r0, #0x1c] + str r3, [r7, #0x1c] + str r5, [sp] + ldr r0, _08059C08 @ =Task_nullsub_805B980 + movs r1, #0x20 + adds r2, r6, #0 + movs r3, #0 + bl TaskCreate + adds r3, r0, #0 + ldrh r0, [r3, #6] + movs r4, #0xc0 + lsls r4, r4, #0x12 + adds r0, r0, r4 + strh r5, [r0, #0xa] + movs r1, #0x54 + strh r1, [r0, #0xc] + movs r1, #6 + strh r1, [r0, #0xe] + movs r2, #2 + strh r2, [r0, #0x10] + strh r5, [r0, #0x12] + movs r4, #1 + strb r4, [r0, #0x16] + movs r1, #0x14 + strh r1, [r0, #8] + str r5, [r0, #0x18] + strh r5, [r0, #0x1c] + strh r5, [r0, #0x1e] + str r3, [r7, #0x18] + str r5, [sp] + ldr r0, _08059C08 @ =Task_nullsub_805B980 + movs r1, #0x44 + adds r2, r6, #0 + movs r3, #0 + bl TaskCreate + adds r3, r0, #0 + ldrh r2, [r3, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r2, r1 + strb r4, [r0, #0x16] + movs r4, #3 + strh r4, [r0, #0x10] + strh r5, [r0, #0xa] + movs r1, #0x38 + strh r1, [r0, #0xc] + movs r1, #8 + strh r1, [r0, #0xe] + strh r5, [r0, #0x12] + movs r1, #0x78 + strh r1, [r0, #8] + movs r4, #0x8c + lsls r4, r4, #1 + strh r4, [r0, #0x22] + movs r1, #0x3a + strh r1, [r0, #0x24] + movs r1, #9 + strh r1, [r0, #0x26] + movs r4, #4 + strh r4, [r0, #0x28] + strh r5, [r0, #0x2a] + ldr r4, _08059C0C @ =0x0300002E + adds r1, r2, r4 + movs r4, #1 + strb r4, [r1] + movs r1, #0x64 + strh r1, [r0, #0x20] + str r5, [r0, #0x38] + str r5, [r0, #0x30] + movs r1, #0x8c + lsls r1, r1, #7 + str r1, [r0, #0x34] + str r1, [r0, #0x3c] + ldr r0, _08059C10 @ =0x03000040 + adds r2, r2, r0 + strh r5, [r2] + str r3, [r7, #0x14] + ldr r0, _08059C14 @ =Task_805B984 + ldr r2, _08059C18 @ =0x00002020 + str r5, [sp] + movs r1, #0x34 + movs r3, #0 + bl TaskCreate + adds r3, r0, #0 + ldrh r2, [r3, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r4, r2, r1 + strh r5, [r4, #0x30] + strh r5, [r4, #0x32] + mov r0, r8 + ldrh r1, [r0, #2] + movs r0, #0xc + ands r0, r1 + lsls r0, r0, #0xc + ldr r1, _08059C1C @ =0x06000040 + adds r0, r0, r1 + str r0, [r4, #4] + strh r5, [r4, #8] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x10] + strh r5, [r4, #0x16] + strh r5, [r4, #0x18] + strh r5, [r4, #0x1a] + strh r5, [r4, #0x1c] + ldr r0, _08059C20 @ =0x03000021 + adds r1, r2, r0 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldr r1, _08059C24 @ =0x03000022 + adds r0, r2, r1 + movs r1, #0x10 + strb r1, [r0] + ldr r1, _08059C28 @ =0x03000025 + adds r0, r2, r1 + movs r1, #0 + strb r1, [r0] + ldr r0, _08059C2C @ =0x000002D3 + strh r0, [r4, #0xa] + ldr r0, _08059C30 @ =0x03000020 + adds r2, r2, r0 + strb r1, [r2] + str r3, [r7, #0x20] + adds r0, r4, #0 + bl UpdateSpriteAnimation_BG + adds r0, r4, #0 + bl DisplaySprite_BG + add r4, sp, #0x30 + movs r0, #0x27 + strb r0, [r4] + mov r1, sp + adds r1, #0x2f + str r1, [sp, #0x3c] + movs r2, #0 + strb r2, [r1] + ldr r6, _08059C34 @ =gUiGraphics + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + str r0, [sp, #0x18] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C38 @ =gUiGraphics + 0x4 + adds r0, r0, r3 + ldr r1, [sp, #0x34] + lsls r1, r1, #1 + mov r8, r1 + ldr r2, [sp, #0x34] + add r8, r2 + mov r3, r8 + lsls r1, r3, #1 + ldr r0, [r0] + adds r0, r0, r1 + str r0, [sp, #0x24] + movs r0, #0x80 + lsls r0, r0, #3 + str r0, [sp, #0x1c] + movs r1, #8 + str r1, [sp, #0x28] + add r2, sp, #0x2c + mov sb, r2 + movs r3, #0xf + strb r3, [r2] + ldr r0, _08059C3C @ =0x06010020 + str r0, [sp, #0x10] + movs r0, #0x2e + add r0, sp + mov sl, r0 + movs r0, #0xd + mov r1, sl + strb r0, [r1] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _08059C40 @ =gUiGraphics + 0x8 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C44 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059C48 @ =gUiGraphics + 0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C4C @ =gUiGraphics + 0x14 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059C50 @ =gUiGraphics + 0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r2, #0x28 + strb r2, [r4] + movs r0, #1 + ldr r3, [sp, #0x3c] + strb r0, [r3] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + str r0, [sp, #0x18] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059C38 @ =gUiGraphics + 0x4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x24] + movs r2, #0x80 + lsls r2, r2, #3 + str r2, [sp, #0x1c] + movs r3, #0x20 + str r3, [sp, #0x28] + movs r1, #0 + mov r0, sb + strb r1, [r0] + ldr r0, _08059C54 @ =0x06010420 + str r0, [sp, #0x10] + movs r0, #0xd + mov r2, sl + strb r0, [r2] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C40 @ =gUiGraphics + 0x8 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059C44 @ =gUiGraphics + 0xC + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C48 @ =gUiGraphics + 0x10 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059C4C @ =gUiGraphics + 0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C50 @ =gUiGraphics + 0x18 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r0, #0x29 + strb r0, [r4] + movs r1, #2 + ldr r0, [sp, #0x3c] + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + mov r2, r8 + lsls r2, r2, #0xa + mov r8, r2 + ldr r0, [r0] + add r0, r8 + str r0, [sp, #0x18] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C38 @ =gUiGraphics + 0x4 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [sp, #0x24] + movs r0, #0xc0 + lsls r0, r0, #4 + str r0, [sp, #0x1c] + ldr r0, _08059C58 @ =0x06011120 + str r0, [sp, #0x10] + movs r0, #0x20 + str r0, [sp, #0x28] + movs r2, #0 + mov r1, sb + strb r2, [r1] + movs r0, #9 + mov r3, sl + strb r0, [r3] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059C40 @ =gUiGraphics + 0x8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059C44 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r4] + lsls r0, r1, #3 + b _08059C5C + .align 2, 0 +_08059BD8: .4byte gTailsEnabled +_08059BDC: .4byte gMultiplayerMissingHeartbeats +_08059BE0: .4byte gDispCnt +_08059BE4: .4byte gBgCntRegs +_08059BE8: .4byte 0x00001907 +_08059BEC: .4byte gBgScrollRegs +_08059BF0: .4byte Task_8059F9C +_08059BF4: .4byte 0x0300002A +_08059BF8: .4byte 0x0300002B +_08059BFC: .4byte 0x03000039 +_08059C00: .4byte 0x0300002F +_08059C04: .4byte 0x00002030 +_08059C08: .4byte Task_nullsub_805B980 +_08059C0C: .4byte 0x0300002E +_08059C10: .4byte 0x03000040 +_08059C14: .4byte Task_805B984 +_08059C18: .4byte 0x00002020 +_08059C1C: .4byte 0x06000040 +_08059C20: .4byte 0x03000021 +_08059C24: .4byte 0x03000022 +_08059C28: .4byte 0x03000025 +_08059C2C: .4byte 0x000002D3 +_08059C30: .4byte 0x03000020 +_08059C34: .4byte gUiGraphics +_08059C38: .4byte gUiGraphics + 0x4 +_08059C3C: .4byte 0x06010020 +_08059C40: .4byte gUiGraphics + 0x8 +_08059C44: .4byte gUiGraphics + 0xC +_08059C48: .4byte gUiGraphics + 0x10 +_08059C4C: .4byte gUiGraphics + 0x14 +_08059C50: .4byte gUiGraphics + 0x18 +_08059C54: .4byte 0x06010420 +_08059C58: .4byte 0x06011120 +_08059C5C: + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059F10 @ =gUiGraphics + 0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059F14 @ =gUiGraphics + 0x14 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059F18 @ =gUiGraphics + 0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r0, #0x2b + strb r0, [r4] + movs r3, #3 + ldr r2, [sp, #0x3c] + strb r3, [r2] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + str r0, [sp, #0x18] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp, #0x1c] + ldr r0, _08059F1C @ =0x06010820 + str r0, [sp, #0x10] + movs r1, #0x20 + str r1, [sp, #0x28] + movs r3, #0 + mov r2, sb + strb r3, [r2] + movs r1, #9 + mov r0, sl + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _08059F20 @ =gUiGraphics + 0x8 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059F24 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059F10 @ =gUiGraphics + 0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059F14 @ =gUiGraphics + 0x14 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059F18 @ =gUiGraphics + 0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r0, #0x2a + strb r0, [r4] + movs r3, #4 + ldr r2, [sp, #0x3c] + strb r3, [r2] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + str r0, [sp, #0x18] + movs r0, #0x80 + lsls r0, r0, #4 + str r0, [sp, #0x1c] + ldr r0, _08059F28 @ =0x06010920 + str r0, [sp, #0x10] + movs r0, #0x20 + str r0, [sp, #0x28] + movs r2, #0 + mov r1, sb + strb r2, [r1] + movs r0, #9 + mov r3, sl + strb r0, [r3] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059F20 @ =gUiGraphics + 0x8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059F24 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08059F10 @ =gUiGraphics + 0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08059F14 @ =gUiGraphics + 0x14 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r4, _08059F18 @ =gUiGraphics + 0x18 + adds r0, r0, r4 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + ldr r2, _08059F2C @ =0x00002010 + str r5, [sp] + ldr r0, _08059F30 @ =Task_nullsub_805B980 + movs r1, #0xcc + movs r3, #0 + bl TaskCreate + ldrh r2, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r1, r2, r1 + str r1, [sp, #0x38] + ldr r3, _08059F34 @ =0x030000C0 + adds r1, r2, r3 + str r5, [r1] + ldr r4, _08059F38 @ =0x030000C4 + adds r1, r2, r4 + strh r5, [r1] + adds r3, #6 + adds r1, r2, r3 + movs r4, #0 + strb r4, [r1] + adds r3, #2 + adds r1, r2, r3 + strb r4, [r1] + str r0, [r7, #0xc] + ldr r4, _08059F3C @ =0x03000030 + adds r1, r2, r4 + ldr r0, _08059F40 @ =0x06012520 + str r0, [r1, #4] + strh r5, [r1, #8] + str r5, [r1, #0x10] + movs r0, #0x8c + lsls r0, r0, #1 + strh r0, [r1, #0x16] + movs r3, #0x6e + mov r8, r3 + mov r4, r8 + strh r4, [r1, #0x18] + movs r6, #0xf8 + lsls r6, r6, #3 + strh r6, [r1, #0x1a] + strh r5, [r1, #0x1c] + ldr r0, _08059F44 @ =0x03000051 + adds r3, r2, r0 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r3] + ldr r3, _08059F48 @ =0x03000052 + adds r0, r2, r3 + movs r4, #0x10 + strb r4, [r0] + adds r3, #3 + adds r0, r2, r3 + movs r4, #0 + strb r4, [r0] + ldr r4, _08059F4C @ =0x000002D2 + strh r4, [r1, #0xa] + ldr r1, _08059F50 @ =0x03000050 + adds r0, r2, r1 + movs r3, #0 + strb r3, [r0] + ldr r0, _08059F54 @ =0x06013920 + ldr r1, [sp, #0x38] + str r0, [r1, #4] + strh r5, [r1, #8] + str r5, [r1, #0x10] + ldr r0, _08059F58 @ =0x0000FFCE + strh r0, [r1, #0x16] + mov r3, r8 + strh r3, [r1, #0x18] + strh r6, [r1, #0x1a] + strh r5, [r1, #0x1c] + ldr r0, _08059F5C @ =0x03000021 + adds r1, r2, r0 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldr r1, _08059F60 @ =0x03000022 + adds r0, r2, r1 + movs r3, #0x10 + strb r3, [r0] + adds r1, #3 + adds r0, r2, r1 + movs r3, #0 + strb r3, [r0] + ldr r0, [sp, #0x38] + strh r4, [r0, #0xa] + subs r1, #5 + adds r0, r2, r1 + movs r3, #6 + strb r3, [r0] + ldr r0, _08059F64 @ =0x03000060 + adds r1, r2, r0 + ldr r0, _08059F68 @ =0x06014D20 + str r0, [r1, #4] + strh r5, [r1, #8] + str r5, [r1, #0x10] + movs r3, #0x91 + lsls r3, r3, #1 + strh r3, [r1, #0x16] + mov r0, r8 + strh r0, [r1, #0x18] + strh r6, [r1, #0x1a] + strh r5, [r1, #0x1c] + ldr r0, _08059F6C @ =0x03000081 + adds r3, r2, r0 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r3] + ldr r3, _08059F70 @ =0x03000082 + adds r0, r2, r3 + movs r3, #0x10 + strb r3, [r0] + ldr r3, _08059F74 @ =0x03000085 + adds r0, r2, r3 + movs r3, #0 + strb r3, [r0] + strh r4, [r1, #0xa] + ldr r4, _08059F78 @ =0x03000080 + adds r0, r2, r4 + movs r1, #2 + strb r1, [r0] + ldr r3, _08059F7C @ =0x03000090 + adds r0, r2, r3 + ldr r1, _08059F80 @ =0x06016120 + str r1, [r0, #4] + strh r5, [r0, #8] + str r5, [r0, #0x10] + movs r4, #0x91 + lsls r4, r4, #1 + strh r4, [r0, #0x16] + mov r1, r8 + strh r1, [r0, #0x18] + movs r1, #0xe0 + lsls r1, r1, #3 + strh r1, [r0, #0x1a] + strh r5, [r0, #0x1c] + ldr r4, _08059F84 @ =0x030000B1 + adds r3, r2, r4 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r3] + ldr r3, _08059F88 @ =0x030000B2 + adds r1, r2, r3 + movs r4, #0x10 + strb r4, [r1] + adds r3, #3 + adds r1, r2, r3 + movs r4, #0 + strb r4, [r1] + ldr r1, _08059F8C @ =0x000002DA + strh r1, [r0, #0xa] + ldr r1, _08059F90 @ =0x030000B0 + adds r2, r2, r1 + strb r4, [r2] + bl UpdateSpriteAnimation + ldr r0, _08059F94 @ =gBgSprites_Unknown1 + strb r4, [r0, #1] + ldr r0, _08059F98 @ =gBgSprites_Unknown2 + strb r4, [r0, #4] + strb r4, [r0, #5] + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0, #6] + movs r2, #0x20 + strb r2, [r0, #7] + movs r0, #3 @ MUS_CHARACTER_SELECTION + bl m4aSongNumStartOrContinue + adds r0, r7, #0 + bl sub_805423C + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08059F10: .4byte gUiGraphics + 0x10 +_08059F14: .4byte gUiGraphics + 0x14 +_08059F18: .4byte gUiGraphics + 0x18 +_08059F1C: .4byte 0x06010820 +_08059F20: .4byte gUiGraphics + 0x8 +_08059F24: .4byte gUiGraphics + 0xC +_08059F28: .4byte 0x06010920 +_08059F2C: .4byte 0x00002010 +_08059F30: .4byte Task_nullsub_805B980 +_08059F34: .4byte 0x030000C0 +_08059F38: .4byte 0x030000C4 +_08059F3C: .4byte 0x03000030 +_08059F40: .4byte 0x06012520 +_08059F44: .4byte 0x03000051 +_08059F48: .4byte 0x03000052 +_08059F4C: .4byte 0x000002D2 +_08059F50: .4byte 0x03000050 +_08059F54: .4byte 0x06013920 +_08059F58: .4byte 0x0000FFCE +_08059F5C: .4byte 0x03000021 +_08059F60: .4byte 0x03000022 +_08059F64: .4byte 0x03000060 +_08059F68: .4byte 0x06014D20 +_08059F6C: .4byte 0x03000081 +_08059F70: .4byte 0x03000082 +_08059F74: .4byte 0x03000085 +_08059F78: .4byte 0x03000080 +_08059F7C: .4byte 0x03000090 +_08059F80: .4byte 0x06016120 +_08059F84: .4byte 0x030000B1 +_08059F88: .4byte 0x030000B2 +_08059F8C: .4byte 0x000002DA +_08059F90: .4byte 0x030000B0 +_08059F94: .4byte gBgSprites_Unknown1 +_08059F98: .4byte gBgSprites_Unknown2 + +.syntax divided diff --git a/asm/non_matching/game/char_select__Task_805A060.inc b/asm/non_matching/game/char_select__Task_805A060.inc new file mode 100644 index 0000000000..e3d782344e --- /dev/null +++ b/asm/non_matching/game/char_select__Task_805A060.inc @@ -0,0 +1,644 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _0805A0FC @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r0, r1 + ldr r0, [r5, #0x18] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #8] + ldr r0, [r5, #0x10] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sl, r0 + ldr r0, [r5, #0x14] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #4] + ldr r0, [r5, #0x20] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #0xc] + ldr r0, _0805A100 @ =gGameMode + ldrb r1, [r0] + cmp r1, #1 + bls _0805A18E + movs r3, #0 + ldr r0, _0805A104 @ =gMultiplayerConnections + ldrb r1, [r0] + movs r2, #1 + ands r1, r2 + adds r7, r0, #0 + cmp r1, #0 + beq _0805A13E + movs r6, #1 + ldr r2, _0805A108 @ =gMultiplayerMissingHeartbeats +_0805A0BC: + ldr r1, _0805A10C @ =gMultiSioStatusFlags + adds r0, r6, #0 + lsls r0, r3 + ldr r4, [r1] + ands r4, r0 + cmp r4, #0 + bne _0805A128 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _0805A12C + movs r0, #0 + ldr r1, _0805A110 @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _0805A114 @ =gBackgroundsCopyQueueCursor + ldr r0, _0805A118 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0805A11C @ =gBgSpritesCount + strb r4, [r0] + ldr r1, _0805A120 @ =gVramGraphicsCopyCursor + ldr r0, _0805A124 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _0805A52C + .align 2, 0 +_0805A0FC: .4byte gCurTask +_0805A100: .4byte gGameMode +_0805A104: .4byte gMultiplayerConnections +_0805A108: .4byte gMultiplayerMissingHeartbeats +_0805A10C: .4byte gMultiSioStatusFlags +_0805A110: .4byte 0x0000FFFF +_0805A114: .4byte gBackgroundsCopyQueueCursor +_0805A118: .4byte gBackgroundsCopyQueueIndex +_0805A11C: .4byte gBgSpritesCount +_0805A120: .4byte gVramGraphicsCopyCursor +_0805A124: .4byte gVramGraphicsCopyQueueIndex +_0805A128: + movs r0, #0 + strb r0, [r2] +_0805A12C: + adds r2, #1 + adds r3, #1 + cmp r3, #3 + bhi _0805A13E + ldrb r0, [r7] + asrs r0, r3 + ands r0, r6 + cmp r0, #0 + bne _0805A0BC +_0805A13E: + ldr r1, _0805A1E8 @ =gGameMode + ldrb r0, [r1] + cmp r0, #1 + bls _0805A18E + adds r1, r5, #0 + adds r1, #0x2f + movs r0, #0 + strb r0, [r1] + movs r3, #0 + adds r4, r1, #0 + ldr r2, _0805A1EC @ =gMultiSioRecv + mov r8, r2 + movs r6, #0 +_0805A158: + ldr r0, _0805A1F0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r3, r0 + beq _0805A186 + ldrb r0, [r7] + asrs r0, r3 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805A186 + mov r0, r8 + adds r2, r6, r0 + ldrh r0, [r2] + cmp r0, #0x20 + bls _0805A186 + adds r0, r1, #0 + ldrb r2, [r2, #2] + lsls r0, r2 + ldrb r1, [r4] + orrs r0, r1 + strb r0, [r4] +_0805A186: + adds r6, #0x14 + adds r3, #1 + cmp r3, #3 + bls _0805A158 +_0805A18E: + adds r4, r5, #0 + adds r4, #0x2b + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + bl CheckCPUPartnerUnlock + ldr r0, _0805A1F4 @ =gRepeatedKeys + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + mov sb, r4 + adds r7, r5, #0 + adds r7, #0x2a + cmp r0, #0 + beq _0805A1F8 + ldr r0, [r5, #0x24] + cmp r0, #0x21 + bls _0805A1F8 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0 + ldrsb r1, [r7, r1] + cmp r0, r1 + bne _0805A1F8 + ldr r0, _0805A1E8 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bhi _0805A1F8 + movs r0, #0x6b + bl m4aSongNumStart + bl sub_805B858 + adds r2, r5, #0 + adds r2, #0x2f + str r2, [sp, #0x10] + adds r6, r5, #0 + adds r6, #0x2c + adds r4, #2 + b _0805A358 + .align 2, 0 +_0805A1E8: .4byte gGameMode +_0805A1EC: .4byte gMultiSioRecv +_0805A1F0: .4byte 0x04000128 +_0805A1F4: .4byte gRepeatedKeys +_0805A1F8: + ldr r2, _0805A244 @ =gRepeatedKeys + ldrh r1, [r2] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + adds r3, r5, #0 + adds r3, #0x2f + str r3, [sp, #0x10] + mov r1, r8 + lsls r6, r1, #0x10 + cmp r0, #0 + beq _0805A270 + asrs r3, r6, #0x10 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r3, r0 + bne _0805A270 + ldr r0, [r5, #0x24] + cmp r0, #0x21 + bls _0805A270 + ldr r0, [sp, #0x10] + ldrb r1, [r0] + movs r0, #3 + ands r0, r3 + asrs r1, r0 + ands r1, r4 + cmp r1, #0 + bne _0805A270 + movs r0, #0x6a + bl m4aSongNumStart + ldr r0, _0805A248 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bhi _0805A24C + bl sub_805A9A4 + b _0805A25E + .align 2, 0 +_0805A244: .4byte gRepeatedKeys +_0805A248: .4byte gGameMode +_0805A24C: + ldr r2, [r5, #0x1c] + ldrh r0, [r2, #0x12] + movs r1, #1 + orrs r0, r1 + strh r0, [r2, #0x12] + ldr r0, _0805A268 @ =gCurTask + ldr r1, [r0] + ldr r0, _0805A26C @ =Task_805A54C + str r0, [r1, #8] +_0805A25E: + adds r6, r5, #0 + adds r6, #0x2c + adds r4, r5, #0 + adds r4, #0x2d + b _0805A358 + .align 2, 0 +_0805A268: .4byte gCurTask +_0805A26C: .4byte Task_805A54C +_0805A270: + ldrh r1, [r2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0805A290 + ldr r0, [r5, #0x24] + cmp r0, #0x21 + bls _0805A290 + ldr r1, _0805A28C @ =0xFFFF0000 + adds r0, r6, r1 + lsrs r0, r0, #0x10 + mov r8, r0 + b _0805A2E8 + .align 2, 0 +_0805A28C: .4byte 0xFFFF0000 +_0805A290: + ldrh r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805A2C6 + ldr r0, [r5, #0x24] + cmp r0, #0x21 + bls _0805A2C6 + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r6, r2 + lsrs r0, r0, #0x10 + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x2c + ldrb r1, [r0] + adds r6, r0, #0 + adds r4, r5, #0 + adds r4, #0x2d + cmp r1, #0 + bne _0805A358 + movs r0, #1 + strb r0, [r6] + adds r1, r5, #0 + adds r1, #0x2e + movs r0, #0x10 + b _0805A302 +_0805A2C6: + asrs r2, r6, #0x10 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r2, r0 + ble _0805A2E4 + adds r0, r5, #0 + adds r0, #0x2c + ldrb r1, [r0] + adds r6, r0, #0 + adds r4, r5, #0 + adds r4, #0x2d + cmp r1, #0 + bne _0805A358 + movs r0, #1 + b _0805A2FA +_0805A2E4: + cmp r2, r0 + bge _0805A30C +_0805A2E8: + adds r0, r5, #0 + adds r0, #0x2c + ldrb r1, [r0] + adds r6, r0, #0 + adds r4, r5, #0 + adds r4, #0x2d + cmp r1, #0 + bne _0805A358 + movs r0, #2 +_0805A2FA: + strb r0, [r6] + adds r1, r5, #0 + adds r1, #0x2e + movs r0, #0x10 +_0805A302: + strb r0, [r1] + movs r0, #0x67 @ SE_SHIFT + bl m4aSongNumStart + b _0805A358 +_0805A30C: + ldr r3, [sp, #0x10] + ldrb r1, [r3] + movs r0, #3 + ands r0, r2 + asrs r1, r0 + movs r3, #1 + ands r1, r3 + adds r6, r5, #0 + adds r6, #0x2c + adds r4, r5, #0 + adds r4, #0x2d + cmp r1, #0 + beq _0805A358 + ldr r0, [r5, #0x24] + cmp r0, #0x21 + bls _0805A358 + ldrb r1, [r4] + cmp r1, #0 + beq _0805A348 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0805A33E + adds r0, r2, #1 + b _0805A340 +_0805A33E: + subs r0, r2, #1 +_0805A340: + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + b _0805A358 +_0805A348: + strb r3, [r6] + adds r1, r5, #0 + adds r1, #0x2e + movs r0, #0x10 + strb r0, [r1] + movs r0, #0x67 @ SE_SHIFT + bl m4aSongNumStart +_0805A358: + ldrb r0, [r6] + strb r0, [r4] + ldrb r1, [r6] + cmp r1, #0 + beq _0805A39A + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805A37A + adds r1, r5, #0 + adds r1, #0x2e + ldrb r0, [r1] + cmp r0, #0 + beq _0805A39A + ldrh r0, [r5, #0x28] + adds r0, #0x10 + b _0805A388 +_0805A37A: + adds r1, r5, #0 + adds r1, #0x2e + ldrb r0, [r1] + cmp r0, #0 + beq _0805A39A + ldrh r0, [r5, #0x28] + subs r0, #0x10 +_0805A388: + strh r0, [r5, #0x28] + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A39A + movs r0, #0 + strb r0, [r6] +_0805A39A: + ldrh r1, [r5, #0x28] + ldr r0, _0805A3BC @ =0x00003FFF + ands r0, r1 + strh r0, [r5, #0x28] + movs r0, #0x3f + mov r1, r8 + ands r0, r1 + mov r2, sb + strb r0, [r2] + movs r1, #0 + ldrsb r1, [r7, r1] + cmp r1, r0 + bgt _0805A3C0 + ldrh r0, [r5, #0x28] + lsrs r0, r0, #8 + b _0805A3D4 + .align 2, 0 +_0805A3BC: .4byte 0x00003FFF +_0805A3C0: + ldrh r0, [r5, #0x28] + lsls r0, r0, #0x10 + asrs r2, r0, #0x18 + strb r2, [r7] + ldrh r1, [r5, #0x28] + movs r0, #0xff + ands r0, r1 + cmp r0, #0 + beq _0805A3D6 + adds r0, r2, #1 +_0805A3D4: + strb r0, [r7] +_0805A3D6: + adds r2, r7, #0 + ldrb r1, [r7] + movs r0, #0x3f + ands r0, r1 + strb r0, [r7] + cmp r0, #0x24 + ble _0805A458 + mov r3, sb + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0x24 + ble _0805A458 + movs r0, #0x28 + ldrsh r1, [r5, r0] + movs r0, #0x90 + lsls r0, r0, #6 + movs r3, #0xc4 + add r3, sl + mov r8, r3 + movs r3, #0xc6 + add r3, sl + mov ip, r3 + mov r3, sl + adds r3, #0xc8 + str r3, [sp, #0x14] + cmp r1, r0 + ble _0805A458 +_0805A40C: + ldrb r0, [r2] + subs r0, #4 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x24 + bgt _0805A40C + mov r4, sb + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0x24 + ble _0805A432 +_0805A424: + ldrb r0, [r4] + subs r0, #4 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x24 + bgt _0805A424 +_0805A432: + movs r1, #0x28 + ldrsh r0, [r5, r1] + adds r1, r0, #0 + movs r2, #0x90 + lsls r2, r2, #6 + cmp r0, r2 + ble _0805A4D0 + ldr r0, _0805A454 @ =0xFFFFFC00 + adds r3, r0, #0 +_0805A444: + adds r0, r1, r3 + strh r0, [r5, #0x28] + adds r1, r0, #0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r2 + bgt _0805A444 + b _0805A4D0 + .align 2, 0 +_0805A454: .4byte 0xFFFFFC00 +_0805A458: + adds r2, r7, #0 + movs r0, #0 + ldrsb r0, [r2, r0] + movs r1, #0xc4 + add r1, sl + mov r8, r1 + movs r3, #0xc6 + add r3, sl + mov ip, r3 + mov r1, sl + adds r1, #0xc8 + str r1, [sp, #0x14] + cmp r0, #0x1b + bgt _0805A4D0 + mov r3, sb + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0x1b + bgt _0805A4D0 + movs r0, #0x28 + ldrsh r1, [r5, r0] + ldr r0, _0805A53C @ =0x00001BFF + cmp r1, r0 + bgt _0805A4D0 +_0805A488: + ldrb r0, [r2] + adds r0, #4 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x1b + ble _0805A488 + mov r4, sb + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0x1b + bgt _0805A4AE +_0805A4A0: + ldrb r0, [r4] + adds r0, #4 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x1b + ble _0805A4A0 +_0805A4AE: + movs r1, #0x28 + ldrsh r0, [r5, r1] + adds r2, r0, #0 + ldr r1, _0805A53C @ =0x00001BFF + cmp r0, r1 + bgt _0805A4D0 + movs r3, #0x80 + lsls r3, r3, #3 + adds r4, r3, #0 + adds r3, r1, #0 +_0805A4C2: + adds r1, r2, r4 + adds r2, r1, #0 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + cmp r0, r3 + ble _0805A4C2 + strh r1, [r5, #0x28] +_0805A4D0: + ldrh r2, [r5, #0x28] + ldr r1, _0805A540 @ =0x000003FF + adds r0, r1, #0 + ands r0, r2 + ldr r2, [sp, #8] + strh r0, [r2, #0x1c] + ldrh r2, [r5, #0x28] + adds r0, r1, #0 + ands r0, r2 + ldr r3, [sp] + strh r0, [r3, #0x1c] + ldrh r2, [r5, #0x28] + adds r0, r1, #0 + ands r0, r2 + mov r2, r8 + strh r0, [r2] + ldrb r0, [r6] + mov r3, ip + strb r0, [r3] + ldrh r0, [r5, #0x28] + ands r1, r0 + ldr r0, [sp, #0xc] + strh r1, [r0, #0x32] + ldr r1, [sp, #0x10] + ldrb r0, [r1] + ldr r2, [sp, #0x14] + strb r0, [r2] + ldr r0, [r5, #0x24] + adds r0, #1 + str r0, [r5, #0x24] + ldr r3, [sp, #4] + str r0, [r3, #0x38] + ldr r1, _0805A544 @ =gGameMode + ldrb r0, [r1] + cmp r0, #1 + bls _0805A52C + ldr r2, _0805A548 @ =gMultiSioSend + movs r0, #0x20 + strh r0, [r2] + ldr r3, [sp, #8] + ldrh r1, [r3, #0x1c] + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r2, #2] +_0805A52C: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805A53C: .4byte 0x00001BFF +_0805A540: .4byte 0x000003FF +_0805A544: .4byte gGameMode +_0805A548: .4byte gMultiSioSend + +.syntax divided diff --git a/asm/non_matching/game/char_select__Task_805A54C.inc b/asm/non_matching/game/char_select__Task_805A54C.inc new file mode 100644 index 0000000000..7a323f26bf --- /dev/null +++ b/asm/non_matching/game/char_select__Task_805A54C.inc @@ -0,0 +1,288 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov r0, sp + movs r1, #0 + movs r2, #4 + bl memset + ldr r0, _0805A5C8 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r1, r0 + ldr r0, _0805A5CC @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _0805A60C + movs r3, #0 + ldr r0, _0805A5D0 @ =gMultiplayerConnections + ldrb r1, [r0] + movs r2, #1 + ands r1, r2 + mov ip, r0 + cmp r1, #0 + beq _0805A60C + movs r6, #1 + ldr r2, _0805A5D4 @ =gMultiplayerMissingHeartbeats +_0805A58A: + ldr r1, _0805A5D8 @ =gMultiSioStatusFlags + adds r0, r6, #0 + lsls r0, r3 + ldr r4, [r1] + ands r4, r0 + cmp r4, #0 + bne _0805A5F4 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _0805A5F8 + movs r0, #0 + ldr r1, _0805A5DC @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _0805A5E0 @ =gBackgroundsCopyQueueCursor + ldr r0, _0805A5E4 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0805A5E8 @ =gBgSpritesCount + strb r4, [r0] + ldr r1, _0805A5EC @ =gVramGraphicsCopyCursor + ldr r0, _0805A5F0 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _0805A788 + .align 2, 0 +_0805A5C8: .4byte gCurTask +_0805A5CC: .4byte gGameMode +_0805A5D0: .4byte gMultiplayerConnections +_0805A5D4: .4byte gMultiplayerMissingHeartbeats +_0805A5D8: .4byte gMultiSioStatusFlags +_0805A5DC: .4byte 0x0000FFFF +_0805A5E0: .4byte gBackgroundsCopyQueueCursor +_0805A5E4: .4byte gBackgroundsCopyQueueIndex +_0805A5E8: .4byte gBgSpritesCount +_0805A5EC: .4byte gVramGraphicsCopyCursor +_0805A5F0: .4byte gVramGraphicsCopyQueueIndex +_0805A5F4: + movs r0, #0 + strb r0, [r2] +_0805A5F8: + adds r2, #1 + adds r3, #1 + cmp r3, #3 + bhi _0805A60C + mov r1, ip + ldrb r0, [r1] + asrs r0, r3 + ands r0, r6 + cmp r0, #0 + bne _0805A58A +_0805A60C: + ldr r0, _0805A62C @ =gPressedKeys + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0805A63C + ldr r2, [r5, #0x1c] + ldrh r1, [r2, #0x12] + ldr r0, _0805A630 @ =0x0000FFFE + ands r0, r1 + strh r0, [r2, #0x12] + ldr r0, _0805A634 @ =gCurTask + ldr r1, [r0] + ldr r0, _0805A638 @ =Task_805A060 + str r0, [r1, #8] + b _0805A788 + .align 2, 0 +_0805A62C: .4byte gPressedKeys +_0805A630: .4byte 0x0000FFFE +_0805A634: .4byte gCurTask +_0805A638: .4byte Task_805A060 +_0805A63C: + ldr r1, _0805A678 @ =gMultiSioRecv + ldrh r0, [r1] + adds r7, r1, #0 + cmp r0, #0x22 + bne _0805A68C + movs r3, #0 + ldr r5, _0805A67C @ =gCurTask + mov ip, r5 + ldr r7, _0805A680 @ =Task_805A798 + ldr r6, _0805A684 @ =gMultiplayerConnections + movs r5, #1 + adds r2, r1, #0 + ldr r4, _0805A688 @ =gMultiplayerCharacters +_0805A656: + ldrb r0, [r6] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + beq _0805A666 + adds r1, r3, r4 + ldrb r0, [r2, #2] + strb r0, [r1] +_0805A666: + adds r2, #0x14 + adds r3, #1 + cmp r3, #3 + bls _0805A656 + mov r1, ip + ldr r0, [r1] + str r7, [r0, #8] + b _0805A788 + .align 2, 0 +_0805A678: .4byte gMultiSioRecv +_0805A67C: .4byte gCurTask +_0805A680: .4byte Task_805A798 +_0805A684: .4byte gMultiplayerConnections +_0805A688: .4byte gMultiplayerCharacters +_0805A68C: + movs r3, #0 + ldr r0, _0805A750 @ =gMultiplayerConnections + mov ip, r0 + ldr r1, _0805A754 @ =gMultiSioSend + mov sl, r1 + movs r0, #0xc0 + lsls r0, r0, #2 + mov sb, r0 + ldr r1, _0805A758 @ =0x0000FFFE + mov r8, r1 + movs r6, #0 +_0805A6A2: + mov r1, ip + ldrb r0, [r1] + asrs r0, r3 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805A6EE + ldr r4, _0805A75C @ =0x04000128 + ldr r0, [r4] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r3, r0 + beq _0805A6EE + adds r1, r6, r7 + ldrh r0, [r1] + cmp r0, #0x21 + bne _0805A6EE + ldrb r2, [r1, #2] + ldrh r1, [r5, #0x28] + mov r0, sb + ands r0, r1 + lsrs r0, r0, #8 + cmp r2, r0 + bne _0805A6EE + ldr r0, [r4] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r3, r0 + bhs _0805A6EE + ldr r2, [r5, #0x1c] + ldrh r1, [r2, #0x12] + mov r0, r8 + ands r0, r1 + strh r0, [r2, #0x12] + ldr r0, _0805A760 @ =gCurTask + ldr r1, [r0] + ldr r0, _0805A764 @ =Task_805A060 + str r0, [r1, #8] +_0805A6EE: + adds r6, #0x14 + adds r3, #1 + cmp r3, #3 + bls _0805A6A2 + ldr r1, _0805A768 @ =gMultiSioStatusFlags + ldr r0, [r1] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805A776 + mov r6, sl + movs r0, #0x22 + strh r0, [r6] + ldrh r1, [r5, #0x28] + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r6, #2] + movs r3, #0 + ldr r0, _0805A750 @ =gMultiplayerConnections + ldrb r0, [r0] + mov r8, r0 + movs r4, #0 +_0805A71E: + mov r0, r8 + asrs r0, r3 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805A746 + adds r1, r4, r7 + ldrh r2, [r1] + cmp r2, #0x21 + bne _0805A76C + ldrb r0, [r1, #2] + mov r5, sp + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0805A772 +_0805A746: + adds r4, #0x14 + adds r3, #1 + cmp r3, #3 + bls _0805A71E + b _0805A788 + .align 2, 0 +_0805A750: .4byte gMultiplayerConnections +_0805A754: .4byte gMultiSioSend +_0805A758: .4byte 0x0000FFFE +_0805A75C: .4byte 0x04000128 +_0805A760: .4byte gCurTask +_0805A764: .4byte Task_805A060 +_0805A768: .4byte gMultiSioStatusFlags +_0805A76C: + movs r0, #0x21 + strh r0, [r6] + b _0805A788 +_0805A772: + strh r2, [r6] + b _0805A788 +_0805A776: + mov r6, sl + movs r0, #0x21 + strh r0, [r6] + ldrh r1, [r5, #0x28] + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r6, #2] +_0805A788: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +.syntax divided diff --git a/asm/non_matching/game/char_select__Task_805A798.inc b/asm/non_matching/game/char_select__Task_805A798.inc new file mode 100644 index 0000000000..91cda8f021 --- /dev/null +++ b/asm/non_matching/game/char_select__Task_805A798.inc @@ -0,0 +1,254 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _0805A808 @ =gCurTask + ldr r0, [r2] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + ldr r0, _0805A80C @ =gGameMode + ldrb r0, [r0] + mov r8, r2 + cmp r0, #1 + bls _0805A84C + movs r3, #0 + ldr r0, _0805A810 @ =gMultiplayerConnections + ldrb r1, [r0] + movs r2, #1 + ands r1, r2 + mov ip, r0 + cmp r1, #0 + beq _0805A84C + movs r5, #1 + ldr r2, _0805A814 @ =gMultiplayerMissingHeartbeats +_0805A7C8: + ldr r1, _0805A818 @ =gMultiSioStatusFlags + adds r0, r5, #0 + lsls r0, r3 + ldr r4, [r1] + ands r4, r0 + cmp r4, #0 + bne _0805A834 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _0805A838 + movs r0, #0 + ldr r1, _0805A81C @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _0805A820 @ =gBackgroundsCopyQueueCursor + ldr r0, _0805A824 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0805A828 @ =gBgSpritesCount + strb r4, [r0] + ldr r1, _0805A82C @ =gVramGraphicsCopyCursor + ldr r0, _0805A830 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _0805A992 + .align 2, 0 +_0805A808: .4byte gCurTask +_0805A80C: .4byte gGameMode +_0805A810: .4byte gMultiplayerConnections +_0805A814: .4byte gMultiplayerMissingHeartbeats +_0805A818: .4byte gMultiSioStatusFlags +_0805A81C: .4byte 0x0000FFFF +_0805A820: .4byte gBackgroundsCopyQueueCursor +_0805A824: .4byte gBackgroundsCopyQueueIndex +_0805A828: .4byte gBgSpritesCount +_0805A82C: .4byte gVramGraphicsCopyCursor +_0805A830: .4byte gVramGraphicsCopyQueueIndex +_0805A834: + movs r0, #0 + strb r0, [r2] +_0805A838: + adds r2, #1 + adds r3, #1 + cmp r3, #3 + bhi _0805A84C + mov r1, ip + ldrb r0, [r1] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + bne _0805A7C8 +_0805A84C: + ldr r3, _0805A8A4 @ =gMultiSioRecv + ldrh r0, [r3] + adds r7, r3, #0 + cmp r0, #0x23 + bne _0805A8B8 + ldr r1, _0805A8A8 @ =gUnknown_03005140 + movs r0, #0 + strb r0, [r1] + movs r2, #0 + ldr r0, _0805A8AC @ =gMultiplayerConnections + mov ip, r0 + adds r5, r1, #0 + movs r4, #0 +_0805A866: + mov r1, ip + ldrb r0, [r1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805A896 + adds r3, r4, r7 + ldrb r0, [r3, #3] + ldrb r1, [r5] + cmp r0, r1 + bhs _0805A880 + adds r0, r1, #0 +_0805A880: + strb r0, [r5] + ldr r0, _0805A8B0 @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805A896 + ldr r0, _0805A8B4 @ =gMultiplayerCharacters + adds r0, r2, r0 + ldrb r1, [r3, #2] + strb r1, [r0] +_0805A896: + adds r4, #0x14 + adds r2, #1 + cmp r2, #3 + bls _0805A866 + bl sub_805A9A4 + b _0805A992 + .align 2, 0 +_0805A8A4: .4byte gMultiSioRecv +_0805A8A8: .4byte gUnknown_03005140 +_0805A8AC: .4byte gMultiplayerConnections +_0805A8B0: .4byte gMultiSioStatusFlags +_0805A8B4: .4byte gMultiplayerCharacters +_0805A8B8: + cmp r0, #0x21 + bne _0805A8E4 + ldr r5, _0805A8D8 @ =gMultiSioSend + movs r0, #0x20 + strh r0, [r5] + ldr r2, [r6, #0x1c] + ldrh r1, [r2, #0x12] + ldr r0, _0805A8DC @ =0x0000FFFE + ands r0, r1 + strh r0, [r2, #0x12] + mov r0, r8 + ldr r1, [r0] + ldr r0, _0805A8E0 @ =Task_805A060 + str r0, [r1, #8] + b _0805A992 + .align 2, 0 +_0805A8D8: .4byte gMultiSioSend +_0805A8DC: .4byte 0x0000FFFE +_0805A8E0: .4byte Task_805A060 +_0805A8E4: + ldr r0, _0805A950 @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805A972 + ldr r5, _0805A954 @ =gMultiSioSend + movs r0, #0x23 + strh r0, [r5] + ldrh r1, [r6, #0x28] + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r5, #2] + ldr r1, _0805A958 @ =gLoadedSaveGame + ldrb r0, [r5, #2] + lsls r0, r0, #1 + adds r1, #8 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r5, #3] + movs r2, #0 + ldr r1, _0805A95C @ =gMultiplayerConnections + mov ip, r1 + movs r4, #0 +_0805A918: + mov r1, ip + ldrb r0, [r1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0805A968 + cmp r2, #0 + beq _0805A968 + adds r3, r4, r7 + ldr r0, _0805A960 @ =gMultiplayerCharacters + adds r0, r2, r0 + ldrb r1, [r3, #2] + strb r1, [r0] + ldrh r0, [r3] + cmp r0, #0x22 + beq _0805A968 + movs r0, #0x22 + strh r0, [r5] + ldr r0, _0805A964 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0805A992 + movs r0, #0x21 + strh r0, [r5] + b _0805A992 + .align 2, 0 +_0805A950: .4byte gMultiSioStatusFlags +_0805A954: .4byte gMultiSioSend +_0805A958: .4byte gLoadedSaveGame +_0805A95C: .4byte gMultiplayerConnections +_0805A960: .4byte gMultiplayerCharacters +_0805A964: .4byte gPressedKeys +_0805A968: + adds r4, #0x14 + adds r2, #1 + cmp r2, #3 + bls _0805A918 + b _0805A992 +_0805A972: + ldr r5, _0805A99C @ =gMultiSioSend + movs r0, #0x22 + strh r0, [r5] + ldrh r1, [r6, #0x28] + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r5, #2] + ldr r1, _0805A9A0 @ =gLoadedSaveGame + ldrb r0, [r5, #2] + lsls r0, r0, #1 + adds r1, #8 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r5, #3] +_0805A992: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805A99C: .4byte gMultiSioSend +_0805A9A0: .4byte gLoadedSaveGame + +.syntax divided diff --git a/asm/non_matching/game/char_select__sub_805B324.inc b/asm/non_matching/game/char_select__sub_805B324.inc new file mode 100644 index 0000000000..0d12e66566 --- /dev/null +++ b/asm/non_matching/game/char_select__sub_805B324.inc @@ -0,0 +1,262 @@ +.include "constants/constants.inc" + +.syntax unified + +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _0805B37C @ =gUnknown_08688602 + mov r0, sp + movs r2, #6 + bl memcpy + ldr r0, _0805B380 @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r2, r0 + ldr r1, _0805B384 @ =0x030000C4 + adds r0, r2, r1 + ldrh r1, [r0] + ldrb r0, [r0] + lsrs r4, r0, #4 + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #8 + mov sl, r0 + ldr r1, _0805B388 @ =0x030000C6 + adds r0, r2, r1 + ldrb r1, [r0] + cmp r1, #0 + bne _0805B398 + ldr r0, _0805B38C @ =0x0000FFF8 + strh r0, [r5, #0x16] + ldr r0, _0805B390 @ =0x03000046 + adds r1, r2, r0 + movs r0, #0x78 + strh r0, [r1] + ldr r0, _0805B394 @ =0x03000076 + adds r1, r2, r0 + movs r0, #0xf8 + strh r0, [r1] + movs r6, #0 + b _0805B434 + .align 2, 0 +_0805B37C: .4byte gUnknown_08688602 +_0805B380: .4byte gCurTask +_0805B384: .4byte 0x030000C4 +_0805B388: .4byte 0x030000C6 +_0805B38C: .4byte 0x0000FFF8 +_0805B390: .4byte 0x03000046 +_0805B394: .4byte 0x03000076 +_0805B398: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805B3A6 + movs r3, #1 + movs r2, #0xff + b _0805B3B6 +_0805B3A6: + movs r3, #0 + movs r2, #1 + movs r1, #0x10 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 +_0805B3B6: + lsls r0, r4, #0x10 + asrs r7, r0, #0x10 + lsls r6, r2, #0x18 + cmp r7, #4 + bne _0805B416 + lsls r2, r3, #1 + adds r2, r2, r3 + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + add r0, sl + movs r3, #3 + ands r0, r3 + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x50 + strb r0, [r1] + mov r0, sp + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + add r0, sl + ands r0, r3 + lsls r0, r0, #1 + adds r1, #0x30 + strb r0, [r1] + mov r0, sp + adds r0, #2 + adds r0, r0, r2 + ldrb r0, [r0] + add r0, sl + ands r0, r3 + lsls r0, r0, #1 + subs r1, #0x60 + strb r0, [r1] + asrs r1, r6, #0x11 + ldrh r0, [r5, #0x16] + subs r0, r0, r1 + strh r0, [r5, #0x16] + adds r2, r5, #0 + adds r2, #0x46 + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r2] + adds r2, #0x30 + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r2] +_0805B416: + cmp r7, #8 + bgt _0805B434 + asrs r1, r6, #0x14 + ldrh r0, [r5, #0x16] + adds r0, r0, r1 + strh r0, [r5, #0x16] + adds r2, r5, #0 + adds r2, #0x46 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + adds r2, #0x30 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] +_0805B434: + asrs r1, r6, #0x18 + cmp r1, #1 + bne _0805B448 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r2, #0 + cmp r0, #3 + bgt _0805B45C + movs r2, #1 + b _0805B45C +_0805B448: + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0805B45A + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r2, #1 + cmp r0, #3 + bgt _0805B45C +_0805B45A: + movs r2, #0 +_0805B45C: + adds r7, r5, #0 + adds r7, #0xc8 + ldrb r1, [r7] + adds r6, r2, #0 + subs r0, r6, #1 + add r0, sl + movs r2, #3 + mov sb, r2 + ands r0, r2 + asrs r1, r0 + movs r0, #1 + mov r8, r0 + ands r1, r0 + cmp r1, #0 + beq _0805B490 + ldrh r0, [r5, #0x16] + adds r1, r5, #0 + adds r1, #0xa6 + strh r0, [r1] + ldrh r1, [r5, #0x18] + adds r0, r5, #0 + adds r0, #0xa8 + strh r1, [r0] + subs r0, #0x18 + bl DisplaySprite +_0805B490: + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + bl DisplaySprite + ldrb r1, [r7] + mov r2, sl + adds r0, r2, r6 + mov r2, sb + ands r0, r2 + asrs r1, r0 + mov r0, r8 + ands r1, r0 + cmp r1, #0 + beq _0805B4CC + adds r0, r5, #0 + adds r0, #0x46 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0xa6 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x48 + ldrh r1, [r0] + adds r0, #0x60 + strh r1, [r0] + subs r0, #0x18 + bl DisplaySprite +_0805B4CC: + adds r4, r5, #0 + adds r4, #0x30 + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + ldrb r1, [r7] + adds r0, r6, #1 + add r0, sl + mov r2, sb + ands r0, r2 + asrs r1, r0 + mov r0, r8 + ands r1, r0 + cmp r1, #0 + beq _0805B50C + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0xa6 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #0x30 + strh r1, [r0] + subs r0, #0x18 + bl DisplaySprite +_0805B50C: + adds r4, r5, #0 + adds r4, #0x60 + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc b/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc new file mode 100644 index 0000000000..5698e04f41 --- /dev/null +++ b/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc @@ -0,0 +1,280 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _08028EEC @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + str r1, [sp, #4] @ sp04 = shake + ldr r3, _08028EF0 @ =gCamera + ldrh r0, [r3, #0xe] + adds r0, #1 + strh r0, [r3, #0xe] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #4 + ldrsh r1, [r1, r2] + movs r4, #2 + ldrsh r2, [r3, r4] + subs r1, r1, r2 + adds r1, #0x50 + cmp r0, r1 + bge _08028D1C + b _08028EDC_return +_08028D1C: + ldrh r1, [r3] + ldrh r0, [r3, #2] + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] @ sp08 = prevCamY + movs r6, #0 @ r6 = i + ldr r5, _08028EF4 @ =gPseudoRandom + ldr r0, _08028EF8 @ =0x00196225 + mov r8, r0 + ldr r7, _08028EFC @ =0x3C6EF35F + lsls r1, r1, #0x10 + asrs r2, r1, #0x10 + str r2, [sp, #0xc] @ sp0C = prevCamX + ldr r3, _08028F00 @ =gSineTable + mov sl, r3 + str r1, [sp, #0x10] @ sp10 = prevCamX << 16 +_08028D3E_loop: + ldr r0, [r5] + mov r4, r8 + muls r4, r0, r4 + adds r0, r4, #0 + adds r0, r0, r7 + str r0, [r5] + movs r4, #7 + ands r4, r0 + ldr r0, _08028F04 @ =gUnknown_080BB434 + adds r0, r4, r0 + ldrb r0, [r0] + bl VramMalloc + adds r1, r0, #0 @ r1 = tiles + ldr r2, _08028F08 @ =gUnknown_080BB41C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ldr r0, _08028F0C @ =gUnknown_080BB42C + adds r0, r4, r0 + ldrb r3, [r0] + ldr r0, _08028F10 @ =TaskDestructor_NutsAndBolts + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #6 + bl CreateNutsAndBoltsTask + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r2, r0 @ r4 = strc + ldr r0, [r5] + mov r1, r8 + muls r1, r0, r1 + adds r1, r1, r7 + str r1, [r5] + movs r0, #0xff + ands r0, r1 + ldr r3, [sp, #0xc] + adds r0, r3, r0 + lsls r0, r0, #8 + str r0, [r4, #0x30] + ldr r0, [sp, #8] + lsls r3, r0, #0x10 + asrs r0, r3, #8 + str r0, [r4, #0x34] + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r4, #0x10] + movs r0, #0xf8 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0x28 + strh r0, [r4, #0x3e] + ldr r0, _08028F14 @ =0x03000040 + adds r2, r2, r0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2] + mov r0, r8 + muls r0, r1, r0 + adds r0, r0, r7 + str r0, [r5] + ldr r1, _08028F18 @ =0x000001FF + ands r1, r0 + lsls r0, r1, #1 + add r0, sl + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #6 + strh r0, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + mov sb, r3 + cmp r0, #0 + bge _08028DD8 + rsbs r0, r0, #0 +_08028DD8: + strh r0, [r4, #0x3a] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + add r0, sl + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #8 + rsbs r0, r0, #0 + asrs r0, r0, #0xe + strh r0, [r4, #0x38] + adds r6, #1 + cmp r6, #2 + bls _08028D3E_loop + movs r6, #0 + ldr r5, _08028EF4 @ =gPseudoRandom + ldr r2, _08028EF8 @ =0x00196225 + mov r8, r2 + ldr r7, _08028EFC @ =0x3C6EF35F + ldr r3, _08028F00 @ =gSineTable + mov sl, r3 +_08028E04_loop_2: + ldr r0, [r5] + mov r4, r8 + muls r4, r0, r4 + adds r0, r4, #0 + adds r0, r0, r7 + str r0, [r5] + movs r4, #7 + ands r4, r0 + ldr r0, _08028F04 @ =gUnknown_080BB434 + adds r0, r4, r0 + ldrb r0, [r0] + bl VramMalloc + adds r1, r0, #0 + ldr r2, _08028F08 @ =gUnknown_080BB41C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ldr r0, _08028F0C @ =gUnknown_080BB42C + adds r0, r4, r0 + ldrb r3, [r0] + ldr r0, _08028F10 @ =TaskDestructor_NutsAndBolts + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #6 + bl CreateNutsAndBoltsTask + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r3, r0 + ldr r0, [r5] + mov r2, r8 + muls r2, r0, r2 + adds r2, r2, r7 + str r2, [r5] + ldr r0, [sp, #0x10] + asrs r1, r0, #0x10 + movs r0, #0xff + ands r0, r2 + adds r1, r1, r0 + lsls r1, r1, #8 + str r1, [r4, #0x30] + mov r1, sb + asrs r0, r1, #8 + str r0, [r4, #0x34] + movs r0, #0 + str r0, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0x28 + strh r0, [r4, #0x3e] + ldr r0, _08028F14 @ =0x03000040 + adds r3, r3, r0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r3] + mov r0, r8 + muls r0, r2, r0 + adds r0, r0, r7 + str r0, [r5] + adds r1, #0xff + ands r1, r0 + lsls r0, r1, #1 + add r0, sl + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #5 + strh r0, [r4, #0x3a] + movs r3, #0x3a + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _08028E9A + rsbs r0, r0, #0 +_08028E9A: + strh r0, [r4, #0x3a] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #1 + add r0, sl + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r0, r0, #9 + rsbs r0, r0, #0 + asrs r0, r0, #0xe + strh r0, [r4, #0x38] + adds r6, #1 + cmp r6, #2 + bls _08028E04_loop_2 + movs r0, #0x80 + lsls r0, r0, #4 + movs r1, #0x80 + str r1, [sp] + movs r1, #8 + movs r2, #0x10 + movs r3, #0xa + bl CreateScreenShake + ldr r4, [sp, #4] + str r0, [r4] + movs r0, #0xad + bl m4aSongNumStart + ldr r0, _08028EEC @ =gCurTask + ldr r1, [r0] + ldr r0, _08028F1C @ =Task_8028F20 + str r0, [r1, #8] +_08028EDC_return: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028EEC: .4byte gCurTask +_08028EF0: .4byte gCamera +_08028EF4: .4byte gPseudoRandom +_08028EF8: .4byte 0x00196225 +_08028EFC: .4byte 0x3C6EF35F +_08028F00: .4byte gSineTable +_08028F04: .4byte gUnknown_080BB434 +_08028F08: .4byte gUnknown_080BB41C +_08028F0C: .4byte gUnknown_080BB42C +_08028F10: .4byte TaskDestructor_NutsAndBolts +_08028F14: .4byte 0x03000040 +_08028F18: .4byte 0x000001FF +_08028F1C: .4byte Task_8028F20 + +.syntax divided diff --git a/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc b/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc new file mode 100644 index 0000000000..11de59ab24 --- /dev/null +++ b/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc @@ -0,0 +1,386 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _080293BC @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + movs r0, #0x80 + lsls r0, r0, #2 + adds r2, r0, #0 + ldrh r1, [r6, #8] + adds r2, r2, r1 + strh r2, [r6, #8] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + ldrh r0, [r6, #6] + adds r1, r1, r0 + strh r1, [r6, #6] + ldrh r0, [r6, #0xa] + subs r0, #1 + strh r0, [r6, #0xa] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x18 + ldrh r0, [r6, #4] + adds r1, r0, r1 + ldr r4, _080293C0 @ =gCamera + ldrh r3, [r4, #2] + subs r1, r1, r3 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x18 + adds r0, r0, r2 + subs r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + ldrh r1, [r6, #0xc] + adds r0, r1, #1 + strh r0, [r6, #0xc] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080291FC + b _080293A2 +_080291FC: + ldrh r1, [r4] + ldrh r0, [r4, #2] + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + movs r7, #0 + ldr r5, _080293C4 @ =gPseudoRandom + ldr r2, _080293C8 @ =0x00196225 + mov sb, r2 + ldr r3, _080293CC @ =0x3C6EF35F + mov r8, r3 + lsls r1, r1, #0x10 + asrs r0, r1, #0x10 + str r0, [sp, #0x10] + str r1, [sp, #0x14] +_0802921C: + ldr r0, [r5] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + str r0, [r5] + movs r4, #7 + ands r4, r0 + ldr r0, _080293D0 @ =gUnknown_080BB434 + adds r0, r4, r0 + ldrb r0, [r0] + bl VramMalloc + adds r1, r0, #0 + ldr r2, _080293D4 @ =gUnknown_080BB41C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ldr r0, _080293D8 @ =gUnknown_080BB42C + adds r0, r4, r0 + ldrb r3, [r0] + ldr r0, _080293DC @ =TaskDestructor_NutsAndBolts + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #6 + bl CreateNutsAndBoltsTask + ldrh r2, [r0, #6] + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r4, r2, r3 + ldr r0, [r5] + mov r1, sb + muls r1, r0, r1 + add r1, r8 + str r1, [r5] + movs r0, #0xff + ands r0, r1 + ldr r3, [sp, #0x10] + adds r0, r3, r0 + lsls r0, r0, #8 + str r0, [r4, #0x30] + ldr r0, [sp, #0xc] + lsls r3, r0, #0x10 + asrs r0, r3, #8 + str r0, [r4, #0x34] + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r4, #0x10] + movs r0, #0xf8 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0x28 + strh r0, [r4, #0x3e] + ldr r0, _080293E0 @ =0x03000040 + adds r2, r2, r0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2] + mov r0, sb + muls r0, r1, r0 + add r0, r8 + str r0, [r5] + ldr r1, _080293E4 @ =0x000001FF + ands r1, r0 + lsls r0, r1, #1 + ldr r2, _080293E8 @ =gSineTable + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #6 + strh r0, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + mov sl, r3 + cmp r0, #0 + bge _080292B8 + rsbs r0, r0, #0 +_080292B8: + strh r0, [r4, #0x3a] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + ldr r1, _080293E8 @ =gSineTable + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r0, r0, #8 + rsbs r0, r0, #0 + asrs r0, r0, #0xe + strh r0, [r4, #0x38] + adds r7, #1 + cmp r7, #2 + bls _0802921C + movs r7, #0 + ldr r5, _080293C4 @ =gPseudoRandom + ldr r3, _080293C8 @ =0x00196225 + mov sb, r3 + ldr r0, _080293CC @ =0x3C6EF35F + mov r8, r0 +_080292E4: + ldr r0, [r5] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + add r0, r8 + str r0, [r5] + movs r4, #7 + ands r4, r0 + ldr r0, _080293D0 @ =gUnknown_080BB434 + adds r0, r4, r0 + ldrb r0, [r0] + bl VramMalloc + adds r1, r0, #0 + ldr r2, _080293D4 @ =gUnknown_080BB41C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ldr r0, _080293D8 @ =gUnknown_080BB42C + adds r0, r4, r0 + ldrb r3, [r0] + ldr r0, _080293DC @ =TaskDestructor_NutsAndBolts + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #6 + bl CreateNutsAndBoltsTask + ldrh r3, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r4, r3, r2 + ldr r0, [r5] + mov r2, sb + muls r2, r0, r2 + add r2, r8 + str r2, [r5] + ldr r0, [sp, #0x14] + asrs r1, r0, #0x10 + movs r0, #0xff + ands r0, r2 + adds r1, r1, r0 + lsls r1, r1, #8 + str r1, [r4, #0x30] + mov r1, sl + asrs r0, r1, #8 + str r0, [r4, #0x34] + movs r0, #0 + str r0, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0x28 + strh r0, [r4, #0x3e] + ldr r0, _080293E0 @ =0x03000040 + adds r3, r3, r0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r3] + mov r0, sb + muls r0, r2, r0 + add r0, r8 + str r0, [r5] + adds r1, #0xff + ands r1, r0 + lsls r0, r1, #1 + ldr r2, _080293E8 @ =gSineTable + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + asrs r0, r0, #5 + strh r0, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _0802937C + rsbs r0, r0, #0 +_0802937C: + strh r0, [r4, #0x3a] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + ldr r1, _080293E8 @ =gSineTable + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r0, r0, #9 + rsbs r0, r0, #0 + asrs r0, r0, #0xe + strh r0, [r4, #0x38] + adds r7, #1 + cmp r7, #2 + bls _080292E4 + movs r0, #0x90 + bl m4aSongNumStart +_080293A2: + ldr r3, [sp, #8] + lsls r0, r3, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0xa0 + ble _080293F0 + ldr r0, _080293BC @ =gCurTask + ldr r1, [r0] + ldr r0, _080293EC @ =Task_80294A8 + str r0, [r1, #8] + bl _call_via_r0 + b _08029494 + .align 2, 0 +_080293BC: .4byte gCurTask +_080293C0: .4byte gCamera +_080293C4: .4byte gPseudoRandom +_080293C8: .4byte 0x00196225 +_080293CC: .4byte 0x3C6EF35F +_080293D0: .4byte gUnknown_080BB434 +_080293D4: .4byte gUnknown_080BB41C +_080293D8: .4byte gUnknown_080BB42C +_080293DC: .4byte TaskDestructor_NutsAndBolts +_080293E0: .4byte 0x03000040 +_080293E4: .4byte 0x000001FF +_080293E8: .4byte gSineTable +_080293EC: .4byte Task_80294A8 +_080293F0: + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + cmp r0, #0 + ble _08029488 + cmp r1, #0x9f + bgt _08029488 + movs r3, #4 + ldrsh r0, [r6, r3] + ldr r5, _08029448 @ =gCamera + movs r2, #2 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + cmp r0, #0 + ble _08029450 + ldrb r2, [r6, #4] + ldrb r0, [r5, #2] + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _0802944C @ =gBgScrollRegs + ldrh r3, [r4, #8] + ldrh r0, [r4, #0xa] + str r0, [sp] + movs r0, #2 + movs r1, #0 + bl sa2__sub_80078D4 + ldrb r1, [r6, #4] + ldrb r0, [r5, #2] + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, [sp, #8] + lsls r5, r3, #0x18 + lsrs r2, r5, #0x18 + ldrh r3, [r4, #8] + movs r0, #0xf0 + str r0, [sp] + movs r0, #2 + bl sa2__sub_8007858 + adds r4, r5, #0 + b _08029466 + .align 2, 0 +_08029448: .4byte gCamera +_0802944C: .4byte gBgScrollRegs +_08029450: + ldr r0, [sp, #8] + lsls r4, r0, #0x18 + lsrs r2, r4, #0x18 + ldr r0, _08029484 @ =gBgScrollRegs + ldrh r3, [r0, #8] + movs r0, #0xf0 + str r0, [sp] + movs r0, #2 + movs r1, #0 + bl sa2__sub_8007858 +_08029466: + lsrs r1, r4, #0x18 + ldr r0, _08029484 @ =gBgScrollRegs + ldrh r3, [r0, #8] + ldrh r2, [r6, #8] + lsrs r2, r2, #8 + ldrh r0, [r0, #0xa] + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + movs r0, #2 + movs r2, #0xa0 + bl sa2__sub_80078D4 + b _08029494 + .align 2, 0 +_08029484: .4byte gBgScrollRegs +_08029488: + ldr r0, _080294A4 @ =gFlags + ldr r1, [r0] + movs r2, #5 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0] +_08029494: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080294A4: .4byte gFlags + +.syntax divided diff --git a/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc b/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc new file mode 100644 index 0000000000..37a6ca8409 --- /dev/null +++ b/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc @@ -0,0 +1,400 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _08029724 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + str r1, [sp, #4] + ldr r2, _08029728 @ =gCamera + ldrh r0, [r2, #0xe] + subs r0, #1 + strh r0, [r2, #0xe] + ldrh r1, [r1, #0xc] + adds r0, r1, #1 + ldr r3, [sp, #4] + strh r0, [r3, #0xc] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080294DC + b _0802967E +_080294DC: + ldrh r1, [r2] + ldrh r0, [r2, #2] + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + movs r6, #0 + ldr r5, _0802972C @ =gPseudoRandom + ldr r0, _08029730 @ =0x00196225 + mov r8, r0 + ldr r7, _08029734 @ =0x3C6EF35F + lsls r1, r1, #0x10 + asrs r2, r1, #0x10 + str r2, [sp, #0xc] + ldr r3, _08029738 @ =gSineTable + mov sl, r3 + str r1, [sp, #0x10] +_080294FE: + ldr r0, [r5] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + str r0, [r5] + movs r4, #7 + ands r4, r0 + ldr r0, _0802973C @ =gUnknown_080BB434 + adds r0, r4, r0 + ldrb r0, [r0] + bl VramMalloc + adds r1, r0, #0 + ldr r2, _08029740 @ =gUnknown_080BB41C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ldr r0, _08029744 @ =gUnknown_080BB42C + adds r0, r4, r0 + ldrb r3, [r0] + ldr r0, _08029748 @ =TaskDestructor_NutsAndBolts + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #6 + bl CreateNutsAndBoltsTask + ldrh r2, [r0, #6] + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r4, r2, r3 + ldr r0, [r5] + mov r1, r8 + muls r1, r0, r1 + adds r1, r1, r7 + str r1, [r5] + movs r0, #0xff + ands r0, r1 + ldr r3, [sp, #0xc] + adds r0, r3, r0 + lsls r0, r0, #8 + str r0, [r4, #0x30] + ldr r0, [sp, #8] + lsls r3, r0, #0x10 + asrs r0, r3, #8 + str r0, [r4, #0x34] + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r4, #0x10] + movs r0, #0xf8 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0x28 + strh r0, [r4, #0x3e] + ldr r0, _0802974C @ =0x03000040 + adds r2, r2, r0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2] + mov r0, r8 + muls r0, r1, r0 + adds r0, r0, r7 + str r0, [r5] + ldr r1, _08029750 @ =0x000001FF + ands r1, r0 + lsls r0, r1, #1 + add r0, sl + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #6 + strh r0, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + mov sb, r3 + cmp r0, #0 + bge _08029598 + rsbs r0, r0, #0 +_08029598: + strh r0, [r4, #0x3a] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + add r0, sl + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #8 + rsbs r0, r0, #0 + asrs r0, r0, #0xe + strh r0, [r4, #0x38] + adds r6, #1 + cmp r6, #2 + bls _080294FE + movs r6, #0 + ldr r5, _0802972C @ =gPseudoRandom + ldr r2, _08029730 @ =0x00196225 + mov r8, r2 + ldr r7, _08029734 @ =0x3C6EF35F + ldr r3, _08029738 @ =gSineTable + mov sl, r3 +_080295C4: + ldr r0, [r5] + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + str r0, [r5] + movs r4, #7 + ands r4, r0 + ldr r0, _0802973C @ =gUnknown_080BB434 + adds r0, r4, r0 + ldrb r0, [r0] + bl VramMalloc + adds r1, r0, #0 + ldr r2, _08029740 @ =gUnknown_080BB41C + lsls r0, r4, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ldr r0, _08029744 @ =gUnknown_080BB42C + adds r0, r4, r0 + ldrb r3, [r0] + ldr r0, _08029748 @ =TaskDestructor_NutsAndBolts + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #6 + bl CreateNutsAndBoltsTask + ldrh r3, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r4, r3, r2 + ldr r0, [r5] + mov r2, r8 + muls r2, r0, r2 + adds r2, r2, r7 + str r2, [r5] + ldr r0, [sp, #0x10] + asrs r1, r0, #0x10 + movs r0, #0xff + ands r0, r2 + adds r1, r1, r0 + lsls r1, r1, #8 + str r1, [r4, #0x30] + mov r1, sb + asrs r0, r1, #8 + str r0, [r4, #0x34] + movs r0, #0 + str r0, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0x28 + strh r0, [r4, #0x3e] + ldr r0, _0802974C @ =0x03000040 + adds r3, r3, r0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r3] + mov r0, r8 + muls r0, r2, r0 + adds r0, r0, r7 + str r0, [r5] + adds r1, #0xff + ands r1, r0 + lsls r0, r1, #1 + add r0, sl + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #5 + strh r0, [r4, #0x3a] + movs r3, #0x3a + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _0802965A + rsbs r0, r0, #0 +_0802965A: + strh r0, [r4, #0x3a] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #1 + add r0, sl + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r0, r0, #9 + rsbs r0, r0, #0 + asrs r0, r0, #0xe + strh r0, [r4, #0x38] + adds r6, #1 + cmp r6, #2 + bls _080295C4 + movs r0, #0x90 + bl m4aSongNumStart +_0802967E: + ldr r5, _08029728 @ =gCamera + movs r0, #2 + ldrsh r2, [r5, r0] + ldr r3, [sp, #4] + movs r0, #4 + ldrsh r1, [r3, r0] + adds r0, r1, #0 + subs r0, #0xa0 + adds r6, r5, #0 + cmp r2, r0 + bgt _0802977C + movs r0, #0 + strh r0, [r5, #0xe] + ldr r0, _08029754 @ =gBossIndex + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #1 + bls _080296C8 + movs r0, #0xae + lsls r0, r0, #5 + strh r0, [r5, #0x16] + ldr r3, _08029758 @ =gStageFlags + ldrh r0, [r3] + ldr r2, _0802975C @ =0x0000FFFE + ands r2, r0 + strh r2, [r3] + ldr r0, _08029760 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _080296C8 + movs r1, #4 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] + ldr r1, _08029764 @ =gCourseTime + ldr r0, _08029768 @ =0x00004650 + str r0, [r1] +_080296C8: + ldrb r0, [r4] + cmp r0, #2 + bls _080296F4 + movs r0, #0xcc + lsls r0, r0, #4 + strh r0, [r6, #0x16] + ldr r3, _08029758 @ =gStageFlags + ldrh r0, [r3] + ldr r2, _0802975C @ =0x0000FFFE + ands r2, r0 + strh r2, [r3] + ldr r0, _08029760 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _080296F4 + movs r1, #4 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] + ldr r1, _08029764 @ =gCourseTime + ldr r0, _08029768 @ =0x00004650 + str r0, [r1] +_080296F4: + ldr r2, _0802976C @ =gPlayer + ldr r0, [r2, #0x10] + ldr r1, _08029770 @ =0xFFDFFFFF + ands r0, r1 + str r0, [r2, #0x10] + movs r0, #0 + strh r0, [r2, #0x38] + ldr r0, _08029724 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r2, _08029774 @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldr r2, _08029728 @ =gCamera + ldrh r1, [r2, #0x26] + ldr r0, _08029778 @ =0x00007FFF + ands r0, r1 + strh r0, [r2, #0x26] + b _080297D2 + .align 2, 0 +_08029724: .4byte gCurTask +_08029728: .4byte gCamera +_0802972C: .4byte gPseudoRandom +_08029730: .4byte 0x00196225 +_08029734: .4byte 0x3C6EF35F +_08029738: .4byte gSineTable +_0802973C: .4byte gUnknown_080BB434 +_08029740: .4byte gUnknown_080BB41C +_08029744: .4byte gUnknown_080BB42C +_08029748: .4byte TaskDestructor_NutsAndBolts +_0802974C: .4byte 0x03000040 +_08029750: .4byte 0x000001FF +_08029754: .4byte gBossIndex +_08029758: .4byte gStageFlags +_0802975C: .4byte 0x0000FFFE +_08029760: .4byte gGameMode +_08029764: .4byte gCourseTime +_08029768: .4byte 0x00004650 +_0802976C: .4byte gPlayer +_08029770: .4byte 0xFFDFFFFF +_08029774: .4byte gFlags +_08029778: .4byte 0x00007FFF +_0802977C: + subs r0, r1, r2 + cmp r0, #0 + ble _080297C0 + ldr r1, [sp, #4] + ldrb r2, [r1, #4] + ldrb r0, [r5, #2] + subs r2, r2, r0 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _080297BC @ =gBgScrollRegs + ldrh r3, [r4, #8] + ldrh r0, [r4, #0xa] + str r0, [sp] + movs r0, #2 + movs r1, #0 + bl sa2__sub_80078D4 + ldr r2, [sp, #4] + ldrb r1, [r2, #4] + ldrb r0, [r5, #2] + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrh r3, [r4, #8] + movs r0, #0xf0 + str r0, [sp] + movs r0, #2 + movs r2, #0xa0 + bl sa2__sub_8007858 + b _080297D2 + .align 2, 0 +_080297BC: .4byte gBgScrollRegs +_080297C0: + ldr r0, _080297E4 @ =gBgScrollRegs + ldrh r3, [r0, #8] + movs r0, #0xf0 + str r0, [sp] + movs r0, #2 + movs r1, #0 + movs r2, #0xa0 + bl sa2__sub_8007858 +_080297D2: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080297E4: .4byte gBgScrollRegs + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc b/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc new file mode 100644 index 0000000000..46d753c730 --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc @@ -0,0 +1,120 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08052B74 @ =gUnknown_030063C0 + mov ip, r0 + ldr r0, [r0] + cmp r0, #0 + beq _08052B50 + ldr r1, _08052B78 @ =gTask_03006240 + mov sl, r1 +_08052ABC_loop: + mov r2, ip + ldr r2, [r2] @ r2 = list + mov ip, r2 + mov r1, sl + ldr r0, [r1] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r1, r0 @ r5 = strc0 = TASK_DATA(gTask_03006240); + ldr r1, [r2, #0x1c] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r5, r0 @ r5 = strc0 + ldr r1, [r2, #0x14] + lsls r1, r1, #6 + mov r6, ip + adds r6, #0x20 + ldrb r3, [r6] @ r3 = list->unk20 + ldr r0, [r2, #0x10] + adds r0, r0, r3 + lsls r0, r0, #1 + adds r1, r1, r0 @ r1 = + ldr r0, [r2, #0x18] + lsls r0, r0, #1 + ldr r2, _08052B7C @ =gBgCntRegs + adds r0, r0, r2 + ldrh r2, [r0] + movs r0, #0xf8 + lsls r0, r0, #5 @ r0 = 0x1F00 + ands r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + movs r0, #0xc0 + lsls r0, r0, #0x13 @ r0 = VRAM + adds r0, r0, r1 + mov sb, r0 @ sb = vram = BG_CHAR_ADDR_FROM_SCREENBASE(list->unk18) + vramOffset; + movs r4, #0 + movs r1, #0 + cmp r1, r3 + bhs _08052B48 + mov r8, r6 @ r8 = r6 = &list->unk20 +_08052B10: + movs r2, #0 + adds r7, r1, #1 + adds r6, r4, #1 + ldrb r0, [r5, #0xb] + cmp r2, r0 + bhs _08052B3C + ldr r3, [r5, #4] + muls r1, r3, r1 + mov r0, ip + adds r0, #4 + adds r4, r0, r4 + add r1, sb @ r1 = vram + (strc0->unk4 * i) +_08052B28: + ldrb r0, [r4] + subs r0, #0x20 + muls r0, r3, r0 + adds r0, r0, r2 + strh r0, [r1] + adds r1, #0x40 + adds r2, #1 + ldrb r0, [r5, #0xb] + cmp r2, r0 + blo _08052B28 +_08052B3C: + adds r1, r7, #0 + adds r4, r6, #0 + mov r2, r8 + ldrb r2, [r2] + cmp r1, r2 + blo _08052B10 +_08052B48: + mov r1, ip + ldr r0, [r1] + cmp r0, #0 + bne _08052ABC_loop +_08052B50: + ldr r2, _08052B80 @ =gUnknown_030063F0 + ldr r0, [r2] + mov r1, ip + str r0, [r1] + ldr r2, _08052B74 @ =gUnknown_030063C0 + ldr r0, [r2] + ldr r1, _08052B80 @ =gUnknown_030063F0 + str r0, [r1] + movs r0, #0 + str r0, [r2] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052B74: .4byte gUnknown_030063C0 +_08052B78: .4byte gTask_03006240 +_08052B7C: .4byte gBgCntRegs +_08052B80: .4byte gUnknown_030063F0 + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_8052D64.inc b/asm/non_matching/game/gTask_3006240__sub_8052D64.inc new file mode 100644 index 0000000000..5a23d92540 --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_8052D64.inc @@ -0,0 +1,114 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sb, r0 + adds r4, r1, #0 + ldr r0, _08052DC8 @ =gTask_03006240 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r1, r0 + ldrh r1, [r4, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r5, r5, r0 + ldrh r0, [r4, #4] @ r0: angle + movs r2, #0 + ldrsh r1, [r4, r2] @ r1: p1 + movs r3, #2 + ldrsh r2, [r4, r3] @ r2: p2 + ldrh r3, [r4, #6] @ r3: affineIndex + bl sa2__sub_80047A0 + ldrh r7, [r4, #6] + mov r8, r7 + mov r2, sp + movs r1, #0xc0 + lsls r1, r1, #2 + ldrb r0, [r5, #9] + lsls r0, r0, #0xe + orrs r0, r1 + ldrb r1, [r4, #0xc] + orrs r0, r1 + strh r0, [r2] + mov r3, sp + ldrh r1, [r4, #0x12] + lsls r1, r1, #0xc + ldr r0, [r5] + ldr r2, _08052DCC @ =0x000003FF + ands r0, r2 + orrs r1, r0 + strh r1, [r3, #4] + movs r6, #0 + mov sl, sp + b _08052E0A + .align 2, 0 +_08052DC8: .4byte gTask_03006240 +_08052DCC: .4byte 0x000003FF +_08052DD0: + mov r1, sl + ldrh r0, [r1] + strh r0, [r3] + ldrb r2, [r5, #8] + lsls r2, r2, #0xe + mov r7, r8 + lsls r0, r7, #9 + orrs r2, r0 + ldrb r0, [r5, #0xa] + muls r0, r6, r0 + lsls r0, r0, #3 + ldrh r1, [r4, #0xa] + adds r0, r0, r1 + ldr r7, _08052E38 @ =0x000001FF + adds r1, r7, #0 + ands r0, r1 + orrs r2, r0 + strh r2, [r3, #2] + mov r1, sb + adds r0, r1, r6 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r5, #4] + muls r0, r1, r0 + mov r2, sl + ldrh r2, [r2, #4] + adds r0, r0, r2 + strh r0, [r3, #4] + adds r6, #1 +_08052E0A: + movs r3, #0xe + ldrsh r0, [r4, r3] + cmp r6, r0 + bge _08052E28 + ldrh r0, [r4, #8] + lsrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl OamMalloc + adds r3, r0, #0 + ldr r0, _08052E3C @ =iwram_end + ldr r0, [r0] + cmp r0, r3 + bne _08052DD0 +_08052E28: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08052E38: .4byte 0x000001FF +_08052E3C: .4byte iwram_end + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc b/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc new file mode 100644 index 0000000000..ca5019c431 --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc @@ -0,0 +1,75 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + sub sp, #0xc + adds r6, r0, #0 + adds r4, r1, #0 @ r4 = (sub_8052C84*) + movs r7, #0 + strh r7, [r4, #0xe] @ param1->byteCount = 0; + movs r5, #9 +_08052EFE: + adds r0, r6, #0 + movs r1, #0xa + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 @ r0 = divRes + mov r1, sp + adds r3, r1, r5 + lsls r1, r0, #3 + lsls r2, r0, #1 + adds r1, r1, r2 + subs r1, r6, r1 + adds r1, #0x30 + strb r1, [r3] + lsls r0, r0, #0x10 + asrs r6, r0, #0x10 + ldrh r1, [r4, #0xe] + adds r0, r1, #1 + strh r0, [r4, #0xe] + subs r5, #1 + cmp r5, #0 + bge _08052EFE + movs r5, #0 + mov r0, sp + ldrb r0, [r0] + ldrh r2, [r4] + ldrh r3, [r4, #0xa] + cmp r0, #0x30 + bne _08052F56 + adds r7, #1 + strh r1, [r4, #0xe] +_08052F3C: + adds r5, #1 + cmp r5, #9 + bgt _08052F56 + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0x30 + bne _08052F56 + adds r7, #1 + ldrh r0, [r4, #0xe] + subs r0, #1 + strh r0, [r4, #0xe] + b _08052F3C +_08052F56: + movs r1, #0xe + ldrsh r0, [r4, r1] + subs r0, #1 + muls r0, r2, r0 + asrs r0, r0, #5 + subs r0, r3, r0 + strh r0, [r4, #0xa] + mov r1, sp + adds r0, r1, r7 + adds r1, r4, #0 + bl sub_8052C84 + add sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_8052F78.inc b/asm/non_matching/game/gTask_3006240__sub_8052F78.inc new file mode 100644 index 0000000000..bcb0bb037d --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_8052F78.inc @@ -0,0 +1,179 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sl, r0 + adds r5, r1, #0 + ldr r0, _08052FE8 @ =gTask_03006240 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + ldrh r1, [r5, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r7, r0 + ldrb r0, [r7, #0xa] + lsls r0, r0, #3 + mov sb, r0 + ldrb r0, [r7, #0xb] + lsls r0, r0, #3 + str r0, [sp, #8] + mov r2, sp + ldrb r0, [r7, #9] + lsls r0, r0, #0xe + ldrb r1, [r5, #0xc] + adds r0, r0, r1 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r0, r1 + strh r0, [r2] + mov r3, sp + ldrb r1, [r7, #8] + lsls r1, r1, #0xe + ldrh r2, [r5, #0xa] + ldr r6, _08052FEC @ =0x000001FF + adds r0, r6, #0 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r3, #2] + ldrh r1, [r5, #0x12] + lsls r1, r1, #0xc + ldr r0, [r7] + ldr r2, _08052FF0 @ =0x000003FF + ands r0, r2 + orrs r1, r0 + strh r1, [r3, #4] + ldrb r0, [r5, #0x16] + cmp r0, #0 + beq _0805303C + movs r6, #0 + mov r4, sp + b _08053016 + .align 2, 0 +_08052FE8: .4byte gTask_03006240 +_08052FEC: .4byte 0x000001FF +_08052FF0: .4byte 0x000003FF +_08052FF4: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, sb + strh r0, [r4, #2] + mov r1, sl + adds r0, r1, r6 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r7, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r6, #1 +_08053016: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r6, r0 + bge _080530B8 + ldrh r0, [r5, #8] + lsrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl OamMalloc + adds r2, r0, #0 + ldr r0, _08053038 @ =iwram_end + ldr r0, [r0] + cmp r0, r2 + bne _08052FF4 + b _080530B8 + .align 2, 0 +_08053038: .4byte iwram_end +_0805303C: + movs r3, #0 + ldrh r0, [r5, #0x14] + cmp r3, r0 + bge _080530B8 + mov r4, sp + mov r8, r6 +_08053048: + ldrb r1, [r7, #8] + lsls r1, r1, #0xe + ldrh r2, [r5, #0xa] + mov r0, r8 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r4, #2] + movs r1, #0xa + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + mov r1, r8 + ands r0, r1 + asrs r6, r0, #7 + adds r3, #1 + b _08053088 +_08053066: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, sb + strh r0, [r4, #2] + mov r1, sl + adds r0, r1, r6 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r7, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r6, #1 +_08053088: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r6, r0 + bge _080530AA + ldrh r0, [r5, #8] + lsrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp, #0xc] + bl OamMalloc + adds r2, r0, #0 + ldr r0, _080530C8 @ =iwram_end + ldr r0, [r0] + ldr r3, [sp, #0xc] + cmp r0, r2 + bne _08053066 +_080530AA: + ldrh r0, [r4] + ldr r1, [sp, #8] + adds r0, r1, r0 + strh r0, [r4] + ldrh r0, [r5, #0x14] + cmp r3, r0 + blt _08053048 +_080530B8: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080530C8: .4byte iwram_end + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_80530CC.inc b/asm/non_matching/game/gTask_3006240__sub_80530CC.inc new file mode 100644 index 0000000000..ab55d876cf --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_80530CC.inc @@ -0,0 +1,176 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sl, r0 + adds r5, r1, #0 + ldr r0, _08053138 @ =gTask_03006240 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + ldrh r1, [r5, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r7, r0 + ldrb r0, [r7, #0xa] + lsls r0, r0, #3 + mov sb, r0 + ldrb r0, [r7, #0xb] + lsls r0, r0, #3 + str r0, [sp, #8] + mov r2, sp + ldrb r0, [r7, #9] + lsls r0, r0, #0xe + ldrb r1, [r5, #0xc] + adds r0, r0, r1 + strh r0, [r2] + mov r3, sp + ldrb r1, [r7, #8] + lsls r1, r1, #0xe + ldrh r2, [r5, #0xa] + ldr r6, _0805313C @ =0x000001FF + adds r0, r6, #0 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r3, #2] + ldrh r1, [r5, #0x12] + lsls r1, r1, #0xc + ldr r0, [r7] + ldr r2, _08053140 @ =0x000003FF + ands r0, r2 + orrs r1, r0 + strh r1, [r3, #4] + ldrb r0, [r5, #0x16] + cmp r0, #0 + beq _0805318C + movs r6, #0 + mov r4, sp + b _08053166 + .align 2, 0 +_08053138: .4byte gTask_03006240 +_0805313C: .4byte 0x000001FF +_08053140: .4byte 0x000003FF +_08053144: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, sb + strh r0, [r4, #2] + mov r1, sl + adds r0, r1, r6 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r7, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r6, #1 +_08053166: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r6, r0 + bge _08053208 + ldrh r0, [r5, #8] + lsrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl OamMalloc + adds r2, r0, #0 + ldr r0, _08053188 @ =iwram_end + ldr r0, [r0] + cmp r0, r2 + bne _08053144 + b _08053208 + .align 2, 0 +_08053188: .4byte iwram_end +_0805318C: + movs r3, #0 + ldrh r0, [r5, #0x14] + cmp r3, r0 + bge _08053208 + mov r4, sp + mov r8, r6 +_08053198: + ldrb r1, [r7, #8] + lsls r1, r1, #0xe + ldrh r2, [r5, #0xa] + mov r0, r8 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r4, #2] + movs r1, #0xa + ldrsh r0, [r5, r1] + rsbs r0, r0, #0 + mov r1, r8 + ands r0, r1 + asrs r6, r0, #7 + adds r3, #1 + b _080531D8 +_080531B6: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, sb + strh r0, [r4, #2] + mov r1, sl + adds r0, r1, r6 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r7, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r6, #1 +_080531D8: + movs r1, #0xe + ldrsh r0, [r5, r1] + cmp r6, r0 + bge _080531FA + ldrh r0, [r5, #8] + lsrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp, #0xc] + bl OamMalloc + adds r2, r0, #0 + ldr r0, _08053218 @ =iwram_end + ldr r0, [r0] + ldr r3, [sp, #0xc] + cmp r0, r2 + bne _080531B6 +_080531FA: + ldrh r0, [r4] + ldr r1, [sp, #8] + adds r0, r1, r0 + strh r0, [r4] + ldrh r0, [r5, #0x14] + cmp r3, r0 + blt _08053198 +_08053208: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053218: .4byte iwram_end + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_805321C.inc b/asm/non_matching/game/gTask_3006240__sub_805321C.inc new file mode 100644 index 0000000000..2e3feee446 --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_805321C.inc @@ -0,0 +1,178 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sl, r0 + adds r6, r1, #0 + ldr r0, _08053288 @ =gTask_03006240 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + ldrh r1, [r6, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r7, r0 + ldrb r0, [r7, #0xa] + lsls r0, r0, #3 + mov sb, r0 + ldrb r0, [r7, #0xb] + lsls r0, r0, #3 + str r0, [sp, #8] + mov r2, sp + ldrb r0, [r7, #9] + lsls r0, r0, #0xe + ldrb r1, [r6, #0xc] + adds r0, r0, r1 + strh r0, [r2] + mov r3, sp + ldrb r1, [r7, #8] + lsls r1, r1, #0xe + ldrh r2, [r6, #0xa] + ldr r5, _0805328C @ =0x000001FF + adds r0, r5, #0 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r3, #2] + ldrh r1, [r6, #0x12] + lsls r1, r1, #0xc + ldr r0, [r7] + ldr r2, _08053290 @ =0x000003FF + ands r0, r2 + orrs r1, r0 + strh r1, [r3, #4] + ldrb r0, [r6, #0x16] + cmp r0, #0 + beq _080532DC + movs r5, #0 + mov r4, sp + b _080532B6 + .align 2, 0 +_08053288: .4byte gTask_03006240 +_0805328C: .4byte 0x000001FF +_08053290: .4byte 0x000003FF +_08053294: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, sb + strh r0, [r4, #2] + mov r1, sl + adds r0, r1, r5 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r7, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r5, #1 +_080532B6: + movs r1, #0xe + ldrsh r0, [r6, r1] + cmp r5, r0 + bge _0805335A + ldrh r0, [r6, #8] + adds r0, r0, r5 + asrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl OamMalloc + adds r2, r0, #0 + ldr r0, _080532D8 @ =iwram_end + ldr r0, [r0] + cmp r0, r2 + bne _08053294 + b _0805335A + .align 2, 0 +_080532D8: .4byte iwram_end +_080532DC: + movs r3, #0 + ldrh r0, [r6, #0x14] + cmp r3, r0 + bge _0805335A + mov r4, sp + mov r8, r5 +_080532E8: + ldrb r1, [r7, #8] + lsls r1, r1, #0xe + ldrh r2, [r6, #0xa] + mov r0, r8 + ands r0, r2 + adds r1, r1, r0 + strh r1, [r4, #2] + movs r1, #0xa + ldrsh r0, [r6, r1] + rsbs r0, r0, #0 + mov r1, r8 + ands r0, r1 + asrs r5, r0, #7 + adds r3, #1 + b _08053328 +_08053306: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, sb + strh r0, [r4, #2] + mov r1, sl + adds r0, r1, r5 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r7, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r5, #1 +_08053328: + movs r1, #0xe + ldrsh r0, [r6, r1] + cmp r5, r0 + bge _0805334C + ldrh r0, [r6, #8] + adds r0, r0, r5 + asrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp, #0xc] + bl OamMalloc + adds r2, r0, #0 + ldr r0, _0805336C @ =iwram_end + ldr r0, [r0] + ldr r3, [sp, #0xc] + cmp r0, r2 + bne _08053306 +_0805334C: + ldrh r0, [r4] + ldr r1, [sp, #8] + adds r0, r1, r0 + strh r0, [r4] + ldrh r0, [r6, #0x14] + cmp r3, r0 + blt _080532E8 +_0805335A: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805336C: .4byte iwram_end + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_8053370.inc b/asm/non_matching/game/gTask_3006240__sub_8053370.inc new file mode 100644 index 0000000000..0fb57b1363 --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_8053370.inc @@ -0,0 +1,126 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r5, r0, #0 + adds r7, r1, #0 + ldr r0, _080533DC @ =gTask_03006240 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + ldrh r1, [r7, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r6, r6, r0 + ldrb r0, [r6, #0xa] + lsls r0, r0, #3 + mov r8, r0 + mov r2, sp + ldrb r0, [r6, #9] + lsls r0, r0, #0xe + ldrb r1, [r7, #0xc] + adds r0, r0, r1 + strh r0, [r2] + mov r3, sp + ldrb r1, [r6, #8] + lsls r1, r1, #0xe + ldrh r2, [r7, #0xa] + ldr r0, _080533E0 @ =0x000001FF + ands r0, r2 + adds r1, r1, r0 + strh r1, [r3, #2] + ldrh r1, [r7, #0x12] + lsls r1, r1, #0xc + ldr r0, [r6] + ldr r2, _080533E4 @ =0x000003FF + ands r0, r2 + orrs r1, r0 + strh r1, [r3, #4] + movs r3, #0 + movs r1, #0xe + ldrsh r0, [r7, r1] + cmp r3, r0 + bge _0805344A + mov r4, sp +_080533CE: + ldrb r0, [r5] + cmp r0, #0x20 + bne _080533E8 + ldrh r0, [r4, #2] + add r0, r8 + strh r0, [r4, #2] + b _0805343E + .align 2, 0 +_080533DC: .4byte gTask_03006240 +_080533E0: .4byte 0x000001FF +_080533E4: .4byte 0x000003FF +_080533E8: + ldrh r0, [r7, #8] + adds r0, r0, r3 + asrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r3, [sp, #8] + bl OamMalloc + adds r2, r0, #0 + ldr r0, _08053424 @ =iwram_end + ldr r0, [r0] + ldr r3, [sp, #8] + cmp r0, r2 + beq _0805344A + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, r8 + strh r0, [r4, #2] + ldrb r0, [r5] + cmp r0, #0x60 + bls _08053428 + ldrh r0, [r2] + adds r0, #8 + strh r0, [r2] + ldrb r0, [r5] + subs r0, #0x11 + b _0805342C + .align 2, 0 +_08053424: .4byte iwram_end +_08053428: + ldrb r0, [r5] + subs r0, #0x20 +_0805342C: + ldr r1, [r6, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + ldr r1, _08053458 @ =0x0000F3FF + mov ip, r1 + mov r1, ip + ands r0, r1 + strh r0, [r2, #4] +_0805343E: + adds r5, #1 + adds r3, #1 + movs r1, #0xe + ldrsh r0, [r7, r1] + cmp r3, r0 + blt _080533CE +_0805344A: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053458: .4byte 0x0000F3FF + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_805345C.inc b/asm/non_matching/game/gTask_3006240__sub_805345C.inc new file mode 100644 index 0000000000..abe8cbc55f --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_805345C.inc @@ -0,0 +1,103 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #8 + mov sb, r0 @ sb = param0 + adds r7, r1, #0 @ r7 = param1 + ldr r0, _080534C0 @ =gTask_03006240 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = strc + ldrh r1, [r7, #0x10] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r6, r6, r0 @ r6 = strc0 + ldrb r0, [r6, #0xa] + lsls r0, r0, #3 + mov r8, r0 @ r8 = r8 = strc0->unkA * 8; + mov r2, sp + ldrb r0, [r6, #9] + lsls r0, r0, #0xe + ldrb r1, [r7, #0xc] + adds r0, r0, r1 + strh r0, [r2] + mov r3, sp + ldrb r1, [r6, #8] + lsls r1, r1, #0xe + ldrh r2, [r7, #0xa] + ldr r0, _080534C4 @ =0x000001FF + ands r0, r2 + adds r1, r1, r0 + strh r1, [r3, #2] + ldrh r0, [r7, #0x12] + lsls r0, r0, #0xc + ldr r1, [r6] + ldr r2, _080534C8 @ =0x000003FF + ands r1, r2 + orrs r0, r1 + movs r2, #0x80 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r3, #4] + movs r5, #0 + mov r4, sp + b _080534EE + .align 2, 0 +_080534C0: .4byte gTask_03006240 +_080534C4: .4byte 0x000001FF +_080534C8: .4byte 0x000003FF +_080534CC: + ldrh r0, [r4] + strh r0, [r2] + ldrh r0, [r4, #2] + strh r0, [r2, #2] + ldrh r0, [r4, #2] + add r0, r8 + strh r0, [r4, #2] + mov r1, sb + adds r0, r1, r5 + ldrb r0, [r0] + subs r0, #0x20 + ldr r1, [r6, #4] + muls r0, r1, r0 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #4] + adds r5, #1 +_080534EE: + movs r2, #0xe + ldrsh r0, [r7, r2] + cmp r5, r0 + bge _0805350E + ldrh r0, [r7, #8] + adds r0, r0, r5 + asrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl OamMalloc + adds r2, r0, #0 + ldr r0, _0805351C @ =iwram_end + ldr r0, [r0] + cmp r0, r2 + bne _080534CC +_0805350E: + add sp, #8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805351C: .4byte iwram_end + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__sub_80535FC.inc b/asm/non_matching/game/gTask_3006240__sub_80535FC.inc new file mode 100644 index 0000000000..0b85f58e53 --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__sub_80535FC.inc @@ -0,0 +1,60 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r0, _0805365C @ =gTask_03006240 + ldr r0, [r0] + cmp r0, #0 + bne _08053652 + ldr r2, _08053660 @ =gUnknown_03006250 + ldr r4, _08053664 @ =gUnknown_030063F0 + ldr r5, _08053668 @ =gUnknown_030063C0 + ldr r0, _0805366C @ =Task_80536D4 + mov ip, r0 + ldr r6, _08053670 @ =TaskDestructor_80536D8 + adds r3, r2, #0 @ r3 = gUnknown_03006250 + movs r7, #0xa2 + lsls r7, r7, #1 @ r7 = 0x144 + adds r1, r2, r7 + subs r7, #0x24 + adds r0, r2, r7 @ r0 = 0x120 +_08053620: + str r1, [r0] + subs r1, #0x24 + subs r0, #0x24 + cmp r0, r3 + bge _08053620 + movs r1, #0 + movs r3, #0xa2 + lsls r3, r3, #1 @ r3 = 0x144 + adds r0, r2, r3 + str r1, [r0] + str r2, [r4] + str r1, [r5] + movs r1, #0xd3 + lsls r1, r1, #2 @ r1 = 0x34C + movs r2, #0xc0 + lsls r2, r2, #5 + str r6, [sp] + mov r0, ip + movs r3, #0 + bl TaskCreate + ldr r1, _0805365C @ =gTask_03006240 + str r0, [r1] + bl UiGfxStackInit +_08053652: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805365C: .4byte gTask_03006240 +_08053660: .4byte gUnknown_03006250 +_08053664: .4byte gUnknown_030063F0 +_08053668: .4byte gUnknown_030063C0 +_0805366C: .4byte Task_80536D4 +_08053670: .4byte TaskDestructor_80536D8 + +.syntax divided diff --git a/asm/non_matching/game/gTask_3006240__unused_8052B84.inc b/asm/non_matching/game/gTask_3006240__unused_8052B84.inc new file mode 100644 index 0000000000..15b30451af --- /dev/null +++ b/asm/non_matching/game/gTask_3006240__unused_8052B84.inc @@ -0,0 +1,142 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r5, r0, #0 + ldr r0, [sp, #0x30] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0xc] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sl, r2 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov sb, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + mov r1, sp + movs r0, #0 + strb r0, [r1, #9] + movs r4, #8 +_08052BB4: + adds r0, r5, #0 + movs r1, #0xa + bl Div + mov r1, sp + adds r3, r1, r4 + lsls r1, r0, #3 + lsls r2, r0, #1 + adds r1, r1, r2 + subs r1, r5, r1 + adds r1, #0x30 + strb r1, [r3] + adds r5, r0, #0 + subs r4, #1 + cmp r4, #0 + bge _08052BB4 + movs r1, #0 + movs r4, #0 + mov r0, sp + ldrb r0, [r0] + ldr r2, _08052BFC @ =gUnknown_030063F0 + mov ip, r2 + cmp r0, #0x30 + bne _08052C00 + movs r1, #1 +_08052BE6: + adds r4, #1 + cmp r4, #9 + bgt _08052C00 + mov r2, sp + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0x30 + bne _08052C00 + adds r1, #1 + b _08052BE6 + .align 2, 0 +_08052BFC: .4byte gUnknown_030063F0 +_08052C00: + mov r0, sp + adds r6, r0, r1 + mov r1, ip + ldr r0, [r1] + cmp r0, #0 + beq _08052C74 + adds r3, r0, #0 + movs r1, #0 + ldrb r0, [r6] + cmp r0, #0x20 + beq _08052C24 +_08052C16: + adds r1, #1 + cmp r1, #9 + bgt _08052C24 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #0x20 + bne _08052C16 +_08052C24: + adds r4, r3, #0 + adds r4, #0x20 + strb r1, [r4] + cmp r1, #0 + ble _08052C74 + movs r2, #0 + ldr r7, _08052C5C @ =gUnknown_030063C0 + cmp r2, r1 + bge _08052C48 + adds r5, r3, #4 +_08052C38: + adds r0, r5, r2 + adds r1, r6, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + ldrb r0, [r4] + cmp r2, r0 + blt _08052C38 +_08052C48: + ldr r1, [sp, #0xc] + str r1, [r3, #0x10] + mov r2, sl + str r2, [r3, #0x14] + mov r0, sb + str r0, [r3, #0x18] + mov r1, r8 + str r1, [r3, #0x1c] + adds r1, r7, #0 + b _08052C62 + .align 2, 0 +_08052C5C: .4byte gUnknown_030063C0 +_08052C60: + ldr r1, [r1] +_08052C62: + ldr r0, [r1] + cmp r0, #0 + bne _08052C60 + str r3, [r1] + ldr r0, [r3] + mov r2, ip + str r0, [r2] + movs r0, #0 + str r0, [r3] +_08052C74: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/intro_anim__Task_80640C8.inc b/asm/non_matching/game/intro_anim__Task_80640C8.inc new file mode 100644 index 0000000000..06ff23bec7 --- /dev/null +++ b/asm/non_matching/game/intro_anim__Task_80640C8.inc @@ -0,0 +1,188 @@ + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _08064104 @ =gCurTask + ldr r4, [r0] + ldrh r3, [r4, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r3, r1 + str r0, [sp] + ldr r0, [r0, #0xc] + ldrh r0, [r0, #6] + adds r0, r0, r1 + adds r1, #0x4c + adds r2, r3, r1 + ldrh r1, [r2] + strh r1, [r0, #0x30] + ldr r0, _08064108 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _08064110 + ldr r0, _0806410C @ =IntroOpenTitlescreenPlayMusic + str r0, [r4, #8] + b _08064232 + .align 2, 0 +_08064104: .4byte gCurTask +_08064108: .4byte gPressedKeys +_0806410C: .4byte IntroOpenTitlescreenPlayMusic +_08064110: + movs r1, #0 + ldrsh r0, [r2, r1] + mov sb, r2 + cmp r0, #0x97 + ble _080641AC + subs r0, #0x98 + lsls r0, r0, #0xf + lsrs r7, r0, #0x10 + cmp r7, #0x28 + bls _08064126 + movs r7, #0x28 +_08064126: + movs r2, #0 + mov sl, r2 + ldr r0, _08064204 @ =0x0300004C + adds r0, r0, r3 + mov sb, r0 +_08064130: + ldr r0, _08064208 @ =gUnknown_086A5D34 + mov r1, sl + lsls r1, r1, #1 + mov r8, r1 + add r0, r8 + ldrh r6, [r0] + movs r1, #0x1f + ands r1, r6 + movs r2, #0xf8 + lsls r2, r2, #2 + adds r0, r2, #0 + adds r4, r6, #0 + ands r4, r0 + lsrs r4, r4, #5 + movs r3, #0xf8 + lsls r3, r3, #7 + adds r0, r3, #0 + ands r6, r0 + lsrs r6, r6, #0xa + adds r0, r1, #0 + muls r0, r7, r0 + movs r1, #0x28 + bl Div + adds r5, r0, #0 + movs r0, #0x1f + ands r5, r0 + adds r0, r4, #0 + muls r0, r7, r0 + movs r1, #0x28 + bl Div + adds r4, r0, #0 + movs r1, #0x1f + ands r4, r1 + adds r0, r6, #0 + muls r0, r7, r0 + movs r1, #0x28 + bl Div + movs r2, #0x1f + ands r0, r2 + ldr r1, _0806420C @ =gBgPalette + add r8, r1 + lsls r4, r4, #5 + orrs r5, r4 + lsls r0, r0, #0xa + orrs r5, r0 + mov r3, r8 + strh r5, [r3] + ldr r2, _08064210 @ =gFlags + ldr r0, [r2] + movs r1, #1 + orrs r0, r1 + str r0, [r2] + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + cmp r0, #0x1f + bls _08064130 +_080641AC: + mov r1, sb + movs r2, #0 + ldrsh r0, [r1, r2] + ldr r2, _08064214 @ =gBgScrollRegs + cmp r0, #0xb5 + ble _080641DA + ldrh r0, [r2, #2] + adds r0, #2 + strh r0, [r2, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x64 + ble _080641CA + movs r0, #0x64 + strh r0, [r2, #2] +_080641CA: + ldrh r1, [r2, #2] + movs r3, #2 + ldrsh r0, [r2, r3] + cmp r0, #0x50 + ble _080641DA + adds r0, r1, #0 + subs r0, #0x50 + strh r0, [r2, #0xa] +_080641DA: + ldrh r0, [r2, #6] + adds r0, #0xa + strh r0, [r2, #6] + mov r1, sb + ldrh r0, [r1] + bl sub_8063E8C + mov r2, sb + movs r3, #0 + ldrsh r1, [r2, r3] + ldr r0, _08064218 @ =0x0000013F + cmp r1, r0 + ble _08064224 + movs r0, #0 + strh r0, [r2] + ldr r0, _0806421C @ =gCurTask + ldr r1, [r0] + ldr r0, _08064220 @ =sub_8064244 + str r0, [r1, #8] + b _0806422A + .align 2, 0 +_08064204: .4byte 0x0300004C +_08064208: .4byte gUnknown_086A5D34 +_0806420C: .4byte gBgPalette +_08064210: .4byte gFlags +_08064214: .4byte gBgScrollRegs +_08064218: .4byte 0x0000013F +_0806421C: .4byte gCurTask +_08064220: .4byte sub_8064244 +_08064224: + ldr r0, [sp] + bl sub_805423C +_0806422A: + mov r1, sb + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_08064232: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc b/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc new file mode 100644 index 0000000000..63f725506f --- /dev/null +++ b/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc @@ -0,0 +1,443 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + movs r6, #1 + ldr r0, _0800F66C @ =gCurTask + ldr r0, [r0] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r3, r0 + ldr r0, _0800F670 @ =0x03000208 + adds r2, r3, r0 + ldrh r0, [r2] + subs r0, #0x80 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0800F61A + movs r0, #0 + strh r0, [r2] +_0800F61A: + ldr r1, _0800F674 @ =gBldRegs + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #4] + movs r5, #1 + ldr r1, _0800F678 @ =gMultiBootParam + ldrb r0, [r1, #0x1d] + asrs r0, r0, #1 + ands r0, r6 + mov r8, r1 + ldr r1, _0800F67C @ =0x030000C0 + adds r3, r3, r1 + cmp r0, #0 + beq _0800F680 + mov r2, r8 + ldrb r0, [r2, #0x1e] + asrs r0, r0, #1 + ands r0, r6 + cmp r0, #0 + beq _0800F680 + movs r6, #2 +_0800F646: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bhi _0800F680 + ldrb r0, [r2, #0x1d] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0800F680 + mov r4, r8 + ldrb r0, [r4, #0x1e] + asrs r0, r5 + ands r0, r1 + cmp r0, #0 + beq _0800F680 + adds r6, #1 + b _0800F646 + .align 2, 0 +_0800F66C: .4byte gCurTask +_0800F670: .4byte 0x03000208 +_0800F674: .4byte gBldRegs +_0800F678: .4byte gMultiBootParam +_0800F67C: .4byte 0x030000C0 +_0800F680: + adds r0, r6, #3 + strb r0, [r3] + movs r5, #0 +_0800F686: + lsls r4, r5, #1 + adds r4, r4, r5 + lsls r4, r4, #4 + adds r4, #0x40 + adds r4, r7, r4 + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #2 + bls _0800F686 + ldr r1, _0800F6D0 @ =gMultiBootParam + ldrb r0, [r1, #0x1e] + movs r2, #0xe + ands r2, r0 + mov r8, r1 + cmp r2, #0 + beq _0800F6D4 + ldrb r0, [r1, #0x18] + cmp r0, #0 + bne _0800F6F0 + cmp r6, #1 + ble _0800F6F0 + adds r4, r7, #0 + adds r4, #0xd0 + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + b _0800F6EC + .align 2, 0 +_0800F6D0: .4byte gMultiBootParam +_0800F6D4: + ldr r1, _0800F7BC @ =0x00000207 + adds r0, r7, r1 + strb r2, [r0] + ldr r2, _0800F7C0 @ =gFlags + ldr r0, [r2] + ldr r1, _0800F7C4 @ =0xFFFFBFFF + ands r0, r1 + ldr r1, _0800F7C8 @ =0xFFFF7FFF + ands r0, r1 + str r0, [r2] + bl m4aSoundVSyncOn +_0800F6EC: + ldr r2, _0800F7CC @ =gMultiBootParam + mov r8, r2 +_0800F6F0: + mov r4, r8 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0800F796 + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0800F796 + ldr r0, _0800F7D0 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0800F796 + ldr r1, _0800F7BC @ =0x00000207 + adds r0, r7, r1 + movs r5, #1 + strb r5, [r0] + ldr r4, _0800F7C0 @ =gFlags + ldr r0, [r4] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + movs r1, #0x80 + lsls r1, r1, #7 + orrs r0, r1 + str r0, [r4] + bl m4aMPlayAllStop + ldr r0, [r4] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4] + bl m4aSoundVSyncOff + ldr r1, _0800F7D4 @ =0x040000B0 + ldrh r2, [r1, #0xa] + ldr r4, _0800F7D8 @ =0x0000C5FF + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r3, _0800F7DC @ =0x00007FFF + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r2, [r1, #0xa] + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r2, [r1, #0xa] + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r0, _0800F7E0 @ =0x040000D4 + ldrh r1, [r0, #0xa] + ands r4, r1 + strh r4, [r0, #0xa] + ldrh r1, [r0, #0xa] + ands r3, r1 + strh r3, [r0, #0xa] + ldrh r0, [r0, #0xa] + ldr r1, _0800F7E4 @ =gMultiboot_087C0258 + 0xC0 + ldr r2, _0800F7E8 @ =gMultiboot_087C22F8 + subs r2, r2, r1 + str r5, [sp] + mov r0, r8 + movs r3, #4 + bl MultiBootStartMaster +_0800F796: + ldr r2, _0800F7BC @ =0x00000207 + adds r0, r7, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0800F7F0 + ldr r0, _0800F7D0 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0800F7F0 + ldr r0, _0800F7EC @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + bl CreateMultiplayerModeSelectScreen + b _0800F986 + .align 2, 0 +_0800F7BC: .4byte 0x00000207 +_0800F7C0: .4byte gFlags +_0800F7C4: .4byte 0xFFFFBFFF +_0800F7C8: .4byte 0xFFFF7FFF +_0800F7CC: .4byte gMultiBootParam +_0800F7D0: .4byte gPressedKeys +_0800F7D4: .4byte 0x040000B0 +_0800F7D8: .4byte 0x0000C5FF +_0800F7DC: .4byte 0x00007FFF +_0800F7E0: .4byte 0x040000D4 +_0800F7E4: .4byte gMultiboot_087C0258 + 0xC0 +_0800F7E8: .4byte gMultiboot_087C22F8 +_0800F7EC: .4byte gCurTask +_0800F7F0: + ldr r4, _0800F840 @ =gMultiBootParam + adds r0, r4, #0 + bl MultiBootMain + cmp r0, #0x50 + beq _0800F808 + cmp r0, #0x60 + beq _0800F808 + cmp r0, #0x70 + beq _0800F808 + cmp r0, #0x71 + bne _0800F868 +_0800F808: + ldr r1, _0800F844 @ =0x0000FFFF + movs r0, #0 + bl TasksDestroyInPriorityRange + ldr r1, _0800F848 @ =gBackgroundsCopyQueueCursor + ldr r0, _0800F84C @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _0800F850 @ =gBgSpritesCount + movs r0, #0 + strb r0, [r1] + ldr r1, _0800F854 @ =gVramGraphicsCopyCursor + ldr r0, _0800F858 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r2, _0800F85C @ =gFlags + ldr r0, [r2] + ldr r1, _0800F860 @ =0xFFFFBFFF + ands r0, r1 + ldr r1, _0800F864 @ =0xFFFF7FFF + ands r0, r1 + str r0, [r2] + bl m4aSoundVSyncOn + bl LinkCommunicationError + b _0800F986 + .align 2, 0 +_0800F840: .4byte gMultiBootParam +_0800F844: .4byte 0x0000FFFF +_0800F848: .4byte gBackgroundsCopyQueueCursor +_0800F84C: .4byte gBackgroundsCopyQueueIndex +_0800F850: .4byte gBgSpritesCount +_0800F854: .4byte gVramGraphicsCopyCursor +_0800F858: .4byte gVramGraphicsCopyQueueIndex +_0800F85C: .4byte gFlags +_0800F860: .4byte 0xFFFFBFFF +_0800F864: .4byte 0xFFFF7FFF +_0800F868: + adds r0, r4, #0 + bl MultiBootCheckComplete + cmp r0, #0 + bne _0800F874 + b _0800F986 +_0800F874: + ldr r4, _0800F8FC @ =gDispCnt + ldr r1, _0800F900 @ =0x00001341 + adds r0, r1, #0 + strh r0, [r4] + ldr r1, _0800F904 @ =gBgCntRegs + movs r5, #0 + movs r2, #0 + ldr r0, _0800F908 @ =0x00001E02 + strh r0, [r1] + adds r0, #1 + strh r0, [r1, #2] + ldr r0, _0800F90C @ =gBgScrollRegs + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + movs r1, #0x80 + strh r1, [r0, #6] + ldr r0, _0800F910 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r6, #4] + strh r2, [r6, #0xa] + ldr r0, _0800F914 @ =0x0600F000 + str r0, [r6, #0xc] + strh r2, [r6, #0x18] + strh r2, [r6, #0x1a] + movs r0, #0x53 + strh r0, [r6, #0x1c] + strh r2, [r6, #0x1e] + strh r2, [r6, #0x20] + strh r2, [r6, #0x22] + strh r2, [r6, #0x24] + movs r0, #0x1e + strh r0, [r6, #0x26] + movs r0, #0x1b + strh r0, [r6, #0x28] + ldr r0, _0800F918 @ =0x0300002A + adds r1, r1, r0 + strb r5, [r1] + strh r2, [r6, #0x2e] + adds r0, r6, #0 + bl DrawBackground + ldr r0, _0800F91C @ =gLoadedSaveGame + ldrb r2, [r0, #0x19] + cmp r2, #0 + beq _0800F928 + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] + ldr r1, _0800F920 @ =gWinRegs + movs r0, #2 + strh r0, [r1, #8] + movs r0, #1 + strh r0, [r1, #0xa] + movs r0, #0xf0 + strh r0, [r1] + ldr r0, _0800F924 @ =0x00002058 + strh r0, [r1, #4] + b _0800F936 + .align 2, 0 +_0800F8FC: .4byte gDispCnt +_0800F900: .4byte 0x00001341 +_0800F904: .4byte gBgCntRegs +_0800F908: .4byte 0x00001E02 +_0800F90C: .4byte gBgScrollRegs +_0800F910: .4byte gCurTask +_0800F914: .4byte 0x0600F000 +_0800F918: .4byte 0x0300002A +_0800F91C: .4byte gLoadedSaveGame +_0800F920: .4byte gWinRegs +_0800F924: .4byte 0x00002058 +_0800F928: + ldrh r0, [r4] + ldr r1, _0800F994 @ =0x0000DFFF + ands r1, r0 + strh r1, [r4] + ldr r0, _0800F998 @ =gWinRegs + strh r2, [r0, #8] + strh r2, [r0, #0xa] +_0800F936: + ldr r2, _0800F99C @ =gFlags + ldr r0, [r2] + movs r1, #1 + orrs r0, r1 + str r0, [r2] + add r0, sp, #4 + movs r4, #0 + strh r4, [r0] + ldr r1, _0800F9A0 @ =gBgPalette+0x40 + ldr r2, _0800F9A4 @ =0x01000010 + bl CpuSet + ldr r0, _0800F9A8 @ =gCurTask + ldr r1, [r0] + ldr r0, _0800F9AC @ =sa2__sub_8081C50 + str r0, [r1, #8] + ldr r1, _0800F9B0 @ =gMultiSioSend + strb r4, [r1] + ldr r5, _0800F9B4 @ =gMultiSioRecv + strb r4, [r5] + strb r4, [r5, #0x14] + adds r3, r5, #0 + adds r3, #0x28 + strb r4, [r3] + adds r2, r5, #0 + adds r2, #0x3c + strb r4, [r2] + strb r4, [r1, #2] + ldr r0, _0800F9B8 @ =0x0000F001 + strh r0, [r1] + strb r4, [r5, #2] + adds r0, r5, #0 + adds r0, #0x14 + strb r4, [r0, #2] + strb r4, [r3, #2] + strb r4, [r2, #2] + movs r1, #0x81 + lsls r1, r1, #2 + adds r0, r6, r1 + strb r4, [r0] +_0800F986: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800F994: .4byte 0x0000DFFF +_0800F998: .4byte gWinRegs +_0800F99C: .4byte gFlags +_0800F9A0: .4byte gBgPalette+0x40 +_0800F9A4: .4byte 0x01000010 +_0800F9A8: .4byte gCurTask +_0800F9AC: .4byte sa2__sub_8081C50 +_0800F9B0: .4byte gMultiSioSend +_0800F9B4: .4byte gMultiSioRecv +_0800F9B8: .4byte 0x0000F001 + +.syntax divided diff --git a/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc b/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc new file mode 100644 index 0000000000..00411fcd5d --- /dev/null +++ b/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc @@ -0,0 +1,1303 @@ +.include "constants/constants.inc" + +.syntax unified + +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov ip, r0 + adds r0, #0x54 + ldrb r0, [r0] + cmp r0, #4 + bhi _0803ABA8 + lsls r0, r0, #2 + ldr r1, _0803AB80 @ =_0803AB84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803AB80: .4byte _0803AB84 +_0803AB84: @ jump table + .4byte _0803ABA8 @ case 0 + .4byte _0803ABA8 @ case 1 + .4byte _0803AB98 @ case 2 + .4byte _0803ABA0 @ case 3 + .4byte _0803ABA8 @ case 4 +_0803AB98: + mov r1, ip + adds r1, #0x50 + movs r0, #0x28 + b _0803ABAE +_0803ABA0: + mov r1, ip + adds r1, #0x50 + movs r0, #0x14 + b _0803ABAE +_0803ABA8: + mov r1, ip + adds r1, #0x50 + movs r0, #0 +_0803ABAE: + strh r0, [r1] + mov r0, ip + adds r0, #0x55 + ldrb r0, [r0] + cmp r0, #1 + bne _0803ABBC + b _0803AD28 +_0803ABBC: + cmp r0, #1 + bgt _0803ABC8 + cmp r0, #0 + beq _0803ABD4 + bl _0803B55E +_0803ABC8: + cmp r0, #2 + bne _0803ABD0 + bl _803B534 +_0803ABD0: + bl _0803B55E +_0803ABD4: + movs r0, #0 + str r0, [sp] + movs r1, #0 + str r1, [sp, #4] + movs r4, #0 + mov r0, ip + adds r0, #0x54 + mov r8, r0 + movs r2, #0x44 + add r2, ip + mov sb, r2 + mov r3, ip + adds r3, #0x40 + str r3, [sp, #8] + ldrb r0, [r0] + cmp r4, r0 + bhs _0803ACBE + ldr r1, _0803AC44 @ =gUnknown_030058A8 + mov ip, r1 + movs r2, #1 + add r2, ip + mov sl, r2 + movs r7, #0 + mov r6, sb + adds r5, r3, #0 +_0803AC06: + ldr r3, _0803AC48 @ =gUnknown_03005008 + adds r0, r4, r3 + ldrb r1, [r0] + ldr r0, _0803AC4C @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803ACB0 + cmp r1, #9 + bhi _0803AC58 + lsls r3, r4, #1 + mov r0, ip + adds r0, r3, r0 + str r0, [sp, #0x10] + lsls r1, r1, #4 + ldr r2, _0803AC50 @ =gLoadedSaveGame + adds r1, r1, r2 + movs r2, #0xe3 + lsls r2, r2, #2 + adds r0, r1, r2 + ldrb r0, [r0] + ldr r2, [sp, #0x10] + strb r0, [r2] + mov r0, sl + adds r2, r3, r0 + ldr r0, _0803AC54 @ =0x0000038D + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + b _0803AC68 + .align 2, 0 +_0803AC44: .4byte gUnknown_030058A8 +_0803AC48: .4byte gUnknown_03005008 +_0803AC4C: .4byte 0x04000128 +_0803AC50: .4byte gLoadedSaveGame +_0803AC54: .4byte 0x0000038D +_0803AC58: + lsls r0, r4, #1 + mov r2, ip + adds r1, r0, r2 + strb r7, [r1] + mov r3, sl + adds r1, r0, r3 + strb r7, [r1] + adds r3, r0, #0 +_0803AC68: + mov r1, ip + adds r0, r3, r1 + mov r2, sl + adds r1, r3, r2 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + bls _0803AC8E + adds r0, r6, r4 + movs r1, #6 + strb r1, [r0] + adds r0, r5, r4 + strb r1, [r0] + ldr r0, [sp] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + b _0803ACB0 +_0803AC8E: + cmp r2, r0 + bhs _0803ACA8 + adds r0, r6, r4 + movs r1, #1 + strb r1, [r0] + adds r0, r5, r4 + strb r1, [r0] + ldr r0, [sp, #4] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + b _0803ACB0 +_0803ACA8: + adds r0, r6, r4 + strb r7, [r0] + adds r0, r5, r4 + strb r7, [r0] +_0803ACB0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r3, r8 + ldrb r3, [r3] + cmp r4, r3 + blo _0803AC06 +_0803ACBE: + ldr r0, [sp] + ldr r1, [sp, #4] + cmp r0, r1 + bls _0803ACD8 + ldr r2, _0803ACD4 @ =0x04000128 + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + add r0, sb + movs r1, #1 + b _0803ACEC + .align 2, 0 +_0803ACD4: .4byte 0x04000128 +_0803ACD8: + ldr r3, [sp] + ldr r0, [sp, #4] + cmp r3, r0 + bhs _0803AD04 + ldr r2, _0803AD00 @ =0x04000128 + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + add r0, sb + movs r1, #6 +_0803ACEC: + strb r1, [r0] + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r2, [sp, #8] + adds r0, r2, r0 + strb r1, [r0] + bl _0803B55E + .align 2, 0 +_0803AD00: .4byte 0x04000128 +_0803AD04: + ldr r2, _0803AD24 @ =0x04000128 + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + add r0, sb + movs r1, #0 + strb r1, [r0] + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r3, [sp, #8] + adds r0, r3, r0 + strb r1, [r0] + bl _0803B55E + .align 2, 0 +_0803AD24: .4byte 0x04000128 +_0803AD28: + ldr r0, _0803AD78 @ =gUnknown_030058B4 + ldrb r0, [r0] + cmp r0, #2 + beq _0803AD3E + ldr r0, _0803AD7C @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _0803AD3E + cmp r0, #5 + beq _0803AD3E + b _0803AF88 +_0803AD3E: + movs r4, #0 + mov r0, ip + adds r0, #0x54 + mov r8, r0 + adds r0, #2 + str r0, [sp, #0xc] + mov r1, r8 + ldrb r1, [r1] + cmp r4, r1 + blo _0803AD54 + b _0803AF08 +_0803AD54: + ldr r6, _0803AD80 @ =gLoadedSaveGame + ldr r2, _0803AD84 @ =gUnknown_03005008 + mov sl, r2 + ldr r7, _0803AD88 @ =0x0000038E + movs r3, #0x63 + mov sb, r3 +_0803AD60: + ldr r1, _0803AD8C @ =gMultiplayerRanks + adds r0, r4, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #1 + beq _0803AE10 + cmp r1, #1 + bgt _0803AD90 + cmp r1, #0 + beq _0803AD96 + b _0803AE10 + .align 2, 0 +_0803AD78: .4byte gUnknown_030058B4 +_0803AD7C: .4byte gGameMode +_0803AD80: .4byte gLoadedSaveGame +_0803AD84: .4byte gUnknown_03005008 +_0803AD88: .4byte 0x0000038E +_0803AD8C: .4byte gMultiplayerRanks +_0803AD90: + cmp r1, #4 + beq _0803AE84 + b _0803AE10 +_0803AD96: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #2 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r1, _0803ADE0 @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + bne _0803ADB6 + b _0803AEF8 +_0803ADB6: + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r2, _0803ADE4 @ =gMultiplayerRanks + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803ADEC + ldr r3, _0803ADE8 @ =gGameMode + ldrb r0, [r3] + cmp r0, #3 + bne _0803ADD4 + b _0803AEF8 +_0803ADD4: + cmp r0, #5 + bne _0803ADDA + b _0803AEF8 +_0803ADDA: + mov r0, sl + adds r2, r4, r0 + b _0803AED8 + .align 2, 0 +_0803ADE0: .4byte 0x04000128 +_0803ADE4: .4byte gMultiplayerRanks +_0803ADE8: .4byte gGameMode +_0803ADEC: + mov r0, sl + adds r3, r4, r0 + ldrb r1, [r3] + lsls r1, r1, #4 + adds r1, r1, r6 + ldr r2, _0803AE0C @ =0x0000038D + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r6 + adds r1, r0, r2 + b _0803AEEE + .align 2, 0 +_0803AE0C: .4byte 0x0000038D +_0803AE10: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #3 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r1, _0803AE64 @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803AEF8 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r3, _0803AE68 @ =gMultiplayerRanks + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803AE6C + mov r0, sl + adds r3, r4, r0 + ldrb r1, [r3] + lsls r1, r1, #4 + adds r1, r1, r6 + movs r2, #0xe3 + lsls r2, r2, #2 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r6 + adds r1, r0, r2 + b _0803AEEE + .align 2, 0 +_0803AE64: .4byte 0x04000128 +_0803AE68: .4byte gMultiplayerRanks +_0803AE6C: + ldr r3, _0803AE80 @ =gGameMode + ldrb r0, [r3] + cmp r0, #3 + beq _0803AEF8 + cmp r0, #5 + beq _0803AEF8 + mov r0, sl + adds r2, r4, r0 + b _0803AED8 + .align 2, 0 +_0803AE80: .4byte gGameMode +_0803AE84: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r5, _0803AF28 @ =0x04000128 + ldr r0, [r5] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803AEF8 + ldr r3, _0803AF2C @ =gGameMode + ldrb r0, [r3] + cmp r0, #3 + beq _0803AEAC + cmp r0, #5 + bne _0803AED4 +_0803AEAC: + ldr r0, _0803AF30 @ =gMultiplayerConnections + ldrb r3, [r0] + movs r2, #0x10 + lsls r2, r4 + ands r2, r3 + adds r0, r4, #4 + asrs r2, r0 + ldr r1, [r5] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #0x10 + lsls r0, r1 + ands r3, r0 + ldr r0, [r5] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, #4 + asrs r3, r0 + cmp r2, r3 + beq _0803AEF8 +_0803AED4: + mov r1, sl + adds r2, r4, r1 +_0803AED8: + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r6 + adds r0, r0, r7 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r6 + adds r1, r0, r7 +_0803AEEE: + ldrb r0, [r1] + cmp r0, #0x63 + bls _0803AEF8 + mov r2, sb + strb r2, [r1] +_0803AEF8: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r3, r8 + ldrb r3, [r3] + cmp r4, r3 + bhs _0803AF08 + b _0803AD60 +_0803AF08: + ldr r1, _0803AF28 @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r2, _0803AF34 @ =gMultiplayerRanks + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803AF40 + ldr r3, [sp, #0xc] + strb r0, [r3] + ldr r0, _0803AF38 @ =gLoadedSaveGame + ldr r2, _0803AF3C @ =0x00000425 + b _0803B516 + .align 2, 0 +_0803AF28: .4byte 0x04000128 +_0803AF2C: .4byte gGameMode +_0803AF30: .4byte gMultiplayerConnections +_0803AF34: .4byte gMultiplayerRanks +_0803AF38: .4byte gLoadedSaveGame +_0803AF3C: .4byte 0x00000425 +_0803AF40: + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r3, _0803AF64 @ =gMultiplayerRanks + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _0803AF70 + movs r0, #2 + ldr r1, [sp, #0xc] + strb r0, [r1] + ldr r2, _0803AF68 @ =gLoadedSaveGame + ldr r3, _0803AF6C @ =0x00000427 + adds r1, r2, r3 + b _0803B518 + .align 2, 0 +_0803AF64: .4byte gMultiplayerRanks +_0803AF68: .4byte gLoadedSaveGame +_0803AF6C: .4byte 0x00000427 +_0803AF70: + movs r0, #1 + ldr r1, [sp, #0xc] + strb r0, [r1] + ldr r2, _0803AF80 @ =gLoadedSaveGame + ldr r3, _0803AF84 @ =0x00000426 + adds r1, r2, r3 + b _0803B518 + .align 2, 0 +_0803AF80: .4byte gLoadedSaveGame +_0803AF84: .4byte 0x00000426 +_0803AF88: + cmp r0, #4 + beq _0803AF8E + b _0803B2C8 +_0803AF8E: + movs r4, #0 + movs r2, #0 + mov r0, ip + adds r0, #0x54 + ldrb r1, [r0] + mov r8, r0 + adds r0, #2 + str r0, [sp, #0xc] + cmp r4, r1 + bhs _0803AFC0 + ldr r3, _0803B028 @ =gMultiplayerRanks +_0803AFA4: + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803AFB6 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0803AFB6: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r1 + blo _0803AFA4 +_0803AFC0: + cmp r2, #1 + beq _0803AFC6 + b _0803B0E4 +_0803AFC6: + movs r4, #0 + mov r1, r8 + ldrb r1, [r1] + cmp r4, r1 + bhs _0803B098 + ldr r2, _0803B028 @ =gMultiplayerRanks + mov sl, r2 + ldr r3, _0803B02C @ =gLoadedSaveGame + ldr r0, _0803B030 @ =0x0000038D + mov sb, r0 + movs r7, #0xe3 + lsls r7, r7, #2 + ldr r6, _0803B034 @ =gUnknown_03005008 + mov r5, ip + adds r5, #0x44 +_0803AFE4: + mov r1, sl + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B03C + adds r0, r5, r4 + movs r1, #2 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r0, _0803B038 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803B08A + adds r2, r4, r6 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + add r0, sb + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + mov r2, sb + adds r1, r0, r2 + b _0803B080 + .align 2, 0 +_0803B028: .4byte gMultiplayerRanks +_0803B02C: .4byte gLoadedSaveGame +_0803B030: .4byte 0x0000038D +_0803B034: .4byte gUnknown_03005008 +_0803B038: .4byte 0x04000128 +_0803B03C: + adds r0, r5, r4 + movs r1, #3 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r1, _0803B0BC @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803B08A + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + add r0, sl + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B08A + adds r2, r4, r6 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + adds r0, r0, r7 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + adds r1, r0, r7 +_0803B080: + ldrb r0, [r1] + cmp r0, #0x63 + bls _0803B08A + movs r0, #0x63 + strb r0, [r1] +_0803B08A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + blo _0803AFE4 +_0803B098: + ldr r0, _0803B0BC @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r1, _0803B0C0 @ =gMultiplayerRanks + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B0CC + ldr r2, [sp, #0xc] + strb r0, [r2] + ldr r3, _0803B0C4 @ =gLoadedSaveGame + ldr r0, _0803B0C8 @ =0x00000425 + adds r1, r3, r0 + b _0803B518 + .align 2, 0 +_0803B0BC: .4byte 0x04000128 +_0803B0C0: .4byte gMultiplayerRanks +_0803B0C4: .4byte gLoadedSaveGame +_0803B0C8: .4byte 0x00000425 +_0803B0CC: + movs r0, #1 + ldr r1, [sp, #0xc] + strb r0, [r1] + ldr r2, _0803B0DC @ =gLoadedSaveGame + ldr r3, _0803B0E0 @ =0x00000426 + adds r1, r2, r3 + b _0803B518 + .align 2, 0 +_0803B0DC: .4byte gLoadedSaveGame +_0803B0E0: .4byte 0x00000426 +_0803B0E4: + cmp r2, #0 + bne _0803B168 + movs r4, #0 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + bhs _0803B146 + movs r6, #4 + ldr r5, _0803B154 @ =gLoadedSaveGame + ldr r3, _0803B158 @ =0x0000038E + ldr r7, _0803B15C @ =gUnknown_03005008 +_0803B0FA: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + strb r6, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r6, [r0] + ldr r0, _0803B160 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803B138 + adds r2, r4, r7 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r5 + adds r0, r0, r3 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r5 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #0x63 + bls _0803B138 + movs r0, #0x63 + strb r0, [r1] +_0803B138: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r1, r8 + ldrb r1, [r1] + cmp r4, r1 + blo _0803B0FA +_0803B146: + movs r0, #2 + ldr r2, [sp, #0xc] + strb r0, [r2] + ldr r3, _0803B154 @ =gLoadedSaveGame + ldr r0, _0803B164 @ =0x00000427 + adds r1, r3, r0 + b _0803B518 + .align 2, 0 +_0803B154: .4byte gLoadedSaveGame +_0803B158: .4byte 0x0000038E +_0803B15C: .4byte gUnknown_03005008 +_0803B160: .4byte 0x04000128 +_0803B164: .4byte 0x00000427 +_0803B168: + movs r4, #0 + mov r1, r8 + ldrb r1, [r1] + cmp r4, r1 + blo _0803B174 + b _0803B27A +_0803B174: + ldr r2, _0803B1E4 @ =gMultiplayerRanks + mov sb, r2 + ldr r3, _0803B1E8 @ =gLoadedSaveGame + ldr r7, _0803B1EC @ =gUnknown_03005008 + ldr r6, _0803B1F0 @ =0x0000038E + movs r5, #0x63 + movs r0, #0xe3 + lsls r0, r0, #2 + mov sl, r0 +_0803B186: + mov r1, sb + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B1FC + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #4 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r1, _0803B1F4 @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803B26C + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0803B24C + adds r2, r4, r7 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r1, _0803B1F8 @ =0x0000038D + adds r0, r0, r1 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + ldr r2, _0803B1F8 @ =0x0000038D + adds r1, r0, r2 + b _0803B264 + .align 2, 0 +_0803B1E4: .4byte gMultiplayerRanks +_0803B1E8: .4byte gLoadedSaveGame +_0803B1EC: .4byte gUnknown_03005008 +_0803B1F0: .4byte 0x0000038E +_0803B1F4: .4byte 0x04000128 +_0803B1F8: .4byte 0x0000038D +_0803B1FC: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #3 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + strb r1, [r0] + ldr r1, _0803B248 @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803B26C + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B24C + adds r2, r4, r7 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + add r0, sl + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + mov r2, sl + adds r1, r0, r2 + b _0803B264 + .align 2, 0 +_0803B248: .4byte 0x04000128 +_0803B24C: + adds r2, r4, r7 + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + adds r0, r0, r6 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #4 + adds r0, r0, r3 + adds r1, r0, r6 +_0803B264: + ldrb r0, [r1] + cmp r0, #0x63 + bls _0803B26C + strb r5, [r1] +_0803B26C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + blo _0803B186 +_0803B27A: + ldr r0, _0803B2A0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r1, _0803B2A4 @ =gMultiplayerRanks + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B2B0 + movs r0, #2 + ldr r2, [sp, #0xc] + strb r0, [r2] + ldr r3, _0803B2A8 @ =gLoadedSaveGame + ldr r0, _0803B2AC @ =0x00000427 + adds r1, r3, r0 + b _0803B518 + .align 2, 0 +_0803B2A0: .4byte 0x04000128 +_0803B2A4: .4byte gMultiplayerRanks +_0803B2A8: .4byte gLoadedSaveGame +_0803B2AC: .4byte 0x00000427 +_0803B2B0: + movs r0, #1 + ldr r1, [sp, #0xc] + strb r0, [r1] + ldr r2, _0803B2C0 @ =gLoadedSaveGame + ldr r3, _0803B2C4 @ =0x00000426 + adds r1, r2, r3 + b _0803B518 + .align 2, 0 +_0803B2C0: .4byte gLoadedSaveGame +_0803B2C4: .4byte 0x00000426 +_0803B2C8: + movs r6, #0 + movs r4, #0 + mov r0, ip + adds r0, #0x54 + ldrb r1, [r0] + mov r8, r0 + adds r0, #2 + str r0, [sp, #0xc] + cmp r4, r1 + bhs _0803B2FA + ldr r2, _0803B32C @ =gMultiplayerRanks +_0803B2DE: + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _0803B2F0 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_0803B2F0: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, r1 + blo _0803B2DE +_0803B2FA: + mov r5, r8 + ldrb r0, [r5] + cmp r6, r0 + bne _0803B330 + movs r4, #0 + cmp r4, r6 + blo _0803B30A + b _0803B49E +_0803B30A: + mov r3, ip + adds r3, #0x44 + movs r2, #4 + mov r1, ip + adds r1, #0x40 +_0803B314: + adds r0, r3, r4 + strb r2, [r0] + adds r0, r1, r4 + strb r2, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r5] + cmp r4, r0 + blo _0803B314 + b _0803B49E + .align 2, 0 +_0803B32C: .4byte gMultiplayerRanks +_0803B330: + movs r4, #0 + cmp r4, r0 + blo _0803B338 + b _0803B49E +_0803B338: + ldr r1, _0803B350 @ =gMultiplayerRanks + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + bhi _0803B3E4 + lsls r0, r0, #2 + ldr r1, _0803B354 @ =_0803B358 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803B350: .4byte gMultiplayerRanks +_0803B354: .4byte _0803B358 +_0803B358: @ jump table + .4byte _0803B370 @ case 0 + .4byte _0803B384 @ case 1 + .4byte _0803B398 @ case 2 + .4byte _0803B3BE @ case 3 + .4byte _0803B3D2 @ case 4 + .4byte _0803B3D2 @ case 5 +_0803B370: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #7 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + movs r1, #2 + b _0803B3E2 +_0803B384: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #8 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + movs r1, #4 + b _0803B3E2 +_0803B398: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #9 + strb r1, [r0] + mov r2, r8 + ldrb r0, [r2] + cmp r0, #3 + bne _0803B3B4 + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + movs r1, #3 + b _0803B3E2 +_0803B3B4: + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + movs r1, #4 + b _0803B3E2 +_0803B3BE: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #0xa + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 + movs r1, #3 + b _0803B3E2 +_0803B3D2: + mov r0, ip + adds r0, #0x44 + adds r0, r0, r4 + movs r1, #3 + strb r1, [r0] + mov r0, ip + adds r0, #0x40 + adds r0, r0, r4 +_0803B3E2: + strb r1, [r0] +_0803B3E4: + ldr r2, _0803B420 @ =0x04000128 + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0803B48E + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r3, _0803B424 @ =gMultiplayerRanks + adds r0, r0, r3 + adds r1, r4, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + bge _0803B430 + ldr r2, _0803B428 @ =gUnknown_03005008 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r1, r1, #4 + ldr r0, _0803B42C @ =gLoadedSaveGame + adds r1, r1, r0 + movs r3, #0xe3 + lsls r3, r3, #2 + b _0803B472 + .align 2, 0 +_0803B420: .4byte 0x04000128 +_0803B424: .4byte gMultiplayerRanks +_0803B428: .4byte gUnknown_03005008 +_0803B42C: .4byte gLoadedSaveGame +_0803B430: + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r2, _0803B454 @ =gMultiplayerRanks + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r1 + bne _0803B464 + ldr r2, _0803B458 @ =gUnknown_03005008 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r1, r1, #4 + ldr r3, _0803B45C @ =gLoadedSaveGame + adds r1, r1, r3 + ldr r3, _0803B460 @ =0x0000038E + b _0803B472 + .align 2, 0 +_0803B454: .4byte gMultiplayerRanks +_0803B458: .4byte gUnknown_03005008 +_0803B45C: .4byte gLoadedSaveGame +_0803B460: .4byte 0x0000038E +_0803B464: + ldr r2, _0803B4C0 @ =gUnknown_03005008 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r1, r1, #4 + ldr r3, _0803B4C4 @ =gLoadedSaveGame + adds r1, r1, r3 + ldr r3, _0803B4C8 @ =0x0000038D +_0803B472: + adds r1, r1, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r0, [r2] + lsls r0, r0, #4 + ldr r1, _0803B4C4 @ =gLoadedSaveGame + adds r0, r0, r1 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #0x63 + bls _0803B48E + movs r0, #0x63 + strb r0, [r1] +_0803B48E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov r2, r8 + ldrb r2, [r2] + cmp r4, r2 + bhs _0803B49E + b _0803B338 +_0803B49E: + ldr r1, _0803B4CC @ =0x04000128 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r3, _0803B4D0 @ =gMultiplayerRanks + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0803B4D8 + ldr r1, [sp, #0xc] + strb r0, [r1] + ldr r2, _0803B4C4 @ =gLoadedSaveGame + ldr r3, _0803B4D4 @ =0x00000425 + adds r1, r2, r3 + b _0803B518 + .align 2, 0 +_0803B4C0: .4byte gUnknown_03005008 +_0803B4C4: .4byte gLoadedSaveGame +_0803B4C8: .4byte 0x0000038D +_0803B4CC: .4byte 0x04000128 +_0803B4D0: .4byte gMultiplayerRanks +_0803B4D4: .4byte 0x00000425 +_0803B4D8: + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + ldr r1, _0803B500 @ =gMultiplayerRanks + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _0803B4F4 + mov r2, r8 + ldrb r2, [r2] + cmp r6, r2 + beq _0803B50C +_0803B4F4: + movs r0, #1 + ldr r3, [sp, #0xc] + strb r0, [r3] + ldr r0, _0803B504 @ =gLoadedSaveGame + ldr r2, _0803B508 @ =0x00000426 + b _0803B516 + .align 2, 0 +_0803B500: .4byte gMultiplayerRanks +_0803B504: .4byte gLoadedSaveGame +_0803B508: .4byte 0x00000426 +_0803B50C: + movs r0, #2 + ldr r3, [sp, #0xc] + strb r0, [r3] + ldr r0, _0803B52C @ =gLoadedSaveGame + ldr r2, _0803B530 @ =0x00000427 +_0803B516: + adds r1, r0, r2 +_0803B518: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bls _0803B55E + movs r0, #0x63 + strb r0, [r1] + b _0803B55E + .align 2, 0 +_0803B52C: .4byte gLoadedSaveGame +_0803B530: .4byte 0x00000427 +_803B534: @ 0x0803B534 + movs r4, #0 + mov r2, ip + adds r2, #0x54 + ldrb r3, [r2] + cmp r4, r3 + bhs _0803B55E + mov r5, ip + adds r5, #0x44 + movs r3, #5 + mov r1, ip + adds r1, #0x40 +_0803B54A: + adds r0, r5, r4 + strb r3, [r0] + adds r0, r1, r4 + strb r3, [r0] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldrb r0, [r2] + cmp r4, r0 + blo _0803B54A +_0803B55E: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc b/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc new file mode 100644 index 0000000000..2058d2ee60 --- /dev/null +++ b/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc @@ -0,0 +1,851 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + ldr r0, _0802CB88 @ =gCurTask + ldr r0, [r0] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + str r0, [sp, #0x14] + ldr r2, _0802CB8C @ =gUnknown_087BF8DC + ldr r1, _0802CB90 @ =gUnknown_08487134 + ldr r0, _0802CB94 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp, #8] + ldr r1, _0802CB98 @ =gUnknown_03005690 + str r1, [sp, #0xc] + ldr r2, _0802CB9C @ =gUnknown_030055F0+0xC + str r2, [sp, #0x10] + ldr r4, _0802CBA0 @ =0x0300000C + adds r4, r4, r3 + mov r8, r4 + ldr r5, [sp, #0x14] + orrs r5, r3 + str r5, [sp, #0x14] + movs r6, #0 + str r6, [sp, #0x20] + mov r2, sp + adds r2, #6 + ldr r7, _0802CBA4 @ =0x00007FFF + adds r0, r7, #0 + strh r0, [r2] + ldr r0, _0802CBA8 @ =0x040000D4 + str r2, [r0] + ldr r1, _0802CBAC @ =gUnknown_03005670 + str r1, [r0, #4] + ldr r1, _0802CBB0 @ =0x81000010 + str r1, [r0, #8] + ldr r1, [r0, #8] + strh r6, [r2] + str r2, [r0] + ldr r1, _0802CBB4 @ =gUnknown_030057E0 + str r1, [r0, #4] + ldr r1, _0802CBB8 @ =0x81000008 + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r2, [r5, #0x3c] + str r2, [sp, #0x1c] + mov r0, r8 + bl UpdateSpriteAnimation + ldr r3, [r4, #0xc] + str r3, [sp, #0x18] + ldr r4, [sp, #0xc] + ldr r1, [r4, #8] + asrs r1, r1, #8 + movs r5, #0xc0 + lsls r5, r5, #2 + adds r3, r1, r5 + asrs r0, r3, #0xc + lsls r0, r0, #0x18 + ldr r2, _0802CBBC @ =gUnknown_03005840 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r0, [r0] + mov sb, r0 + subs r1, #0xc0 + str r1, [sp, #0x34] + str r3, [sp, #0x38] + lsls r0, r0, #1 + add r0, sb + lsls r0, r0, #2 + ldr r6, [sp, #8] + adds r0, r0, r6 + ldr r0, [r0, #4] + cmp r0, r3 + blt _0802CB3E + b _0802D12A +_0802CB3E: + mov r7, sp + adds r7, #4 + str r7, [sp, #0x3c] +_0802CB44: + mov r1, sb + lsls r0, r1, #1 + add r0, sb + lsls r0, r0, #2 + ldr r2, [sp, #8] + adds r3, r0, r2 + ldrh r1, [r3, #8] + ldr r0, _0802CBC0 @ =0x0000FFFF + cmp r1, r0 + bne _0802CB5A + b _0802D12A +_0802CB5A: + cmp r1, #0 + bne _0802CB80 + ldr r4, [r3, #4] + ldr r5, [sp, #0x34] + cmp r4, r5 + blt _0802CB80 + mov r6, sb + lsrs r2, r6, #3 + ldr r7, [sp, #0x1c] + adds r0, r7, r2 + ldrb r1, [r0] + movs r0, #7 + ands r0, r6 + asrs r1, r0 + movs r0, #1 + ands r1, r0 + str r2, [sp, #0x40] + cmp r1, #0 + beq _0802CBC4 +_0802CB80: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + b _0802CE5C + .align 2, 0 +_0802CB88: .4byte gCurTask +_0802CB8C: .4byte gUnknown_087BF8DC +_0802CB90: .4byte gUnknown_08487134 +_0802CB94: .4byte gCurrentLevel +_0802CB98: .4byte gUnknown_03005690 +_0802CB9C: .4byte gUnknown_030055F0+0xC +_0802CBA0: .4byte 0x0300000C +_0802CBA4: .4byte 0x00007FFF +_0802CBA8: .4byte 0x040000D4 +_0802CBAC: .4byte gUnknown_03005670 +_0802CBB0: .4byte 0x81000010 +_0802CBB4: .4byte gUnknown_030057E0 +_0802CBB8: .4byte 0x81000008 +_0802CBBC: .4byte gUnknown_03005840 +_0802CBC0: .4byte 0x0000FFFF +_0802CBC4: + movs r1, #0 + ldrsh r0, [r3, r1] + lsls r0, r0, #8 + str r0, [sp, #0x24] + movs r2, #2 + ldrsh r0, [r3, r2] + lsls r0, r0, #8 + str r0, [sp, #0x28] + lsls r3, r4, #8 + str r3, [sp, #0x2c] + ldr r5, [sp, #0xc] + ldr r0, [r5, #8] + asrs r7, r0, #8 + subs r0, r7, r4 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + str r6, [sp, #0x30] + asrs r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #2 + adds r6, r0, r1 + asrs r6, r6, #3 + cmp r6, #0 + bne _0802CBF6 + movs r6, #1 +_0802CBF6: + adds r0, r6, #0 + muls r0, r6, r0 + muls r0, r6, r0 + muls r6, r0, r6 + adds r0, r6, #0 + movs r1, #0xcc + lsls r1, r1, #1 + bl __divsi3 + adds r6, r0, #0 + adds r4, r6, #0 + cmp r6, #0 + bge _0802CC14 + ldr r2, _0802CE64 @ =0x000001FF + adds r4, r6, r2 +_0802CC14: + asrs r4, r4, #9 + adds r4, #0x38 + ldr r3, [sp, #0x24] + adds r0, r3, #0 + muls r0, r4, r0 + movs r5, #0xa0 + lsls r5, r5, #2 + adds r1, r5, #0 + bl __divsi3 + lsls r0, r0, #8 + lsrs r0, r0, #0x10 + mov sl, r0 + ldr r1, [sp, #0x28] + adds r0, r1, #0 + muls r0, r4, r0 + adds r1, r5, #0 + bl __divsi3 + lsls r0, r0, #8 + lsrs r0, r0, #0x10 + mov ip, r0 + ldr r0, [sp, #0xc] + adds r0, #0x29 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802CC50 + b _0802CEA0 +_0802CC50: + ldr r0, [sp, #0xc] + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #2 + bne _0802CC5C + b _0802CEA0 +_0802CC5C: + ldr r2, [sp, #0x2c] + asrs r1, r2, #8 + adds r0, r1, #0 + subs r0, #0x20 + cmp r7, r0 + bge _0802CC6A + b _0802CEA0 +_0802CC6A: + cmp r7, r1 + ble _0802CC70 + b _0802CEA0 +_0802CC70: + mov r3, sl + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + mov r0, r8 + adds r0, #0x2c + movs r3, #0 + ldrsb r3, [r0, r3] + adds r2, r1, r3 + ldr r4, [sp, #0xc] + ldr r1, [r4] + asrs r1, r1, #8 + ldr r0, [sp, #0x10] + adds r0, #0x2c + movs r4, #0 + ldrsb r4, [r0, r4] + adds r1, r1, r4 + cmp r2, r1 + bgt _0802CCAC + mov r0, r8 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0802CCC0 + cmp r2, r1 + bge _0802CCAC + b _0802CEA0 +_0802CCAC: + ldr r0, [sp, #0x10] + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r1, r0 + cmp r0, r2 + bge _0802CCC0 + b _0802CEA0 +_0802CCC0: + mov r5, ip + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + adds r1, #0x2d + movs r3, #0 + ldrsb r3, [r1, r3] + adds r2, r0, r3 + ldr r7, [sp, #0xc] + ldr r0, [r7, #4] + asrs r0, r0, #8 + ldr r1, [sp, #0x10] + adds r1, #0x2d + movs r4, #0 + ldrsb r4, [r1, r4] + adds r1, r0, r4 + cmp r2, r1 + bgt _0802CCFC + mov r0, r8 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0802CD10 + cmp r2, r1 + bge _0802CCFC + b _0802CEA0 +_0802CCFC: + ldr r0, [sp, #0x10] + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r1, r0 + cmp r0, r2 + bge _0802CD10 + b _0802CEA0 +_0802CD10: + movs r0, #0 + str r0, [sp] + ldr r0, _0802CE68 @ =sub_802D3E4 + movs r1, #0x74 + movs r2, #0xa8 + lsls r2, r2, #5 + movs r3, #0 + bl TaskCreate + ldrh r2, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r2, r1 + ldr r3, _0802CE6C @ =0x03000060 + adds r4, r2, r3 + movs r6, #1 + strh r6, [r4] + ldr r7, [sp, #0x24] + str r7, [r5, #0x3c] + ldr r0, [sp, #0x28] + str r0, [r5, #0x40] + ldr r1, [sp, #0x2c] + str r1, [r5, #0x44] + subs r3, #0x10 + adds r0, r2, r3 + movs r6, #0 + strh r6, [r0] + ldr r7, _0802CE70 @ =0x03000052 + adds r0, r2, r7 + strh r6, [r0] + ldr r1, _0802CE74 @ =0x03000054 + adds r0, r2, r1 + strh r6, [r0] + adds r3, #6 + adds r0, r2, r3 + strh r6, [r0] + ldr r6, _0802CE78 @ =0x03000058 + adds r0, r2, r6 + movs r7, #0 + strh r7, [r0] + adds r1, #6 + adds r0, r2, r1 + movs r3, #0 + strh r3, [r0] + adds r6, #4 + adds r0, r2, r6 + strh r3, [r0] + ldr r3, _0802CE7C @ =gUnknown_0848728C + ldrh r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r1, [r0] + ldr r7, _0802CE80 @ =0x03000062 + adds r0, r2, r7 + strh r1, [r0] + ldrh r0, [r4] + lsls r0, r0, #2 + adds r3, #2 + adds r0, r0, r3 + ldrh r0, [r0] + ldr r1, _0802CE84 @ =0x03000064 + adds r2, r2, r1 + strh r0, [r2] + ldr r2, [sp, #0x30] + lsls r0, r2, #0x10 + asrs r3, r0, #0x10 + movs r2, #0 + ldr r1, _0802CE88 @ =gUnknown_03005670 + movs r4, #0 + ldrsh r0, [r1, r4] + mov r4, sb + adds r4, #1 + ldr r6, _0802CE8C @ =0x00007FFF + cmp r0, r6 + beq _0802CDCC +_0802CDA6: + ldr r1, _0802CE88 @ =gUnknown_03005670 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r7, #0 + ldrsh r0, [r0, r7] + cmp r0, r3 + beq _0802CDCE + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bhi _0802CDCE + lsls r0, r2, #1 + adds r1, r0, r1 + movs r6, #0 + ldrsh r0, [r1, r6] + ldr r7, _0802CE8C @ =0x00007FFF + cmp r0, r7 + bne _0802CDA6 +_0802CDCC: + strh r3, [r1] +_0802CDCE: + adds r0, r2, #1 + adds r3, r5, #0 + adds r3, #0x66 + strb r0, [r3] + adds r0, r5, #0 + adds r0, #0x67 + movs r1, #1 + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0xc + @ inline of sub_802D6FC + ldr r1, _0802CE90 @ =gUnknown_084872C4 + subs r0, #7 + ldrh r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #5 + ldr r6, _0802CE94 @ =0x06010000 + adds r0, r0, r6 + str r0, [r2, #4] + movs r7, #0 + strh r7, [r2, #8] + adds r0, r5, #0 + adds r0, #0x62 + ldrh r0, [r0] + strh r0, [r2, #0xa] + adds r0, r5, #0 + adds r0, #0x64 + ldrh r1, [r0] + subs r0, #0x38 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x2d + movs r0, #0xff + strb r0, [r1] + movs r0, #0 + strh r0, [r2, #0x1c] + adds r1, #1 + movs r0, #0x10 + strb r0, [r1] + movs r6, #0 + strh r6, [r2, #0x1c] + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x31 + strb r7, [r0] + ldrb r0, [r3] + ldr r1, _0802CE98 @ =0x00002020 + orrs r0, r1 + str r0, [r2, #0x10] + movs r0, #0xf8 + lsls r0, r0, #3 + strh r0, [r2, #0x1a] + ldr r1, _0802CE9C @ =gSpecialStageCollectedRings + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + bl SpStage_PlayRingSoundeffect + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x40] + adds r2, r0, r1 + movs r0, #7 + mov r3, sb + ands r3, r0 + movs r0, #1 + lsls r0, r3 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + lsls r0, r4, #0x10 +_0802CE5C: + lsrs r0, r0, #0x10 + mov sb, r0 + b _0802D114 + .align 2, 0 +_0802CE64: .4byte 0x000001FF +_0802CE68: .4byte sub_802D3E4 +_0802CE6C: .4byte 0x03000060 +_0802CE70: .4byte 0x03000052 +_0802CE74: .4byte 0x03000054 +_0802CE78: .4byte 0x03000058 +_0802CE7C: .4byte gUnknown_0848728C +_0802CE80: .4byte 0x03000062 +_0802CE84: .4byte 0x03000064 +_0802CE88: .4byte gUnknown_03005670 +_0802CE8C: .4byte 0x00007FFF +_0802CE90: .4byte gUnknown_084872C4 +_0802CE94: .4byte 0x06010000 +_0802CE98: .4byte 0x00002020 +_0802CE9C: .4byte gSpecialStageCollectedRings +_0802CEA0: + ldr r4, [sp, #0x30] + lsls r0, r4, #0x10 + asrs r3, r0, #0x10 + movs r2, #0 + ldr r0, _0802CECC @ =gUnknown_03005670 + movs r5, #0 + ldrsh r1, [r0, r5] + adds r4, r0, #0 + mov r7, sl + lsls r5, r7, #0x10 + mov r0, ip + lsls r0, r0, #0x10 + mov ip, r0 + movs r7, #0x23 + add r7, r8 + mov sl, r7 + ldr r0, _0802CED0 @ =0x00007FFF + cmp r1, r0 + bne _0802CED4 + strh r3, [r4] + b _0802CEFA + .align 2, 0 +_0802CECC: .4byte gUnknown_03005670 +_0802CED0: .4byte 0x00007FFF +_0802CED4: + lsls r0, r2, #1 + adds r0, r0, r4 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, r3 + beq _0802CEFA + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0xf + bhi _0802CEFA + lsls r0, r2, #1 + adds r1, r0, r4 + movs r7, #0 + ldrsh r0, [r1, r7] + ldr r7, _0802D008 @ =0x00007FFF + cmp r0, r7 + bne _0802CED4 + strh r3, [r1] +_0802CEFA: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + asrs r0, r5, #0x10 + ldr r1, _0802D00C @ =gUnknown_03005780 + ldrh r1, [r1, #4] + adds r0, r0, r1 + adds r0, #0x78 + ldr r2, [sp, #0x14] + strh r0, [r2, #6] + ldr r4, _0802D00C @ =gUnknown_03005780 + ldrh r1, [r4, #6] + movs r0, #0x50 + subs r0, r0, r1 + mov r5, ip + asrs r1, r5, #0x10 + subs r0, r0, r1 + strh r0, [r2, #8] + adds r0, r6, #0 + cmp r0, #0 + bge _0802CF28 + ldr r6, _0802D010 @ =0x000003FF + adds r0, r0, r6 +_0802CF28: + asrs r0, r0, #0xa + adds r0, #0x40 + ldr r7, [sp, #0x14] + strh r0, [r7, #2] + strh r0, [r7, #4] + ldr r2, _0802D014 @ =0x00002020 + orrs r2, r3 + mov r0, r8 + str r2, [r0, #0x10] + movs r3, #2 + ldrsh r1, [r7, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _0802CF4E + movs r0, #0x40 + orrs r2, r0 + mov r4, r8 + str r2, [r4, #0x10] +_0802CF4E: + ldr r5, [sp, #0x14] + movs r6, #2 + ldrsh r2, [r5, r6] + ldr r7, [sp, #0x18] + movs r0, #8 + ldrsh r1, [r7, r0] + ldrh r0, [r7, #4] + lsrs r0, r0, #1 + subs r1, r1, r0 + muls r1, r2, r1 + lsls r0, r0, #8 + adds r1, r1, r0 + asrs r1, r1, #8 + ldrh r0, [r5, #6] + subs r3, r0, r1 + mov r1, r8 + strh r3, [r1, #0x16] + movs r4, #4 + ldrsh r2, [r5, r4] + movs r5, #0xa + ldrsh r1, [r7, r5] + ldrh r0, [r7, #6] + lsrs r0, r0, #1 + subs r1, r1, r0 + muls r1, r2, r1 + lsls r0, r0, #8 + adds r1, r1, r0 + asrs r1, r1, #8 + ldr r6, [sp, #0x14] + ldrh r0, [r6, #8] + subs r2, r0, r1 + mov r7, r8 + strh r2, [r7, #0x18] + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _0802CF9E + mov r1, sl + ldrb r0, [r1] + cmp r0, #0xff + bne _0802D020 +_0802CF9E: + movs r3, #1 + rsbs r3, r3, #0 + adds r2, r3, #0 + movs r0, #0xff + mov r4, sl + strb r0, [r4] + mov r5, r8 + ldr r0, [r5, #0x10] + movs r1, #0x1f + ands r0, r1 + ldr r6, [sp, #0x3c] + strh r0, [r6] + ldrh r0, [r6] + ldr r7, _0802D018 @ =gUnknown_030057E0 + adds r0, r0, r7 + movs r6, #0 + ldrsb r6, [r0, r6] + cmp r6, #0 + bne _0802CFFE + ldr r0, [sp, #0x3c] + ldrh r1, [r0] + adds r1, r1, r7 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, [sp, #0x3c] + ldrh r0, [r1] + lsls r0, r0, #5 + ldr r1, _0802D01C @ =gOamBuffer+0x6 + adds r5, r0, r1 + movs r4, #0x80 + lsls r4, r4, #9 + ldr r2, [sp, #0x14] + movs r3, #2 + ldrsh r1, [r2, r3] + adds r0, r4, #0 + bl Div + strh r0, [r5] + strh r6, [r5, #8] + strh r6, [r5, #0x10] + ldr r6, [sp, #0x14] + movs r7, #4 + ldrsh r1, [r6, r7] + adds r0, r4, #0 + bl Div + strh r0, [r5, #0x18] +_0802CFFE: + mov r0, r8 + bl DisplaySprite + b _0802D100 + .align 2, 0 +_0802D008: .4byte 0x00007FFF +_0802D00C: .4byte gUnknown_03005780 +_0802D010: .4byte 0x000003FF +_0802D014: .4byte 0x00002020 +_0802D018: .4byte gUnknown_030057E0 +_0802D01C: .4byte gOamBuffer+0x6 +_0802D020: + mov r0, r8 + ldr r1, [r0, #0x10] + adds r0, r1, #0 + movs r4, #0x40 + ands r0, r4 + cmp r0, #0 + beq _0802D042 + ldr r5, [sp, #0x18] + ldrh r0, [r5, #4] + lsrs r0, r0, #1 + subs r0, r3, r0 + mov r6, r8 + strh r0, [r6, #0x16] + ldrh r0, [r5, #6] + lsrs r0, r0, #1 + subs r0, r2, r0 + strh r0, [r6, #0x18] +_0802D042: + movs r7, #0x1f + ands r1, r7 + ldr r0, [sp, #0x3c] + strh r1, [r0] + ldrh r0, [r0] + ldr r1, _0802D13C @ =gUnknown_030057E0 + adds r0, r0, r1 + movs r6, #0 + ldrsb r6, [r0, r6] + cmp r6, #0 + bne _0802D08E + ldr r2, [sp, #0x3c] + ldrh r0, [r2] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrh r0, [r2] + lsls r0, r0, #5 + ldr r1, _0802D140 @ =gOamBuffer+0x6 + adds r5, r0, r1 + movs r4, #0x80 + lsls r4, r4, #9 + ldr r3, [sp, #0x14] + movs r0, #2 + ldrsh r1, [r3, r0] + adds r0, r4, #0 + bl Div + strh r0, [r5] + strh r6, [r5, #8] + strh r6, [r5, #0x10] + ldr r2, [sp, #0x14] + movs r3, #4 + ldrsh r1, [r2, r3] + adds r0, r4, #0 + bl Div + strh r0, [r5, #0x18] +_0802D08E: + mov r4, sl + ldrb r0, [r4] + lsls r0, r0, #3 + ldr r1, _0802D144 @ =gOamMallocBuffer + adds r5, r0, r1 + mov r6, r8 + ldrh r0, [r6, #0x1a] + movs r2, #0xf8 + lsls r2, r2, #3 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #6 + bl OamMalloc + adds r4, r0, #0 + ldr r0, _0802D148 @ =iwram_end + ldr r0, [r0] + cmp r0, r4 + beq _0802D12A + ldr r1, _0802D14C @ =0x040000D4 + str r5, [r1] + str r4, [r1, #4] + ldr r0, _0802D150 @ =0x80000003 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldrh r2, [r4] + movs r3, #0xfd + lsls r3, r3, #8 + adds r0, r3, #0 + ands r2, r0 + strh r2, [r4] + ldrh r3, [r4, #2] + movs r5, #0xc0 + lsls r5, r5, #8 + adds r0, r5, #0 + ands r3, r0 + strh r3, [r4, #2] + ldrb r1, [r6, #0x18] + ldr r0, [r6, #0x10] + movs r6, #0x40 + ands r0, r6 + lsls r0, r0, #3 + orrs r1, r0 + orrs r1, r2 + strh r1, [r4] + mov r0, r8 + ldrh r1, [r0, #0x16] + ldr r2, _0802D154 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + mov r5, r8 + ldr r0, [r5, #0x10] + ands r0, r7 + lsls r0, r0, #9 + orrs r1, r0 + orrs r1, r3 + strh r1, [r4, #2] +_0802D100: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 + ldr r0, [sp, #0x20] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x20] +_0802D114: + mov r6, sb + lsls r0, r6, #1 + add r0, sb + lsls r0, r0, #2 + ldr r7, [sp, #8] + adds r0, r0, r7 + ldr r0, [r0, #4] + ldr r1, [sp, #0x38] + cmp r0, r1 + bge _0802D12A + b _0802CB44 +_0802D12A: + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D13C: .4byte gUnknown_030057E0 +_0802D140: .4byte gOamBuffer+0x6 +_0802D144: .4byte gOamMallocBuffer +_0802D148: .4byte iwram_end +_0802D14C: .4byte 0x040000D4 +_0802D150: .4byte 0x80000003 +_0802D154: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc b/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc new file mode 100644 index 0000000000..c275491394 --- /dev/null +++ b/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc @@ -0,0 +1,80 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldr r0, _0802A554 @ =gUnknown_030055F0+0xC + mov sl, r0 + mov r7, sl + subs r7, #0xc + movs r3, #0x10 + ldrsh r1, [r6, r3] + mov r8, r1 + movs r5, #0x90 + lsls r5, r5, #2 + adds r1, r1, r5 + mov sb, r1 + ldr r0, [r6] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + adds r1, r5, #0 + bl __divsi3 + adds r4, r0, #0 + lsls r4, r4, #8 + lsrs r4, r4, #0x10 + ldr r0, [r6, #4] + mov r3, sb + muls r3, r0, r3 + adds r0, r3, #0 + adds r1, r5, #0 + bl __divsi3 + lsls r0, r0, #8 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + movs r2, #0 + movs r1, #0x50 + asrs r0, r0, #0x10 + subs r1, r1, r0 + adds r4, #0x78 + ldr r0, _0802A558 @ =gUnknown_03005780 + ldrh r0, [r0, #4] + adds r4, r4, r0 + strh r4, [r6, #0xc] + ldr r3, _0802A558 @ =gUnknown_03005780 + ldrh r0, [r3, #6] + subs r1, r1, r0 + strh r1, [r6, #0xe] + mov r0, sl + strh r4, [r0, #0x16] + strh r1, [r0, #0x18] + strh r4, [r7, #6] + strh r1, [r7, #8] + strh r2, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + add r8, r1 + mov r3, r8 + strh r3, [r7, #2] + strh r3, [r7, #4] + ldr r0, _0802A55C @ =0x00002020 + mov r1, sl + str r0, [r1, #0x10] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A554: .4byte gUnknown_030055F0+0xC +_0802A558: .4byte gUnknown_03005780 +_0802A55C: .4byte 0x00002020 + +.syntax divided diff --git a/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc b/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc new file mode 100644 index 0000000000..53f2181841 --- /dev/null +++ b/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc @@ -0,0 +1,129 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + ldr r4, _0802B168 @ =gUnknown_03005690 + ldr r5, _0802B16C @ =gUnknown_030055F0+0xC + adds r7, r5, #0 + subs r7, #0xc + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldrh r0, [r4, #0x12] + adds r0, #0x10 + ldr r2, _0802B170 @ =0x000003FF + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #0x12] + ldr r1, _0802B174 @ =gSineTable + movs r2, #0x12 + ldrsh r0, [r4, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x1a + strh r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r2, #0 + cmp r0, #0 + beq _0802B0C8 + movs r0, #0xff + lsls r0, r0, #8 +_0802B0C8: + strh r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_802A068 + adds r0, r4, #0 + bl sub_802A248 + adds r0, r4, #0 + bl sub_802A4C4 + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_802BE0C + adds r0, r5, #0 + bl DisplaySprite + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xb4 + bne _0802B110 + ldr r1, _0802B178 @ =gSpecialStageTargetRings + ldr r0, _0802B17C @ =gUnknown_03005070 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x8c + lsls r0, r0, #5 + ldr r1, _0802B180 @ =0x00001181 + bl TasksDestroyInPriorityRange + movs r0, #0 + bl sub_805C448 +_0802B110: + ldrh r1, [r4, #0x32] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0802B13C + subs r0, r1, #1 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802B13C + adds r2, r4, #0 + adds r2, #0x4a + movs r1, #1 + movs r0, #1 + strh r0, [r2] + adds r0, r5, #0 + adds r0, #0x20 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] +_0802B13C: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _0802B160 + ldr r0, _0802B184 @ =gCurTask + ldr r1, [r0] + ldr r0, _0802B188 @ =Task_802A560 + str r0, [r1, #8] + movs r0, #0 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x2a + strb r0, [r1] + adds r1, #0x14 + movs r0, #0xc + strb r0, [r1] +_0802B160: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B168: .4byte gUnknown_03005690 +_0802B16C: .4byte gUnknown_030055F0+0xC +_0802B170: .4byte 0x000003FF +_0802B174: .4byte gSineTable +_0802B178: .4byte gSpecialStageTargetRings +_0802B17C: .4byte gUnknown_03005070 +_0802B180: .4byte 0x00001181 +_0802B184: .4byte gCurTask +_0802B188: .4byte Task_802A560 + +.syntax divided diff --git a/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc b/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc new file mode 100644 index 0000000000..b34b766377 --- /dev/null +++ b/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc @@ -0,0 +1,291 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov ip, r1 + lsls r2, r2, #0x10 + lsrs r4, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r8, r3 + ldr r5, _0802B750 @ =gUnknown_030055F0+0xC + ldr r1, [r1, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0802B68E + b _0802B878 +_0802B68E: + ldr r0, _0802B754 @ =gUnknown_03005690 + ldr r3, [r6, #0x44] + ldr r2, _0802B758 @ =0xFFFFC000 + adds r1, r3, r2 + ldr r2, [r0, #8] + adds r7, r0, #0 + cmp r2, r1 + bge _0802B6A0 + b _0802B878 +_0802B6A0: + cmp r2, r3 + ble _0802B6A6 + b _0802B878 +_0802B6A6: + adds r0, r6, #0 + adds r0, #0x60 + ldrh r0, [r0] + cmp r0, #4 + bge _0802B6B2 + b _0802B7E0 +_0802B6B2: + cmp r0, #9 + ble _0802B6BC + cmp r0, #0xb + beq _0802B6BC + b _0802B7E0 +_0802B6BC: + adds r0, r7, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0802B760 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + mov r1, ip + adds r1, #0x2c + movs r4, #0 + ldrsb r4, [r1, r4] + adds r3, r0, r4 + ldr r0, [r7] + asrs r0, r0, #8 + ldr r1, _0802B75C @ =gUnknown_0848720C + movs r2, #0 + ldrsh r5, [r1, r2] + adds r2, r0, r5 + adds r6, r1, #0 + cmp r3, r2 + bgt _0802B702 + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r3, r0 + cmp r0, r2 + bge _0802B710 + cmp r3, r2 + bge _0802B702 + b _0802B878 +_0802B702: + movs r1, #4 + ldrsh r0, [r6, r1] + subs r0, r0, r5 + adds r0, r2, r0 + cmp r0, r3 + bge _0802B710 + b _0802B878 +_0802B710: + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov r2, ip + adds r2, #0x2d + movs r1, #0 + ldrsb r1, [r2, r1] + adds r3, r0, r1 + ldr r0, [r7, #4] + asrs r0, r0, #8 + movs r2, #2 + ldrsh r4, [r6, r2] + adds r2, r0, r4 + cmp r3, r2 + bgt _0802B748 + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r1 + adds r0, r3, r0 + cmp r0, r2 + blt _0802B742 + b _0802B874 +_0802B742: + cmp r3, r2 + bge _0802B748 + b _0802B878 +_0802B748: + movs r1, #6 + ldrsh r0, [r6, r1] + b _0802B86C + .align 2, 0 +_0802B750: .4byte gUnknown_030055F0+0xC +_0802B754: .4byte gUnknown_03005690 +_0802B758: .4byte 0xFFFFC000 +_0802B75C: .4byte gUnknown_0848720C +_0802B760: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + mov r1, ip + adds r1, #0x2c + movs r4, #0 + ldrsb r4, [r1, r4] + adds r3, r0, r4 + ldr r0, [r7] + asrs r0, r0, #8 + ldr r1, _0802B7DC @ =gUnknown_08487204 + movs r2, #0 + ldrsh r5, [r1, r2] + adds r2, r0, r5 + adds r6, r1, #0 + cmp r3, r2 + bgt _0802B796 + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r3, r0 + cmp r0, r2 + bge _0802B7A2 + cmp r3, r2 + blt _0802B878 +_0802B796: + movs r1, #4 + ldrsh r0, [r6, r1] + subs r0, r0, r5 + adds r0, r2, r0 + cmp r0, r3 + blt _0802B878 +_0802B7A2: + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov r2, ip + adds r2, #0x2d + movs r1, #0 + ldrsb r1, [r2, r1] + adds r3, r0, r1 + ldr r0, [r7, #4] + asrs r0, r0, #8 + movs r2, #2 + ldrsh r4, [r6, r2] + adds r2, r0, r4 + cmp r3, r2 + bgt _0802B7D6 + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r1 + adds r0, r3, r0 + cmp r0, r2 + bge _0802B874 + cmp r3, r2 + blt _0802B878 +_0802B7D6: + movs r1, #6 + ldrsh r0, [r6, r1] + b _0802B86C + .align 2, 0 +_0802B7DC: .4byte gUnknown_08487204 +_0802B7E0: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + mov r1, ip + adds r1, #0x2c + movs r3, #0 + ldrsb r3, [r1, r3] + adds r2, r0, r3 + ldr r0, [r7] + asrs r0, r0, #8 + adds r1, r5, #0 + adds r1, #0x2c + movs r4, #0 + ldrsb r4, [r1, r4] + adds r1, r0, r4 + cmp r2, r1 + bgt _0802B816 + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0802B828 + cmp r2, r1 + blt _0802B878 +_0802B816: + adds r0, r5, #0 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r1, r0 + cmp r0, r2 + blt _0802B878 +_0802B828: + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + mov r1, ip + adds r1, #0x2d + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r3, r0, r1 + ldr r0, [r7, #4] + asrs r0, r0, #8 + adds r2, r5, #0 + adds r2, #0x2d + movs r4, #0 + ldrsb r4, [r2, r4] + adds r2, r0, r4 + cmp r3, r2 + bgt _0802B862 + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r1 + adds r0, r3, r0 + cmp r0, r2 + bge _0802B874 + cmp r3, r2 + blt _0802B878 +_0802B862: + adds r0, r5, #0 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 +_0802B86C: + subs r0, r0, r4 + adds r0, r2, r0 + cmp r0, r3 + blt _0802B878 +_0802B874: + movs r0, #1 + b _0802B87A +_0802B878: + movs r0, #0 +_0802B87A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc b/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc new file mode 100644 index 0000000000..19c7bcc3ae --- /dev/null +++ b/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc @@ -0,0 +1,208 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _0802BCC0 @ =gUnknown_03005690 + ldr r0, _0802BCC4 @ =gCurTask + ldr r3, [r0] + ldrh r2, [r3, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r2 + mov r8, r0 + ldr r0, _0802BCC8 @ =0x0300000C + adds r0, r0, r2 + mov sl, r0 + mov sb, r8 + ldr r0, [r1, #8] + mov r4, sb + ldr r1, [r4, #0x44] + subs r0, r0, r1 + asrs r1, r0, #8 + ldr r4, _0802BCCC @ =0x03000050 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _0802BCD0 @ =0x03000060 + adds r2, r2, r0 + ldrh r0, [r2] + cmp r0, #3 + beq _0802BCD4 + lsls r1, r1, #0x10 + movs r0, #0x90 + lsls r0, r0, #0x12 + cmp r1, r0 + ble _0802BCD4 + adds r0, r3, #0 + bl TaskDestroy +_0802BCBA: + movs r0, #0 + b _0802BDE8 + .align 2, 0 +_0802BCC0: .4byte gUnknown_03005690 +_0802BCC4: .4byte gCurTask +_0802BCC8: .4byte 0x0300000C +_0802BCCC: .4byte 0x03000050 +_0802BCD0: .4byte 0x03000060 +_0802BCD4: + mov r1, r8 + adds r1, #0x50 + str r1, [sp] + movs r2, #0 + ldrsh r1, [r1, r2] + cmp r1, #0xc0 + bgt _0802BCBA + ldr r0, _0802BDF8 @ =0xFFFFFD00 + cmp r1, r0 + blt _0802BCBA + ldr r3, [sp] + movs r4, #0 + ldrsh r0, [r3, r4] + bl sub_802D58C + mov r1, r8 + adds r1, #0x66 + str r1, [sp, #4] + strb r0, [r1] + ldr r2, [sp] + movs r3, #0 + ldrsh r0, [r2, r3] + movs r4, #0xc0 + lsls r4, r4, #2 + adds r7, r0, r4 + asrs r7, r7, #3 + cmp r7, #0 + bne _0802BD0E + movs r7, #1 +_0802BD0E: + adds r0, r7, #0 + muls r0, r7, r0 + muls r0, r7, r0 + muls r7, r0, r7 + movs r1, #0xcc + lsls r1, r1, #1 + adds r0, r7, #0 + bl __divsi3 + adds r7, r0, #0 + adds r4, r7, #0 + cmp r7, #0 + bge _0802BD2C + ldr r0, _0802BDFC @ =0x000001FF + adds r4, r7, r0 +_0802BD2C: + asrs r4, r4, #9 + adds r4, #0x38 + mov r1, r8 + ldr r0, [r1, #0x3c] + muls r0, r4, r0 + movs r5, #0xa0 + lsls r5, r5, #2 + adds r1, r5, #0 + bl __divsi3 + asrs r0, r0, #8 + mov r6, r8 + adds r6, #0x48 + strh r0, [r6] + mov r2, r8 + ldr r0, [r2, #0x40] + muls r0, r4, r0 + adds r1, r5, #0 + bl __divsi3 + asrs r0, r0, #8 + mov r1, r8 + adds r1, #0x4a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #0x78 + mov r3, r8 + adds r3, #0x4c + strh r0, [r3] + ldrh r1, [r1] + movs r0, #0x50 + subs r0, r0, r1 + mov r2, r8 + adds r2, #0x4e + strh r0, [r2] + ldr r4, _0802BE00 @ =gUnknown_03005780 + ldrh r0, [r4, #4] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + ldrh r0, [r2] + ldrh r1, [r4, #6] + subs r0, r0, r1 + strh r0, [r2] + ldrh r1, [r3] + mov r3, sl + strh r1, [r3, #0x16] + ldrh r0, [r2] + strh r0, [r3, #0x18] + mov r4, sb + strh r1, [r4, #6] + ldrh r0, [r3, #0x18] + strh r0, [r4, #8] + adds r0, r7, #0 + cmp r7, #0 + bge _0802BDA0 + ldr r1, _0802BE04 @ =0x000003FF + adds r0, r7, r1 +_0802BDA0: + asrs r0, r0, #0xa + adds r0, #0x40 + mov r2, sb + strh r0, [r2, #2] + mov r3, sb + strh r0, [r3, #4] + ldr r4, [sp, #4] + ldrb r2, [r4] + ldr r0, _0802BE08 @ =0x00002020 + orrs r2, r0 + mov r0, sl + str r2, [r0, #0x10] + movs r4, #2 + ldrsh r1, [r3, r4] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _0802BDCC + movs r0, #0x40 + orrs r2, r0 + mov r0, sl + str r2, [r0, #0x10] +_0802BDCC: + ldr r2, [sp] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r1, #0 + subs r0, #0xc0 + cmp r0, #0 + bge _0802BDDC + adds r0, #0x1f +_0802BDDC: + asrs r0, r0, #5 + rsbs r0, r0, #0 + lsls r0, r0, #6 + mov r4, sl + strh r0, [r4, #0x1a] + movs r0, #1 +_0802BDE8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0802BDF8: .4byte 0xFFFFFD00 +_0802BDFC: .4byte 0x000001FF +_0802BE00: .4byte gUnknown_03005780 +_0802BE04: .4byte 0x000003FF +_0802BE08: .4byte 0x00002020 + +.syntax divided diff --git a/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc b/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc new file mode 100644 index 0000000000..fd933b9686 --- /dev/null +++ b/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc @@ -0,0 +1,109 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov sb, r0 + adds r6, r1, #0 + ldr r0, [r0, #0xc] + mov r8, r0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r8, r0 + beq _0802BEC6 + mov r1, sp + ldrh r0, [r6, #2] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r6, #4] + strh r0, [r1] + add r4, sp, #0xc + mov r1, sb + ldr r0, [r1, #0x10] + movs r1, #0x1f + ands r0, r1 + strh r0, [r4] + ldr r1, _0802BED4 @ =gUnknown_030057E0 + ldrh r0, [r4] + adds r0, r0, r1 + movs r7, #0 + ldrsb r7, [r0, r7] + cmp r7, #0 + bne _0802BE7C + ldrh r0, [r4] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] + ldrh r4, [r4] + lsls r4, r4, #5 + ldr r0, _0802BED8 @ =gOamBuffer+0x6 + adds r4, r4, r0 + movs r5, #0x80 + lsls r5, r5, #9 + movs r0, #2 + ldrsh r1, [r6, r0] + adds r0, r5, #0 + bl Div + strh r0, [r4] + strh r7, [r4, #8] + strh r7, [r4, #0x10] + movs r0, #4 + ldrsh r1, [r6, r0] + adds r0, r5, #0 + bl Div + strh r0, [r4, #0x18] +_0802BE7C: + movs r1, #6 + ldrsh r2, [r6, r1] + movs r4, #2 + ldrsh r3, [r6, r4] + mov r1, r8 + movs r4, #8 + ldrsh r0, [r1, r4] + ldrh r1, [r1, #4] + lsrs r1, r1, #1 + subs r0, r0, r1 + muls r0, r3, r0 + lsls r1, r1, #8 + adds r0, r0, r1 + asrs r0, r0, #8 + subs r2, r2, r0 + str r2, [sp, #4] + movs r0, #8 + ldrsh r2, [r6, r0] + movs r1, #4 + ldrsh r3, [r6, r1] + mov r4, r8 + movs r1, #0xa + ldrsh r0, [r4, r1] + ldrh r1, [r4, #6] + lsrs r1, r1, #1 + subs r0, r0, r1 + muls r0, r3, r0 + lsls r1, r1, #8 + adds r0, r0, r1 + asrs r0, r0, #8 + subs r2, r2, r0 + str r2, [sp, #8] + ldr r0, [sp, #4] + mov r4, sb + strh r0, [r4, #0x16] + ldr r0, [sp, #8] + strh r0, [r4, #0x18] +_0802BEC6: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0802BED4: .4byte gUnknown_030057E0 +_0802BED8: .4byte gOamBuffer+0x6 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc b/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc new file mode 100644 index 0000000000..ba3e7352e0 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc @@ -0,0 +1,134 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0804482C @ =gCamera + adds r6, r4, #0 + adds r6, #0x40 + movs r0, #2 + strb r0, [r6] + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08044868 + ldrb r0, [r4, #0x15] + cmp r0, #0 + beq _080447FE + subs r0, #1 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804484C +_080447FE: + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080448CA + ldr r0, _08044830 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08044834 + movs r2, #0x22 + ldrsh r0, [r5, r2] + movs r3, #0xe + ldrsh r1, [r5, r3] + adds r0, r0, r1 + cmp r0, #0x3b + bgt _080448CA + ldrh r0, [r5, #0x22] + b _080448C6 + .align 2, 0 +_0804482C: .4byte gCamera +_08044830: .4byte gStageFlags +_08044834: + movs r1, #0x22 + ldrsh r0, [r5, r1] + movs r2, #0xe + ldrsh r1, [r5, r2] + adds r0, r0, r1 + movs r1, #0x3c + rsbs r1, r1, #0 + cmp r0, r1 + ble _080448CA + ldrh r0, [r5, #0x22] + subs r0, #2 + b _080448C8 +_0804484C: + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080448CA + ldrh r0, [r5, #0x22] + movs r3, #0x22 + ldrsh r1, [r5, r3] + cmp r1, #0 + ble _080448C2 + subs r0, #2 + b _080448C8 +_08044868: + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + beq _080448CA + movs r0, #0x6d + bl m4aSongNumStart + ldr r0, [r4, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #9 + strb r0, [r4, #0xf] + movs r0, #5 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _080448CA + movs r0, #0x78 + strb r0, [r4, #0x15] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _080448CA + adds r2, r5, #0 + ldrh r0, [r2, #0x22] + movs r3, #0x22 + ldrsh r1, [r2, r3] + cmp r1, #0 + ble _080448C2 + subs r0, #2 + strh r0, [r2, #0x22] + b _080448CA +_080448C2: + cmp r1, #0 + bge _080448CA +_080448C6: + adds r0, #2 +_080448C8: + strh r0, [r5, #0x22] +_080448CA: + pop {r4, r5, r6} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc b/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc new file mode 100644 index 0000000000..49f1a4020a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc @@ -0,0 +1,315 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 @ r4 = p + ldr r0, _08045768 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 @ r8 = flag80 + ldr r2, _0804576C @ =gPlayer + adds r0, r2, #0 + adds r0, #0x27 + ldrb r3, [r0] + adds r5, r4, #0 + adds r5, #0x27 + strb r3, [r5] + ldr r0, [r2, #0x10] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + adds r6, r2, #0 @ r6 = r2 = gPlayer + cmp r0, #0 + beq _08045754 + movs r0, #1 + eors r0, r3 + strb r0, [r5] +_08045754: + ldr r0, [r4, #0x10] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08045770 + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x39 + b _08045776 + .align 2, 0 +_08045768: .4byte gStageFlags +_0804576C: .4byte gPlayer +_08045770: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x35 +_08045776: + strb r0, [r1] + adds r7, r1, #0 + ldr r0, [r4] + asrs r0, r0, #8 + ldr r3, _08045810 @ =gCamera + movs r2, #0 + ldrsh r1, [r3, r2] + ldr r5, _08045814 @ =0xFFFFFF00 + adds r1, r1, r5 + cmp r0, r1 + bge _08045790 + lsls r0, r1, #8 + str r0, [r4] +_08045790: + ldr r0, [r4] + asrs r0, r0, #8 + movs r2, #0 + ldrsh r1, [r3, r2] + movs r2, #0xf8 + lsls r2, r2, #1 + adds r1, r1, r2 + cmp r0, r1 + ble _080457A6 + lsls r0, r1, #8 + str r0, [r4] +_080457A6: + ldr r0, [r4, #4] + asrs r0, r0, #8 + movs r2, #2 + ldrsh r1, [r3, r2] + adds r1, r1, r5 + cmp r0, r1 + bge _080457B8 + lsls r0, r1, #8 + str r0, [r4, #4] +_080457B8: + ldr r0, [r4, #4] + asrs r0, r0, #8 + movs r2, #2 + ldrsh r1, [r3, r2] + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r1, r2 + cmp r0, r1 + ble _080457CE + lsls r0, r1, #8 + str r0, [r4, #4] +_080457CE: + ldr r0, [r4] + asrs r5, r0, #8 + adds r1, r5, #0 + subs r1, #0x20 + ldr r0, [r6] @ r0 = *r6 = I(gPlayer.qWorldX) + asrs r3, r0, #8 + cmp r1, r3 + blt _080457E0 + b _080458F8 +_080457E0: + adds r0, r5, #0 + adds r0, #0x20 + cmp r0, r3 + bgt _080457EA + b _080458F8 +_080457EA: + mov r0, r8 + cmp r0, #0 + bne _08045818 + ldr r0, [r4, #4] + asrs r3, r0, #8 + adds r1, r3, #0 + subs r1, #0x20 + ldr r0, [r6, #4] + asrs r0, r0, #8 + adds r2, r0, #0 + subs r2, #0x30 + cmp r1, r2 + bge _080458F8 + adds r0, r3, #0 + adds r0, #0x20 + cmp r0, r2 + bgt _08045834 + b _080458F8 + .align 2, 0 +_08045810: .4byte gCamera +_08045814: .4byte 0xFFFFFF00 +_08045818: + ldr r0, [r4, #4] + asrs r3, r0, #8 + adds r1, r3, #0 + subs r1, #0x20 + ldr r0, [r6, #4] + asrs r0, r0, #8 + adds r2, r0, #0 + adds r2, #0x30 + cmp r1, r2 + bge _080458F8 + adds r0, r3, #0 + adds r0, #0x20 + cmp r0, r2 + ble _080458F8 +_08045834: + movs r0, #0 + adds r1, r4, #0 + bl sa2__sub_8022F58 + cmp r0, #0 + blt _080458F8 + ldr r0, [r4, #0x10] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #0xe0 + ands r0, r1 + ldr r1, _080458D0 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + movs r6, #0 @ r6 = 0 + strb r6, [r0] + adds r0, #1 + strb r6, [r0] + adds r0, #1 + strb r6, [r0] + ldr r0, [r4, #0x10] + ldr r1, _080458D4 @ =0xFFFF7FFF + ands r0, r1 + str r0, [r4, #0x10] + adds r5, r4, #0 + adds r5, #0x59 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #1 + bne _0804587C + movs r0, #0x78 + bl m4aSongNumStop +_0804587C: + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #3 + bne _0804588C + ldr r0, [r4, #0x10] + ldr r1, _080458D8 @ =0xF9FFFFFF + ands r0, r1 + str r0, [r4, #0x10] +_0804588C: + strh r6, [r4, #0xc] + strh r6, [r4, #8] + strh r6, [r4, #0xa] + movs r0, #0x38 + strb r0, [r7] + ldr r0, [r4, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #0xc + ands r0, r1 + ldr r1, _080458DC @ =0xFFFFFDFF + ands r0, r1 + ldr r1, _080458E0 @ =0xFFEFFFFF + ands r0, r1 + ldr r1, _080458E4 @ =0xFF7FFFFF + ands r0, r1 + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + ldr r1, _080458E8 @ =0xFFDFFFFF + ands r0, r1 + ldr r1, _080458EC @ =0xFFBFFFFF + ands r0, r1 + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + str r6, [r4, #0x28] + ldr r0, _080458F0 @ =gCurTask + ldr r1, [r0] + ldr r0, _080458F4 @ =Task_8045B38 + str r0, [r1, #8] + b _0804596C + .align 2, 0 +_080458D0: .4byte 0xFFFFFBFF +_080458D4: .4byte 0xFFFF7FFF +_080458D8: .4byte 0xF9FFFFFF +_080458DC: .4byte 0xFFFFFDFF +_080458E0: .4byte 0xFFEFFFFF +_080458E4: .4byte 0xFF7FFFFF +_080458E8: .4byte 0xFFDFFFFF +_080458EC: .4byte 0xFFBFFFFF +_080458F0: .4byte gCurTask +_080458F4: .4byte Task_8045B38 +_080458F8: + ldr r5, [r4] + asrs r3, r5, #8 + ldr r0, _0804591C @ =gPlayer + ldr r1, [r0] + asrs r2, r1, #8 + adds r1, r3, #1 + adds r6, r0, #0 + cmp r1, r2 + bge _08045920 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r5, r1 + str r0, [r4] + ldr r0, [r4, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + b _08045932 + .align 2, 0 +_0804591C: .4byte gPlayer +_08045920: + subs r0, r3, #1 + cmp r2, r0 + bge _08045934 + ldr r2, _0804594C @ =0xFFFFFE00 + adds r0, r5, r2 + str r0, [r4] + ldr r0, [r4, #0x10] + movs r1, #1 + orrs r0, r1 +_08045932: + str r0, [r4, #0x10] +_08045934: + ldr r0, [r4, #4] + asrs r3, r0, #8 + adds r1, r0, #0 + mov r0, r8 + cmp r0, #0 + bne _08045950 + ldr r0, [r6, #4] + asrs r0, r0, #8 + adds r2, r0, #0 + subs r2, #0x30 + b _08045958 + .align 2, 0 +_0804594C: .4byte 0xFFFFFE00 +_08045950: + ldr r0, [r6, #4] + asrs r0, r0, #8 + adds r2, r0, #0 + adds r2, #0x30 +_08045958: + cmp r3, r2 + bge _08045962 + movs r2, #0x80 + lsls r2, r2, #1 + b _08045968 +_08045962: + cmp r2, r3 + bge _0804596C + ldr r2, _08045978 @ =0xFFFFFF00 +_08045968: + adds r0, r1, r2 + str r0, [r4, #4] +_0804596C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +_08045978: .4byte 0xFFFFFF00 +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc b/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc new file mode 100644 index 0000000000..0a9fb24744 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc @@ -0,0 +1,185 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + ldr r4, _08045994 @ r4 = gPartner + ldr r6, [r4, #0x64] @ r6 = gPartner.spriteInfoBody + ldr r7, [r4, #0x68] @ r7 = gPartner.spriteInfoLimbs + ldr r5, [r4, #4] @ r5 = gPartner.qWorldY + ldr r0, [r4, #0x10] @ r0 = gPartner.moveState + ldr r3, _08045998 @ r3 = gCamera + cmp r0, #0 + bge _080459A0 + ldr r2, _0804599C @ =gStageFlags + b _08045A60 + .align 2, 0 +_08045994: .4byte gPartner +_08045998: .4byte gCamera +_0804599C: .4byte gStageFlags +_080459A0: + ldr r2, _080459BC @ =gStageFlags + ldrh r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080459C4 + movs r1, #2 + ldrsh r0, [r3, r1] + lsls r0, r0, #8 + ldr r1, _080459C0 @ =0x0000EFFF + adds r0, r0, r1 + cmp r5, r0 + blt _080459D2 + b _080459D8 + .align 2, 0 +_080459BC: .4byte gStageFlags +_080459C0: .4byte 0x0000EFFF +_080459C4: + movs r1, #2 + ldrsh r0, [r3, r1] + subs r0, #0x50 + lsls r0, r0, #8 + movs r1, #1 + cmp r5, r0 + ble _080459D4 +_080459D2: + movs r1, #0 +_080459D4: + cmp r1, #0 + beq _08045A60 +_080459D8: + movs r2, #0 + ldrsh r0, [r3, r2] + ldr r1, _08045A1C @ =0xFFFFFF00 + adds r0, r0, r1 + lsls r0, r0, #8 + str r0, [r4] + movs r2, #2 + ldrsh r0, [r3, r2] + adds r0, r0, r1 + lsls r0, r0, #8 + str r0, [r4, #4] + ldr r2, [r4, #0x64] + ldr r0, [r2, #0x1c] + ldr r1, _08045A20 @ =0xFFFFCFFF + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r2, #0x1c] + ldr r0, [r4, #0x10] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #0x60 + ands r0, r1 + str r0, [r4, #0x10] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08045A24 + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x39 + b _08045A2A + .align 2, 0 +_08045A1C: .4byte 0xFFFFFF00 +_08045A20: .4byte 0xFFFFCFFF +_08045A24: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x35 +_08045A2A: + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #0x3c + strb r0, [r1] + subs r1, #1 + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08045A4E + movs r0, #0x1b + bl m4aSongNumStop +_08045A4E: + ldr r0, _08045A58 @ =gCurTask + ldr r1, [r0] + ldr r0, _08045A5C @ =Task_8045AD8 + str r0, [r1, #8] + b _08045AD0 + .align 2, 0 +_08045A58: .4byte gCurTask +_08045A5C: .4byte Task_8045AD8 +_08045A60: + movs r0, #8 + ldrsh r1, [r4, r0] + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] + ldr r1, _08045A94 @ =gPrevStageFlags + ldrh r0, [r2] + ldrh r1, [r1] + eors r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045A80 + ldrh r0, [r4, #0xa] + rsbs r0, r0, #0 + strh r0, [r4, #0xa] +_08045A80: + ldrh r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045A98 + movs r2, #0xa + ldrsh r1, [r4, r2] + ldr r0, [r4, #4] + subs r0, r0, r1 + b _08045AA0 + .align 2, 0 +_08045A94: .4byte gPrevStageFlags +_08045A98: + movs r0, #0xa + ldrsh r1, [r4, r0] + ldr r0, [r4, #4] + adds r0, r0, r1 +_08045AA0: + str r0, [r4, #4] + ldr r0, [r4, #0x10] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08045AB2 + ldrh r0, [r4, #0xa] + adds r0, #0x2a + b _08045AB6 +_08045AB2: + ldrh r0, [r4, #0xa] + adds r0, #0xc +_08045AB6: + strh r0, [r4, #0xa] + adds r0, r4, #0 + adds r1, r6, #0 + bl sa2__sub_802486C + adds r0, r4, #0 + adds r1, r6, #0 + bl sa2__sub_8024B10 + adds r0, r4, #0 + adds r1, r7, #0 + bl sa2__sub_8024F74 +_08045AD0: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc b/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc new file mode 100644 index 0000000000..4e06b4c1ab --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc @@ -0,0 +1,190 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x14] + ldr r0, _0804444C @ =gPlayerControls + ldrh r1, [r4, #0x3a] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _08044450 + movs r0, #0 + b _08044598 + .align 2, 0 +_0804444C: .4byte gPlayerControls +_08044450: + ldr r0, _08044498 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804446E + adds r0, r2, #0 + adds r0, #0x40 + lsls r0, r0, #0x18 + rsbs r0, r0, #0 + lsrs r2, r0, #0x18 + adds r0, r2, #0 + subs r0, #0x40 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0804446E: + adds r5, r4, #0 + adds r5, #0x27 + ldrb r0, [r5] + movs r6, #1 + eors r0, r6 + strb r0, [r5] + adds r0, r2, #0 + adds r0, #0x80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r4, #0 + bl sa2__sub_8022F58 + cmp r0, #3 + bgt _0804449C + ldrb r0, [r5] + eors r0, r6 + strb r0, [r5] + movs r0, #0 + b _08044598 + .align 2, 0 +_08044498: .4byte gStageFlags +_0804449C: + ldr r0, _080444B4 @ =gPlayer + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + bne _080444B8 + movs r0, #0x86 + bl m4aSongNumStop + b _080444BE + .align 2, 0 +_080444B4: .4byte gPlayer +_080444B8: + movs r0, #0x72 + bl m4aSongNumStop +_080444BE: + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + ldr r1, _080444F8 @ =0xFEFFFFDF + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + ldr r1, _080444FC @ =0xFFFFF7FF + ands r0, r1 + str r0, [r4, #0x10] + ldr r1, _08044500 @ =gPlayer + adds r1, #0x26 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x59 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + blt _08044514 + cmp r1, #2 + ble _08044504 + cmp r1, #3 + beq _0804450C + b _08044514 + .align 2, 0 +_080444F8: .4byte 0xFEFFFFDF +_080444FC: .4byte 0xFFFFF7FF +_08044500: .4byte gPlayer +_08044504: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #5 + b _08044512 +_0804450C: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x55 +_08044512: + strb r0, [r1] +_08044514: + ldr r0, [r4, #0x10] + movs r1, #0x40 + ands r0, r1 + movs r2, #0x9c + lsls r2, r2, #3 + cmp r0, #0 + beq _08044526 + movs r2, #0xa8 + lsls r2, r2, #2 +_08044526: + ldrb r0, [r4, #0x14] + subs r0, #0x40 + lsls r0, r0, #0x18 + ldr r1, _08044588 @ =gSineTable + lsrs r0, r0, #0x15 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r2, r0 + asrs r0, r0, #8 + strh r0, [r4, #0xa] + movs r0, #0x74 + bl m4aSongNumStart + ldr r1, [r4, #0x64] + ldr r0, [r1, #0x1c] + ldr r3, _0804458C @ =0xFFFFCFFF + ands r0, r3 + movs r2, #0x80 + lsls r2, r2, #6 + orrs r0, r2 + str r0, [r1, #0x1c] + ldr r1, [r4, #0x68] + ldr r0, [r1, #0x1c] + ands r0, r3 + orrs r0, r2 + str r0, [r1, #0x1c] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #3 + beq _08044596 + ldr r1, [r4, #0x10] + movs r2, #4 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + bne _08044590 + orrs r1, r2 + str r1, [r4, #0x10] + adds r0, r4, #0 + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #9 + strb r0, [r4, #0xf] + b _08044596 + .align 2, 0 +_08044588: .4byte gSineTable +_0804458C: .4byte 0xFFFFCFFF +_08044590: + movs r0, #0x10 + orrs r1, r0 + str r1, [r4, #0x10] +_08044596: + movs r0, #1 +_08044598: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc b/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc new file mode 100644 index 0000000000..c47a47bcb9 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc @@ -0,0 +1,353 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0xc + adds r5, r0, #0 @ r5 = p + bl sa2__sub_8022838 + adds r7, r5, #0 + adds r7, #0x80 + ldrb r1, [r7] + movs r0, #2 + mov r8, r0 + ands r0, r1 + cmp r0, #0 + bne _080482D8 + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bgt _08048260 + ldr r0, [r5, #0x10] + movs r1, #1 + orrs r0, r1 + b _08048268 +_08048260: + ldr r0, [r5, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 +_08048268: + str r0, [r5, #0x10] + ldrb r0, [r5, #0x14] + adds r0, #0x20 + movs r2, #0x40 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080482C2 + adds r0, r5, #0 + adds r0, #0x81 + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _08048292 + ldr r0, [r5, #0x10] + movs r1, #1 + orrs r0, r1 + b _0804829A +_08048292: + ldr r0, [r5, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 +_0804829A: + str r0, [r5, #0x10] + movs r0, #0 + strh r0, [r5, #0xa] + adds r0, r5, #0 + bl sa2__sub_8022318 + movs r1, #0xc + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _080482B8 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #4 + strb r0, [r1] + b _080484BE_return +_080482B8: + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0 + strb r0, [r1] + b _080484BE_return +_080482C2: + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #3 + strb r0, [r1] + adds r1, #3 + movs r0, #0x41 + strb r0, [r1] + movs r0, #0x6f + bl m4aSongNumStart + b _080484BE_return +_080482D8: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080482E2 + b _0804846E +_080482E2: + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080482F2 + b _0804844C +_080482F2: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #0x18 + mov sb, r1 + cmp r0, #0 + bgt _080483B4 + ldr r0, [r5, #0x10] + movs r1, #1 + orrs r0, r1 + str r0, [r5, #0x10] + adds r0, r5, #0 + movs r1, #0 + add r2, sp, #8 + bl sa2__sub_8029A28 + adds r6, r0, #0 + ldr r0, [sp, #8] + cmp r6, r0 + beq _0804831E + b _0804844C +_0804831E: + cmp r6, #0 + bne _08048324 + b _08048424 +_08048324: + ldr r0, _08048370 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _08048378 + ldr r0, [r5, #4] + asrs r0, r0, #8 + subs r0, #1 + movs r1, #0xf + ldrsb r1, [r5, r1] + subs r0, r0, r1 + ldr r1, [r5] + asrs r1, r1, #8 + subs r1, #1 + movs r2, #0xe + ldrsb r2, [r5, r2] + subs r1, r1, r2 + adds r2, r5, #0 + adds r2, #0x27 + ldrb r2, [r2] + movs r3, #8 + rsbs r3, r3, #0 + movs r4, #0 + str r4, [sp] + ldr r4, _08048374 @ =sa2__sub_801EE64 + str r4, [sp, #4] + bl sa2__sub_801E4E4 + cmp r0, #0 + bge _080483A6 + adds r0, r5, #0 + adds r0, #0x3d + mov r1, r8 + strb r1, [r0] + b _08048454 + .align 2, 0 +_08048370: .4byte gStageFlags +_08048374: .4byte sa2__sub_801EE64 +_08048378: + ldr r0, [r5, #4] + asrs r0, r0, #8 + adds r0, #1 + movs r1, #0xf + ldrsb r1, [r5, r1] + adds r0, r0, r1 + ldr r1, [r5] + asrs r1, r1, #8 + subs r1, #1 + movs r2, #0xe + ldrsb r2, [r5, r2] + subs r1, r1, r2 + adds r2, r5, #0 + adds r2, #0x27 + ldrb r2, [r2] + str r3, [sp] + ldr r3, _080483B0 @ =sa2__sub_801EE64 + str r3, [sp, #4] + movs r3, #8 + bl sa2__sub_801E4E4 + cmp r0, #0 + blt _0804844C +_080483A6: + lsls r1, r6, #8 + ldr r0, [r5] + subs r0, r0, r1 + b _08048422 + .align 2, 0 +_080483B0: .4byte sa2__sub_801EE64 +_080483B4: + ldr r0, [r5, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + adds r0, r5, #0 + movs r1, #0 + add r2, sp, #8 + bl sa2__sub_8029A74 + adds r6, r0, #0 + ldr r0, [sp, #8] + cmp r6, r0 + beq _080483DA + adds r0, r5, #0 + adds r0, #0x3d + mov r1, r8 + strb r1, [r0] + b _08048454 +_080483DA: + cmp r6, #0 + beq _08048424 + ldr r0, _08048444 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + bne _0804841C + ldr r0, [r5, #4] + asrs r0, r0, #8 + adds r0, #1 + movs r1, #0xf + ldrsb r1, [r5, r1] + adds r0, r0, r1 + ldr r1, [r5] + asrs r1, r1, #8 + adds r1, #1 + movs r2, #0xe + ldrsb r2, [r5, r2] + adds r1, r1, r2 + adds r2, r5, #0 + adds r2, #0x27 + ldrb r2, [r2] + str r3, [sp] + ldr r3, _08048448 @ =sa2__sub_801EE64 + str r3, [sp, #4] + movs r3, #8 + bl sa2__sub_801E4E4 + cmp r0, #0 + blt _0804844C +_0804841C: + lsls r1, r6, #8 + ldr r0, [r5] + adds r0, r0, r1 +_08048422: + str r0, [r5] +_08048424: + movs r0, #0 + strh r0, [r5, #0xc] + strh r0, [r5, #8] + strh r0, [r5, #0xa] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #4 + strb r0, [r1] + movs r0, #3 + mov r1, sb + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x46 + strb r0, [r1] + b _080484BE_return + .align 2, 0 +_08048444: .4byte gStageFlags +_08048448: .4byte sa2__sub_801EE64 +_0804844C: + adds r0, r5, #0 + adds r0, #0x3d + mov r2, r8 + strb r2, [r0] +_08048454: + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x3f + strb r0, [r1] + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + ldrb r1, [r7] + movs r0, #2 + orrs r0, r1 + strb r0, [r7] + b _080484BE_return +_0804846E: + ldr r0, _08048498 @ =gPlayerControls + ldrh r1, [r5, #0x38] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _080484B8 + adds r0, r5, #0 + adds r0, #0x3d + mov r1, r8 + strb r1, [r0] + adds r0, #3 + movs r1, #0x3f + strb r1, [r0] + movs r2, #8 + ldrsh r0, [r5, r2] + cmp r0, #0 + bgt _0804849C + ldr r0, [r5, #0x10] + movs r1, #1 + orrs r0, r1 + b _080484A4 + .align 2, 0 +_08048498: .4byte gPlayerControls +_0804849C: + ldr r0, [r5, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 +_080484A4: + str r0, [r5, #0x10] + ldrh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + strh r0, [r5, #8] + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + b _080484BE_return +_080484B8: + adds r0, r5, #0 + bl Player_Knuckles_GlideUpdateAnim +_080484BE_return: + add sp, #0xc + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc b/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc new file mode 100644 index 0000000000..cd84b6b22a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc @@ -0,0 +1,197 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, lr} + mov ip, r0 @ ip = r0 = p + movs r1, #0xc + ldrsh r2, [r0, r1] + cmp r2, #0 + bge _0804898E + rsbs r2, r2, #0 @ r2 = qSpeedGround = ABS(p->qSpeedGround); +_0804898E: + mov r1, ip + adds r1, #0x81 + ldrb r3, [r1] @ r3 = p->w.kf.shift + mov r0, ip + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r1, #0 @ r5 = r1 = &p->w.kf.shift + cmp r0, #1 + beq _080489A6 + b _08048AB8 +_080489A6: + ldr r0, _080489B4 @ =0x000002FF + cmp r2, r0 + bgt _080489B8 + adds r2, #6 + mov r4, ip + ldr r1, [r4, #0x10] + b _080489D8 + .align 2, 0 +_080489B4: .4byte 0x000002FF +_080489B8: + ldr r0, _08048A10 @ =0x000011FF + mov r4, ip + ldr r1, [r4, #0x10] + cmp r2, r0 + bgt _080489D8 + movs r0, #0x7f + ands r0, r3 + cmp r0, #0 + bne _080489D8 + adds r2, #3 + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r1 + cmp r0, #0 + beq _080489D8 + adds r2, #6 +_080489D8: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080489FC + movs r4, #0xc0 + lsls r4, r4, #2 + cmp r2, r4 + ble _080489FC + subs r2, #9 + movs r0, #0x80 + lsls r0, r0, #6 + ands r1, r0 + cmp r1, #0 + beq _080489F6 + subs r2, #3 +_080489F6: + cmp r2, r4 + bge _080489FC + adds r2, r4, #0 +_080489FC: + ldrb r0, [r5] + adds r0, #0x40 + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _08048A14 + rsbs r0, r2, #0 + mov r1, ip + strh r0, [r1, #0xc] + b _08048A18 + .align 2, 0 +_08048A10: .4byte 0x000011FF +_08048A14: + mov r4, ip + strh r2, [r4, #0xc] +_08048A18: + mov r0, ip @ r0 = ip = p + ldrh r4, [r0, #0x38] + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08048A42 + lsls r1, r3, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0x80 + beq _08048A78 + asrs r0, r1, #0x18 + cmp r0, #0 + bge _08048A38 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08048A38: + lsls r0, r3, #0x18 + movs r1, #0x80 + lsls r1, r1, #0x12 + adds r0, r0, r1 + b _08048A76 +_08048A42: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _08048A66 + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08048A78 + cmp r0, #0 + ble _08048A5C + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08048A5C: + lsls r0, r3, #0x18 + movs r3, #0x80 + lsls r3, r3, #0x12 + adds r0, r0, r3 + b _08048A76 +_08048A66: + lsls r0, r3, #0x18 + asrs r1, r0, #0x18 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08048A78 + adds r0, r1, #2 + lsls r0, r0, #0x18 +_08048A76: + lsrs r3, r0, #0x18 +_08048A78: + strb r3, [r5] + ldr r1, _08048AAC @ =gSineTable + lsls r0, r3, #0x18 + lsrs r0, r0, #0x15 + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r0, r4 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r2, r0 + asrs r0, r0, #8 + mov r1, ip @ r1 = ip = p + strh r0, [r1, #8] + ldrh r1, [r1, #0xa] + mov r2, ip @ r2 = ip = p + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r0, #0x7f + bgt _08048AB0 + adds r0, r1, #0 + adds r0, #0x18 + strh r0, [r2, #0xa] + b _08048AB8 + .align 2, 0 +_08048AAC: .4byte gSineTable +_08048AB0: + adds r0, r1, #0 + subs r0, #0x18 + mov r4, ip @ r4 = ip = p + strh r0, [r4, #0xa] +_08048AB8: + ldr r2, _08048AC8 @ =gCamera + ldrh r0, [r2, #0x22] + movs r3, #0x22 + ldrsh r1, [r2, r3] + cmp r1, #0 + ble _08048ACC + subs r0, #2 + b _08048AD2 + .align 2, 0 +_08048AC8: .4byte gCamera +_08048ACC: + cmp r1, #0 + bge _08048AD4 + adds r0, #4 +_08048AD2: + strh r0, [r2, #0x22] +_08048AD4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc b/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc new file mode 100644 index 0000000000..e86e0ec10f --- /dev/null +++ b/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc @@ -0,0 +1,54 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x3d + ldrb r3, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08049BC8 + subs r0, r3, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08049C04 +_08049BC8: + ldr r0, _08049C00 @ =gPlayerControls + ldrh r1, [r2, #0x3a] + ldrh r0, [r0, #2] + ands r0, r1 + cmp r0, #0 + beq _08049C04 + adds r3, r2, #0 + adds r3, #0x3d + movs r1, #0 + movs r0, #8 + strb r0, [r3] + adds r3, #1 + movs r0, #1 + strb r0, [r3] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #0xc] + strh r1, [r2, #8] + strh r1, [r2, #0xa] + adds r0, r2, #0 + bl sub_804A854 + movs r0, #0x70 + bl m4aSongNumStart + movs r0, #1 + b _08049C06 + .align 2, 0 +_08049C00: .4byte gPlayerControls +_08049C04: + movs r0, #0 +_08049C06: + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc b/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc new file mode 100644 index 0000000000..86178f1b60 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc @@ -0,0 +1,229 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov ip, r0 @ ip = x + mov r8, r1 @ r8 = y + ldr r1, _0803EA08 @ =gCamera + ldr r2, _0803EA0C @ =gBgScrollRegs + asrs r7, r0, #2 + movs r0, #0xff + ands r7, r0 + strh r7, [r1, #0x28] + strh r7, [r2, #0xc] @ r7 = xSub + mov r4, r8 + asrs r3, r4, #2 + ands r3, r0 + strh r3, [r1, #0x2a] + strh r3, [r2, #0xe] @ r3 = ySub + ldr r1, _0803EA10 @ =gFlags + ldr r0, [r1] + movs r2, #4 + orrs r0, r2 + str r0, [r1] + ldr r1, _0803EA14 @ =gHBlankCopyTarget + ldr r0, _0803EA18 @ =0x0400001C + str r0, [r1] + ldr r0, _0803EA1C @ =gHBlankCopySize + strb r2, [r0] + ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary + ldr r5, [r0] + movs r6, #0x3f + ands r6, r3 @ r6 = ySub & 0x3F + movs r4, #0 + lsls r3, r6, #0x10 + orrs r3, r7 + rsbs r2, r6, #0 @ r2 = -r6 + adds r1, r2, #0 + adds r1, #0x40 @ r1 = -r6 + 64 + cmp r2, r1 + bge _0803E8DA + adds r0, r1, #0 +_0803E8CE: + cmp r2, #0 + blt _0803E8D4 + stm r5!, {r3} +_0803E8D4: + adds r2, #1 + cmp r2, r0 + blt _0803E8CE +_0803E8DA: + adds r4, #0x40 + subs r0, r6, r4 + lsls r3, r0, #0x10 + orrs r3, r7 @ r3 = ((r6 - r4) << 16) | xSub); + rsbs r1, r6, #0 + adds r0, r4, #0 + adds r0, #0x40 + adds r0, r1, r0 @ r0 = -r6 + 64 + mov sb, r1 @ sb = -r6 + mov r1, ip + asrs r1, r1, #1 + mov sl, r1 @ sl = x >> 1 + mov r1, r8 + asrs r1, r1, #1 + str r1, [sp, #8] @ sp08 = y >> 1 + mov r1, ip + lsls r1, r1, #1 + str r1, [sp] @ sp00 = x << 1 + mov r1, r8 + lsls r1, r1, #1 + str r1, [sp, #4] @ sp04 = y << 1 + cmp r2, r0 + bge _0803E916 + adds r1, r0, #0 + subs r2, r1, r2 +_0803E90C: + stm r5!, {r3} + subs r2, #1 + cmp r2, #0 + bne _0803E90C + adds r2, r1, #0 +_0803E916: + adds r4, #0x40 + subs r0, r6, r4 + lsls r3, r0, #0x10 + orrs r3, r7 + adds r0, r4, #0 + adds r0, #0x40 + add r0, sb + cmp r2, r0 + bge _0803E934 +_0803E928: + cmp r2, #0x9f + bgt _0803E92E + stm r5!, {r3} +_0803E92E: + adds r2, #1 + cmp r2, r0 + blt _0803E928 +_0803E934: + adds r4, #0x40 + subs r0, r6, r4 + lsls r3, r0, #0x10 + orrs r3, r7 + adds r0, r4, #0 + adds r0, #0x40 + add r0, sb + cmp r2, r0 + bge _0803E952 +_0803E946: + cmp r2, #0x9f + bgt _0803E94C + stm r5!, {r3} +_0803E94C: + adds r2, #1 + cmp r2, r0 + blt _0803E946 +_0803E952: + movs r3, #0 + mov sb, sl @ sb = sl == x >> 1 + movs r4, #0xff + mov ip, r4 + ldr r0, [sp, #8] + mov r8, r0 @ r8 = (y >> 1) + ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary + ldr r5, [r0] +_0803E962: + lsls r0, r3, #5 + mov r1, sb + adds r7, r1, r0 + mov r4, ip + ands r7, r4 @ r7 = ((i << 5) + (x >> 1)) & 0xFF + lsls r0, r3, #6 + add r0, r8 + ands r0, r4 @ r0 = ((i << 6) + (y >> 1)) & 0xFF + rsbs r1, r0, #0 @ r1 = -r0 + ands r1, r4 + adds r2, r1, #0 + subs r2, #0x10 + adds r6, r3, #1 + cmp r2, r1 + bge _0803E9A0 + movs r0, #0x50 + subs r0, r0, r1 + lsls r4, r0, #0x10 + lsls r0, r2, #2 + adds r0, r0, r5 +_0803E98A: + cmp r2, #0 + blt _0803E998 + cmp r2, #0x9f + bgt _0803E998 + adds r3, r4, #0 + orrs r3, r7 + str r3, [r0] +_0803E998: + adds r0, #4 + adds r2, #1 + cmp r2, r1 + blt _0803E98A +_0803E9A0: + adds r3, r6, #0 + cmp r6, #2 + ble _0803E962 + ldr r0, [sp] + movs r1, #3 + bl __divsi3 + lsls r5, r6, #5 + adds r7, r0, r5 + movs r4, #0xff + ands r7, r4 @ r7 = ((i << 5) + Div((x << 1), 3)) & 0xFF; + ldr r0, [sp, #4] + movs r1, #3 + bl __divsi3 + lsls r1, r6, #6 + adds r0, r0, r1 + adds r0, r0, r5 + ands r0, r4 + rsbs r1, r0, #0 + ands r1, r4 + ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary + ldr r5, [r0] + adds r2, r1, #0 + subs r2, #0x18 + cmp r2, r1 + bge _0803E9F6 + movs r0, #0x68 + subs r0, r0, r1 + lsls r4, r0, #0x10 + lsls r0, r2, #2 + adds r0, r0, r5 +_0803E9E0: + cmp r2, #0 + blt _0803E9EE + cmp r2, #0x9f + bgt _0803E9EE + adds r3, r4, #0 + orrs r3, r7 + str r3, [r0] +_0803E9EE: + adds r0, #4 + adds r2, #1 + cmp r2, r1 + blt _0803E9E0 +_0803E9F6: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803EA08: .4byte gCamera +_0803EA0C: .4byte gBgScrollRegs +_0803EA10: .4byte gFlags +_0803EA14: .4byte gHBlankCopyTarget +_0803EA18: .4byte 0x0400001C +_0803EA1C: .4byte gHBlankCopySize +_0803EA20: .4byte gBgOffsetsHBlankPrimary + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/.gitkeep b/asm/non_matching/game/sa1/stage/enemies/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc b/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc new file mode 100644 index 0000000000..b40bb04dd3 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc @@ -0,0 +1,315 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r3, _08072C98 @ =gCurTask + ldr r0, [r3] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 @ r7 = drisame + adds r0, #0xc + adds r0, r0, r1 + mov sb, r0 @ sb = s + ldr r5, [r7] + ldrb r2, [r7, #8] + lsls r2, r2, #3 + ldrh r0, [r7, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldrb r1, [r5, #1] + lsls r1, r1, #3 + ldrh r0, [r7, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r4, r2, #0x10 + mov ip, r4 @ ip = r4 = worldX + asrs r2, r2, #0x10 + str r2, [r7, #0x4c] + lsrs r6, r1, #0x10 + mov r8, r6 @ r = worldY + asrs r1, r1, #0x10 + str r1, [r7, #0x50] + ldr r4, _08072C9C @ =gCamera + ldrh r0, [r4] + subs r0, r2, r0 + mov r6, sb + strh r0, [r6, #0x16] + ldrh r0, [r4, #2] + subs r0, r1, r0 + strh r0, [r6, #0x18] + movs r6, #0 + ldrsh r0, [r4, r6] + mov sl, r0 + movs r0, #0xb8 + lsls r0, r0, #1 + add r0, sl + cmp r2, r0 + bgt _08072C66 + mov r0, sl + subs r0, #0x80 + cmp r2, r0 + blt _08072C66 + movs r0, #2 + ldrsh r2, [r4, r0] + movs r4, #0x90 + lsls r4, r4, #1 + adds r0, r2, r4 + cmp r1, r0 + bgt _08072C66 + adds r0, r2, #0 + subs r0, #0x80 + cmp r1, r0 + bge _08072CA0 +_08072C66: + mov r6, sb + ldrh r0, [r6, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08072C8C + movs r1, #0x18 + ldrsh r0, [r6, r1] + adds r0, #0x80 + cmp r0, #0 + blt _08072C8C + movs r2, #0x18 + ldrsh r1, [r6, r2] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08072CA0 +_08072C8C: + ldrb r0, [r7, #8] + strb r0, [r5] + ldr r0, [r3] + bl TaskDestroy + b _08072E58 + .align 2, 0 +_08072C98: .4byte gCurTask +_08072C9C: .4byte gCamera +_08072CA0: + ldr r6, _08072D40 @ =gPlayer + ldr r0, [r6, #4] + asrs r0, r0, #8 + mov r3, r8 + lsls r5, r3, #0x10 + asrs r4, r5, #0x10 + mov sl, r4 + subs r0, r0, r4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, [r6] + asrs r1, r1, #8 + mov r2, ip + lsls r4, r2, #0x10 + asrs r3, r4, #0x10 + mov r8, r3 + subs r1, r1, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sa2__sub_8004418 + ldr r1, _08072D44 @ =0x000003FF + ands r1, r0 + str r1, [sp] + adds r2, r1, #0 + ldr r3, _08072D48 @ =0xFFFFFE7F + adds r0, r2, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r4, [sp, #4] + str r5, [sp, #8] + cmp r0, #0xfe + bhi _08072D8A + ldr r0, [r6, #4] + asrs r0, r0, #8 + mov r4, sl + subs r0, r0, r4 + adds r5, r0, #0 + muls r5, r0, r5 + ldr r0, [r6] + asrs r0, r0, #8 + mov r6, r8 + subs r0, r0, r6 + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + adds r5, r5, r0 + ldr r0, _08072D4C @ =0x000018FF + cmp r5, r0 + bgt _08072D8A + ldr r0, [r7, #0x54] + ldrh r0, [r0, #6] + ldr r3, _08072D50 @ =0x030000BD + adds r0, r0, r3 + movs r1, #1 + strb r1, [r0] + mov r4, sb + ldr r0, [r4, #0x10] + ldr r1, _08072D54 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r4, #0x10] + ldr r1, _08072D58 @ =gSineTable + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r2, r6 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r4, [r0, r1] + adds r0, r4, #0 + movs r1, #0x23 + bl Div + cmp r0, #0 + bge _08072D5C + adds r0, r4, #0 + movs r1, #0x23 + bl Div + b _08072D66 + .align 2, 0 +_08072D40: .4byte gPlayer +_08072D44: .4byte 0x000003FF +_08072D48: .4byte 0xFFFFFE7F +_08072D4C: .4byte 0x000018FF +_08072D50: .4byte 0x030000BD +_08072D54: .4byte 0xFFFFFBFF +_08072D58: .4byte gSineTable +_08072D5C: + adds r0, r4, #0 + movs r1, #0x23 + bl Div + rsbs r0, r0, #0 +_08072D66: + str r0, [r7, #0x3c] + ldr r1, _08072E34 @ =gSineTable + ldr r2, [sp] + lsls r0, r2, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r1, #0x23 + bl Div + str r0, [r7, #0x40] + movs r0, #0 + str r0, [r7, #0x44] + str r0, [r7, #0x48] + ldr r0, _08072E38 @ =gCurTask + ldr r1, [r0] + ldr r0, _08072E3C @ =sub_8072E68 + str r0, [r1, #8] +_08072D8A: + ldr r4, [sp] + mov r8, r4 + mov r0, r8 + subs r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #0x12 + cmp r0, r1 + bls _08072E18 + ldr r2, _08072E40 @ =gPlayer + ldr r0, [r2, #4] + asrs r0, r0, #8 + ldr r6, [sp, #8] + asrs r1, r6, #0x10 + subs r0, r0, r1 + adds r5, r0, #0 + muls r5, r0, r5 + ldr r0, [r2] + asrs r0, r0, #8 + ldr r2, [sp, #4] + asrs r1, r2, #0x10 + subs r0, r0, r1 + adds r3, r0, #0 + muls r3, r0, r3 + adds r0, r3, #0 + adds r5, r5, r0 + ldr r0, _08072E44 @ =0x000018FF + cmp r5, r0 + bgt _08072E18 + ldr r0, [r7, #0x54] + ldrh r0, [r0, #6] + ldr r4, _08072E48 @ =0x030000BD + adds r0, r0, r4 + movs r6, #0 + movs r1, #1 + strb r1, [r0] + mov r1, sb + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + mov r2, sb + str r0, [r2, #0x10] + ldr r5, _08072E34 @ =gSineTable + movs r0, #0x80 + lsls r0, r0, #1 + add r0, r8 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r4, #0x23 + adds r1, r4, #0 + bl Div + str r0, [r7, #0x3c] + mov r1, r8 + lsls r0, r1, #1 + adds r0, r0, r5 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r4, #0 + bl Div + str r0, [r7, #0x40] + str r6, [r7, #0x44] + str r6, [r7, #0x48] + ldr r0, _08072E38 @ =gCurTask + ldr r1, [r0] + ldr r0, _08072E3C @ =sub_8072E68 + str r0, [r1, #8] +_08072E18: + ldr r3, [sp, #4] + asrs r1, r3, #0x10 + ldr r4, [sp, #8] + asrs r2, r4, #0x10 + mov r0, sb + bl Coll_Player_Enemy_Attack + cmp r0, #0 + beq _08072E4C + ldr r0, _08072E38 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08072E58 + .align 2, 0 +_08072E34: .4byte gSineTable +_08072E38: .4byte gCurTask +_08072E3C: .4byte sub_8072E68 +_08072E40: .4byte gPlayer +_08072E44: .4byte 0x000018FF +_08072E48: .4byte 0x030000BD +_08072E4C: + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + bl DisplaySprite +_08072E58: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc b/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc new file mode 100644 index 0000000000..4cb14c2def --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc @@ -0,0 +1,252 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r3, _08073868 @ =gCurTask + ldr r0, [r3] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r1 + mov r8, r0 @ r8 = kuraa + ldr r0, _0807386C @ =0x0300000C + adds r4, r1, r0 @ r4 = s + mov r1, r8 + ldr r1, [r1] + mov ip, r1 @ ip = r1 = me + mov r5, r8 + ldrb r2, [r5, #8] + lsls r2, r2, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldX + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 @ r1 = worldY + lsls r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 @ r2 = worldX + lsrs r7, r1, #0x10 + mov sl, r7 @ sl = r7 = worldY + asrs r6, r1, #0x10 + ldr r0, [r5, #0x3c] + asrs r0, r0, #8 + adds r0, r2, r0 + lsls r0, r0, #0x10 + ldr r5, _08073870 @ =gCamera + ldrh r1, [r5] + lsrs r7, r0, #0x10 + mov sb, r7 + asrs r0, r0, #0x10 + subs r0, r0, r1 + strh r0, [r4, #0x16] + ldrh r0, [r5, #2] + subs r0, r6, r0 + strh r0, [r4, #0x18] + movs r0, #0 + ldrsh r1, [r5, r0] + movs r7, #0xb8 + lsls r7, r7, #1 + adds r0, r1, r7 + cmp r2, r0 + bgt _08073834 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _08073834 + movs r0, #2 + ldrsh r1, [r5, r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r0, r1, r2 + cmp r6, r0 + bgt _08073834 + adds r0, r1, #0 + subs r0, #0x80 + cmp r6, r0 + bge _08073874 +_08073834: + ldrh r0, [r4, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08073858 + movs r5, #0x18 + ldrsh r0, [r4, r5] + adds r0, #0x80 + cmp r0, #0 + blt _08073858 + movs r7, #0x18 + ldrsh r1, [r4, r7] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08073874 +_08073858: + mov r1, r8 + ldrb r0, [r1, #8] + mov r2, ip + strb r0, [r2] + ldr r0, [r3] + bl TaskDestroy + b _08073974 + .align 2, 0 +_08073868: .4byte gCurTask +_0807386C: .4byte 0x0300000C +_08073870: .4byte gCamera +_08073874: + ldr r1, [r4, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08073928 + mov r5, sb + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + adds r1, #0x2c + movs r7, #0 + ldrsb r7, [r1, r7] + adds r5, r0, r7 + ldr r2, _08073984 @ =gPlayer + ldr r1, [r2] + asrs r1, r1, #8 + ldr r3, _08073988 @ =gPlayerBodyPSI + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov ip, r0 + add r1, ip + mov sb, r2 + adds r6, r3, #0 + cmp r5, r1 + bgt _080738C2 + adds r0, r4, #0 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r7 + adds r0, r5, r0 + cmp r0, r1 + bge _080738D6 + cmp r5, r1 + blt _08073928 +_080738C2: + adds r0, r6, #0 + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r7, ip + subs r0, r0, r7 + adds r0, r1, r0 + cmp r0, r5 + blt _08073928 +_080738D6: + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + adds r3, r4, #0 + adds r3, #0x2d + movs r5, #0 + ldrsb r5, [r3, r5] + adds r1, r0, r5 + mov r2, sb + ldr r0, [r2, #4] + asrs r0, r0, #8 + adds r3, r6, #0 + adds r3, #0x39 + movs r2, #0 + ldrsb r2, [r3, r2] + adds r3, r0, r2 + cmp r1, r3 + bgt _08073910 + adds r0, r4, #0 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r3 + bge _08073922 + cmp r1, r3 + blt _08073928 +_08073910: + adds r0, r6, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r3, r0 + cmp r0, r1 + blt _08073928 +_08073922: + mov r0, sb + bl Coll_DamagePlayer +_08073928: + mov r1, r8 + adds r1, #0x42 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x77 + ble _08073950 + adds r1, r4, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0 + strb r0, [r1] + ldr r0, _0807398C @ =gCurTask + ldr r1, [r0] + ldr r0, _08073990 @ =Task_KuraaInit + str r0, [r1, #8] +_08073950: + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r4, #0x10] + adds r0, r4, #0 + bl DisplaySprite + ldr r0, [r4, #0x10] + ldr r1, _08073994 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r4, #0x10] +_08073974: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08073984: .4byte gPlayer +_08073988: .4byte gPlayerBodyPSI +_0807398C: .4byte gCurTask +_08073990: .4byte Task_KuraaInit +_08073994: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc b/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc new file mode 100644 index 0000000000..a7ce460221 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc @@ -0,0 +1,321 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r4, _0806EB90 @ =gCurTask + ldr r0, [r4] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r3, r0 @ r5 = leon + adds r0, #0xc + adds r6, r3, r0 @ r6 = s + ldr r1, [r5] + mov sb, r1 @ sb = me + ldrb r2, [r5, #8] + lsls r2, r2, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldX + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 @ r1 = worldY + lsls r2, r2, #0x10 + asrs r7, r2, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov ip, r1 + ldr r2, _0806EB94 @ =0x03000048 + adds r0, r3, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, [r5, #0x44] + adds r0, r0, r1 + str r0, [r5, #0x44] + asrs r0, r0, #8 + adds r0, r7, r0 + lsls r0, r0, #0x10 + ldr r1, _0806EB98 @ =0x0300004C + adds r3, r3, r1 + ldrh r1, [r3] + add r1, ip + lsls r1, r1, #0x10 + ldr r3, _0806EB9C @ =gCamera + ldrh r2, [r3] + mov r8, r2 + lsrs r2, r0, #0x10 + mov sl, r2 + asrs r0, r0, #0x10 + mov r2, r8 + subs r0, r0, r2 + strh r0, [r6, #0x16] + ldrh r0, [r3, #2] + lsrs r2, r1, #0x10 + mov r8, r2 + asrs r1, r1, #0x10 + subs r1, r1, r0 + strh r1, [r6, #0x18] + movs r0, #0 + ldrsh r1, [r3, r0] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r1, r2 + cmp r7, r0 + bgt _0806EB5E + adds r0, r1, #0 + subs r0, #0x80 + cmp r7, r0 + blt _0806EB5E + movs r0, #2 + ldrsh r2, [r3, r0] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r2, r1 + cmp ip, r0 + bgt _0806EB5E + adds r0, r2, #0 + subs r0, #0x80 + cmp ip, r0 + bge _0806EBA0 +_0806EB5E: + ldrh r0, [r6, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0806EB82 + movs r2, #0x18 + ldrsh r0, [r6, r2] + adds r0, #0x80 + cmp r0, #0 + blt _0806EB82 + movs r3, #0x18 + ldrsh r1, [r6, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0806EBA0 +_0806EB82: + ldrb r0, [r5, #8] + mov r1, sb + strb r0, [r1] + ldr r0, [r4] + bl TaskDestroy + b _0806ED2C + .align 2, 0 +_0806EB90: .4byte gCurTask +_0806EB94: .4byte 0x03000048 +_0806EB98: .4byte 0x0300004C +_0806EB9C: .4byte gCamera +_0806EBA0: + mov r2, sl + lsls r0, r2, #0x10 + asrs r7, r0, #0x10 + mov r3, r8 + lsls r0, r3, #0x10 + asrs r4, r0, #0x10 + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r4, #0 + bl Coll_Player_Enemy_Attack + mov r8, r0 + cmp r0, #0 + beq _0806EBCC + ldr r0, _0806EBC8 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0806ED2C + .align 2, 0 +_0806EBC8: .4byte gCurTask +_0806EBCC: + adds r0, r4, #3 + add r1, sp, #8 + str r1, [sp] + ldr r1, _0806EC34 @ =sa2__sub_801EE64 + str r1, [sp, #4] + adds r1, r7, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F07C + adds r2, r5, #0 + adds r2, #0x4c + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + ldr r0, [r5, #0x44] + asrs r2, r0, #8 + mov r3, sb + movs r1, #3 + ldrsb r1, [r3, r1] + lsls r0, r1, #3 + cmp r2, r0 + bgt _0806EC40 + ldr r0, [r6, #0x10] + mvns r0, r0 + movs r2, #0x80 + lsls r2, r2, #3 + ands r0, r2 + cmp r0, #0 + bne _0806EC0A + b _0806ED20 +_0806EC0A: + adds r1, r5, #0 + adds r1, #0x48 + movs r0, #0xa0 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x4a + mov r1, r8 + strh r1, [r0] + adds r1, r6, #0 + adds r1, #0x20 + movs r0, #2 + strb r0, [r1] + ldr r0, _0806EC38 @ =gCurTask + ldr r1, [r0] + ldr r0, _0806EC3C @ =Task_806ED3C + str r0, [r1, #8] + ldr r0, [r6, #0x10] + orrs r0, r2 + str r0, [r6, #0x10] + b _0806ED20 + .align 2, 0 +_0806EC34: .4byte sa2__sub_801EE64 +_0806EC38: .4byte gCurTask +_0806EC3C: .4byte Task_806ED3C +_0806EC40: + mov r3, sb + ldrb r0, [r3, #5] + adds r0, r1, r0 + lsls r0, r0, #3 + cmp r2, r0 + blt _0806EC94 + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0806ED20 + adds r1, r5, #0 + adds r1, #0x48 + ldr r0, _0806EC84 @ =0x0000FF60 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x4a + mov r1, r8 + strh r1, [r0] + adds r1, r6, #0 + adds r1, #0x20 + movs r0, #2 + strb r0, [r1] + ldr r0, [r6, #0x10] + ldr r1, _0806EC88 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r6, #0x10] + ldr r0, _0806EC8C @ =gCurTask + ldr r1, [r0] + ldr r0, _0806EC90 @ =Task_806ED3C + str r0, [r1, #8] + b _0806ED20 + .align 2, 0 +_0806EC84: .4byte 0x0000FF60 +_0806EC88: .4byte 0xFFFFFBFF +_0806EC8C: .4byte gCurTask +_0806EC90: .4byte Task_806ED3C +_0806EC94: + adds r3, r5, #0 + adds r3, #0x4e + ldrh r0, [r3] + movs r1, #0 + ldrsh r2, [r3, r1] + mov r8, r2 + cmp r2, #0 + bne _0806ED1C + ldr r2, _0806ECE4 @ =gPlayer + ldr r0, [r2, #4] + asrs r1, r0, #8 + adds r0, r4, #0 + adds r0, #8 + cmp r1, r0 + bgt _0806ED20 + subs r0, #0x28 + cmp r0, r1 + bgt _0806ED20 + ldr r1, [r6, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + cmp r1, #0 + beq _0806ECE8 + ldr r0, [r2] + asrs r1, r0, #8 + cmp r1, r7 + blt _0806ED20 + adds r0, r7, #0 + adds r0, #0x50 + cmp r0, r1 + blt _0806ED20 + movs r0, #0x3c + strh r0, [r3] + adds r0, r5, #0 + adds r0, #0x4a + mov r2, r8 + strh r2, [r0] + b _0806ED02 + .align 2, 0 +_0806ECE4: .4byte gPlayer +_0806ECE8: + ldr r0, [r2] + asrs r2, r0, #8 + cmp r2, r7 + bgt _0806ED20 + adds r0, r7, #0 + subs r0, #0x50 + cmp r0, r2 + bgt _0806ED20 + movs r0, #0x3c + strh r0, [r3] + adds r0, r5, #0 + adds r0, #0x4a + strh r1, [r0] +_0806ED02: + adds r1, r6, #0 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + ldr r0, _0806ED14 @ =gCurTask + ldr r1, [r0] + ldr r0, _0806ED18 @ =Task_806EEA4 + str r0, [r1, #8] + b _0806ED20 + .align 2, 0 +_0806ED14: .4byte gCurTask +_0806ED18: .4byte Task_806EEA4 +_0806ED1C: + subs r0, #1 + strh r0, [r3] +_0806ED20: + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite +_0806ED2C: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc b/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc new file mode 100644 index 0000000000..1ad59bb57e --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc @@ -0,0 +1,314 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _08074010 @ =gCurTask + ldr r0, [r0] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r3, r0 @ r6 = proj = s + mov r8, r6 @ r8 = proj = s + ldr r1, _08074014 @ =0x0300004B + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08073FAE + ldrh r0, [r6, #0x32] + adds r0, #0x3c + strh r0, [r6, #0x32] +_08073FAE: + movs r2, #0x30 + ldrsh r0, [r6, r2] + ldr r1, [r6, #0x34] + adds r1, r1, r0 + str r1, [r6, #0x34] + movs r7, #0x32 + ldrsh r0, [r6, r7] + ldr r2, [r6, #0x38] + adds r2, r2, r0 + str r2, [r6, #0x38] + ldr r0, [r6, #0x3c] + asrs r1, r1, #8 + adds r0, r0, r1 + strh r0, [r6, #0x16] + ldr r0, [r6, #0x44] + asrs r2, r2, #8 + adds r0, r0, r2 + strh r0, [r6, #0x18] + ldrh r0, [r6, #0x16] + mov sl, r0 @ sl = s->x + ldrh r1, [r6, #0x18] + str r1, [sp, #0xc] @ sp0C = s->y + ldr r5, _08074018 @ =gSineTable + ldr r2, _0807401C @ =0x0300004A + adds r4, r3, r2 + ldrb r0, [r4] @ r0 = proj->unk4A + ldr r7, _08074020 @ =0x000003FF + mov sb, r7 @ sb = 0x3FF + lsls r0, r0, #3 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + subs r7, #0x17 @ r7 = 1000 + adds r1, r7, #0 + bl Div + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 @ r1 = divRes + cmp r1, #0 + bge _0807402C + movs r2, #0x30 + ldrsh r0, [r6, r2] + adds r0, r1, r0 + ldr r1, _08074024 @ =0x0000FFFE + cmp r0, r1 + ble _0807402C + ldr r0, _08074028 @ =0x0000FFFF + strh r0, [r6, #0x30] + b _08074048 + .align 2, 0 +_08074010: .4byte gCurTask +_08074014: .4byte 0x0300004B +_08074018: .4byte gSineTable +_0807401C: .4byte 0x0300004A +_08074020: .4byte 0x000003FF +_08074024: .4byte 0x0000FFFE +_08074028: .4byte 0x0000FFFF +_0807402C: + ldrb r0, [r4] + lsls r0, r0, #2 + mov r1, sb + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r7, #0 + bl Div + ldrh r1, [r6, #0x30] + adds r1, r1, r0 + strh r1, [r6, #0x30] +_08074048: + ldr r1, _080740AC @ =gSineTable + mov r4, r8 @ r4 = r8 = proj + adds r4, #0x4a + ldrb r0, [r4] + lsls r0, r0, #3 + movs r7, #0x80 + lsls r7, r7, #2 + adds r0, r0, r7 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0xfa + lsls r1, r1, #2 + bl Div + mov r2, r8 @ r2 = r8 = proj + ldr r1, [r2, #0x38] + adds r1, r1, r0 + str r1, [r2, #0x38] + mov r7, r8 @ r7 = r8 = proj + adds r7, #0x48 + ldrh r0, [r7] + str r4, [sp, #0x10] @ sp10 = &proj->unk4A + cmp r0, #0 + beq _0807407E + subs r0, #1 + strh r0, [r7] +_0807407E: + mov r0, sl + lsls r5, r0, #0x10 + asrs r1, r5, #0x10 + mov sb, r1 @ sb = r1 = s->x + ldr r2, [sp, #0xc] + lsls r4, r2, #0x10 + asrs r0, r4, #0x10 + mov sl, r0 @ sl = s->y + adds r0, r6, #0 + mov r2, sl + bl Coll_Player_Projectile + cmp r0, #0 + bne _080740A0 + ldrh r0, [r7] + cmp r0, #0 + bne _080740B0 +_080740A0: + mov r0, sb + mov r1, sl + bl CreatePenMk1SnowballDebris + b _080741BC_destroy_n_return + .align 2, 0 +_080740AC: .4byte gSineTable +_080740B0: + ldr r2, _080740F0 @ =gCamera + ldrh r0, [r6, #0x16] + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r6, #0x16] + ldrh r0, [r6, #0x18] + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r6, #0x18] + add r1, sp, #8 + str r1, [sp] + ldr r0, _080740F4 @ =sa2__sub_801EE64 + str r0, [sp, #4] + mov r0, sl + mov r1, sb + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F07C + adds r3, r0, #0 + cmp r3, #0 + ble _080740F8 + mov r0, r8 + adds r0, #0x4b + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _080740EC + mov r7, r8 + strh r1, [r7, #0x32] +_080740EC: + movs r0, #1 + b _0807411E + .align 2, 0 +_080740F0: .4byte gCamera +_080740F4: .4byte sa2__sub_801EE64 +_080740F8: + mov r0, r8 + adds r0, #0x4b + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + beq _08074118 + movs r0, #0 + ldr r1, [sp, #0x10] @ r1 = sp10 = &proj->unk4A + strb r0, [r1] + mov r7, r8 + movs r0, #0x32 + ldrsh r1, [r7, r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bgt _080740A0 +_08074118: + cmp r3, #0 + bge _08074120 + movs r0, #0 +_0807411E: + strb r0, [r2] +_08074120: + ldrb r2, [r2] + cmp r2, #0 + bne _08074174 + cmp r3, #0 + bge _08074138 + lsls r1, r3, #8 + mov r7, r8 + ldr r0, [r7, #0x38] + adds r0, r0, r1 + str r0, [r7, #0x38] + strh r2, [r7, #0x32] + b _08074144 +_08074138: + lsls r0, r3, #6 + mov r1, r8 + ldrh r1, [r1, #0x32] + adds r0, r0, r1 + mov r2, r8 + strh r0, [r2, #0x32] +_08074144: + add r1, sp, #8 + ldr r7, [sp, #0x10] @ r7 = sp10 = &proj->unk4A + ldrb r0, [r7] + ldrb r1, [r1] + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0807415E + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_0807415E: + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x3f + ble _08074170 +_08074166_debr_destroy_ret: + asrs r0, r5, #0x10 @ oldWorldX + asrs r1, r4, #0x10 @ oldWorldY + bl CreatePenMk1SnowballDebris + b _080741BC_destroy_n_return +_08074170: + ldr r0, [sp, #0x10] @ r0 = sp10 = &proj->unk4A + strb r1, [r0] +_08074174: + adds r0, r3, #5 + cmp r0, #5 + bhi _08074198 + add r0, sp, #8 + ldrb r1, [r0] + adds r0, r1, #0 + adds r0, #0x3f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1c + bls _08074166_debr_destroy_ret + adds r0, r1, #0 + adds r0, #0x5d + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1c + bhi _080741CC + b _08074166_debr_destroy_ret +_08074198: + ldrh r0, [r6, #0x16] + adds r0, #0x3c + lsls r0, r0, #0x10 + movs r1, #0xb4 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _080741BC_destroy_n_return + movs r1, #0x18 + ldrsh r0, [r6, r1] + adds r0, #0x3c + cmp r0, #0 + blt _080741BC_destroy_n_return + movs r2, #0x18 + ldrsh r1, [r6, r2] + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + ble _080741CC +_080741BC_destroy_n_return: + ldr r0, _080741C8 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _080741D8_return + .align 2, 0 +_080741C8: .4byte gCurTask +_080741CC: + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite +_080741D8_return: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc b/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc new file mode 100644 index 0000000000..2c01486160 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc @@ -0,0 +1,246 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _08070BA0 @ =gCurTask + ldr r0, [r4] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r3, r0 @ r6 = senbon + adds r0, #0xc + adds r5, r3, r0 @ r5 = s + ldr r1, [r6] + mov r8, r1 @ r8 = me + ldrb r2, [r6, #8] + lsls r2, r2, #3 + ldrh r0, [r6, #4] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldX + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r6, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r2, r2, #0x10 + asrs r7, r2, #0x10 @ r7 = worldX + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov ip, r1 @ ip = worldY + ldr r2, _08070BA4 @ =0x03000048 + adds r3, r3, r2 + movs r0, #0 + ldrsh r1, [r3, r0] + ldr r0, [r6, #0x40] + adds r0, r0, r1 + str r0, [r6, #0x40] @ senbon->unk40 += senbon->unk48 + asrs r0, r0, #8 + adds r0, r7, r0 + lsls r0, r0, #0x10 + ldrh r1, [r6, #0x3c] + add r1, ip + lsls r1, r1, #0x10 + ldr r3, _08070BA8 @ =gCamera + ldrh r2, [r3] + mov sb, r2 + lsrs r2, r0, #0x10 + mov sl, r2 @ sl = offsetWorldX = worldX + senbon->unk40; + asrs r0, r0, #0x10 + mov r2, sb + subs r0, r0, r2 + strh r0, [r5, #0x16] + ldrh r0, [r3, #2] + lsrs r2, r1, #0x10 + mov sb, r2 + asrs r1, r1, #0x10 + subs r1, r1, r0 + strh r1, [r5, #0x18] + movs r0, #0 + ldrsh r1, [r3, r0] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r1, r2 + cmp r7, r0 + bgt _08070B6C + adds r0, r1, #0 + subs r0, #0x80 + cmp r7, r0 + blt _08070B6C + movs r0, #2 + ldrsh r2, [r3, r0] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r2, r1 + cmp ip, r0 + bgt _08070B6C + adds r0, r2, #0 + subs r0, #0x80 + cmp ip, r0 + bge _08070BAC +_08070B6C: + ldrh r0, [r5, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08070B90 + movs r2, #0x18 + ldrsh r0, [r5, r2] + adds r0, #0x80 + cmp r0, #0 + blt _08070B90 + movs r3, #0x18 + ldrsh r1, [r5, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08070BAC +_08070B90: + ldrb r0, [r6, #8] + mov r1, r8 + strb r0, [r1] + ldr r0, [r4] + bl TaskDestroy + b _08070C98 + .align 2, 0 +_08070BA0: .4byte gCurTask +_08070BA4: .4byte 0x03000048 +_08070BA8: .4byte gCamera +_08070BAC: + mov r2, sl @ r2 = sl = offsetWorldX + lsls r0, r2, #0x10 + asrs r4, r0, #0x10 + mov r3, sb + lsls r2, r3, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl Coll_Player_Enemy_Attack + cmp r0, #0 + beq _08070BD4 + ldr r0, _08070BD0 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08070C98 + .align 2, 0 +_08070BD0: .4byte gCurTask +_08070BD4: + ldr r0, [r6, #0x40] + asrs r2, r0, #8 + mov r0, r8 + movs r1, #3 + ldrsb r1, [r0, r1] + adds r0, r1, #1 + lsls r0, r0, #3 + cmp r2, r0 + bgt _08070BFA + adds r1, r6, #0 + adds r1, #0x48 + movs r0, #0xa0 + strh r0, [r1] + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r5, #0x10] + b _08070C8C +_08070BFA: + mov r3, r8 + ldrb r0, [r3, #5] + adds r0, r1, r0 + subs r0, #1 + lsls r0, r0, #3 + cmp r2, r0 + blt _08070C24 + adds r1, r6, #0 + adds r1, #0x48 + ldr r0, _08070C1C @ =0x0000FF60 + strh r0, [r1] + ldr r0, [r5, #0x10] + ldr r1, _08070C20 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r5, #0x10] + b _08070C8C + .align 2, 0 +_08070C1C: .4byte 0x0000FF60 +_08070C20: .4byte 0xFFFFFBFF +_08070C24: + adds r1, r6, #0 + adds r1, #0x46 + ldrh r0, [r1] + movs r3, #0 + ldrsh r2, [r1, r3] + cmp r2, #0 + beq _08070C38 + subs r0, #1 + strh r0, [r1] + b _08070C8C +_08070C38: + ldr r1, [r5, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + cmp r1, #0 + beq _08070C64 + ldr r0, _08070C60 @ =gPlayer + ldr r0, [r0] + asrs r1, r0, #8 + cmp r1, r4 + blt _08070C8C + adds r0, r4, #0 + adds r0, #0x50 + cmp r0, r1 + blt _08070C8C + adds r0, r6, #0 + adds r0, #0x44 + strh r2, [r0] + b _08070C7C + .align 2, 0 +_08070C60: .4byte gPlayer +_08070C64: + ldr r0, _08070CA8 @ =gPlayer + ldr r0, [r0] + asrs r2, r0, #8 + cmp r2, r4 + bgt _08070C8C + adds r0, r4, #0 + subs r0, #0x50 + cmp r0, r2 + bgt _08070C8C + adds r0, r6, #0 + adds r0, #0x44 + strh r1, [r0] +_08070C7C: + adds r1, r5, #0 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + ldr r0, _08070CAC @ =gCurTask + ldr r1, [r0] + ldr r0, _08070CB0 @ =Task_8070CB4 + str r0, [r1, #8] +_08070C8C: + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + bl DisplaySprite +_08070C98: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08070CA8: .4byte gPlayer +_08070CAC: .4byte gCurTask +_08070CB0: .4byte Task_8070CB4 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc b/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc new file mode 100644 index 0000000000..f6f20b7c17 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc @@ -0,0 +1,278 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + ldr r0, _0806E628 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r4, r0 @ r6 = proj + ldr r0, [r6, #0x34] + movs r1, #0x80 + lsls r1, r1, #1 + bl Div + strh r0, [r6, #0x16] + ldr r0, _0806E62C @ =0x0300004C + adds r5, r4, r0 + ldrh r0, [r5] + adds r0, #0x28 + strh r0, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x18] + adds r0, r0, r1 + strh r0, [r6, #0x18] + ldrh r2, [r6, #0x18] + str r2, [sp, #0x10] @ sp10 = s->y + ldrh r0, [r6, #0x16] + str r0, [sp, #0xc] @ sp0C = s->x + movs r2, #0x16 + ldrsh r1, [r6, r2] + mov sb, r1 @ sb = + ldr r0, [sp, #0x10] + lsls r0, r0, #0x10 + mov sl, r0 + asrs r7, r0, #0x10 + adds r0, r6, #0 + adds r2, r7, #0 + bl Coll_Player_Projectile + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + mov r8, r1 + ldr r3, _0806E630 @ =gCamera + ldrh r0, [r6, #0x16] + ldrh r1, [r3] + subs r0, r0, r1 + strh r0, [r6, #0x16] + ldrh r2, [r6, #0x18] + ldrh r1, [r3, #2] + subs r2, r2, r1 + strh r2, [r6, #0x18] + adds r0, #0x14 + lsls r0, r0, #0x10 + movs r1, #0x8a + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0806E61E + movs r1, #0x18 + ldrsh r0, [r6, r1] + adds r0, #0x14 + cmp r0, #0 + blt _0806E61E + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xf0 + ble _0806E634 +_0806E61E: + ldr r0, _0806E628 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0806E782_return + .align 2, 0 +_0806E628: .4byte gCurTask +_0806E62C: .4byte 0x0300004C +_0806E630: .4byte gCamera +_0806E634: + add r2, sp, #8 + str r2, [sp] + ldr r0, _0806E794 @ =sa2__sub_801EE64 + str r0, [sp, #4] + adds r0, r7, #0 + mov r1, sb + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F07C + mov sb, r0 + cmp r0, #0 + ble _0806E656 + mov r0, r8 + cmp r0, #0 + bne _0806E656 + b _0806E76A +_0806E656: + mov r1, r8 + cmp r1, #0 + beq _0806E662 + add r1, sp, #8 + movs r0, #0 + strb r0, [r1] +_0806E662: + ldrh r1, [r5] + ldr r2, [r6, #0x34] + str r2, [sp, #0x14] + movs r0, #0x2d + strh r0, [r6, #0x30] + movs r7, #0 + mov r0, sl + str r0, [sp, #0x28] + ldr r2, _0806E798 @ =0x0300004C + adds r2, r4, r2 + str r2, [sp, #0x18] @ sp18 = unk4C + ldr r0, _0806E79C @ =0x03000058 + adds r0, r4, r0 + str r0, [sp, #0x1c] @ sp1C = unk58 + ldr r2, _0806E7A0 @ =0x03000064 + adds r2, r4, r2 + str r2, [sp, #0x20] @ sp20 = unk64 + ldr r0, _0806E7A4 @ =0x03000034 + adds r0, r4, r0 + str r0, [sp, #0x38] @ sp38 = unk34 + ldr r2, _0806E7A8 @ =0x03000070 + adds r2, r4, r2 + str r2, [sp, #0x24] @ sp24 = unk70 + ldr r0, _0806E7AC @ =0x03000088 + adds r0, r4, r0 + str r0, [sp, #0x34] @ sp34 = unk88 + ldr r2, _0806E7B0 @ =0x03000021 + adds r2, r4, r2 + str r2, [sp, #0x30] @ sp30 = unk21 + ldr r0, _0806E7B4 @ =0x03000020 + adds r0, r4, r0 + str r0, [sp, #0x2c] @ sp2C = unk20 + ldr r2, _0806E7B8 @ =gSineTable + mov sl, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r8, r1 +_0806E6AC: + mov r0, r8 + lsls r4, r0, #2 + add r4, r8 + lsls r4, r4, #1 + ldr r2, _0806E7BC @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _0806E7C0 @ =0x00196225 + muls r0, r1, r0 + ldr r1, _0806E7C4 @ =0x3C6EF35F + adds r0, r0, r1 + str r0, [r2] + movs r1, #4 + bl Mod + adds r1, r0, #0 + adds r1, #0x10 + rsbs r0, r4, #0 + bl Div + lsls r4, r7, #1 + ldr r2, [sp, #0x18] + adds r5, r2, r4 @ r5 = &proj->unk4C + add r1, sp, #8 + ldrb r1, [r1] + lsls r1, r1, #2 + movs r2, #0x7f + ands r1, r2 + adds r2, #0x81 + adds r1, r1, r2 + lsls r1, r1, #1 + add r1, sl + movs r2, #0 + ldrsh r1, [r1, r2] + muls r0, r1, r0 + ldr r1, _0806E7C8 @ =0x00004E20 + bl __divsi3 + strh r0, [r5] + ldr r1, [sp, #0x1c] + adds r0, r1, r4 + mov r2, sp + ldrh r2, [r2, #0xc] + strh r2, [r0] + ldr r0, [sp, #0x20] + adds r4, r0, r4 + ldr r1, [sp, #0x28] + asrs r0, r1, #0x10 + add r0, sb + strh r0, [r4] + lsls r4, r7, #2 + ldr r2, [sp, #0x38] + adds r0, r2, r4 + ldr r1, [sp, #0x14] + str r1, [r0] + add r1, sp, #8 + lsls r0, r7, #3 + subs r0, #0x18 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0806E7CC @ =0x000003FF + ands r0, r1 + lsls r0, r0, #1 + add r0, sl + movs r2, #0 + ldrsh r0, [r0, r2] + movs r1, #0x1e + bl Div + ldr r1, [sp, #0x24] + adds r4, r1, r4 + str r0, [r4] + ldr r2, [sp, #0x34] + adds r1, r2, r7 + movs r0, #1 + strb r0, [r1] + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #5 + bls _0806E6AC + movs r0, #0xff + ldr r1, [sp, #0x30] + strb r0, [r1] + ldr r0, _0806E7D0 @ =0x06012680 + str r0, [r6, #4] + movs r1, #0 + ldr r0, _0806E7D4 @ =0x000001A5 + strh r0, [r6, #0xa] + ldr r2, [sp, #0x2c] + strb r1, [r2] + ldr r0, _0806E7D8 @ =gCurTask + ldr r1, [r0] + ldr r0, _0806E7DC @ =sub_806E7E0 + str r0, [r1, #8] +_0806E76A: + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite + mov r0, sp + ldrh r0, [r0, #0xc] + strh r0, [r6, #0x16] + mov r1, sp + ldrh r1, [r1, #0x10] + strh r1, [r6, #0x18] +_0806E782_return: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806E794: .4byte sa2__sub_801EE64 +_0806E798: .4byte 0x0300004C +_0806E79C: .4byte 0x03000058 +_0806E7A0: .4byte 0x03000064 +_0806E7A4: .4byte 0x03000034 +_0806E7A8: .4byte 0x03000070 +_0806E7AC: .4byte 0x03000088 +_0806E7B0: .4byte 0x03000021 +_0806E7B4: .4byte 0x03000020 +_0806E7B8: .4byte gSineTable +_0806E7BC: .4byte gPseudoRandom +_0806E7C0: .4byte 0x00196225 +_0806E7C4: .4byte 0x3C6EF35F +_0806E7C8: .4byte 0x00004E20 +_0806E7CC: .4byte 0x000003FF +_0806E7D0: .4byte 0x06012680 +_0806E7D4: .4byte 0x000001A5 +_0806E7D8: .4byte gCurTask +_0806E7DC: .4byte sub_806E7E0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc b/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc new file mode 100644 index 0000000000..b58ff89115 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc @@ -0,0 +1,381 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r4, _0806DE64 @ =gCurTask + ldr r0, [r4] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r3 + mov r8, r0 @ r8 = pierrot + ldr r0, _0806DE68 @ =0x0300000C + adds r5, r3, r0 @ r5 = s + mov r1, r8 + ldr r1, [r1] + str r1, [sp, #0xc] @ sp0C = me + mov r6, r8 @ r6 = r8 = pierrot + ldrb r2, [r6, #8] + lsls r2, r2, #3 + ldrh r0, [r6, #4] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldX + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r6, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 @ r6 = worldX + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 @ r7 = worldY + ldr r1, _0806DE6C @ =0x03000048 + adds r0, r3, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + mov r2, r8 @ r2 = r8 = pierrot + ldr r0, [r2, #0x44] + adds r0, r0, r1 + str r0, [r2, #0x44] @ pierrot->unk44 += pierrot->unk48 + asrs r0, r0, #8 + adds r0, r6, r0 + lsls r0, r0, #0x10 @ r0 = newX = worldX + I(pierrot->qUnk44); + ldr r1, _0806DE70 @ =0x0300004A + adds r3, r3, r1 + ldrh r1, [r3] + adds r1, r7, r1 + lsls r1, r1, #0x10 + ldr r2, _0806DE74 @ =0xFFD00000 + adds r1, r1, r2 @ r1 = newY = worldY + pierrot->unk4A - Q(0.1875); + ldr r3, _0806DE78 @ =gCamera + ldrh r2, [r3] + mov sl, r2 + lsrs r2, r0, #0x10 + mov sb, r2 @ sb = newX + asrs r0, r0, #0x10 + mov r2, sl + subs r0, r0, r2 + strh r0, [r5, #0x16] @ s->x = newX - gCamera.x + ldrh r0, [r3, #2] + lsrs r2, r1, #0x10 + mov sl, r2 @ sl = newY + asrs r1, r1, #0x10 + subs r1, r1, r0 + strh r1, [r5, #0x18] @ s->y = + movs r0, #0 + ldrsh r1, [r3, r0] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r1, r2 + cmp r6, r0 + bgt _0806DE30 + adds r0, r1, #0 + subs r0, #0x80 + cmp r6, r0 + blt _0806DE30 + movs r6, #2 + ldrsh r2, [r3, r6] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r2, r1 + cmp r7, r0 + bgt _0806DE30 + adds r0, r2, #0 + subs r0, #0x80 + cmp r7, r0 + bge _0806DE7C +_0806DE30: + ldrh r0, [r5, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0806DE54 + movs r2, #0x18 + ldrsh r0, [r5, r2] + adds r0, #0x80 + cmp r0, #0 + blt _0806DE54 + movs r3, #0x18 + ldrsh r1, [r5, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0806DE7C +_0806DE54: + mov r6, r8 @ r6 = r8 = pierrot + ldrb r0, [r6, #8] + ldr r1, [sp, #0xc] @ r1 = sp0C = me + strb r0, [r1] + ldr r0, [r4] + bl TaskDestroy + b _0806E04C_return + .align 2, 0 +_0806DE64: .4byte gCurTask +_0806DE68: .4byte 0x0300000C +_0806DE6C: .4byte 0x03000048 +_0806DE70: .4byte 0x0300004A +_0806DE74: .4byte 0xFFD00000 +_0806DE78: .4byte gCamera +_0806DE7C: + ldr r2, _0806DF60 @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #0x80 + ands r1, r0 + mov r3, sb @ r3 = sb = newX + lsls r3, r3, #0x10 + str r3, [sp, #0x10] @ sp10 = r3 = sb = newX + mov r6, sl + lsls r6, r6, #0x10 + mov sb, r6 @ sb = newY + cmp r1, #0 + beq _0806DE96 + b _0806DFD8 +_0806DE96: + ldr r1, [r5, #0x30] + subs r0, #0x81 + cmp r1, r0 + bne _0806DEA0 + b _0806DFB6 +_0806DEA0: + asrs r1, r3, #0x10 @ r1 = newX + adds r0, r5, #0 + adds r0, #0x34 @ + movs r6, #0 + ldrsb r6, [r0, r6] + adds r4, r1, r6 @ r4 = left = newX + s->hitboxes[1].d.sData[0]; + ldr r1, [r2] + asrs r1, r1, #8 + ldr r3, _0806DF64 @ =gPlayerBodyPSI + adds r0, r3, #0 + adds r0, #0x38 + movs r7, #0 + ldrsb r7, [r0, r7] + adds r1, r1, r7 + mov ip, r3 + cmp r4, r1 @ (left <= playerLeft) + bgt _0806DED8 + adds r0, r5, #0 @ r0 = r5 = s + adds r0, #0x36 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r4, r0 + cmp r0, r1 + bge _0806DEF0 + cmp r4, r1 + blt _0806DFB6 +_0806DED8: + mov r0, ip + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r7 + adds r0, r1, r0 + mov r1, sl + lsls r1, r1, #0x10 + mov sb, r1 + cmp r0, r4 + blt _0806DFB6 +_0806DEF0: + mov r3, sl + lsls r1, r3, #0x10 + asrs r0, r1, #0x10 + adds r3, r5, #0 + adds r3, #0x35 + movs r6, #0 + ldrsb r6, [r3, r6] + adds r4, r0, r6 + ldr r0, [r2, #4] + asrs r0, r0, #8 + mov r3, ip + adds r3, #0x39 + movs r7, #0 + ldrsb r7, [r3, r7] + adds r3, r0, r7 + mov sb, r1 @ sb = r1 = + cmp r4, r3 + bgt _0806DF2A + adds r0, r5, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r4, r0 + cmp r0, r3 + bge _0806DF3C + cmp r4, r3 + blt _0806DFB6 +_0806DF2A: + mov r0, ip + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r7 + adds r0, r3, r0 + cmp r0, r4 + blt _0806DFB6 +_0806DF3C: + ldr r1, [r2, #0x10] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806DFB0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0806DF7C + movs r6, #0xc + ldrsh r0, [r2, r6] + cmp r0, #0 + ble _0806DF68 + adds r1, r0, #0 + ldr r0, [r2] + adds r0, r0, r1 + b _0806DF70 + .align 2, 0 +_0806DF60: .4byte gPlayer +_0806DF64: .4byte gPlayerBodyPSI +_0806DF68: + movs r3, #0xc + ldrsh r1, [r2, r3] + ldr r0, [r2] + subs r0, r0, r1 +_0806DF70: + str r0, [r2] + ldr r0, [r2, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + b _0806DF9C +_0806DF7C: + movs r6, #0xc + ldrsh r0, [r2, r6] + cmp r0, #0 + bge _0806DF8C + adds r1, r0, #0 + ldr r0, [r2] + adds r0, r0, r1 + b _0806DF94 +_0806DF8C: + movs r3, #0xc + ldrsh r1, [r2, r3] + ldr r0, [r2] + subs r0, r0, r1 +_0806DF94: + str r0, [r2] + ldr r0, [r2, #0x10] + movs r1, #1 + orrs r0, r1 +_0806DF9C: + str r0, [r2, #0x10] + movs r6, #0xc + ldrsh r0, [r2, r6] + rsbs r0, r0, #0 + strh r0, [r2, #0xc] + movs r1, #8 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2, #8] + b _0806DFB6 +_0806DFB0: + adds r0, r2, #0 + bl Coll_DamagePlayer +_0806DFB6: + ldr r2, [sp, #0x10] @ r2 = sp10 = newX + asrs r1, r2, #0x10 + mov r3, sb @ r3 = sb = + asrs r2, r3, #0x10 + adds r0, r5, #0 + bl Coll_Player_Enemy_Attack + cmp r0, #0 + beq _0806DFD8 + ldr r0, _0806DFD4 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0806E04C_return + .align 2, 0 +_0806DFD4: .4byte gCurTask +_0806DFD8: + mov r6, sb + asrs r0, r6, #0x10 + ldr r2, [sp, #0x10] @ r2 = sp10 = newX + asrs r1, r2, #0x10 + add r3, sp, #8 + str r3, [sp] + ldr r2, _0806E020 @ =sa2__sub_801EE64 + str r2, [sp, #4] + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F07C + mov r2, r8 @ r2 = r8 = pierrot + adds r2, #0x4a + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + mov r6, r8 @ r6 = r8 = pierrot + ldr r0, [r6, #0x44] + asrs r2, r0, #8 + ldr r0, [sp, #0xc] @ r0 = sp0C = me + movs r1, #3 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + cmp r2, r0 + bgt _0806E024 + mov r1, r8 @ r1 = r8 = pierrot + adds r1, #0x48 + movs r0, #0xa0 + strh r0, [r1] + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + b _0806E03E + .align 2, 0 +_0806E020: .4byte sa2__sub_801EE64 +_0806E024: + ldr r3, [sp, #0xc] @ r3 = sp0C = me + ldrb r0, [r3, #5] + adds r0, r1, r0 + lsls r0, r0, #3 + cmp r2, r0 + blt _0806E040_upd_spr_and_return + mov r1, r8 @ r1 = r8 = pierrot + adds r1, #0x48 + ldr r0, _0806E05C @ =0x0000FF60 + strh r0, [r1] + ldr r0, [r5, #0x10] + ldr r1, _0806E060 @ =0xFFFFFBFF + ands r0, r1 +_0806E03E: + str r0, [r5, #0x10] +_0806E040_upd_spr_and_return: + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + bl DisplaySprite +_0806E04C_return: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806E05C: .4byte 0x0000FF60 +_0806E060: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc b/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc new file mode 100644 index 0000000000..58810495ed --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc @@ -0,0 +1,273 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r1, _08074648 @ =gCurTask + ldr r0, [r1] + ldrh r7, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r7 + mov sb, r0 + ldr r2, _0807464C @ =0x0300000C + adds r5, r7, r2 + ldr r3, [r0] + str r3, [sp] + ldrb r1, [r0, #8] + lsls r1, r1, #3 + ldrh r0, [r0, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + mov sl, r1 + ldrb r1, [r3, #1] + lsls r1, r1, #3 + mov r4, sb + ldrh r0, [r4, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + str r1, [sp, #4] + mov r0, sl + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r6, [r4, #0x50] + ldrb r2, [r3, #5] + lsls r2, r2, #0xb + ldr r1, _08074650 @ =gSineTable + mov r8, r1 + ldr r3, _08074654 @ =0x03000058 + adds r0, r7, r3 + movs r4, #0 + ldrsh r3, [r0, r4] + ldr r0, _08074658 @ =0x0300004E + adds r4, r7, r0 + ldrh r1, [r4] + movs r0, #0x7f + ands r0, r1 + muls r0, r3, r0 + ldr r1, _0807465C @ =0x000003FF + mov ip, r1 + ands r0, r1 + lsls r0, r0, #1 + add r0, r8 + movs r3, #0 + ldrsh r0, [r0, r3] + muls r0, r2, r0 + asrs r0, r0, #0xe + mov r1, sb + str r0, [r1, #0x50] + subs r6, r0, r6 + str r6, [sp, #0x10] + ldr r6, [r1, #0x54] + ldr r3, [sp] + ldrb r2, [r3, #6] + lsls r2, r2, #0xb + ldr r1, _08074660 @ =0x0300005A + adds r0, r7, r1 + movs r1, #0 + ldrsh r3, [r0, r1] + ldrh r1, [r4] + movs r0, #0x3f + ands r0, r1 + muls r0, r3, r0 + mov r3, ip + ands r0, r3 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + add r0, r8 + movs r3, #0 + ldrsh r0, [r0, r3] + muls r0, r2, r0 + asrs r0, r0, #0xe + mov r1, sb + str r0, [r1, #0x54] + subs r3, r0, r6 + ldrh r0, [r4] + adds r0, #1 + movs r2, #0 + movs r1, #0 + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x40 + beq _080745D4 + cmp r0, #0x80 + bne _080745E8 +_080745D4: + ldr r4, _08074664 @ =0x03000046 + adds r0, r7, r4 + strh r1, [r0] + ldr r1, _08074668 @ =0x0300002C + adds r0, r7, r1 + strb r2, [r0] + ldr r2, _08074648 @ =gCurTask + ldr r1, [r2] + ldr r0, _0807466C @ =sub_8074928 + str r0, [r1, #8] +_080745E8: + mov r2, sb + adds r2, #0x4e + ldrh r1, [r2] + movs r0, #0x7f + ands r0, r1 + strh r0, [r2] + ldr r7, _08074670 @ =gCamera + ldrh r0, [r7] + ldr r4, [sp, #8] + subs r0, r4, r0 + ldr r1, [sp, #0x10] + asrs r6, r1, #5 + adds r0, r0, r6 + strh r0, [r5, #0x16] + asrs r4, r3, #4 + adds r0, r4, #0 + movs r1, #0x40 + bl Mod + strh r0, [r5, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3f + beq _08074674 + adds r0, r4, #0 + movs r1, #0x40 + bl Mod + ldrh r1, [r7, #2] + ldr r2, [sp, #0xc] + subs r1, r2, r1 + subs r1, r1, r0 + strh r1, [r5, #0x18] + mov r3, sl + adds r1, r3, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, [sp, #4] + subs r2, r0, r4 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + bl Coll_Player_Enemy_Attack + cmp r0, #0 + beq _08074694 + b _080746F2 + .align 2, 0 +_08074648: .4byte gCurTask +_0807464C: .4byte 0x0300000C +_08074650: .4byte gSineTable +_08074654: .4byte 0x03000058 +_08074658: .4byte 0x0300004E +_0807465C: .4byte 0x000003FF +_08074660: .4byte 0x0300005A +_08074664: .4byte 0x03000046 +_08074668: .4byte 0x0300002C +_0807466C: .4byte sub_8074928 +_08074670: .4byte gCamera +_08074674: + mov r2, sl + adds r1, r2, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r3, [sp, #4] + lsls r2, r3, #0x10 + asrs r2, r2, #0x10 + adds r0, r5, #0 + bl Coll_Player_Enemy_Attack + cmp r0, #0 + bne _080746F2 + ldrh r0, [r7, #2] + ldr r4, [sp, #0xc] + subs r0, r4, r0 + strh r0, [r5, #0x18] +_08074694: + ldr r2, _080746FC @ =gCamera + movs r0, #0 + ldrsh r1, [r2, r0] + movs r3, #0xb8 + lsls r3, r3, #1 + adds r0, r1, r3 + ldr r4, [sp, #8] + cmp r4, r0 + bgt _080746C6 + adds r0, r1, #0 + subs r0, #0x80 + cmp r4, r0 + blt _080746C6 + movs r0, #2 + ldrsh r1, [r2, r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r0, r1, r2 + ldr r3, [sp, #0xc] + cmp r3, r0 + bgt _080746C6 + adds r0, r1, #0 + subs r0, #0x80 + cmp r3, r0 + bge _08074704 +_080746C6: + ldrh r0, [r5, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _080746EA + movs r4, #0x18 + ldrsh r0, [r5, r4] + adds r0, #0x80 + cmp r0, #0 + blt _080746EA + movs r0, #0x18 + ldrsh r1, [r5, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08074704 +_080746EA: + mov r1, sb + ldrb r0, [r1, #8] + ldr r2, [sp] + strb r0, [r2] +_080746F2: + ldr r0, _08074700 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08074728 + .align 2, 0 +_080746FC: .4byte gCamera +_08074700: .4byte gCurTask +_08074704: + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + bl DisplaySprite + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r5, #0x10] + adds r0, r5, #0 + bl DisplaySprite + ldr r0, [r5, #0x10] + ldr r1, _08074738 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r5, #0x10] +_08074728: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08074738: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc b/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc new file mode 100644 index 0000000000..e3c2e1b643 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc @@ -0,0 +1,292 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r1, _08074A64 @ =gCurTask + ldr r0, [r1] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r3 + mov sl, r0 + ldr r2, _08074A68 @ =0x0300000C + adds r7, r3, r2 + ldr r4, [r0] + str r4, [sp] + ldrb r1, [r0, #8] + lsls r1, r1, #3 + ldrh r0, [r0, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + str r1, [sp, #8] + ldrb r1, [r4, #1] + lsls r1, r1, #3 + mov r5, sl + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + str r1, [sp, #4] + ldr r5, [sp, #8] + mov ip, r1 + mov r6, sl + ldr r0, [r6, #0x50] + rsbs r0, r0, #0 + str r0, [sp, #0xc] + ldrb r2, [r4, #5] + lsls r2, r2, #0xb + ldr r1, _08074A6C @ =0x03000058 + adds r0, r3, r1 + movs r6, #0 + ldrsh r4, [r0, r6] + ldr r0, _08074A70 @ =0x0300004E + adds r6, r3, r0 + ldrh r0, [r6] + subs r0, #1 + movs r1, #0x7f + ands r0, r1 + muls r0, r4, r0 + ldr r1, _08074A74 @ =0x000003FF + mov sb, r1 + ands r0, r1 + lsls r0, r0, #1 + ldr r4, _08074A78 @ =gSineTable + adds r0, r0, r4 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r2, r0 + asrs r0, r0, #0xe + mov r2, sl + str r0, [r2, #0x50] + ldr r4, [r2, #0x54] + mov r8, r4 + ldr r0, [sp] + ldrb r2, [r0, #6] + lsls r2, r2, #0xb + ldr r1, _08074A7C @ =0x0300005A + adds r0, r3, r1 + movs r1, #0 + ldrsh r4, [r0, r1] + ldrh r0, [r6] + subs r0, #1 + movs r1, #0x3f + ands r0, r1 + muls r0, r4, r0 + mov r4, sb + ands r0, r4 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #1 + ldr r1, _08074A78 @ =gSineTable + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + muls r0, r2, r0 + asrs r0, r0, #0xe + mov r6, sl + str r0, [r6, #0x54] + mov r1, r8 + subs r2, r0, r1 + ldr r4, _08074A80 @ =gCamera + ldrh r0, [r4] + subs r0, r5, r0 + ldr r6, [sp, #0xc] + asrs r1, r6, #5 + adds r0, r0, r1 + strh r0, [r7, #0x16] + ldrh r0, [r4, #2] + mov r1, ip + subs r0, r1, r0 + asrs r1, r2, #4 + subs r0, r0, r1 + strh r0, [r7, #0x18] + ldr r6, _08074A84 @ =0x03000046 + adds r3, r3, r6 + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + movs r0, #0 + ldrsh r1, [r4, r0] + movs r3, #0xb8 + lsls r3, r3, #1 + adds r0, r1, r3 + ldr r3, _08074A64 @ =gCurTask + cmp r5, r0 + bgt _08074A30 + adds r0, r1, #0 + subs r0, #0x80 + cmp r5, r0 + blt _08074A30 + movs r5, #2 + ldrsh r1, [r4, r5] + movs r6, #0x90 + lsls r6, r6, #1 + adds r0, r1, r6 + cmp ip, r0 + bgt _08074A30 + adds r0, r1, #0 + subs r0, #0x80 + cmp ip, r0 + bge _08074A88 +_08074A30: + ldrh r0, [r7, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08074A54 + movs r1, #0x18 + ldrsh r0, [r7, r1] + adds r0, #0x80 + cmp r0, #0 + blt _08074A54 + movs r4, #0x18 + ldrsh r1, [r7, r4] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08074A88 +_08074A54: + mov r5, sl + ldrb r0, [r5, #8] + ldr r6, [sp] + strb r0, [r6] + ldr r0, [r3] + bl TaskDestroy + b _08074B62 + .align 2, 0 +_08074A64: .4byte gCurTask +_08074A68: .4byte 0x0300000C +_08074A6C: .4byte 0x03000058 +_08074A70: .4byte 0x0300004E +_08074A74: .4byte 0x000003FF +_08074A78: .4byte gSineTable +_08074A7C: .4byte 0x0300005A +_08074A80: .4byte gCamera +_08074A84: .4byte 0x03000046 +_08074A88: + ldr r0, [sp, #0xc] + asrs r1, r0, #5 + ldr r3, [sp, #8] + adds r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + asrs r2, r2, #4 + ldr r4, [sp, #4] + subs r2, r4, r2 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r7, #0 + bl Coll_Player_Enemy_Attack + adds r4, r0, #0 + cmp r4, #0 + beq _08074AB8 + ldr r0, _08074AB4 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08074B62 + .align 2, 0 +_08074AB4: .4byte gCurTask +_08074AB8: + ldr r3, _08074B0C @ =gPlayer + ldr r0, [r3] + asrs r0, r0, #8 + ldr r2, _08074B10 @ =gCamera + movs r5, #0 + ldrsh r1, [r2, r5] + subs r0, r0, r1 + movs r6, #0x16 + ldrsh r1, [r7, r6] + subs r5, r0, r1 + adds r0, r5, #0 + muls r0, r5, r0 + adds r5, r0, #0 + ldr r0, [r3, #4] + asrs r0, r0, #8 + movs r3, #2 + ldrsh r1, [r2, r3] + subs r0, r0, r1 + movs r6, #0x18 + ldrsh r1, [r7, r6] + subs r0, r0, r1 + mov ip, r0 + adds r1, r0, #0 + mov r0, ip + muls r0, r1, r0 + adds r0, r0, r5 + mov ip, r0 + ldr r0, _08074B14 @ =0x000018FF + cmp ip, r0 + bgt _08074B20 + mov r0, sl + adds r0, #0x46 + strh r4, [r0] + adds r1, r7, #0 + adds r1, #0x20 + movs r0, #2 + strb r0, [r1] + ldr r0, _08074B18 @ =gCurTask + ldr r1, [r0] + ldr r0, _08074B1C @ =Task_807473C + b _08074B3C + .align 2, 0 +_08074B0C: .4byte gPlayer +_08074B10: .4byte gCamera +_08074B14: .4byte 0x000018FF +_08074B18: .4byte gCurTask +_08074B1C: .4byte Task_807473C +_08074B20: + mov r3, sl + adds r3, #0x46 + movs r2, #0 + ldrsh r0, [r3, r2] + cmp r0, #0x3b + ble _08074B3E + strh r4, [r3] + adds r1, r7, #0 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + ldr r0, _08074B74 @ =gCurTask + ldr r1, [r0] + ldr r0, _08074B78 @ =Task_TentouMain +_08074B3C: + str r0, [r1, #8] +_08074B3E: + adds r0, r7, #0 + bl UpdateSpriteAnimation + adds r0, r7, #0 + bl DisplaySprite + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r7, #0x10] + adds r0, r7, #0 + bl DisplaySprite + ldr r0, [r7, #0x10] + ldr r1, _08074B7C @ =0xFFFFFBFF + ands r0, r1 + str r0, [r7, #0x10] +_08074B62: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08074B74: .4byte gCurTask +_08074B78: .4byte Task_TentouMain +_08074B7C: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc b/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc new file mode 100644 index 0000000000..7e09a65ffe --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc @@ -0,0 +1,968 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + movs r0, #0 + str r0, [sp, #0xc] + ldr r0, _0806F3F8 @ =gCurTask + ldr r0, [r0] + ldrh r6, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r6 + mov sb, r0 @ sb = wamu + ldr r1, _0806F3FC @ =0x0300000C + adds r1, r1, r6 + mov sl, r1 @ sl = s + ldr r2, _0806F400 @ =0x03000048 + adds r2, r2, r6 + mov r8, r2 @ r8 = s2 + ldr r3, _0806F404 @ =0x03000084 + adds r7, r6, r3 @ r7 = s3 + ldr r4, [r0] + str r4, [sp] @ sp00 = me + ldrb r2, [r0, #8] + lsls r2, r2, #3 + ldrh r0, [r0, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + ldrb r1, [r4, #1] + lsls r1, r1, #3 + mov r5, sb + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + str r2, [sp, #0x10] @ sp10 = worldX + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + str r1, [sp, #0x14] @ sp14 = worldY + ldr r4, _0806F408 @ =gSineTable + ldr r0, _0806F40C @ =0x030000BC + adds r5, r6, r0 + ldrh r1, [r5] + ldr r0, _0806F410 @ =0x000003FF + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r3, [sp] + ldrb r2, [r3, #6] + lsls r2, r2, #2 + movs r1, #0x50 + subs r1, r1, r2 + bl Div + ldr r1, _0806F414 @ =0x030000B4 + adds r2, r6, r1 + ldr r1, [r2] + adds r1, r1, r0 + str r1, [r2] + asrs r1, r1, #8 + ldr r2, [sp, #0x10] @ r2 = worldX + adds r1, r2, r1 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] @ sp04 = worldX + unkB4 + ldrh r1, [r5] + ldr r0, _0806F410 @ =0x000003FF + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r1, #0x50 + bl Div + ldr r4, _0806F418 @ =0x030000B8 + adds r2, r6, r4 + ldr r1, [r2] + adds r1, r1, r0 + str r1, [r2] + asrs r1, r1, #8 + ldr r0, [sp, #0x14] @ sp14 = worldY + adds r1, r0, r1 + lsls r1, r1, #0x10 + ldr r3, _0806F41C @ =gCamera + ldrh r2, [r3] + ldr r4, [sp, #4] + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r2 + movs r4, #0 + mov r2, sl + strh r0, [r2, #0x16] + ldrh r0, [r3, #2] + lsrs r3, r1, #0x10 + str r3, [sp, #8] + asrs r1, r1, #0x10 + subs r1, r1, r0 + strh r1, [r2, #0x18] + ldr r0, [r2, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0806F44C + ldr r0, _0806F420 @ =0x030001C0 + adds r2, r6, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _0806F428 + ldrh r0, [r5] + adds r0, #5 + strh r0, [r5] + subs r1, #1 + ands r0, r1 + subs r0, #0x65 + lsls r0, r0, #0x10 + ldr r1, _0806F424 @ =0x03360000 + cmp r0, r1 + bhi _0806F49A + movs r0, #0x64 + strh r0, [r5] + b _0806F46A + .align 2, 0 +_0806F3F8: .4byte gCurTask +_0806F3FC: .4byte 0x0300000C +_0806F400: .4byte 0x03000048 +_0806F404: .4byte 0x03000084 +_0806F408: .4byte gSineTable +_0806F40C: .4byte 0x030000BC +_0806F410: .4byte 0x000003FF +_0806F414: .4byte 0x030000B4 +_0806F418: .4byte 0x030000B8 +_0806F41C: .4byte gCamera +_0806F420: .4byte 0x030001C0 +_0806F424: .4byte 0x03360000 +_0806F428: + ldrh r0, [r5] + subs r0, #5 + strh r0, [r5] + ldr r3, _0806F444 @ =0x000003FF + ands r0, r3 + subs r0, #0x65 + lsls r0, r0, #0x10 + ldr r1, _0806F448 @ =0x03360000 + cmp r0, r1 + bhi _0806F49A + movs r0, #0xe7 + lsls r0, r0, #2 + b _0806F490 + .align 2, 0 +_0806F444: .4byte 0x000003FF +_0806F448: .4byte 0x03360000 +_0806F44C: + ldr r0, _0806F474 @ =0x030001C0 + adds r2, r6, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _0806F47C + ldrh r0, [r5] + adds r0, #5 + strh r0, [r5] + ldr r1, _0806F478 @ =0x000003FF + ands r0, r1 + movs r1, #0x99 + lsls r1, r1, #2 + cmp r0, r1 + bls _0806F49A + strh r1, [r5] +_0806F46A: + strb r4, [r2] + movs r2, #1 + str r2, [sp, #0xc] @ sp0C = 1 + b _0806F49A + .align 2, 0 +_0806F474: .4byte 0x030001C0 +_0806F478: .4byte 0x000003FF +_0806F47C: + ldrh r0, [r5] + subs r0, #8 + strh r0, [r5] + ldr r3, _0806F52C @ =0x000003FF + ands r0, r3 + ldr r1, _0806F530 @ =0x0000019B + cmp r0, r1 + bhi _0806F49A + movs r0, #0xce + lsls r0, r0, #1 +_0806F490: + strh r0, [r5] + movs r0, #1 + strb r0, [r2] + movs r4, #1 + str r4, [sp, #0xc] @ sp0C = 1 +_0806F49A: + ldr r3, _0806F534 @ =0x000001C1 + add r3, sb + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #1 + mov r2, sb + adds r2, #0xc0 + adds r0, r2, r0 + mov r5, sp + ldrh r5, [r5, #4] + strh r5, [r0] + ldrb r0, [r3] + ands r1, r0 + lsls r1, r1, #1 + movs r0, #0xa0 + lsls r0, r0, #1 + add r0, sb + adds r0, r0, r1 + mov r1, sp + ldrh r1, [r1, #8] + strh r1, [r0] + ldr r3, _0806F538 @ =gCamera + movs r4, #0 + ldrsh r1, [r3, r4] + movs r5, #0xb8 + lsls r5, r5, #1 + adds r0, r1, r5 + str r2, [sp, #0x18] + ldr r2, [sp, #0x10] @ r2 = worldX + cmp r2, r0 + bgt _0806F4FC + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _0806F4FC + movs r4, #2 + ldrsh r1, [r3, r4] + subs r5, #0x50 + adds r0, r1, r5 + ldr r2, [sp, #0x14] @ r2 = worldY + cmp r2, r0 + bgt _0806F4FC + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + bge _0806F53C +_0806F4FC: + mov r3, sl + ldrh r0, [r3, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0806F522 + movs r4, #0x18 + ldrsh r0, [r3, r4] + adds r0, #0x80 + cmp r0, #0 + blt _0806F522 + movs r5, #0x18 + ldrsh r1, [r3, r5] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0806F53C +_0806F522: + mov r1, sb + ldrb r0, [r1, #8] + ldr r2, [sp] + strb r0, [r2] + b _0806F552 + .align 2, 0 +_0806F52C: .4byte 0x000003FF +_0806F530: .4byte 0x0000019B +_0806F534: .4byte 0x000001C1 +_0806F538: .4byte gCamera +_0806F53C: + ldr r3, [sp, #4] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + ldr r4, [sp, #8] + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + mov r0, sl + bl Coll_Player_Enemy_Attack + cmp r0, #0 + beq _0806F560 +_0806F552: + ldr r0, _0806F55C @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0806FA64 + .align 2, 0 +_0806F55C: .4byte gCurTask +_0806F560: + mov r0, sb + adds r0, #0xb4 + ldr r0, [r0] @ r0 = wamu->qUnkB4 + asrs r2, r0, #8 + ldr r5, [sp] @ r5 = sp00 = me + movs r1, #3 + ldrsb r1, [r5, r1] + lsls r0, r1, #3 + cmp r2, r0 + bgt _0806F5A8 + mov r1, sl @ r1 = sl = s + ldr r0, [r1, #0x10] + mvns r0, r0 + movs r2, #0x80 + lsls r2, r2, #3 + ands r0, r2 + cmp r0, #0 + beq _0806F5F6 + ldr r3, [sp, #0xc] @ r3 = sp0C = sp0C + cmp r3, #0 + beq _0806F5F6 + mov r1, sb + adds r1, #0xbe + movs r0, #0xa0 + strh r0, [r1] + mov r4, sl + ldr r0, [r4, #0x10] + orrs r0, r2 + str r0, [r4, #0x10] + mov r5, r8 @ r5 = r8 = s2 + ldr r0, [r5, #0x10] + orrs r0, r2 + str r0, [r5, #0x10] + ldr r0, [r7, #0x10] @ r7 = s3 + orrs r0, r2 + b _0806F5E4 +_0806F5A8: + ldr r4, [sp] @ r4 = sp00 = me + ldrb r0, [r4, #5] + adds r0, r1, r0 + lsls r0, r0, #3 + cmp r2, r0 + blt _0806F5F6 + mov r5, sl + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0806F5F6 + ldr r0, [sp, #0xc] @ r0 = sp0C = sp0C + cmp r0, #0 + beq _0806F5F6 + mov r1, sb + adds r1, #0xbe + ldr r0, _0806F934 @ =0x0000FF60 + strh r0, [r1] + ldr r0, [r5, #0x10] + ldr r1, _0806F938 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r5, #0x10] + mov r2, r8 + ldr r0, [r2, #0x10] + ands r0, r1 + str r0, [r2, #0x10] + ldr r0, [r7, #0x10] + ands r0, r1 +_0806F5E4: + str r0, [r7, #0x10] + mov r2, sb + adds r2, #0xbc + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + eors r0, r1 + strh r0, [r2] +_0806F5F6: + mov r0, sl + bl UpdateSpriteAnimation + mov r0, sl + bl DisplaySprite + ldr r4, _0806F93C @ =0x000001C1 + add r4, sb + ldrb r0, [r4] + subs r0, #0x18 + movs r2, #0x3f + ands r0, r2 + lsls r0, r0, #1 + ldr r5, [sp, #0x18] @ r5 = sp18 = &wamu->worldXs[] + adds r0, r5, r0 + ldr r3, _0806F940 @ =gCamera + ldrh r0, [r0] + ldrh r1, [r3] + subs r0, r0, r1 + mov r5, sl @ r5 = sl = s + ldrh r1, [r5, #0x16] + subs r1, r1, r0 + strh r1, [r7, #0x16] @ r7 = s3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 @ r1 = (s->y >> 1) + ldrb r0, [r4] + subs r0, #0x18 + ands r0, r2 + lsls r0, r0, #1 + ldr r5, [sp, #0x18] @ r5 = sp18 = worldXs + adds r0, r5, r0 + ldrh r0, [r0] + subs r0, r0, r1 + ldrh r1, [r3] + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 @ r5 = ??? + subs r1, r5, r1 + strh r1, [r7, #0x16] @ s->x = + ldrb r0, [r4] + subs r0, #0x28 + ands r0, r2 + lsls r0, r0, #1 + movs r1, #0xa0 + lsls r1, r1, #1 + add r1, sb + adds r1, r1, r0 + ldrh r2, [r3, #2] + ldrh r0, [r1] + str r0, [sp, #8] + movs r3, #0 + ldrsh r0, [r1, r3] + subs r0, r0, r2 + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl UpdateSpriteAnimation + adds r0, r7, #0 + bl DisplaySprite + ldr r1, [r7, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0806F716 + adds r0, r7, #0 + adds r0, #0x2c + movs r6, #0 + ldrsb r6, [r0, r6] + adds r5, r5, r6 + ldr r2, _0806F944 @ =gPlayer + ldr r1, [r2] + asrs r1, r1, #8 + ldr r3, _0806F948 @ =gPlayerBodyPSI + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov ip, r0 + add r1, ip + adds r4, r3, #0 + cmp r5, r1 + bgt _0806F6B2 + adds r0, r7, #0 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r5, r0 + cmp r0, r1 + bge _0806F6C6 + cmp r5, r1 + blt _0806F716 +_0806F6B2: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r3, ip + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r5 + blt _0806F716 +_0806F6C6: + ldr r5, [sp, #8] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r3, r7, #0 + adds r3, #0x2d + movs r5, #0 + ldrsb r5, [r3, r5] + adds r1, r0, r5 + ldr r0, [r2, #4] + asrs r0, r0, #8 + adds r3, r4, #0 + adds r3, #0x39 + movs r6, #0 + ldrsb r6, [r3, r6] + adds r3, r0, r6 + cmp r1, r3 + bgt _0806F6FE + adds r0, r7, #0 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r3 + bge _0806F710 + cmp r1, r3 + blt _0806F716 +_0806F6FE: + adds r0, r4, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r3, r0 + cmp r0, r1 + blt _0806F716 +_0806F710: + adds r0, r2, #0 + bl Coll_DamagePlayer +_0806F716: + ldr r4, _0806F93C @ =0x000001C1 + add r4, sb + ldrb r0, [r4] + subs r0, #0x13 + movs r2, #0x3f + ands r0, r2 + lsls r0, r0, #1 + ldr r1, [sp, #0x18] + adds r0, r1, r0 + ldr r3, _0806F940 @ =gCamera + ldrh r0, [r0] + ldrh r1, [r3] + subs r0, r0, r1 + mov r5, sl + ldrh r1, [r5, #0x16] + subs r1, r1, r0 + strh r1, [r7, #0x16] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + ldrb r0, [r4] + subs r0, #0x13 + ands r0, r2 + lsls r0, r0, #1 + ldr r5, [sp, #0x18] + adds r0, r5, r0 + ldrh r0, [r0] + subs r0, r0, r1 + ldrh r1, [r3] + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + subs r1, r5, r1 + strh r1, [r7, #0x16] + ldrb r0, [r4] + subs r0, #0x1e + ands r0, r2 + lsls r0, r0, #1 + movs r1, #0xa0 + lsls r1, r1, #1 + add r1, sb + adds r1, r1, r0 + ldrh r2, [r3, #2] + ldrh r0, [r1] + str r0, [sp, #8] + movs r3, #0 + ldrsh r0, [r1, r3] + subs r0, r0, r2 + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + ldr r1, [r7, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0806F824 + adds r0, r7, #0 + adds r0, #0x2c + movs r6, #0 + ldrsb r6, [r0, r6] + adds r5, r5, r6 + ldr r2, _0806F944 @ =gPlayer + ldr r1, [r2] + asrs r1, r1, #8 + ldr r3, _0806F948 @ =gPlayerBodyPSI + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov ip, r0 + add r1, ip + adds r4, r3, #0 + cmp r5, r1 + bgt _0806F7C0 + adds r0, r7, #0 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r5, r0 + cmp r0, r1 + bge _0806F7D4 + cmp r5, r1 + blt _0806F824 +_0806F7C0: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r3, ip + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r5 + blt _0806F824 +_0806F7D4: + ldr r5, [sp, #8] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r3, r7, #0 + adds r3, #0x2d + movs r5, #0 + ldrsb r5, [r3, r5] + adds r1, r0, r5 + ldr r0, [r2, #4] + asrs r0, r0, #8 + adds r3, r4, #0 + adds r3, #0x39 + movs r6, #0 + ldrsb r6, [r3, r6] + adds r3, r0, r6 + cmp r1, r3 + bgt _0806F80C + adds r0, r7, #0 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r3 + bge _0806F81E + cmp r1, r3 + blt _0806F824 +_0806F80C: + adds r0, r4, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r3, r0 + cmp r0, r1 + blt _0806F824 +_0806F81E: + adds r0, r2, #0 + bl Coll_DamagePlayer +_0806F824: + ldr r4, _0806F93C @ =0x000001C1 + add r4, sb + ldrb r0, [r4] + subs r0, #0xe + movs r2, #0x3f + ands r0, r2 + lsls r0, r0, #1 + ldr r1, [sp, #0x18] + adds r0, r1, r0 + ldr r3, _0806F940 @ =gCamera + ldrh r0, [r0] + ldrh r1, [r3] + subs r0, r0, r1 + mov r5, sl + ldrh r1, [r5, #0x16] + subs r1, r1, r0 + mov r0, r8 + strh r1, [r0, #0x16] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + ldrb r0, [r4] + subs r0, #0xe + ands r0, r2 + lsls r0, r0, #1 + ldr r5, [sp, #0x18] + adds r0, r5, r0 + ldrh r0, [r0] + subs r0, r0, r1 + ldrh r1, [r3] + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + subs r1, r5, r1 + mov r0, r8 + strh r1, [r0, #0x16] + ldrb r0, [r4] + subs r0, #0x14 + ands r0, r2 + lsls r0, r0, #1 + movs r1, #0xa0 + lsls r1, r1, #1 + add r1, sb + adds r1, r1, r0 + ldrh r2, [r3, #2] + ldrh r3, [r1] + str r3, [sp, #8] + movs r4, #0 + ldrsh r0, [r1, r4] + subs r0, r0, r2 + mov r1, r8 + strh r0, [r1, #0x18] + mov r0, r8 + bl UpdateSpriteAnimation + mov r0, r8 + bl DisplaySprite + mov r2, r8 + ldr r1, [r2, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0806F954 + mov r0, r8 + adds r0, #0x2c + movs r6, #0 + ldrsb r6, [r0, r6] + adds r5, r5, r6 + ldr r2, _0806F944 @ =gPlayer + ldr r1, [r2] + asrs r1, r1, #8 + ldr r3, _0806F948 @ =gPlayerBodyPSI + adds r0, r3, #0 + adds r0, #0x38 + movs r7, #0 + ldrsb r7, [r0, r7] + adds r1, r1, r7 + adds r4, r3, #0 + cmp r5, r1 + bgt _0806F8D8 + mov r0, r8 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r5, r0 + cmp r0, r1 + bge _0806F8EA + cmp r5, r1 + blt _0806F954 +_0806F8D8: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r7 + adds r0, r1, r0 + cmp r0, r5 + blt _0806F954 +_0806F8EA: + ldr r3, [sp, #8] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + mov r3, r8 + adds r3, #0x2d + movs r5, #0 + ldrsb r5, [r3, r5] + adds r1, r0, r5 + ldr r0, [r2, #4] + asrs r0, r0, #8 + adds r3, r4, #0 + adds r3, #0x39 + movs r6, #0 + ldrsb r6, [r3, r6] + adds r3, r0, r6 + cmp r1, r3 + bgt _0806F922 + mov r0, r8 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r3 + bge _0806F94E + cmp r1, r3 + blt _0806F954 +_0806F922: + adds r0, r4, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r3, r0 + cmp r0, r1 + b _0806F94C + .align 2, 0 +_0806F934: .4byte 0x0000FF60 +_0806F938: .4byte 0xFFFFFBFF +_0806F93C: .4byte 0x000001C1 +_0806F940: .4byte gCamera +_0806F944: .4byte gPlayer +_0806F948: .4byte gPlayerBodyPSI +_0806F94C: + blt _0806F954 +_0806F94E: + adds r0, r2, #0 + bl Coll_DamagePlayer +_0806F954: + ldr r4, _0806FA74 @ =0x000001C1 + add r4, sb + ldrb r0, [r4] + subs r0, #7 + movs r2, #0x3f + ands r0, r2 + lsls r0, r0, #1 + ldr r5, [sp, #0x18] + adds r0, r5, r0 + ldr r3, _0806FA78 @ =gCamera + ldrh r0, [r0] + ldrh r1, [r3] + subs r0, r0, r1 + mov r5, sl + ldrh r1, [r5, #0x16] + subs r1, r1, r0 + mov r0, r8 + strh r1, [r0, #0x16] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + ldrb r0, [r4] + subs r0, #7 + ands r0, r2 + lsls r0, r0, #1 + ldr r5, [sp, #0x18] + adds r0, r5, r0 + ldrh r0, [r0] + subs r0, r0, r1 + ldrh r1, [r3] + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + subs r1, r5, r1 + mov r0, r8 + strh r1, [r0, #0x16] + ldrb r0, [r4] + subs r0, #0xa + ands r0, r2 + lsls r0, r0, #1 + movs r1, #0xa0 + lsls r1, r1, #1 + add r1, sb + adds r1, r1, r0 + ldrh r2, [r3, #2] + ldrh r3, [r1] + str r3, [sp, #8] + movs r4, #0 + ldrsh r0, [r1, r4] + subs r0, r0, r2 + mov r1, r8 + strh r0, [r1, #0x18] + mov r0, r8 + bl DisplaySprite + mov r2, r8 + ldr r1, [r2, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0806FA64 + mov r0, r8 + adds r0, #0x2c + movs r6, #0 + ldrsb r6, [r0, r6] + adds r5, r5, r6 + ldr r2, _0806FA7C @ =gPlayer + ldr r1, [r2] + asrs r1, r1, #8 + ldr r3, _0806FA80 @ =gPlayerBodyPSI + adds r0, r3, #0 + adds r0, #0x38 + movs r7, #0 + ldrsb r7, [r0, r7] + adds r1, r1, r7 + adds r4, r3, #0 + cmp r5, r1 + bgt _0806FA02 + mov r0, r8 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r5, r0 + cmp r0, r1 + bge _0806FA14 + cmp r5, r1 + blt _0806FA64 +_0806FA02: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r7 + adds r0, r1, r0 + cmp r0, r5 + blt _0806FA64 +_0806FA14: + ldr r3, [sp, #8] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + mov r3, r8 + adds r3, #0x2d + movs r5, #0 + ldrsb r5, [r3, r5] + adds r1, r0, r5 + ldr r0, [r2, #4] + asrs r0, r0, #8 + adds r3, r4, #0 + adds r3, #0x39 + movs r6, #0 + ldrsb r6, [r3, r6] + adds r3, r0, r6 + cmp r1, r3 + bgt _0806FA4C + mov r0, r8 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r3 + bge _0806FA5E + cmp r1, r3 + blt _0806FA64 +_0806FA4C: + adds r0, r4, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r3, r0 + cmp r0, r1 + blt _0806FA64 +_0806FA5E: + adds r0, r2, #0 + bl Coll_DamagePlayer +_0806FA64: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806FA74: .4byte 0x000001C1 +_0806FA78: .4byte gCamera +_0806FA7C: .4byte gPlayer +_0806FA80: .4byte gPlayerBodyPSI + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc b/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc new file mode 100644 index 0000000000..232f898a6a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc @@ -0,0 +1,284 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r1, _08071AB0 @ =gCurTask + ldr r0, [r1] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r3, r0 + ldr r2, _08071AB4 @ =0x0300000C + adds r7, r3, r2 + ldr r4, _08071AB8 @ =0x03000048 + adds r4, r4, r3 + mov r8, r4 + ldr r0, [r5] + mov sb, r0 + ldrb r2, [r5, #8] + lsls r2, r2, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + mov r4, sb + ldrb r1, [r4, #1] + lsls r1, r1, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 + lsls r1, r1, #0x10 + ldr r0, _08071ABC @ =0x0300007A + adds r2, r3, r0 + ldr r4, _08071AC0 @ =0x03000078 + ldrh r0, [r4, r3] + ldrh r4, [r2] + adds r0, r0, r4 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + adds r0, r6, r0 + lsls r0, r0, #0x10 + asrs r2, r1, #0x10 + mov ip, r2 + ldr r4, _08071AC4 @ =0x0300007C + adds r3, r3, r4 + ldr r2, _08071AC8 @ =0xFFFA0000 + adds r1, r1, r2 + asrs r1, r1, #0x10 + ldrh r3, [r3] + adds r1, r1, r3 + lsls r1, r1, #0x10 + ldr r3, _08071ACC @ =gCamera + ldrh r4, [r3] + mov sl, r4 + lsrs r2, r0, #0x10 + str r2, [sp, #0xc] + asrs r0, r0, #0x10 + mov r4, sl + subs r2, r0, r4 + strh r2, [r7, #0x16] + lsrs r2, r1, #0x10 + mov sl, r2 + asrs r1, r1, #0x10 + ldrh r4, [r3, #2] + subs r2, r1, r4 + strh r2, [r7, #0x18] + ldrh r2, [r3] + subs r0, r0, r2 + mov r2, r8 + strh r0, [r2, #0x16] + ldrh r0, [r3, #2] + subs r1, r1, r0 + strh r1, [r2, #0x18] + movs r4, #0 + ldrsh r1, [r3, r4] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r1, r2 + ldr r4, _08071AB0 @ =gCurTask + cmp r6, r0 + bgt _08071A7E + adds r0, r1, #0 + subs r0, #0x80 + cmp r6, r0 + blt _08071A7E + movs r0, #2 + ldrsh r2, [r3, r0] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r2, r1 + cmp ip, r0 + bgt _08071A7E + adds r0, r2, #0 + subs r0, #0x80 + cmp ip, r0 + bge _08071AD0 +_08071A7E: + ldrh r0, [r7, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08071AA2 + movs r2, #0x18 + ldrsh r0, [r7, r2] + adds r0, #0x80 + cmp r0, #0 + blt _08071AA2 + movs r3, #0x18 + ldrsh r1, [r7, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08071AD0 +_08071AA2: + ldrb r0, [r5, #8] + mov r1, sb + strb r0, [r1] + ldr r0, [r4] + bl TaskDestroy + b _08071BDA + .align 2, 0 +_08071AB0: .4byte gCurTask +_08071AB4: .4byte 0x0300000C +_08071AB8: .4byte 0x03000048 +_08071ABC: .4byte 0x0300007A +_08071AC0: .4byte 0x03000078 +_08071AC4: .4byte 0x0300007C +_08071AC8: .4byte 0xFFFA0000 +_08071ACC: .4byte gCamera +_08071AD0: + ldr r2, [sp, #0xc] + lsls r0, r2, #0x10 + asrs r4, r0, #0x10 + mov r3, sl + lsls r0, r3, #0x10 + asrs r6, r0, #0x10 + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl Coll_Player_Enemy_Attack + cmp r0, #0 + beq _08071AF8 + ldr r0, _08071AF4 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08071BDA + .align 2, 0 +_08071AF4: .4byte gCurTask +_08071AF8: + add r0, sp, #8 + str r0, [sp] + ldr r0, _08071B3C @ =sa2__sub_801EE64 + str r0, [sp, #4] + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F07C + adds r2, r5, #0 + adds r2, #0x7c + ldrh r1, [r2] + adds r1, r1, r0 + movs r3, #0 + mov ip, r3 + strh r1, [r2] + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r2, r0, #0x18 + mov r0, sb + movs r1, #3 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + cmp r2, r0 + bgt _08071B40 + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0xa0 + strh r0, [r1] + b _08071BAC + .align 2, 0 +_08071B3C: .4byte sa2__sub_801EE64 +_08071B40: + mov r3, sb + ldrb r0, [r3, #5] + adds r0, r1, r0 + lsls r0, r0, #3 + cmp r2, r0 + blt _08071B5C + adds r1, r5, #0 + adds r1, #0x78 + ldr r0, _08071B58 @ =0x0000FF60 + strh r0, [r1] + b _08071BAC + .align 2, 0 +_08071B58: .4byte 0x0000FF60 +_08071B5C: + adds r2, r5, #0 + adds r2, #0x80 + ldrh r0, [r2] + movs r1, #0 + ldrsh r3, [r2, r1] + cmp r3, #0 + beq _08071B70 + subs r0, #1 + strh r0, [r2] + b _08071BAC +_08071B70: + ldr r1, _08071BEC @ =gPlayer + ldr r0, [r1, #4] + asrs r0, r0, #8 + cmp r0, r6 + bgt _08071BAC + ldr r0, [r1] + asrs r1, r0, #8 + adds r0, r4, #0 + adds r0, #8 + cmp r1, r0 + bgt _08071BAC + subs r0, #0x10 + cmp r0, r1 + bgt _08071BAC + movs r0, #0x3c + strh r0, [r2] + adds r0, r5, #0 + adds r0, #0x7e + strh r3, [r0] + adds r0, r7, #0 + adds r0, #0x20 + mov r2, ip + strb r2, [r0] + mov r0, r8 + adds r0, #0x20 + strb r2, [r0] + ldr r0, _08071BF0 @ =gCurTask + ldr r1, [r0] + ldr r0, _08071BF4 @ =Task_8071BFC + str r0, [r1, #8] +_08071BAC: + adds r0, r7, #0 + bl UpdateSpriteAnimation + mov r0, r8 + bl UpdateSpriteAnimation + adds r0, r7, #0 + bl DisplaySprite + mov r3, r8 + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r3, #0x10] + mov r0, r8 + bl DisplaySprite + mov r4, r8 + ldr r0, [r4, #0x10] + ldr r1, _08071BF8 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r4, #0x10] +_08071BDA: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08071BEC: .4byte gPlayer +_08071BF0: .4byte gCurTask +_08071BF4: .4byte Task_8071BFC +_08071BF8: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc new file mode 100644 index 0000000000..2e77e4d42a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc @@ -0,0 +1,913 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + movs r0, #0 + str r0, [sp, #8] + movs r1, #0 + str r1, [sp, #0xc] + ldr r0, _08026518 @ =gCurTask + ldr r0, [r0] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r3 + mov r8, r0 + ldr r2, _0802651C @ =0x0300000C + adds r7, r3, r2 + ldr r4, _08026520 @ =0x03000044 + adds r4, r3, r4 + str r4, [sp, #4] + ldr r5, [r0] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08026528 + ldr r6, _08026524 @ =0x0300009A + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + subs r0, #2 + adds r2, #0x8a + adds r1, r3, r2 + strh r0, [r1] + b _08026544 + .align 2, 0 +_08026518: .4byte gCurTask +_0802651C: .4byte 0x0300000C +_08026520: .4byte 0x03000044 +_08026524: .4byte 0x0300009A +_08026528: + ldr r4, _08026588 @ =0x0300009A + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, #3 + lsls r0, r0, #1 + movs r6, #4 + rsbs r6, r6, #0 + adds r1, r6, #0 + subs r1, r1, r0 + ldr r2, _0802658C @ =0x03000096 + adds r0, r3, r2 + strh r1, [r0] +_08026544: + mov r1, r8 + adds r1, #0x94 + mov r0, r8 + adds r0, #0x96 + ldrh r0, [r0] + ldrh r3, [r1] + adds r2, r0, r3 + strh r2, [r1] + lsls r0, r2, #0x10 + asrs r3, r0, #0x10 + ldr r0, _08026590 @ =0xFFFFFD00 + str r1, [sp, #0x10] + cmp r3, r0 + bge _08026598 + movs r4, #0x80 + lsls r4, r4, #3 + adds r0, r2, r4 + strh r0, [r1] + mov r2, r8 + adds r2, #0x8c + ldr r0, _08026594 @ =gSineTable + movs r6, #0x9c + lsls r6, r6, #2 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, [r2] + subs r0, r0, r1 + str r0, [r2] + mov sb, r2 + b _080265C4 + .align 2, 0 +_08026588: .4byte 0x0300009A +_0802658C: .4byte 0x03000096 +_08026590: .4byte 0xFFFFFD00 +_08026594: .4byte gSineTable +_08026598: + movs r0, #0x80 + lsls r0, r0, #1 + movs r4, #0x8c + add r4, r8 + mov sb, r4 + cmp r3, r0 + ble _080265C4 + ldr r6, _08026634 @ =0xFFFFFC00 + adds r0, r2, r6 + ldr r1, [sp, #0x10] + strh r0, [r1] + ldr r0, _08026638 @ =gSineTable + movs r2, #0x9c + lsls r2, r2, #2 + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] +_080265C4: + ldr r4, [sp, #0x10] + movs r6, #0 + ldrsh r1, [r4, r6] + ldr r0, _0802663C @ =0xFFFFFDC8 + cmp r1, r0 + bgt _08026644 + mov r1, r8 + adds r1, #0x9c + ldrb r0, [r1] + cmp r0, #0 + bne _080265FA + movs r0, #1 + strb r0, [r1] + movs r0, #0x91 + bl m4aSongNumStart + movs r0, #0x80 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #1 + rsbs r3, r3, #0 + movs r1, #0x80 + str r1, [sp] + movs r1, #0x40 + bl CreateScreenShake +_080265FA: + ldr r1, [sp, #0x10] + ldrh r0, [r1] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + subs r1, r1, r0 + ldr r3, _08026640 @ =0x000003FF + adds r4, r3, #0 + ldr r3, _08026638 @ =gSineTable + movs r6, #0x9c + lsls r6, r6, #2 + adds r0, r3, r6 + movs r6, #0 + ldrsh r2, [r0, r6] + ands r1, r4 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r0, [r0, r6] + subs r2, r2, r0 + lsls r0, r2, #1 + adds r0, r0, r2 + asrs r0, r0, #9 + rsbs r0, r0, #0 + b _0802669C + .align 2, 0 +_08026634: .4byte 0xFFFFFC00 +_08026638: .4byte gSineTable +_0802663C: .4byte 0xFFFFFDC8 +_08026640: .4byte 0x000003FF +_08026644: + cmp r1, #0x37 + ble _080266C4 + mov r1, r8 + adds r1, #0x9c + ldrb r0, [r1] + cmp r0, #0 + bne _08026672 + movs r0, #1 + strb r0, [r1] + movs r0, #0x91 + bl m4aSongNumStart + movs r0, #0x80 + lsls r0, r0, #4 + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #1 + rsbs r3, r3, #0 + movs r1, #0x80 + str r1, [sp] + movs r1, #0x40 + bl CreateScreenShake +_08026672: + ldr r3, [sp, #0x10] + ldrh r4, [r3] + ldr r1, _080266BC @ =0x000003FF + ldr r3, _080266C0 @ =gSineTable + movs r6, #0x9c + lsls r6, r6, #2 + adds r0, r3, r6 + movs r6, #0 + ldrsh r2, [r0, r6] + ands r1, r4 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r1, r4 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r0, [r0, r6] + subs r2, r2, r0 + lsls r0, r2, #1 + adds r0, r0, r2 + asrs r0, r0, #9 +_0802669C: + str r0, [sp, #8] + lsls r1, r1, #1 + adds r1, r1, r3 + movs r0, #0 + ldrsh r1, [r1, r0] + adds r3, #0x70 + movs r2, #0 + ldrsh r0, [r3, r2] + subs r1, r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + asrs r0, r0, #9 + rsbs r0, r0, #0 + str r0, [sp, #0xc] + b _080266F6 + .align 2, 0 +_080266BC: .4byte 0x000003FF +_080266C0: .4byte gSineTable +_080266C4: + mov r1, r8 + adds r1, #0x9c + ldrb r0, [r1] + cmp r0, #1 + bne _080266D2 + movs r0, #0 + strb r0, [r1] +_080266D2: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080266EC + mov r3, sb + ldr r0, [r3] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r0, r4 + str r0, [r3] + b _080266F6 +_080266EC: + mov r6, sb + ldr r0, [r6] + ldr r1, _08026790 @ =0xFFFFFF00 + adds r0, r0, r1 + str r0, [r6] +_080266F6: + mov r2, r8 + ldrb r1, [r2, #8] + lsls r1, r1, #3 + ldrh r0, [r2, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + mov r3, sb + ldr r0, [r3] + asrs r0, r0, #8 + adds r1, r1, r0 + ldr r4, [sp, #8] + adds r1, r1, r4 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x10 + ldrb r0, [r5, #1] + lsls r0, r0, #3 + ldrh r1, [r2, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + ldr r5, [sp, #0xc] + adds r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r7, #0x10] + ldr r1, _08026794 @ =0xFFFFFE7F + ands r0, r1 + str r0, [r7, #0x10] + ldr r3, _08026798 @ =gPlayer + ldr r4, [r3, #0x10] + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + bne _0802674C + ldr r2, _0802679C @ =gDispCnt + ldrh r1, [r2] + ldr r0, _080267A0 @ =0x00007FFF + ands r0, r1 + strh r0, [r2] + ldr r0, _080267A4 @ =gWinRegs + strh r4, [r0, #0xa] + ldr r0, _080267A8 @ =gBldRegs + strh r4, [r0] + strh r4, [r0, #4] +_0802674C: + mov r0, r8 + adds r0, #0x9b + movs r1, #0 + ldrsb r1, [r0, r1] + mov sl, r0 + lsls r6, r6, #0x10 + str r6, [sp, #0x14] + lsls r5, r5, #0x10 + str r5, [sp, #0x18] + cmp r1, #0 + beq _08026764 + b _08026A78 +_08026764: + asrs r4, r6, #0x10 + asrs r5, r5, #0x10 + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl Coll_Player_Boss_1 + adds r6, r0, #0 + ldr r0, _080267AC @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _080267B4 + ldr r3, _080267B0 @ =gPartner + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl Coll_Player_Boss_1 + b _080267B6 + .align 2, 0 +_08026790: .4byte 0xFFFFFF00 +_08026794: .4byte 0xFFFFFE7F +_08026798: .4byte gPlayer +_0802679C: .4byte gDispCnt +_080267A0: .4byte 0x00007FFF +_080267A4: .4byte gWinRegs +_080267A8: .4byte gBldRegs +_080267AC: .4byte gNumSingleplayerCharacters +_080267B0: .4byte gPartner +_080267B4: + movs r0, #0 +_080267B6: + cmp r6, #1 + beq _080267C0 + cmp r0, #1 + beq _080267C0 + b _08026A78 +_080267C0: + mov r1, r8 + adds r1, #0x9a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x20 + mov r6, sl + strb r0, [r6] + ldr r1, [sp, #4] + adds r1, #0x20 + movs r0, #2 + strb r0, [r1] + mov r1, r8 + adds r1, #0x9e + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r1] + ldr r1, _080268BC @ =gLevelScore + ldr r6, [r1] + movs r2, #0xfa + lsls r2, r2, #2 + adds r0, r6, r2 + str r0, [r1] + ldr r4, _080268C0 @ =0x0000C350 + adds r1, r4, #0 + bl Div + adds r5, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl Div + cmp r5, r0 + beq _08026814 + ldr r0, _080268C4 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08026814 + ldr r1, _080268C8 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08026814: + movs r0, #0x90 + bl m4aSongNumStart + movs r1, #0 + ldr r3, [sp, #8] + lsls r4, r3, #8 + mov r6, r8 + adds r6, #0x90 + ldr r0, [sp, #0xc] + lsls r5, r0, #8 + movs r2, #0x98 + add r2, r8 + mov sl, r2 + movs r3, #0x20 + adds r3, r3, r7 + mov ip, r3 + mov r2, r8 + adds r2, #0x78 + ldr r3, _080268CC @ =Task_80271E4 +_0802683A: + lsls r0, r1, #2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, #8] + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #4 + bls _0802683A + mov r0, r8 + ldr r1, [r0, #0x74] + ldr r0, _080268D0 @ =Task_8027600 + str r0, [r1, #8] + mov r1, sb + ldr r0, [r1] + adds r0, r0, r4 + str r0, [r1] + str r5, [r6] + movs r1, #0 + movs r4, #0 + mov r2, sl + strh r4, [r2] + movs r0, #0x99 + lsls r0, r0, #2 + strh r0, [r7, #0xa] + mov r3, ip + strb r1, [r3] + ldr r5, [sp, #0x14] + asrs r0, r5, #0x10 + ldr r6, [sp, #0x18] + asrs r1, r6, #0x10 + ldr r3, _080268D4 @ =0x00000265 + str r4, [sp] + movs r2, #0x10 + bl sub_80168F0 + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r3, r2, r0 + adds r0, #0x46 + adds r1, r2, r0 + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r1] + ldr r1, _080268D8 @ =0x03000048 + adds r0, r2, r1 + strh r4, [r0] + ldr r5, _080268DC @ =0x03000042 + adds r0, r2, r5 + strh r4, [r0] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080268E4 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r3, #0x32] + ldr r6, _080268E0 @ =0x03000044 + adds r0, r2, r6 + strh r1, [r0] + b _080268EE + .align 2, 0 +_080268BC: .4byte gLevelScore +_080268C0: .4byte 0x0000C350 +_080268C4: .4byte gGameMode +_080268C8: .4byte gNumLives +_080268CC: .4byte Task_80271E4 +_080268D0: .4byte Task_8027600 +_080268D4: .4byte 0x00000265 +_080268D8: .4byte 0x03000048 +_080268DC: .4byte 0x03000042 +_080268E0: .4byte 0x03000044 +_080268E4: + ldr r0, _08026944 @ =0x03000044 + adds r1, r2, r0 + movs r0, #0xfc + lsls r0, r0, #8 + strh r0, [r1] +_080268EE: + adds r1, r3, #0 + adds r1, #0x40 + movs r4, #0 + movs r0, #0x3c + strh r0, [r1] + ldr r1, [sp, #0x14] + asrs r0, r1, #0x10 + ldr r2, [sp, #0x18] + asrs r1, r2, #0x10 + ldr r3, _08026948 @ =0x00000266 + str r4, [sp] + movs r2, #0x10 + bl sub_80168F0 + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r3, r2, r0 + ldr r5, _0802694C @ =0x03000046 + adds r1, r2, r5 + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r1] + ldr r6, _08026950 @ =0x03000048 + adds r0, r2, r6 + strh r4, [r0] + ldr r1, _08026954 @ =0x03000042 + adds r0, r2, r1 + strh r4, [r0] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08026958 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r3, #0x32] + ldr r4, _08026944 @ =0x03000044 + adds r0, r2, r4 + strh r1, [r0] + b _08026962 + .align 2, 0 +_08026944: .4byte 0x03000044 +_08026948: .4byte 0x00000266 +_0802694C: .4byte 0x03000046 +_08026950: .4byte 0x03000048 +_08026954: .4byte 0x03000042 +_08026958: + ldr r5, _080269BC @ =0x03000044 + adds r1, r2, r5 + movs r0, #0xfc + lsls r0, r0, #8 + strh r0, [r1] +_08026962: + adds r1, r3, #0 + adds r1, #0x40 + movs r4, #0 + movs r0, #0x3c + strh r0, [r1] + ldr r6, [sp, #0x14] + asrs r0, r6, #0x10 + ldr r2, [sp, #0x18] + asrs r1, r2, #0x10 + ldr r3, _080269C0 @ =0x00000267 + str r4, [sp] + movs r2, #0x10 + bl sub_80168F0 + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r3, r2, r0 + ldr r5, _080269C4 @ =0x03000046 + adds r1, r2, r5 + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r1] + ldr r6, _080269C8 @ =0x03000048 + adds r0, r2, r6 + strh r4, [r0] + ldr r1, _080269CC @ =0x03000042 + adds r0, r2, r1 + strh r4, [r0] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080269D0 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r3, #0x32] + ldr r4, _080269BC @ =0x03000044 + adds r1, r2, r4 + movs r0, #0xfc + lsls r0, r0, #8 + strh r0, [r1] + b _080269D6 + .align 2, 0 +_080269BC: .4byte 0x03000044 +_080269C0: .4byte 0x00000267 +_080269C4: .4byte 0x03000046 +_080269C8: .4byte 0x03000048 +_080269CC: .4byte 0x03000042 +_080269D0: + ldr r5, _08026A30 @ =0x03000044 + adds r0, r2, r5 + strh r1, [r0] +_080269D6: + adds r1, r3, #0 + adds r1, #0x40 + movs r4, #0 + movs r0, #0x3c + strh r0, [r1] + ldr r6, [sp, #0x14] + asrs r0, r6, #0x10 + ldr r2, [sp, #0x18] + asrs r1, r2, #0x10 + movs r3, #0x9a + lsls r3, r3, #2 + str r4, [sp] + movs r2, #0x10 + bl sub_80168F0 + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r3, r2, r0 + ldr r5, _08026A34 @ =0x03000046 + adds r1, r2, r5 + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r1] + ldr r6, _08026A38 @ =0x03000048 + adds r0, r2, r6 + strh r4, [r0] + ldr r1, _08026A3C @ =0x03000042 + adds r0, r2, r1 + strh r4, [r0] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08026A40 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r3, #0x32] + ldr r4, _08026A30 @ =0x03000044 + adds r1, r2, r4 + movs r0, #0xfc + lsls r0, r0, #8 + strh r0, [r1] + b _08026A46 + .align 2, 0 +_08026A30: .4byte 0x03000044 +_08026A34: .4byte 0x03000046 +_08026A38: .4byte 0x03000048 +_08026A3C: .4byte 0x03000042 +_08026A40: + ldr r5, _08026A68 @ =0x03000044 + adds r0, r2, r5 + strh r1, [r0] +_08026A46: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #0x3c + strh r0, [r1] + ldr r1, _08026A6C @ =gCamera + ldrh r0, [r1] + strh r0, [r1, #0x18] + adds r0, #0xf0 + strh r0, [r1, #0x1a] + ldr r0, _08026A70 @ =gCurTask + ldr r1, [r0] + ldr r0, _08026A74 @ =Task_8026C44 + str r0, [r1, #8] + bl _call_via_r0 + b _08026C12 + .align 2, 0 +_08026A68: .4byte 0x03000044 +_08026A6C: .4byte gCamera +_08026A70: .4byte gCurTask +_08026A74: .4byte Task_8026C44 +_08026A78: + ldr r4, _08026AB8 @ =gCamera + ldrh r1, [r4] + ldr r6, [sp, #0x14] + asrs r3, r6, #0x10 + subs r1, r3, r1 + strh r1, [r7, #0x16] + ldrh r2, [r4, #2] + ldr r5, [sp, #0x18] + asrs r0, r5, #0x10 + subs r0, r0, r2 + strh r0, [r7, #0x18] + ldr r6, [sp, #4] + strh r1, [r6, #0x16] + ldrh r0, [r7, #0x18] + strh r0, [r6, #0x18] + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _08026AD6 + movs r1, #0x18 + ldrsh r0, [r4, r1] + subs r0, #0x40 + cmp r3, r0 + bge _08026ABC + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r7, #0x10] + ldr r0, [r6, #0x10] + orrs r0, r1 + str r0, [r6, #0x10] + b _08026AD6 + .align 2, 0 +_08026AB8: .4byte gCamera +_08026ABC: + movs r2, #0x1a + ldrsh r0, [r4, r2] + adds r0, #0x40 + cmp r3, r0 + ble _08026AD6 + ldr r0, [r7, #0x10] + ldr r1, _08026B48 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r7, #0x10] + ldr r3, [sp, #4] + ldr r0, [r3, #0x10] + ands r0, r1 + str r0, [r3, #0x10] +_08026AD6: + adds r0, r7, #0 + bl UpdateSpriteAnimation + ldr r0, [sp, #4] + bl UpdateSpriteAnimation + adds r0, r7, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + bne _08026AF4 + ldr r4, [sp, #4] + ldrh r0, [r4, #0x18] + subs r0, #1 + strh r0, [r4, #0x18] +_08026AF4: + mov r5, sl + ldrb r1, [r5] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _08026B76 + subs r1, #1 + strb r1, [r5] + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _08026B60 + movs r0, #2 + ands r1, r0 + cmp r1, #0 + bne _08026B68 + ldr r0, _08026B4C @ =gPlayer + ldr r0, [r0, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08026B68 + ldr r0, [r7, #0x10] + adds r1, #0x80 + orrs r0, r1 + str r0, [r7, #0x10] + ldr r2, _08026B50 @ =gDispCnt + ldrh r0, [r2] + movs r6, #0x80 + lsls r6, r6, #8 + adds r1, r6, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08026B54 @ =gWinRegs + ldr r0, _08026B58 @ =0x00003F1F + strh r0, [r1, #0xa] + ldr r1, _08026B5C @ =gBldRegs + movs r0, #0xbf + strh r0, [r1] + movs r0, #0x10 + strh r0, [r1, #4] + b _08026B68 + .align 2, 0 +_08026B48: .4byte 0xFFFFFBFF +_08026B4C: .4byte gPlayer +_08026B50: .4byte gDispCnt +_08026B54: .4byte gWinRegs +_08026B58: .4byte 0x00003F1F +_08026B5C: .4byte gBldRegs +_08026B60: + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08026B82 +_08026B68: + adds r0, r7, #0 + bl DisplaySprite + ldr r0, [sp, #4] + bl DisplaySprite + b _08026B82 +_08026B76: + adds r0, r7, #0 + bl DisplaySprite + ldr r0, [sp, #4] + bl DisplaySprite +_08026B82: + ldr r3, [r7, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + ands r3, r0 + cmp r3, #0 + beq _08026BE0 + ldr r2, _08026BC0 @ =gSpriteTransformRotation + ldr r0, [sp, #0x10] + ldrh r1, [r0] + ldr r0, _08026BC4 @ =0x000003FF + ands r0, r1 + strh r0, [r2] + ldr r0, _08026BC8 @ =gSpriteTransformScaleX + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _08026BCC @ =gSpriteTransformScaleY + strh r1, [r0] + ldr r0, _08026BD0 @ =sa2__gUnknown_03002A8C + movs r1, #0 + strh r1, [r0] + ldr r0, _08026BD4 @ =sa2__gUnknown_03004D58 + strh r1, [r0] + ldr r1, _08026BD8 @ =sa2__gUnknown_0300194C + mov r3, r8 + ldrh r0, [r3, #0x22] + strh r0, [r1] + ldr r1, _08026BDC @ =sa2__gUnknown_03002820 + ldrh r0, [r3, #0x24] + b _08026C0E + .align 2, 0 +_08026BC0: .4byte gSpriteTransformRotation +_08026BC4: .4byte 0x000003FF +_08026BC8: .4byte gSpriteTransformScaleX +_08026BCC: .4byte gSpriteTransformScaleY +_08026BD0: .4byte sa2__gUnknown_03002A8C +_08026BD4: .4byte sa2__gUnknown_03004D58 +_08026BD8: .4byte sa2__gUnknown_0300194C +_08026BDC: .4byte sa2__gUnknown_03002820 +_08026BE0: + ldr r2, _08026C24 @ =gSpriteTransformRotation + ldr r4, [sp, #0x10] + ldrh r1, [r4] + ldr r0, _08026C28 @ =0x000003FF + ands r0, r1 + strh r0, [r2] + ldr r0, _08026C2C @ =gSpriteTransformScaleX + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + strh r1, [r0] + ldr r0, _08026C30 @ =gSpriteTransformScaleY + strh r1, [r0] + ldr r0, _08026C34 @ =sa2__gUnknown_03002A8C + strh r3, [r0] + ldr r0, _08026C38 @ =sa2__gUnknown_03004D58 + strh r3, [r0] + ldr r1, _08026C3C @ =sa2__gUnknown_0300194C + mov r6, r8 + ldrh r0, [r6, #0x22] + strh r0, [r1] + ldr r1, _08026C40 @ =sa2__gUnknown_03002820 + ldrh r0, [r6, #0x24] +_08026C0E: + subs r0, #0x24 + strh r0, [r1] +_08026C12: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08026C24: .4byte gSpriteTransformRotation +_08026C28: .4byte 0x000003FF +_08026C2C: .4byte gSpriteTransformScaleX +_08026C30: .4byte gSpriteTransformScaleY +_08026C34: .4byte sa2__gUnknown_03002A8C +_08026C38: .4byte sa2__gUnknown_03004D58 +_08026C3C: .4byte sa2__gUnknown_0300194C +_08026C40: .4byte sa2__gUnknown_03002820 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc new file mode 100644 index 0000000000..096698c341 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc @@ -0,0 +1,116 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08027268 @ =gCurTask + mov r8, r0 + ldr r0, [r0] + ldrh r7, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r7, r0 + adds r5, r6, #0 + ldr r2, _0802726C @ =0x03000030 + adds r1, r7, r2 + movs r0, #0 + strh r0, [r1] + ldr r3, _08027270 @ =0x03000050 + adds r3, r3, r7 + mov ip, r3 + ldrb r4, [r3] + ldr r2, _08027274 @ =gSineTable + ldr r0, _08027278 @ =gSpriteTransformRotation + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r0, r0, #4 + adds r3, r4, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r0, [r1, r2] + lsls r0, r0, #4 + adds r2, r4, #0 + muls r2, r0, r2 + ldr r1, _0802727C @ =sa2__gUnknown_0300194C + ldr r4, _08027280 @ =gCamera + ldrh r0, [r4] + ldrh r1, [r1] + adds r0, r0, r1 + asrs r3, r3, #0xe + adds r3, r3, r0 + ldr r1, _08027284 @ =sa2__gUnknown_03002820 + ldrh r0, [r4, #2] + ldrh r1, [r1] + adds r0, r0, r1 + asrs r2, r2, #0xe + adds r2, r2, r0 + strh r3, [r6, #0x3c] + strh r2, [r6, #0x3e] + mov r3, ip + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + mov r3, r8 + cmp r0, #0 + beq _0802728C + ldr r0, _08027288 @ =0x0300004C + adds r1, r7, r0 + movs r0, #0x80 + lsls r0, r0, #2 + b _08027294 + .align 2, 0 +_08027268: .4byte gCurTask +_0802726C: .4byte 0x03000030 +_08027270: .4byte 0x03000050 +_08027274: .4byte gSineTable +_08027278: .4byte gSpriteTransformRotation +_0802727C: .4byte sa2__gUnknown_0300194C +_08027280: .4byte gCamera +_08027284: .4byte sa2__gUnknown_03002820 +_08027288: .4byte 0x0300004C +_0802728C: + ldr r2, _080272C8 @ =0x0300004C + adds r1, r7, r2 + movs r0, #0xfe + lsls r0, r0, #8 +_08027294: + strh r0, [r1] + adds r2, r5, #0 + adds r2, #0x4e + movs r1, #0 + movs r0, #0xfa + lsls r0, r0, #8 + strh r0, [r2] + str r1, [r5, #0x44] + str r1, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x40 + strh r1, [r0] + ldr r0, [r6, #0x10] + subs r1, #0x21 + ands r0, r1 + str r0, [r6, #0x10] + ldr r1, [r3] + ldr r0, _080272CC @ =Task_80272D0 + str r0, [r1, #8] + bl _call_via_r0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080272C8: .4byte 0x0300004C +_080272CC: .4byte Task_80272D0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc new file mode 100644 index 0000000000..4c87d5f8a1 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc @@ -0,0 +1,139 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, lr} + ldr r3, _08027640 @ =gCurTask + ldr r2, [r3] + ldrh r0, [r2, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r4, r0, r1 + mov ip, r4 + ldr r5, _08027644 @ =0x03000030 + adds r4, r0, r5 + ldrh r0, [r2] + adds r0, r0, r1 + ldrh r0, [r0, #6] + movs r1, #0 + strh r1, [r4] + ldr r1, _08027648 @ =0x03000094 + adds r0, r0, r1 + ldrh r1, [r0] + movs r2, #0 + ldrsh r0, [r0, r2] + adds r5, r3, #0 + cmp r0, #0 + bge _08027650 + ldr r3, _0802764C @ =0xFFFFFE00 + adds r0, r3, #0 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r0, #0 + ble _08027658 + strh r1, [r4] + b _08027658 + .align 2, 0 +_08027640: .4byte gCurTask +_08027644: .4byte 0x03000030 +_08027648: .4byte 0x03000094 +_0802764C: .4byte 0xFFFFFE00 +_08027650: + cmp r0, #0 + ble _08027658 + rsbs r0, r1, #0 + strh r0, [r4] +_08027658: + ldr r1, _080276C0 @ =gSpriteTransformRotation + ldrh r0, [r1] + ldrh r2, [r4] + adds r0, r0, r2 + strh r0, [r4] + ldr r3, _080276C4 @ =gSineTable + ldrh r2, [r1] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r2, r4 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r2, r2, #1 + adds r2, r2, r3 + movs r3, #0 + ldrsh r0, [r2, r3] + lsls r2, r0, #1 + adds r2, r2, r0 + ldr r3, _080276C8 @ =sa2__gUnknown_0300194C + ldr r4, _080276CC @ =gCamera + ldrh r0, [r4] + ldrh r3, [r3] + adds r0, r0, r3 + asrs r1, r1, #9 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, _080276D0 @ =sa2__gUnknown_03002820 + ldrh r0, [r4, #2] + ldrh r3, [r3] + adds r0, r0, r3 + asrs r2, r2, #9 + adds r2, r2, r0 + mov r0, ip + strh r1, [r0, #0x3c] + strh r2, [r0, #0x3e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + movs r2, #0 + ldrsh r0, [r4, r2] + adds r0, #0x78 + cmp r1, r0 + bge _080276D4 + mov r1, ip + adds r1, #0x4c + movs r0, #0x80 + lsls r0, r0, #2 + b _080276DC + .align 2, 0 +_080276C0: .4byte gSpriteTransformRotation +_080276C4: .4byte gSineTable +_080276C8: .4byte sa2__gUnknown_0300194C +_080276CC: .4byte gCamera +_080276D0: .4byte sa2__gUnknown_03002820 +_080276D4: + mov r1, ip + adds r1, #0x4c + movs r0, #0xfe + lsls r0, r0, #8 +_080276DC: + strh r0, [r1] + mov r2, ip + adds r2, #0x4e + movs r1, #0 + movs r0, #0xfa + lsls r0, r0, #8 + strh r0, [r2] + mov r3, ip + str r1, [r3, #0x44] + str r1, [r3, #0x48] + mov r0, ip + adds r0, #0x40 + strh r1, [r0] + mov r1, ip + adds r1, #0x42 + movs r0, #0x2a + strh r0, [r1] + ldr r1, [r5] + ldr r0, _08027710 @ =Task_8027714 + str r0, [r1, #8] + bl _call_via_r0 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08027710: .4byte Task_8027714 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc new file mode 100644 index 0000000000..362167012d --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc @@ -0,0 +1,163 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080274F4 @ =gCurTask + ldr r2, [r0] + ldrh r0, [r2, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r7, r0, r1 + ldr r4, _080274F8 @ =0x03000030 + adds r3, r0, r4 + ldrh r0, [r2] + adds r0, r0, r1 + ldrh r0, [r0, #6] + adds r5, r0, r1 + adds r1, #0x44 + adds r1, r1, r0 + mov r8, r1 + movs r1, #0 + strh r1, [r3] + ldr r2, _080274FC @ =0x03000094 + adds r0, r0, r2 + ldrh r1, [r0] + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r0, #0 + bge _08027504 + ldr r2, _08027500 @ =0xFFFFFE00 + adds r0, r2, #0 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r0, #0 + ble _0802750C + strh r1, [r3] + b _0802750C + .align 2, 0 +_080274F4: .4byte gCurTask +_080274F8: .4byte 0x03000030 +_080274FC: .4byte 0x03000094 +_08027500: .4byte 0xFFFFFE00 +_08027504: + cmp r0, #0 + ble _0802750C + rsbs r0, r1, #0 + strh r0, [r3] +_0802750C: + adds r0, r7, #0 + adds r1, r3, #0 + bl UnusedTransform + ldr r3, _0802759C @ =gSineTable + ldr r0, _080275A0 @ =gSpriteTransformRotation + ldrh r2, [r0] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r2, r4 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r2, r2, #1 + adds r2, r2, r3 + movs r3, #0 + ldrsh r0, [r2, r3] + lsls r2, r0, #1 + adds r2, r2, r0 + ldr r3, _080275A4 @ =sa2__gUnknown_0300194C + ldr r4, _080275A8 @ =gCamera + ldrh r0, [r4] + ldrh r3, [r3] + adds r0, r0, r3 + asrs r1, r1, #9 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + ldr r1, _080275AC @ =sa2__gUnknown_03002820 + ldrh r0, [r4, #2] + ldrh r1, [r1] + adds r0, r0, r1 + asrs r2, r2, #9 + adds r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r5, #0 + adds r0, #0x9b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080275E6 + lsls r0, r3, #0x10 + asrs r5, r0, #0x10 + lsls r0, r2, #0x10 + asrs r4, r0, #0x10 + ldr r3, _080275B0 @ =gPlayer + adds r0, r7, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl Coll_Player_Entity_Intersection + adds r6, r0, #0 + ldr r0, _080275B4 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _080275BC + ldr r3, _080275B8 @ =gPartner + adds r0, r7, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl Coll_Player_Entity_Intersection + adds r4, r0, #0 + b _080275BE + .align 2, 0 +_0802759C: .4byte gSineTable +_080275A0: .4byte gSpriteTransformRotation +_080275A4: .4byte sa2__gUnknown_0300194C +_080275A8: .4byte gCamera +_080275AC: .4byte sa2__gUnknown_03002820 +_080275B0: .4byte gPlayer +_080275B4: .4byte gNumSingleplayerCharacters +_080275B8: .4byte gPartner +_080275BC: + movs r4, #0 +_080275BE: + movs r5, #0x80 + lsls r5, r5, #0xc + cmp r6, r5 + bne _080275D4 + ldr r0, _080275F8 @ =gPlayer + bl Coll_DamagePlayer + mov r1, r8 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] +_080275D4: + cmp r4, r5 + bne _080275E6 + ldr r0, _080275FC @ =gPartner + bl Coll_DamagePlayer + mov r1, r8 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] +_080275E6: + adds r0, r7, #0 + bl DisplaySprite + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080275F8: .4byte gPlayer +_080275FC: .4byte gPartner + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc b/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc new file mode 100644 index 0000000000..bea9748582 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc @@ -0,0 +1,136 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + ldr r5, [r4] + ldr r0, _08031A84 @ =sub_8031AB4 + movs r2, #0x88 + lsls r2, r2, #6 + movs r6, #0 + str r6, [sp] + movs r1, #0x68 + movs r3, #0 + bl TaskCreate + ldrh r3, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r2, r3, r2 + ldrb r1, [r4, #8] + lsls r1, r1, #3 + ldrh r0, [r4, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r7, _08031A88 @ =0x03000044 + adds r0, r3, r7 + movs r7, #0 + mov sl, r7 + strh r1, [r0] + ldrb r1, [r5, #1] + lsls r1, r1, #3 + ldrh r0, [r4, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r4, _08031A8C @ =0x03000046 + adds r0, r3, r4 + strh r1, [r0] + ldr r7, _08031A90 @ =gPseudoRandom + mov r8, r7 + mov r1, r8 + ldr r0, [r1] + ldr r5, _08031A94 @ =0x00196225 + adds r1, r0, #0 + muls r1, r5, r1 + ldr r4, _08031A98 @ =0x3C6EF35F + adds r1, r1, r4 + str r1, [r7] + lsrs r7, r1, #1 + movs r0, #0xf + mov sb, r0 + ands r7, r0 + lsls r0, r7, #2 + adds r0, r0, r7 + lsls r0, r0, #2 + rsbs r0, r0, #0 + subs r0, #0xa + lsls r0, r0, #8 + str r0, [r2, #0x4c] + ldr r0, _08031A9C @ =0xFFFFE000 + str r0, [r2, #0x50] + str r6, [r2, #0x54] + movs r0, #0xa + str r0, [r2, #0x58] + adds r0, r1, #0 + muls r0, r5, r0 + adds r0, r0, r4 + muls r0, r5, r0 + adds r0, r0, r4 + mov r1, r8 + str r0, [r1] + mov r4, sb + ands r0, r4 + adds r0, #0xa + str r0, [r2, #0x58] + strh r6, [r2, #0x16] + strh r6, [r2, #0x18] + ldr r0, _08031AA0 @ =0x06012720 + str r0, [r2, #4] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r2, #0x1a] + strh r6, [r2, #8] + ldr r0, _08031AA4 @ =0x00000276 + strh r0, [r2, #0xa] + ldr r7, _08031AA8 @ =0x03000020 + adds r0, r3, r7 + mov r1, sl + strb r1, [r0] + strh r6, [r2, #0x14] + strh r6, [r2, #0x1c] + ldr r4, _08031AAC @ =0x03000021 + adds r1, r3, r4 + movs r0, #0xff + strb r0, [r1] + adds r7, #2 + adds r1, r3, r7 + movs r0, #0x10 + strb r0, [r1] + ldr r0, _08031AB0 @ =0x03000025 + adds r3, r3, r0 + mov r1, sl + strb r1, [r3] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r2, #0x28] + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r2, #0x10] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08031A84: .4byte sub_8031AB4 +_08031A88: .4byte 0x03000044 +_08031A8C: .4byte 0x03000046 +_08031A90: .4byte gPseudoRandom +_08031A94: .4byte 0x00196225 +_08031A98: .4byte 0x3C6EF35F +_08031A9C: .4byte 0xFFFFE000 +_08031AA0: .4byte 0x06012720 +_08031AA4: .4byte 0x00000276 +_08031AA8: .4byte 0x03000020 +_08031AAC: .4byte 0x03000021 +_08031AB0: .4byte 0x03000025 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc b/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc new file mode 100644 index 0000000000..c8f7882da4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc @@ -0,0 +1,412 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _0804E6EC @ =gPlayer + mov sl, r0 + ldr r0, _0804E6F0 @ =gCurTask + ldr r0, [r0] + ldrh r6, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r6, r0 + ldr r1, _0804E6F4 @ =0x0300000C + adds r1, r1, r6 + mov sb, r1 + ldr r2, _0804E6F8 @ =0x03000044 + adds r2, r6, r2 + str r2, [sp] + mov r3, sl + ldr r0, [r3, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E5DE + ldr r2, _0804E6FC @ =gDispCnt + ldrh r1, [r2] + ldr r0, _0804E700 @ =0x00007FFF + ands r0, r1 + strh r0, [r2] + mov r1, sb + ldr r0, [r1, #0x10] + ldr r1, _0804E704 @ =0xFFFFFE7F + ands r0, r1 + mov r2, sb + str r0, [r2, #0x10] +_0804E5DE: + ldr r2, _0804E708 @ =sBoss5ProcData + ldr r3, _0804E70C @ =0x0300009A + adds r0, r6, r3 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r2, [r0] + adds r0, r4, #0 + mov r1, sl + bl _call_via_r2 + str r0, [sp, #4] + adds r0, r4, #0 + bl sub_804EB04 + ldr r0, _0804E710 @ =0x03000088 + adds r5, r6, r0 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + bne _0804E618 + adds r0, r4, #0 + bl sub_804FDD4 +_0804E618: + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _0804E62A + adds r0, r4, #0 + bl sub_804EB90 +_0804E62A: + ldr r1, _0804E714 @ =0x0300008C + adds r1, r1, r6 + mov r8, r1 + ldr r1, [r1] + ldr r0, [r4, #0x74] + asrs r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, _0804E718 @ =0x03000090 + adds r7, r6, r2 + ldr r2, [r7] + ldr r0, [r4, #0x78] + asrs r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + mov r3, sl + bl sub_800BFEC + adds r5, r0, #0 + ldr r3, _0804E71C @ =gNumSingleplayerCharacters + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #2 + bne _0804E684 + mov r0, r8 + ldr r1, [r0] + ldr r0, [r4, #0x74] + asrs r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, [r7] + ldr r0, [r4, #0x78] + asrs r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r3, _0804E720 @ =gPartner + mov r0, sb + bl sub_800BFEC + orrs r5, r0 +_0804E684: + cmp r5, #0 + beq _0804E68A + b _0804E7D0 +_0804E68A: + ldr r1, _0804E724 @ =0x03000097 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0804E69A + b _0804E7DE +_0804E69A: + mov r2, r8 + ldr r1, [r2] + ldr r0, [r4, #0x74] + asrs r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, [r7] + ldr r0, [r4, #0x78] + asrs r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + mov r3, sl + bl sub_800C0E0 + adds r5, r0, #0 + ldr r3, _0804E71C @ =gNumSingleplayerCharacters + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #2 + bne _0804E728 + mov r0, r8 + ldr r1, [r0] + ldr r0, [r4, #0x74] + asrs r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r2, [r7] + ldr r0, [r4, #0x78] + asrs r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r3, _0804E720 @ =gPartner + mov r0, sb + bl sub_800C0E0 + b _0804E72A + .align 2, 0 +_0804E6EC: .4byte gPlayer +_0804E6F0: .4byte gCurTask +_0804E6F4: .4byte 0x0300000C +_0804E6F8: .4byte 0x03000044 +_0804E6FC: .4byte gDispCnt +_0804E700: .4byte 0x00007FFF +_0804E704: .4byte 0xFFFFFE7F +_0804E708: .4byte sBoss5ProcData +_0804E70C: .4byte 0x0300009A +_0804E710: .4byte 0x03000088 +_0804E714: .4byte 0x0300008C +_0804E718: .4byte 0x03000090 +_0804E71C: .4byte gNumSingleplayerCharacters +_0804E720: .4byte gPartner +_0804E724: .4byte 0x03000097 +_0804E728: + movs r0, #0 +_0804E72A: + cmp r5, #0 + beq _0804E764 + adds r0, r4, #0 + adds r0, #0x9a + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #5 + beq _0804E73E + cmp r2, #0xa + bne _0804E75E +_0804E73E: + mov r1, sl + ldr r0, [r1, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0804E75E + cmp r2, #0xa + beq _0804E7D0 + movs r2, #0 + str r2, [sp, #4] + adds r1, r4, #0 + adds r1, #0x9b + movs r0, #0xa + strb r0, [r1] + mov r3, sl + b _0804E794 +_0804E75E: + movs r0, #0 + str r0, [sp, #4] + b _0804E7AC +_0804E764: + cmp r0, #0 + beq _0804E7D0 + adds r0, r4, #0 + adds r0, #0x9a + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #5 + beq _0804E778 + cmp r2, #0xa + bne _0804E7A8 +_0804E778: + ldr r3, _0804E7A4 @ =gPartner + ldr r0, [r3, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0804E7A8 + cmp r2, #0xa + beq _0804E7D0 + movs r1, #0 + str r1, [sp, #4] + adds r1, r4, #0 + adds r1, #0x9b + movs r0, #0xa + strb r0, [r1] +_0804E794: + ldrh r0, [r3, #8] + rsbs r0, r0, #0 + strh r0, [r3, #8] + ldrh r0, [r3, #0xc] + rsbs r0, r0, #0 + strh r0, [r3, #0xc] + b _0804E7D0 + .align 2, 0 +_0804E7A4: .4byte gPartner +_0804E7A8: + movs r2, #0 + str r2, [sp, #4] +_0804E7AC: + adds r2, r4, #0 + adds r2, #0x9b + movs r0, #0x11 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x95 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0804E7C8 + movs r0, #0x13 + strb r0, [r2] +_0804E7C8: + adds r1, r4, #0 + adds r1, #0x97 + movs r0, #0x20 + strb r0, [r1] +_0804E7D0: + adds r0, r4, #0 + adds r0, #0x97 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0804E82E +_0804E7DE: + ldr r0, _0804E8BC @ =gStageTime + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0804E814 + ldr r0, _0804E8C0 @ =gPlayer + ldr r0, [r0, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E814 + mov r3, sb + ldr r0, [r3, #0x10] + adds r1, #0x80 + orrs r0, r1 + str r0, [r3, #0x10] + ldr r2, _0804E8C4 @ =gDispCnt + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0804E8C8 @ =gWinRegs + ldr r0, _0804E8CC @ =0x00003F3F + strh r0, [r1, #0xa] +_0804E814: + adds r0, r4, #0 + adds r0, #0x9b + ldrb r0, [r0] + subs r0, #0x11 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0804E82E + adds r1, r4, #0 + adds r1, #0x97 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0804E82E: + adds r0, r4, #0 + adds r0, #0x8c + ldr r1, [r0] + ldr r0, [r4, #0x74] + asrs r0, r0, #8 + adds r1, r1, r0 + ldr r2, _0804E8D0 @ =gCamera + ldrh r0, [r2] + subs r1, r1, r0 + ldr r3, [sp] + strh r1, [r3, #0x16] + mov r0, sb + strh r1, [r0, #0x16] + adds r0, r4, #0 + adds r0, #0x90 + ldr r1, [r0] + ldr r0, [r4, #0x78] + asrs r0, r0, #8 + adds r1, r1, r0 + ldrh r0, [r2, #2] + subs r1, r1, r0 + strh r1, [r3, #0x18] + mov r2, sb + strh r1, [r2, #0x18] + adds r5, r4, #0 + adds r5, #0x88 + ldr r0, [r5] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0804E878 + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + bl DisplaySprite +_0804E878: + ldr r0, [r5] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0804E88E + ldr r0, [sp] + bl UpdateSpriteAnimation + ldr r0, [sp] + bl DisplaySprite +_0804E88E: + ldr r3, [sp, #4] + cmp r3, #0 + bne _0804E8AC + adds r0, r4, #0 + adds r0, #0x9b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x9a + strb r0, [r1] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_804E8D4 +_0804E8AC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804E8BC: .4byte gStageTime +_0804E8C0: .4byte gPlayer +_0804E8C4: .4byte gDispCnt +_0804E8C8: .4byte gWinRegs +_0804E8CC: .4byte 0x00003F3F +_0804E8D0: .4byte gCamera + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc b/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc new file mode 100644 index 0000000000..faf991763f --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc @@ -0,0 +1,367 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r0, _0804F27C @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r7, r0, r1 + adds r1, #0x14 + adds r1, r0, r1 + str r1, [sp] + ldr r2, _0804F280 @ =0x03000044 + adds r2, r0, r2 + str r2, [sp, #4] + ldr r3, [r7] + str r3, [sp, #8] + ldr r4, [r7, #4] + str r4, [sp, #0xc] + movs r3, #0xff + ldrb r6, [r7, #0x12] + mov r8, r6 + movs r1, #0x10 + ldrsh r0, [r7, r1] + cmp r0, #0x18 + ble _0804F2B6 + ldr r4, _0804F284 @ =gPlayer + ldr r2, [r4] + ldr r0, [r4, #4] + ldr r1, [sp, #0xc] + subs r6, r0, r1 + movs r0, #8 + ldrsh r4, [r7, r0] + movs r0, #0xa + ldrsh r1, [r7, r0] + ldr r5, _0804F288 @ =gSineTable + mov r0, r8 + ands r0, r3 + lsls r3, r0, #2 + mov sb, r3 + lsls r0, r0, #3 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #3 + adds r1, r1, r0 + ldr r3, [sp, #8] + subs r0, r2, r3 + cmp r0, #0 + bge _0804F242 + rsbs r0, r0, #0 +_0804F242: + adds r2, r1, #0 + muls r2, r0, r2 + movs r0, #0x80 + lsls r0, r0, #1 + add r0, sb + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #3 + adds r1, r4, r0 + cmp r1, #0 + bge _0804F260 + rsbs r1, r1, #0 +_0804F260: + adds r0, r2, #0 + bl __divsi3 + adds r1, r0, #0 + ldr r2, _0804F28C @ =0xFFFFF800 + adds r0, r6, r2 + cmp r1, r0 + bge _0804F298 + cmp r4, #0 + ble _0804F290 + movs r3, #3 + add r8, r3 + b _0804F2AC + .align 2, 0 +_0804F27C: .4byte gCurTask +_0804F280: .4byte 0x03000044 +_0804F284: .4byte gPlayer +_0804F288: .4byte gSineTable +_0804F28C: .4byte 0xFFFFF800 +_0804F290: + movs r4, #3 + rsbs r4, r4, #0 + add r8, r4 + b _0804F2AC +_0804F298: + cmp r1, r6 + ble _0804F2AC + cmp r4, #0 + ble _0804F2A8 + movs r6, #3 + rsbs r6, r6, #0 + add r8, r6 + b _0804F2AC +_0804F2A8: + movs r0, #3 + add r8, r0 +_0804F2AC: + movs r0, #0xff + mov r1, r8 + ands r1, r0 + mov r8, r1 + strh r1, [r7, #0x12] +_0804F2B6: + movs r2, #8 + ldrsh r0, [r7, r2] + ldr r3, [sp, #8] + adds r3, r3, r0 + str r3, [sp, #8] + movs r4, #0xa + ldrsh r0, [r7, r4] + ldr r6, [sp, #0xc] + adds r6, r6, r0 + str r6, [sp, #0xc] + movs r1, #0x10 + ldrsh r0, [r7, r1] + cmp r0, #0x10 + ble _0804F310 + movs r3, #0xc + ldrsh r2, [r7, r3] + ldr r3, _0804F350 @ =gSineTable + movs r1, #0xff + mov r4, r8 + ands r1, r4 + lsls r0, r1, #3 + movs r6, #0x80 + lsls r6, r6, #2 + adds r0, r0, r6 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r2, r0 + asrs r0, r0, #8 + ldrh r2, [r7, #8] + adds r0, r0, r2 + strh r0, [r7, #8] + movs r4, #0xc + ldrsh r2, [r7, r4] + lsls r1, r1, #3 + adds r1, r1, r3 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r2, r0 + asrs r0, r0, #8 + ldrh r6, [r7, #0xa] + adds r0, r0, r6 + strh r0, [r7, #0xa] +_0804F310: + ldr r0, [sp, #8] + str r0, [r7] + ldr r1, [sp, #0xc] + str r1, [r7, #4] + asrs r5, r0, #8 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + asrs r4, r1, #8 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + mov sb, r0 + ldr r0, [sp] + mov r1, sl + mov r2, sb + ldr r3, _0804F354 @ =gPlayer + bl sub_800BF10 + adds r6, r0, #0 + ldr r0, _0804F358 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _0804F360 + ldr r3, _0804F35C @ =gPartner + ldr r0, [sp] + mov r1, sl + mov r2, sb + bl sub_800BF10 + b _0804F362 + .align 2, 0 +_0804F350: .4byte gSineTable +_0804F354: .4byte gPlayer +_0804F358: .4byte gNumSingleplayerCharacters +_0804F35C: .4byte gPartner +_0804F360: + movs r0, #0 +_0804F362: + orrs r6, r0 + cmp r6, #0 + beq _0804F3A8 + movs r3, #0xa8 + lsls r3, r3, #5 + ldr r2, _0804F3A4 @ =gSineTable + movs r1, #0xff + mov r4, r8 + ands r1, r4 + lsls r0, r1, #3 + movs r6, #0x80 + lsls r6, r6, #2 + adds r0, r0, r6 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r3, r0 + asrs r0, r0, #8 + ldr r4, [sp, #8] + adds r0, r4, r0 + lsls r1, r1, #3 + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + muls r1, r3, r1 + asrs r1, r1, #8 + ldr r6, [sp, #0xc] + adds r1, r6, r1 + bl sub_8017540 + b _0804F41E + .align 2, 0 +_0804F3A4: .4byte gSineTable +_0804F3A8: + ldr r1, _0804F428 @ =gCamera + movs r2, #0 + ldrsh r0, [r1, r2] + subs r5, r5, r0 + movs r3, #2 + ldrsh r0, [r1, r3] + subs r4, r4, r0 + ldr r3, _0804F42C @ =gPseudoRandom + ldr r1, [r3] + ldr r0, _0804F430 @ =0x00196225 + adds r2, r1, #0 + muls r2, r0, r2 + ldr r6, _0804F434 @ =0x3C6EF35F + adds r2, r2, r6 + str r2, [r3] + ldr r0, _0804F438 @ =0x000003FF + mov sb, r0 + ands r2, r0 + ldr r1, _0804F43C @ =0xFFFFE600 + adds r2, r2, r1 + ldr r3, _0804F440 @ =gSineTable + movs r1, #0xff + mov r6, r8 + ands r1, r6 + lsls r0, r1, #3 + movs r6, #0x80 + lsls r6, r6, #2 + adds r0, r0, r6 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r2, r0 + asrs r0, r0, #8 + ldr r6, [sp, #8] + adds r0, r6, r0 + asrs r0, r0, #8 + lsls r1, r1, #3 + adds r1, r1, r3 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + muls r1, r2, r1 + asrs r1, r1, #8 + ldr r2, [sp, #0xc] + adds r1, r2, r1 + asrs r1, r1, #8 + bl CreateBrakingDustEffect + adds r1, r5, #0 + adds r1, #0x20 + ldr r0, _0804F444 @ =0x0000012F + cmp r1, r0 + bhi _0804F41E + adds r1, r4, #0 + adds r1, #0x40 + subs r0, #0x10 + cmp r1, r0 + bls _0804F44C +_0804F41E: + ldr r0, _0804F448 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0804F4A6 + .align 2, 0 +_0804F428: .4byte gCamera +_0804F42C: .4byte gPseudoRandom +_0804F430: .4byte 0x00196225 +_0804F434: .4byte 0x3C6EF35F +_0804F438: .4byte 0x000003FF +_0804F43C: .4byte 0xFFFFE600 +_0804F440: .4byte gSineTable +_0804F444: .4byte 0x0000012F +_0804F448: .4byte gCurTask +_0804F44C: + ldrh r0, [r7, #0x10] + adds r0, #1 + strh r0, [r7, #0x10] + ldr r3, [sp, #4] + strh r5, [r3, #6] + strh r4, [r3, #8] + mov r1, r8 + movs r4, #2 + ldrsh r0, [r3, r4] + cmp r0, #0 + bge _0804F464 + adds r1, #0x80 +_0804F464: + adds r0, r1, #0 + adds r0, #0x80 + lsls r0, r0, #2 + mov r6, sb + ands r0, r6 + ldr r1, [sp, #4] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #6 + ldr r2, [sp] + str r0, [r2, #0x10] + ldr r2, _0804F4B8 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r3, [sp] + ldr r0, [r3, #0x10] + orrs r0, r1 + str r0, [r3, #0x10] + ldr r0, [sp] + bl UpdateSpriteAnimation + ldr r0, [sp] + ldr r1, [sp, #4] + bl TransformSprite + ldr r0, [sp] + bl DisplaySprite +_0804F4A6: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F4B8: .4byte gOamMatrixIndex + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc b/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc new file mode 100644 index 0000000000..d56fd5c0d4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc @@ -0,0 +1,248 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + mov sb, r2 + lsls r3, r3, #0x18 + lsrs r5, r3, #0x18 + ldr r0, _08031FF8 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _08031FFC + movs r1, #2 + rsbs r1, r1, #0 + adds r0, r1, #0 + strb r0, [r6] + b _080321A8 + .align 2, 0 +_08031FF8: .4byte gGameMode +_08031FFC: + ldr r0, _08032090 @ =Task_EggSnakeInit + movs r2, #0x84 + lsls r2, r2, #6 + ldr r1, _08032094 @ =TaskDestructor_8034208 + str r1, [sp] + movs r1, #0xac + movs r3, #0 + bl TaskCreate + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r3 + mov sl, r0 + ldr r0, _08032098 @ =0x0300000C + adds r7, r3, r0 + movs r4, #0 + movs r2, #0 + mov r0, r8 + mov r1, sl + strh r0, [r1, #4] + mov r0, sb + strh r0, [r1, #6] + str r6, [r1] + ldrb r0, [r6] + strb r0, [r1, #8] + strb r5, [r1, #9] + ldr r0, _0803209C @ =0x03000098 + adds r1, r3, r0 + movs r0, #0x78 + strh r0, [r1] + ldr r1, _080320A0 @ =0x0300009C + adds r0, r3, r1 + strb r4, [r0] + adds r1, #0xd + adds r0, r3, r1 + strb r4, [r0] + subs r1, #1 + adds r0, r3, r1 + strb r4, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + mov r1, sl + str r0, [r1, #0x78] + str r2, [r1, #0x7c] + ldr r1, _080320A4 @ =0x03000080 + adds r0, r3, r1 + str r2, [r0] + adds r1, #4 + adds r0, r3, r1 + str r2, [r0] + adds r1, #0x1c + adds r0, r3, r1 + strh r2, [r0] + ldr r0, _080320A8 @ =0x030000A2 + adds r1, r3, r0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldr r1, _080320AC @ =0x030000A4 + adds r0, r3, r1 + strh r2, [r0] + adds r1, #6 + adds r0, r3, r1 + strb r4, [r0] + ldr r0, _080320B0 @ =gLoadedSaveGame + ldrb r0, [r0, #0x18] + cmp r0, #0 + beq _080320B8 + ldr r0, _080320B4 @ =0x0300009A + adds r1, r3, r0 + movs r0, #2 + strb r0, [r1] + b _080320BE + .align 2, 0 +_08032090: .4byte Task_EggSnakeInit +_08032094: .4byte TaskDestructor_8034208 +_08032098: .4byte 0x0300000C +_0803209C: .4byte 0x03000098 +_080320A0: .4byte 0x0300009C +_080320A4: .4byte 0x03000080 +_080320A8: .4byte 0x030000A2 +_080320AC: .4byte 0x030000A4 +_080320B0: .4byte gLoadedSaveGame +_080320B4: .4byte 0x0300009A +_080320B8: + ldr r1, _080321B8 @ =0x0300009A + adds r0, r3, r1 + strb r4, [r0] +_080320BE: + ldrb r0, [r6] + lsls r0, r0, #3 + mov r1, r8 + lsls r5, r1, #8 + adds r0, r0, r5 + strh r0, [r7, #0x16] + ldrb r0, [r6, #1] + lsls r0, r0, #3 + mov r1, sb + lsls r1, r1, #8 + mov sb, r1 + add r0, sb + strh r0, [r7, #0x18] + movs r0, #0x30 + bl VramMalloc + str r0, [r7, #4] + movs r0, #0xb0 + lsls r0, r0, #3 + strh r0, [r7, #0x1a] + movs r0, #0 + strh r0, [r7, #8] + ldr r0, _080321BC @ =0x00000296 + strh r0, [r7, #0xa] + adds r0, r7, #0 + adds r0, #0x20 + movs r1, #3 + strb r1, [r0] + movs r0, #0 + strh r0, [r7, #0x14] + strh r0, [r7, #0x1c] + adds r1, r7, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x22 + movs r1, #0x10 + strb r1, [r0] + adds r0, #3 + movs r1, #0 + strb r1, [r0] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7, #0x28] + movs r1, #0x80 + lsls r1, r1, #6 + mov r8, r1 + str r1, [r7, #0x10] + mov r4, sl + adds r4, #0x44 + ldrb r0, [r6] + lsls r0, r0, #3 + adds r0, r0, r5 + strh r0, [r4, #0x16] + ldrb r0, [r6, #1] + lsls r0, r0, #3 + add r0, sb + strh r0, [r4, #0x18] + movs r1, #2 + rsbs r1, r1, #0 + adds r0, r1, #0 + strb r0, [r6] + movs r0, #8 + bl VramMalloc + str r0, [r4, #4] + movs r0, #0xa8 + lsls r0, r0, #3 + strh r0, [r4, #0x1a] + movs r0, #0 + strh r0, [r4, #8] + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r4, #0xa] + mov r0, sl + adds r0, #0x64 + movs r1, #3 + strb r1, [r0] + movs r0, #0 + strh r0, [r4, #0x14] + strh r0, [r4, #0x1c] + mov r1, sl + adds r1, #0x65 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + mov r0, sl + adds r0, #0x66 + movs r1, #0x10 + strb r1, [r0] + adds r0, #3 + movs r1, #0 + strb r1, [r0] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r4, #0x28] + mov r1, r8 + str r1, [r4, #0x10] + ldrh r1, [r7, #0x18] + adds r0, r1, #0 + subs r0, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, #0x20 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r3, [r7, #0x16] + adds r2, r3, #0 + subs r2, #0x90 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r3, #0xb0 + lsls r3, r3, #0x10 + asrs r3, r3, #0x10 + bl Bosses_SetCamBounds +_080321A8: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080321B8: .4byte 0x0300009A +_080321BC: .4byte 0x00000296 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc b/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc new file mode 100644 index 0000000000..e81dcee124 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc @@ -0,0 +1,555 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r1, _0803247C @ =gCurTask + ldr r0, [r1] + ldrh r6, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r6, r1 + ldr r2, _08032480 @ =0x0300000C + adds r2, r2, r6 + mov r8, r2 + ldr r3, _08032484 @ =0x03000044 + adds r3, r3, r6 + mov sl, r3 + ldr r4, [r5] + mov ip, r4 + ldr r0, [r5, #0x74] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp] + ldr r0, _08032488 @ =0x030000A2 + adds r1, r6, r0 + ldr r2, _0803248C @ =0x030000A4 + adds r0, r6, r2 + ldrh r0, [r0] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldr r4, _08032490 @ =0x030000A0 + adds r2, r6, r4 + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r2] + subs r1, r1, r0 + ldr r0, _08032494 @ =0x000003FF + ands r1, r0 + strh r1, [r2] + ldr r1, _08032498 @ =gSineTable + movs r3, #0 + ldrsh r0, [r2, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r7, [r0, r4] + lsls r0, r7, #4 + subs r0, r0, r7 + asrs r7, r0, #0xb + ldrb r1, [r5, #8] + lsls r1, r1, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, [r5, #0x78] + asrs r0, r0, #8 + adds r1, r1, r0 + adds r1, r1, r7 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 + adds r0, r7, #0 + adds r0, #0x80 + lsls r0, r0, #0x10 + asrs r3, r0, #0x10 + adds r1, r3, #0 + cmp r3, #0 + bge _080323FE + adds r1, #0x1f +_080323FE: + asrs r1, r1, #5 + lsls r0, r1, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #5 + subs r1, r3, r1 + ldr r3, _0803249C @ =gUnknown_03005870 + lsls r2, r4, #1 + adds r2, r2, r3 + adds r0, r4, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r4, #0 + ldrsh r3, [r2, r4] + subs r0, r0, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + muls r0, r1, r0 + cmp r0, #0 + bge _0803242A + adds r0, #0x1f +_0803242A: + asrs r2, r0, #5 + adds r2, r3, r2 + lsls r2, r2, #0x10 + mov r0, ip + ldrb r1, [r0, #1] + lsls r1, r1, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, [r5, #0x7c] + asrs r0, r0, #8 + adds r1, r1, r0 + lsrs r3, r2, #0x10 + asrs r2, r2, #0x10 + adds r2, r2, r1 + ldr r1, _080324A0 @ =0x03000090 + adds r0, r6, r1 + strh r7, [r0] + ldr r4, _080324A4 @ =0x03000092 + adds r0, r6, r4 + strh r3, [r0] + mov r1, sb + lsls r0, r1, #0x10 + asrs r4, r0, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov sb, r2 + adds r0, r4, #0 + mov r1, sb + bl sub_8031D88 + ldr r2, _080324A8 @ =0x0300009A + adds r0, r6, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #7 + ble _080324AC + bl sub_80327C4 + b _080327B0 + .align 2, 0 +_0803247C: .4byte gCurTask +_08032480: .4byte 0x0300000C +_08032484: .4byte 0x03000044 +_08032488: .4byte 0x030000A2 +_0803248C: .4byte 0x030000A4 +_08032490: .4byte 0x030000A0 +_08032494: .4byte 0x000003FF +_08032498: .4byte gSineTable +_0803249C: .4byte gUnknown_03005870 +_080324A0: .4byte 0x03000090 +_080324A4: .4byte 0x03000092 +_080324A8: .4byte 0x0300009A +_080324AC: + ldr r3, _08032510 @ =gCurTask + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r0, _08032514 @ =0x0300000C + adds r1, r1, r0 + ldr r2, _08032518 @ =gCamera + ldrh r0, [r2] + subs r0, r4, r0 + strh r0, [r1, #0x16] + ldrh r0, [r2, #2] + mov r2, sb + subs r0, r2, r0 + strh r0, [r1, #0x18] + bl sub_8031F74 + mov r0, r8 + bl UpdateSpriteAnimation + ldr r3, _0803251C @ =0x030000AA + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _080324E0 + mov r0, sl + bl UpdateSpriteAnimation +_080324E0: + ldr r4, _08032510 @ =gCurTask + ldr r0, [r4] + ldrh r0, [r0, #6] + ldr r1, _08032514 @ =0x0300000C + adds r2, r0, r1 + ldr r3, _08032520 @ =0x03000044 + adds r0, r0, r3 + ldrh r1, [r2, #0x16] + strh r1, [r0, #0x16] + ldrh r1, [r2, #0x18] + strh r1, [r0, #0x18] + bl sub_8031ED0 + ldr r4, _08032524 @ =0x030000A9 + adds r0, r6, r4 + ldrb r0, [r0] + cmp r0, #5 + bls _08032506 + b _080327B0 +_08032506: + lsls r0, r0, #2 + ldr r1, _08032528 @ =_0803252C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08032510: .4byte gCurTask +_08032514: .4byte 0x0300000C +_08032518: .4byte gCamera +_0803251C: .4byte 0x030000AA +_08032520: .4byte 0x03000044 +_08032524: .4byte 0x030000A9 +_08032528: .4byte _0803252C +_0803252C: @ jump table + .4byte _08032544 @ case 0 + .4byte _080325CC @ case 1 + .4byte _08032670 @ case 2 + .4byte _080326CE @ case 3 + .4byte _0803274C @ case 4 + .4byte _08032790 @ case 5 +_08032544: + adds r6, r5, #0 + adds r6, #0xa2 + movs r0, #0 + ldrsh r1, [r6, r0] + ldr r0, _080325C8 @ =0x000001FF + cmp r1, r0 + bgt _08032560 + movs r0, #0 + movs r1, #0x80 + lsls r1, r1, #2 + strh r1, [r6] + adds r1, r5, #0 + adds r1, #0xa4 + strh r0, [r1] +_08032560: + adds r0, r7, #0 + adds r0, #0x90 + cmp r0, #0 + bge _0803256A + adds r0, #0x1f +_0803256A: + asrs r0, r0, #5 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08032576 + b _080327B0 +_08032576: + cmp r4, #8 + bne _0803257C + b _080327B0 +_0803257C: + ldr r0, [sp] + adds r0, #0x55 + ldrb r2, [r0] + adds r0, r2, #0 + cmp r0, #0 + bne _0803258A + b _080327B0 +_0803258A: + cmp r0, #8 + bne _08032590 + b _080327B0 +_08032590: + subs r0, r2, #2 + lsls r1, r4, #0x18 + lsls r0, r0, #0x18 + asrs r3, r1, #0x18 + cmp r1, r0 + bge _0803259E + b _080327B0 +_0803259E: + adds r0, r2, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r3, r0 + ble _080325AA + b _080327B0 +_080325AA: + ldr r0, [sp] + adds r0, #0x57 + ldrb r0, [r0] + cmp r0, #0 + bne _080325B6 + b _080327B0 +_080325B6: + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r6] + adds r0, r5, #0 + adds r0, #0xa4 + strh r1, [r0] + b _08032740 + .align 2, 0 +_080325C8: .4byte 0x000001FF +_080325CC: + mov r3, r8 + adds r3, #0x20 + ldrb r0, [r3] + cmp r0, #1 + beq _080325FC + ldr r0, [sp] + adds r0, #0x5c + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + blt _080325E4 + b _080327B0 +_080325E4: + movs r0, #1 + strb r0, [r3] + mov r1, r8 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0xaa + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + b _080327B0 +_080325FC: + mov r2, r8 + ldr r0, [r2, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0803260C + b _080327B0 +_0803260C: + movs r2, #0 + movs r0, #2 + strb r0, [r3] + mov r0, sl + adds r0, #0x20 + strb r2, [r0] + mov r1, r8 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0xaa + strb r2, [r0] + ldr r3, _0803265C @ =gUnknown_084ACF08 + ldr r2, _08032660 @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _08032664 @ =0x00196225 + muls r0, r1, r0 + ldr r4, _08032668 @ =0x3C6EF35F + adds r0, r0, r4 + str r0, [r2] + ldr r1, _0803266C @ =gStageTime + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x98 + strh r1, [r0] + adds r0, #2 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x9b + strb r0, [r1] + adds r1, #0xe + b _08032744 + .align 2, 0 +_0803265C: .4byte gUnknown_084ACF08 +_08032660: .4byte gPseudoRandom +_08032664: .4byte 0x00196225 +_08032668: .4byte 0x3C6EF35F +_0803266C: .4byte gStageTime +_08032670: + adds r0, r5, #0 + adds r0, #0x9c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080326A0 + cmp r0, #0x10 + ble _08032684 + b _080327B0 +_08032684: + mov r1, r8 + adds r1, #0x20 + movs r0, #0 + strb r0, [r1] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0xaa + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + subs r1, #1 + b _08032744 +_080326A0: + adds r1, r5, #0 + adds r1, #0x98 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080326B2 + b _080327B0 +_080326B2: + mov r1, r8 + adds r1, #0x20 + movs r0, #0 + strb r0, [r1] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0xaa + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + subs r1, #1 + b _08032744 +_080326CE: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080327B0 + mov r0, r8 + adds r0, #0x20 + movs r2, #0 + movs r1, #3 + strb r1, [r0] + mov r0, sl + adds r0, #0x20 + strb r1, [r0] + mov r1, r8 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0xaa + strb r2, [r0] + adds r1, r5, #0 + adds r1, #0xa4 + movs r0, #0x40 + strh r0, [r1] + ldr r1, _0803273C @ =gUnknown_084ACEE4 + adds r2, r5, #0 + adds r2, #0x9a + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0xa6 + strh r0, [r1] + subs r1, #0xe + movs r0, #0x78 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x9b + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bne _08032740 + adds r1, r5, #0 + adds r1, #0xa9 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + b _080327B0 + .align 2, 0 +_0803273C: .4byte gUnknown_084ACEE4 +_08032740: + adds r1, r5, #0 + adds r1, #0xa9 +_08032744: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _080327B0 +_0803274C: + adds r2, r5, #0 + adds r2, #0xa2 + adds r0, r5, #0 + adds r0, #0xa6 + movs r3, #0 + ldrsh r1, [r2, r3] + ldrh r3, [r0] + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r1, r0 + blt _0803276C + movs r1, #0 + strh r3, [r2] + adds r0, r5, #0 + adds r0, #0xa4 + strh r1, [r0] +_0803276C: + adds r1, r5, #0 + adds r1, #0x98 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080327B0 + adds r1, #0xc + ldr r0, _0803278C @ =0x0000FFC0 + strh r0, [r1] + adds r1, #5 + movs r0, #0 + strb r0, [r1] + b _080327B0 + .align 2, 0 +_0803278C: .4byte 0x0000FFC0 +_08032790: + adds r3, r5, #0 + adds r3, #0xa2 + movs r0, #0 + ldrsh r1, [r3, r0] + ldr r0, _080327C0 @ =0x000001FF + cmp r1, r0 + ble _080327B0 + movs r2, #0 + movs r1, #0 + adds r0, #1 + strh r0, [r3] + adds r0, r5, #0 + adds r0, #0xa4 + strh r1, [r0] + adds r0, #5 + strb r2, [r0] +_080327B0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080327C0: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc b/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc new file mode 100644 index 0000000000..54d6fe273c --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc @@ -0,0 +1,786 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + movs r0, #0 + mov sb, r0 + ldr r0, _08033B48 @ =gCurTask + ldr r3, [r0] + ldrh r2, [r3, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r2 + mov sl, r0 + movs r1, #0 + str r1, [sp] + ldr r1, _08033B4C @ =0x040000D4 + ldr r0, _08033B50 @ =gUnknown_03005870 + str r0, [r1] + ldr r0, _08033B54 @ =gUnknown_03005890 + str r0, [r1, #4] + ldr r0, _08033B58 @ =0x80000009 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r4, _08033B5C @ =0x0300005E + adds r1, r2, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r5, _08033B60 @ =0x03000058 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08033B7C + movs r5, #0 + ldr r7, _08033B64 @ =0x03000030 + adds r6, r2, r7 + ldr r0, _08033B68 @ =0x03000054 + adds r0, r0, r2 + mov r8, r0 + ldr r7, _08033B6C @ =gCamera +_08033AF4: + lsls r0, r5, #2 + adds r0, r6, r0 + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r4, r0, r1 + ldr r1, [r4, #0x38] + asrs r1, r1, #8 + ldrh r2, [r4, #0x30] + adds r1, r1, r2 + ldr r3, [r4, #0x3c] + asrs r3, r3, #8 + ldrh r0, [r4, #0x32] + adds r3, r3, r0 + ldr r2, _08033B50 @ =gUnknown_03005870 + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r2, r2, r3 + ldrh r0, [r7] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r1, r0 + strh r0, [r4, #0x16] + ldrh r0, [r7, #2] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + subs r0, r2, r0 + strh r0, [r4, #0x18] + adds r0, r4, #0 + ldr r3, _08033B70 @ =gPlayer + bl Coll_Player_PlatformCrumbling + cmp r0, #0 + bne _08033B74 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _08033AF4 + b _08033B94 + .align 2, 0 +_08033B48: .4byte gCurTask +_08033B4C: .4byte 0x040000D4 +_08033B50: .4byte gUnknown_03005870 +_08033B54: .4byte gUnknown_03005890 +_08033B58: .4byte 0x80000009 +_08033B5C: .4byte 0x0300005E +_08033B60: .4byte 0x03000058 +_08033B64: .4byte 0x03000030 +_08033B68: .4byte 0x03000054 +_08033B6C: .4byte gCamera +_08033B70: .4byte gPlayer +_08033B74: + movs r1, #0xff + str r1, [sp] + mov sb, r5 + b _08033B94 +_08033B7C: + ldr r0, _08033BB4 @ =gPlayer + ldr r0, [r0, #0x10] + movs r1, #0xa + ands r0, r1 + ldr r4, _08033BB8 @ =0x03000054 + adds r4, r4, r2 + mov r8, r4 + cmp r0, #0 + bne _08033B94 + adds r0, r3, #0 + bl TaskDestroy +_08033B94: + ldr r5, [sp] + cmp r5, #0 + bne _08033B9C + b _08033E30 +_08033B9C: + mov r0, sl + adds r0, #0x56 + mov r6, sb + strb r6, [r0] + mov r7, sb + cmp r7, #0 + beq _08033BAE + cmp r7, #8 + bne _08033BBC +_08033BAE: + movs r6, #8 + b _08033BBE + .align 2, 0 +_08033BB4: .4byte gPlayer +_08033BB8: .4byte 0x03000054 +_08033BBC: + movs r6, #0x10 +_08033BBE: + ldr r1, _08033C38 @ =sPlayerSpeedState + ldr r0, [r1, #0xc] + movs r2, #2 + ands r0, r2 + cmp r0, #0 + beq _08033C58 + adds r0, r1, #0 + movs r3, #0xa + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + ble _08033C58 + mov r4, r8 + strb r2, [r4] + mov r0, sl + adds r0, #0x55 + mov r5, sb + strb r5, [r0] + mov r1, sl + adds r1, #0x57 + movs r0, #0xff + strb r0, [r1] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r0, #8 + beq _08033BF8 + lsls r0, r0, #0x11 + lsrs r6, r0, #0x10 +_08033BF8: + mov r0, sl + adds r0, #0x5a + strh r6, [r0] + movs r5, #0 + ldr r7, _08033C3C @ =gUnknown_03005890 + mov r8, r7 + mov r0, sb + lsls r0, r0, #1 + str r0, [sp, #4] + ldr r3, _08033C40 @ =gUnknown_03005870 + lsls r0, r6, #0x10 + asrs r4, r0, #0x10 +_08033C10: + cmp r5, sb + bne _08033C44 + ldr r2, _08033C38 @ =sPlayerSpeedState + ldrh r1, [r2, #0xa] + lsls r1, r1, #0x10 + asrs r1, r1, #0x18 + mov r0, sl + adds r0, #0x5c + strh r1, [r0] + lsls r0, r5, #1 + adds r2, r0, r3 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r4 + ble _08033C4C + strh r6, [r2] + b _08033C4C + .align 2, 0 +_08033C38: .4byte sPlayerSpeedState +_08033C3C: .4byte gUnknown_03005890 +_08033C40: .4byte gUnknown_03005870 +_08033C44: + lsls r0, r5, #1 + adds r0, r0, r3 + movs r1, #0 + strh r1, [r0] +_08033C4C: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _08033C10 + b _08033DFC +_08033C58: + mov r3, r8 + ldrb r0, [r3] + cmp r0, #2 + bne _08033D2C + ldr r2, _08033D24 @ =gUnknown_03005870 + mov r4, sb + lsls r3, r4, #1 + adds r6, r3, r2 + mov r5, sl + adds r5, #0x5c + ldrh r0, [r5] + ldrh r7, [r6] + adds r0, r0, r7 + strh r0, [r6] + mov r4, sl + adds r4, #0x5a + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r1, [r4] + mov ip, r1 + movs r7, #0 + ldrsh r1, [r4, r7] + str r3, [sp, #4] + cmp r0, r1 + blt _08033C9E + mov r0, ip + strh r0, [r6] + ldrh r0, [r5] + movs r1, #1 + subs r1, r1, r0 + strh r1, [r5] + mov r1, sl + adds r1, #0x57 + movs r0, #0 + strb r0, [r1] +_08033C9E: + movs r1, #0 + ldrsh r0, [r6, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + cmn r0, r1 + bgt _08033CBA + rsbs r0, r1, #0 + strh r0, [r6] + movs r0, #1 + mov r3, r8 + strb r0, [r3] +_08033CBA: + movs r5, #0 + ldr r4, _08033D28 @ =gUnknown_03005890 + mov r8, r4 + ldr r7, _08033D24 @ =gUnknown_03005870 + adds r4, r6, #0 +_08033CC4: + cmp r5, sb + beq _08033CFA + mov r6, sb + subs r0, r6, r5 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08033CDC + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08033CDC: + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + cmp r1, #2 + bgt _08033CFA + movs r2, #0 + ldrsh r0, [r4, r2] + muls r0, r1, r0 + movs r1, #3 + bl __divsi3 + ldrh r1, [r4] + subs r1, r1, r0 + lsls r0, r5, #1 + adds r0, r0, r7 + strh r1, [r0] +_08033CFA: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _08033CC4 + ldr r3, _08033D24 @ =gUnknown_03005870 + movs r4, #0 + ldrsh r0, [r3, r4] + cmp r0, #8 + ble _08033D12 + movs r0, #8 + strh r0, [r3] +_08033D12: + ldr r5, _08033D24 @ =gUnknown_03005870 + movs r6, #0x10 + ldrsh r0, [r5, r6] + cmp r0, #8 + ble _08033DFC + movs r0, #8 + strh r0, [r5, #0x10] + b _08033DFC + .align 2, 0 +_08033D24: .4byte gUnknown_03005870 +_08033D28: .4byte gUnknown_03005890 +_08033D2C: + movs r0, #1 + mov r7, r8 + strb r0, [r7] + ldr r1, _08033D4C @ =gUnknown_03005870 + mov r0, sb + lsls r2, r0, #1 + adds r4, r2, r1 + ldrh r3, [r4] + movs r5, #0 + ldrsh r0, [r4, r5] + str r2, [sp, #4] + cmp r0, #0 + bge _08033D50 + adds r0, r3, #2 + b _08033D52 + .align 2, 0 +_08033D4C: .4byte gUnknown_03005870 +_08033D50: + adds r0, r3, #1 +_08033D52: + strh r0, [r4] + ldr r7, [sp, #4] + ldr r0, _08033E24 @ =gUnknown_03005870 + adds r2, r7, r0 + movs r3, #0 + ldrsh r1, [r2, r3] + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + ble _08033D68 + strh r6, [r2] +_08033D68: + movs r5, #0 + ldr r4, _08033E28 @ =gUnknown_03005890 + mov r8, r4 + ldr r6, _08033E24 @ =gUnknown_03005870 + adds r4, r2, #0 +_08033D72: + cmp r5, sb + beq _08033DD6 + mov r7, sb + subs r1, r7, r5 + lsls r1, r1, #0x18 + lsls r0, r7, #0x18 + lsrs r2, r0, #0x18 + lsrs r3, r1, #0x18 + asrs r0, r1, #0x18 + cmp r0, #0 + bge _08033D96 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r0, #8 + subs r0, r0, r7 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 +_08033D96: + lsls r1, r2, #0x18 + movs r0, #0 + ldrsh r2, [r4, r0] + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + muls r0, r2, r0 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + asrs r1, r1, #0x18 + bl __divsi3 + ldrh r1, [r4] + subs r1, r1, r0 + lsls r0, r5, #1 + adds r2, r0, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r3, [r2] + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _08033DC8 + adds r0, r3, #1 + strh r0, [r2] +_08033DC8: + ldrh r3, [r2] + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _08033DD6 + subs r0, r3, #1 + strh r0, [r2] +_08033DD6: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _08033D72 + ldr r1, _08033E24 @ =gUnknown_03005870 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #8 + ble _08033DEE + movs r0, #8 + strh r0, [r1] +_08033DEE: + ldr r3, _08033E24 @ =gUnknown_03005870 + movs r4, #0x10 + ldrsh r0, [r3, r4] + cmp r0, #8 + ble _08033DFC + movs r0, #8 + strh r0, [r3, #0x10] +_08033DFC: + ldr r5, _08033E2C @ =gPlayer + ldr r2, [r5, #4] + movs r6, #0x80 + lsls r6, r6, #1 + adds r2, r2, r6 + ldr r7, [sp, #4] + ldr r1, _08033E24 @ =gUnknown_03005870 + adds r0, r7, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + adds r1, r7, #0 + add r1, r8 + movs r4, #0 + ldrsh r1, [r1, r4] + subs r0, r0, r1 + lsls r0, r0, #8 + adds r2, r2, r0 + str r2, [r5, #4] + b _08033FFA + .align 2, 0 +_08033E24: .4byte gUnknown_03005870 +_08033E28: .4byte gUnknown_03005890 +_08033E2C: .4byte gPlayer +_08033E30: + mov r5, r8 + ldrb r0, [r5] + cmp r0, #2 + bne _08033F1C + ldr r2, _08033F18 @ =gUnknown_03005870 + mov r7, sl + adds r7, #0x55 + ldrb r1, [r7] + lsls r1, r1, #1 + adds r1, r1, r2 + mov r5, sl + adds r5, #0x5c + ldrh r0, [r5] + ldrh r6, [r1] + adds r0, r0, r6 + movs r3, #0 + mov sb, r3 + strh r0, [r1] + ldrb r0, [r7] + lsls r0, r0, #1 + adds r4, r0, r2 + mov r3, sl + adds r3, #0x5a + movs r6, #0 + ldrsh r1, [r4, r6] + ldrh r0, [r3] + mov ip, r0 + movs r6, #0 + ldrsh r0, [r3, r6] + adds r2, r7, #0 + cmp r1, r0 + blt _08033E84 + mov r0, ip + strh r0, [r4] + ldrh r1, [r5] + movs r0, #1 + subs r0, r0, r1 + strh r0, [r5] + mov r0, sl + adds r0, #0x57 + mov r1, sb + strb r1, [r0] +_08033E84: + ldrb r0, [r2] + lsls r0, r0, #1 + ldr r2, _08033F18 @ =gUnknown_03005870 + adds r4, r0, r2 + movs r6, #0 + ldrsh r2, [r4, r6] + movs r1, #0 + ldrsh r0, [r3, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmn r2, r0 + bgt _08033EAE + rsbs r0, r0, #0 + strh r0, [r4] + mov r2, sp + ldrh r2, [r2] + strh r2, [r5] + mov r4, sb + mov r3, r8 + strb r4, [r3] +_08033EAE: + movs r5, #0 + adds r6, r7, #0 + ldr r7, _08033F18 @ =gUnknown_03005870 +_08033EB4: + ldrb r0, [r6] + cmp r5, r0 + beq _08033EF0 + subs r0, r0, r5 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08033ECC + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08033ECC: + lsls r0, r1, #0x18 + asrs r1, r0, #0x18 + cmp r1, #2 + bgt _08033EF0 + ldrb r4, [r6] + lsls r4, r4, #1 + adds r4, r4, r7 + movs r2, #0 + ldrsh r0, [r4, r2] + muls r0, r1, r0 + movs r1, #3 + bl __divsi3 + ldrh r1, [r4] + subs r1, r1, r0 + lsls r0, r5, #1 + adds r0, r0, r7 + strh r1, [r0] +_08033EF0: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _08033EB4 + ldr r3, _08033F18 @ =gUnknown_03005870 + movs r4, #0 + ldrsh r0, [r3, r4] + cmp r0, #8 + ble _08033F08 + movs r0, #8 + strh r0, [r3] +_08033F08: + ldr r5, _08033F18 @ =gUnknown_03005870 + movs r6, #0x10 + ldrsh r0, [r5, r6] + cmp r0, #8 + ble _08033FFA + movs r0, #8 + strh r0, [r5, #0x10] + b _08033FFA + .align 2, 0 +_08033F18: .4byte gUnknown_03005870 +_08033F1C: + mov r7, sp + ldrb r0, [r7] + mov r7, r8 + strb r0, [r7] + ldr r1, _08034084 @ =gUnknown_03005870 + mov r2, sl + adds r2, #0x56 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r3, r0, r1 + ldrh r4, [r3] + movs r5, #0 + ldrsh r0, [r3, r5] + adds r7, r2, #0 + cmp r0, #0 + ble _08033F40 + subs r0, r4, #1 + strh r0, [r3] +_08033F40: + ldrb r0, [r7] + lsls r0, r0, #1 + ldr r6, _08034084 @ =gUnknown_03005870 + adds r1, r0, r6 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _08033F6A + adds r0, r2, #2 + strh r0, [r1] + ldrb r0, [r7] + lsls r0, r0, #1 + adds r1, r0, r6 + movs r4, #0 + ldrsh r0, [r1, r4] + cmp r0, #0 + ble _08033F6A + mov r5, sp + ldrh r5, [r5] + strh r5, [r1] +_08033F6A: + movs r5, #0 +_08033F6C: + ldrb r0, [r7] + cmp r5, r0 + beq _08033FF0 + subs r0, r0, r5 + lsls r0, r0, #0x18 + ldrb r1, [r7] + adds r4, r1, #0 + lsrs r3, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08033F90 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r0, #8 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08033F90: + lsls r1, r1, #0x18 + ldr r6, _08034084 @ =gUnknown_03005870 + lsls r4, r4, #1 + adds r4, r4, r6 + movs r0, #0 + ldrsh r2, [r4, r0] + lsls r0, r3, #0x18 + asrs r0, r0, #0x18 + muls r0, r2, r0 + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r1, r1, r2 + asrs r1, r1, #0x18 + bl __divsi3 + ldrh r1, [r4] + subs r1, r1, r0 + lsls r0, r5, #1 + adds r2, r0, r6 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r3, [r2] + movs r4, #0 + ldrsh r0, [r2, r4] + cmp r1, r0 + ble _08033FC8 + adds r0, r3, #1 + strh r0, [r2] +_08033FC8: + ldrh r3, [r2] + movs r4, #0 + ldrsh r0, [r2, r4] + cmp r1, r0 + bge _08033FD6 + subs r0, r3, #1 + strh r0, [r2] +_08033FD6: + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #8 + ble _08033FE2 + movs r0, #8 + strh r0, [r6] +_08033FE2: + ldr r2, _08034084 @ =gUnknown_03005870 + movs r3, #0x10 + ldrsh r0, [r2, r3] + cmp r0, #8 + ble _08033FF0 + movs r0, #8 + strh r0, [r2, #0x10] +_08033FF0: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _08033F6C +_08033FFA: + ldr r4, _08034088 @ =gPlayer + ldr r0, [r4] + ldr r5, _0803408C @ =sPlayerSpeedState + str r0, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + ldrh r0, [r4, #8] + strh r0, [r5, #8] + ldrh r0, [r4, #0xa] + strh r0, [r5, #0xa] + ldr r0, [r4, #0x10] + str r0, [r5, #0xc] + ldr r6, _08034090 @ =gNumSingleplayerCharacters + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #2 + bne _08034072 + mov r0, sl + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08034072 + movs r5, #0 + mov r6, sl + adds r6, #0x30 +_0803402C: + lsls r0, r5, #2 + adds r0, r6, r0 + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r7, #0xc0 + lsls r7, r7, #0x12 + adds r4, r0, r7 + ldr r1, [r4, #0x38] + asrs r1, r1, #8 + ldrh r0, [r4, #0x30] + adds r1, r1, r0 + ldr r3, [r4, #0x3c] + asrs r3, r3, #8 + ldrh r2, [r4, #0x32] + adds r3, r3, r2 + ldr r2, _08034084 @ =gUnknown_03005870 + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r2, r2, r3 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + ldr r3, _08034094 @ =gPartner + bl Coll_Player_PlatformCrumbling + cmp r0, #0 + bne _08034072 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bls _0803402C +_08034072: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08034084: .4byte gUnknown_03005870 +_08034088: .4byte gPlayer +_0803408C: .4byte sPlayerSpeedState +_08034090: .4byte gNumSingleplayerCharacters +_08034094: .4byte gPartner + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc b/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc new file mode 100644 index 0000000000..c127c20153 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc @@ -0,0 +1,217 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080322B8 @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r2, r0 + adds r0, #0xc + adds r0, r0, r2 + mov r8, r0 + ldr r1, _080322BC @ =0x03000044 + adds r6, r2, r1 + ldr r4, [r5] + ldr r3, _080322C0 @ =0x03000098 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, #0x78 + bne _080321FC + adds r1, #0x65 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080321FC + bl sub_8033878 + bl sub_803330C +_080321FC: + ldr r1, _080322C4 @ =gSineTable + adds r0, r5, #0 + adds r0, #0xa0 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r0, r2, #4 + subs r0, r0, r2 + asrs r2, r0, #0xb + ldrb r1, [r5, #8] + lsls r1, r1, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, [r5, #0x78] + asrs r0, r0, #8 + adds r1, r1, r0 + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + adds r0, r2, #0 + adds r0, #0x90 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r2, #0 + bge _0803223A + adds r2, #0x1f +_0803223A: + ldr r0, _080322C8 @ =gUnknown_03005870 + asrs r2, r2, #5 + lsls r2, r2, #1 + adds r2, r2, r0 + ldrb r1, [r4, #1] + lsls r1, r1, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, [r5, #0x7c] + asrs r0, r0, #8 + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r2, r0] + adds r2, r2, r1 + ldr r7, _080322B8 @ =gCurTask + ldr r0, [r7] + ldrh r1, [r0, #6] + ldr r3, _080322CC @ =0x0300000C + adds r1, r1, r3 + ldr r4, _080322D0 @ =gCamera + ldrh r0, [r4] + mov sb, r0 + mov r3, ip + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + mov r3, sb + subs r0, r0, r3 + strh r0, [r1, #0x16] + ldrh r0, [r4, #2] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + subs r2, r2, r0 + strh r2, [r1, #0x18] + mov r0, r8 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl UpdateSpriteAnimation + ldr r0, [r7] + ldrh r0, [r0, #6] + ldr r1, _080322CC @ =0x0300000C + adds r2, r0, r1 + ldr r3, _080322BC @ =0x03000044 + adds r0, r0, r3 + ldrh r1, [r2, #0x16] + strh r1, [r0, #0x16] + ldrh r1, [r2, #0x18] + strh r1, [r0, #0x18] + bl sub_8031ED0 + adds r3, r5, #0 + adds r3, #0xa9 + ldrb r0, [r3] + cmp r0, #1 + beq _08032300 + cmp r0, #1 + bgt _080322D4 + cmp r0, #0 + beq _080322DE + b _0803235E + .align 2, 0 +_080322B8: .4byte gCurTask +_080322BC: .4byte 0x03000044 +_080322C0: .4byte 0x03000098 +_080322C4: .4byte gSineTable +_080322C8: .4byte gUnknown_03005870 +_080322CC: .4byte 0x0300000C +_080322D0: .4byte gCamera +_080322D4: + cmp r0, #2 + beq _0803231A + cmp r0, #3 + beq _0803233E + b _0803235E +_080322DE: + adds r2, r5, #0 + adds r2, #0x98 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803235E + ldr r1, _080322FC @ =gMusicManagerState + movs r0, #0x13 + strb r0, [r1, #1] + movs r0, #0x3c + strh r0, [r2] + b _08032336 + .align 2, 0 +_080322FC: .4byte gMusicManagerState +_08032300: + adds r1, r5, #0 + adds r1, #0x98 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803235E + adds r1, r6, #0 + adds r1, #0x20 + movs r0, #4 + strb r0, [r1] + b _08032336 +_0803231A: + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _0803235E + adds r1, r6, #0 + adds r1, #0x20 + movs r0, #3 + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x98 + movs r0, #0x3c + strh r0, [r1] +_08032336: + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + b _0803235E +_0803233E: + adds r1, r5, #0 + adds r1, #0x98 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803235E + adds r1, #0x10 + movs r0, #0xff + strb r0, [r1] + movs r0, #0 + strb r0, [r3] + ldr r1, [r7] + ldr r0, _0803236C @ =Task_8032370 + str r0, [r1, #8] +_0803235E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803236C: .4byte Task_8032370 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc new file mode 100644 index 0000000000..1280d00f9e --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc @@ -0,0 +1,302 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08034A1C @ =gCurTask + mov sl, r0 + ldr r0, [r0] + ldrh r5, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r5, r0 + ldr r1, _08034A20 @ =0x0300000C + adds r1, r1, r5 + mov r8, r1 + ldr r2, _08034A24 @ =0x0300003C + adds r2, r2, r5 + mov sb, r2 + ldr r0, [r4, #0x6c] + ldr r1, [r4, #0x74] + adds r0, r0, r1 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x70] + ldr r1, [r4, #0x78] + adds r0, r0, r1 + str r0, [r4, #0x70] + ldr r3, _08034A28 @ =0x03000088 + adds r6, r5, r3 + ldrh r1, [r6] + subs r1, #4 + ldr r2, _08034A2C @ =0x000003FF + ands r1, r2 + strh r1, [r6] + ldr r0, _08034A30 @ =0x000001FF + ands r0, r1 + movs r7, #0x80 + lsls r7, r7, #1 + cmp r0, r7 + bne _08034980 + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + eors r0, r1 + mov r3, r8 + str r0, [r3, #0x10] + mov r3, sb + ldr r0, [r3, #0x10] + eors r0, r1 + str r0, [r3, #0x10] +_08034980: + movs r1, #0 + ldrsh r0, [r6, r1] + adds r0, r0, r7 + lsls r0, r0, #1 + ldr r3, _08034A34 @ =gSineTable + ands r0, r2 + adds r0, r0, r7 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + lsls r1, r1, #0x10 + ldr r0, _08034A38 @ =0x0300007C + adds r2, r5, r0 + ldr r0, [r4, #0x6c] + asrs r0, r0, #8 + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + ldr r0, _08034A3C @ =0x0300007E + adds r2, r5, r0 + ldr r0, [r4, #0x70] + asrs r0, r0, #8 + ldrh r2, [r2] + adds r0, r0, r2 + asrs r1, r1, #0x1d + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x10 + ldr r1, _08034A40 @ =0x03000080 + adds r0, r5, r1 + mov r1, ip + strh r1, [r0] + ldr r1, _08034A44 @ =0x03000082 + adds r0, r5, r1 + strh r2, [r0] + movs r1, #0 + ldrsh r0, [r6, r1] + adds r0, r0, r7 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r1, [r0] + lsls r0, r1, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _080349E6 + movs r1, #0xff +_080349E6: + lsls r0, r1, #0x10 + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r0, r0, r3 + lsrs r1, r0, #0x10 + adds r3, #0x8a + adds r0, r5, r3 + strh r1, [r0] + mov r1, ip + lsls r0, r1, #0x10 + asrs r6, r0, #0x10 + lsls r0, r2, #0x10 + asrs r7, r0, #0x10 + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_80342A0 + ldr r2, _08034A48 @ =0x03000086 + adds r0, r5, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08034A4C + bl sub_8034B7C + b _08034B6C + .align 2, 0 +_08034A1C: .4byte gCurTask +_08034A20: .4byte 0x0300000C +_08034A24: .4byte 0x0300003C +_08034A28: .4byte 0x03000088 +_08034A2C: .4byte 0x000003FF +_08034A30: .4byte 0x000001FF +_08034A34: .4byte gSineTable +_08034A38: .4byte 0x0300007C +_08034A3C: .4byte 0x0300007E +_08034A40: .4byte 0x03000080 +_08034A44: .4byte 0x03000082 +_08034A48: .4byte 0x03000086 +_08034A4C: + mov r0, sl + ldr r3, [r0] + ldrh r1, [r3, #6] + ldr r2, _08034AD4 @ =0x0300000C + adds r1, r1, r2 + ldr r2, _08034AD8 @ =gCamera + ldrh r0, [r2] + subs r0, r6, r0 + strh r0, [r1, #0x16] + ldrh r0, [r2, #2] + subs r0, r7, r0 + strh r0, [r1, #0x18] +@ sub_80358C8 - inlined + ldrh r3, [r3, #6] + ldr r0, _08034ADC @ =0x0300003C + adds r1, r3, r0 + adds r0, #0x20 + adds r2, r3, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _08034A8C + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08034A8C + movs r0, #0 + strb r0, [r2] + ldr r2, _08034AE0 @ =0x0300005D + adds r1, r3, r2 + movs r0, #0xff + strb r0, [r1] +_08034A8C: + mov r0, r8 + bl UpdateSpriteAnimation + mov r0, sb + bl UpdateSpriteAnimation +@ sub_8035904 inlined + ldr r0, _08034AE4 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r3, _08034AD4 @ =0x0300000C + adds r1, r0, r3 + adds r3, #0x30 + adds r2, r0, r3 + ldrh r0, [r1, #0x16] + movs r5, #0 + strh r0, [r2, #0x16] + ldrh r3, [r1, #0x18] + strh r3, [r2, #0x18] + ldrh r1, [r2, #0xa] + ldr r0, _08034AE8 @ =0x000002B6 + cmp r1, r0 + bne _08034ABC + subs r0, r3, #3 + strh r0, [r2, #0x18] +_08034ABC: + bl sub_80343E0 + adds r2, r4, #0 + adds r2, #0x8d + ldrb r0, [r2] + cmp r0, #1 + beq _08034B1C + cmp r0, #1 + bgt _08034AEC + cmp r0, #0 + beq _08034AF6 + b _08034B6C + .align 2, 0 +_08034AD4: .4byte 0x0300000C +_08034AD8: .4byte gCamera +_08034ADC: .4byte 0x0300003C +_08034AE0: .4byte 0x0300005D +_08034AE4: .4byte gCurTask +_08034AE8: .4byte 0x000002B6 +_08034AEC: + cmp r0, #2 + beq _08034B36 + cmp r0, #3 + beq _08034B4E + b _08034B6C +_08034AF6: + adds r0, r4, #0 + adds r0, #0x88 + ldr r3, _08034B14 @ =0xFFFFFEFF + adds r1, r3, #0 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r0, _08034B18 @ =0x01FF0000 + cmp r1, r0 + bhi _08034B6C + str r5, [r4, #0x74] + ldrb r0, [r2] + adds r0, #1 + b _08034B6A + .align 2, 0 +_08034B14: .4byte 0xFFFFFEFF +_08034B18: .4byte 0x01FF0000 +_08034B1C: + adds r0, r4, #0 + adds r0, #0x88 + movs r3, #0 + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + bgt _08034B6C + movs r0, #0xc0 + str r0, [r4, #0x74] + ldrb r0, [r2] + adds r0, #1 + b _08034B6A +_08034B36: + adds r0, r4, #0 + adds r0, #0x88 + movs r3, #0 + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bgt _08034B6C + str r5, [r4, #0x74] + ldrb r0, [r2] + adds r0, #1 + b _08034B6A +_08034B4E: + adds r0, r4, #0 + adds r0, #0x88 + movs r3, #0 + ldrsh r1, [r0, r3] + cmp r1, #0 + beq _08034B62 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _08034B6C +_08034B62: + movs r0, #0xc0 + rsbs r0, r0, #0 + str r0, [r4, #0x74] + movs r0, #0 +_08034B6A: + strb r0, [r2] +_08034B6C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc new file mode 100644 index 0000000000..38958717e8 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc @@ -0,0 +1,77 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + movs r5, #0 + ldr r0, _0803534C @ =gCurTask + ldr r2, [r0] + ldrh r0, [r2, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r3, r0, r1 + ldrh r0, [r2] + adds r0, r0, r1 + ldrh r0, [r0, #6] + adds r7, r0, r1 + adds r4, r3, #0 + ldrh r0, [r4, #0x30] + cmp r0, #0 + beq _080352EA + subs r0, #1 + strh r0, [r4, #0x30] + ldrh r0, [r4, #0x30] + lsls r0, r0, #8 + lsrs r5, r0, #0xb +_080352EA: + lsls r1, r5, #0x10 + rsbs r1, r1, #0 + adds r0, r7, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r3, #0x3c] + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r3, #0x3e] + asrs r1, r1, #0x10 + adds r1, r1, r0 + ldr r2, _08035350 @ =gCamera + ldrh r0, [r2] + movs r5, #0x3c + ldrsh r6, [r3, r5] + subs r0, r6, r0 + strh r0, [r4, #0x16] + ldrh r0, [r2, #2] + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + subs r0, r5, r0 + strh r0, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + adds r0, r7, #0 + adds r0, #0x86 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08035346 + lsls r0, r6, #8 + adds r1, r5, #0 + adds r1, #0x14 + lsls r1, r1, #8 + bl sub_8017540 + ldr r0, _0803534C @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08035346: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803534C: .4byte gCurTask +_08035350: .4byte gCamera + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc new file mode 100644 index 0000000000..776e32b79b --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc @@ -0,0 +1,94 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + ldr r0, _080353A0 @ =gCurTask + ldr r3, [r0] + ldrh r2, [r3, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r2, r1 + ldrh r0, [r3] + adds r0, r0, r1 + ldrh r0, [r0, #6] + adds r6, r0, r1 + adds r4, r5, #0 + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080353A4 + adds r1, #0x40 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r2, r0, #1 + adds r1, r2, #0 + adds r1, #0x15 + ldrh r0, [r4, #0x30] + lsls r0, r0, #8 + asrs r0, r0, #6 + muls r0, r1, r0 + lsls r0, r0, #8 + asrs r0, r0, #0x10 + subs r0, #0x23 + subs r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _080353C0 + .align 2, 0 +_080353A0: .4byte gCurTask +_080353A4: + ldr r1, _08035400 @ =0x03000040 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r1, r0, #3 + subs r0, r1, r0 + lsls r0, r0, #0x11 + movs r2, #0x8c + lsls r2, r2, #0xe + adds r0, r0, r2 + lsrs r2, r0, #0x10 + adds r1, #8 + strh r1, [r4, #0x30] + ldr r0, _08035404 @ =Task_803540C + str r0, [r3, #8] +_080353C0: + adds r0, r6, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r5, #0x3c] + adds r0, r6, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r5, #0x3e] + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + ldr r3, _08035408 @ =gCamera + ldrh r2, [r3] + movs r6, #0x3c + ldrsh r0, [r5, r6] + subs r0, r0, r2 + strh r0, [r4, #0x16] + ldrh r0, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + strh r1, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08035400: .4byte 0x03000040 +_08035404: .4byte Task_803540C +_08035408: .4byte gCamera + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc new file mode 100644 index 0000000000..c2802651bd --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc @@ -0,0 +1,113 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _080354D8 @ =gCurTask + mov r8, r0 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r6, r1, r2 + ldrh r0, [r0] + adds r0, r0, r2 + ldrh r4, [r0, #6] + adds r2, #0x40 + adds r1, r1, r2 + ldrb r0, [r1] + lsls r1, r0, #3 + subs r1, r1, r0 + lsls r1, r1, #0x11 + movs r3, #0xd0 + lsls r3, r3, #0xc + adds r1, r1, r3 + asrs r1, r1, #0x10 + ldr r5, _080354DC @ =gSineTable + ldr r0, _080354E0 @ =0x0300008A + adds r3, r4, r0 + movs r2, #0 + ldrsh r0, [r3, r2] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r2, r1, #0 + muls r2, r0, r2 + lsls r2, r2, #2 + ldrh r3, [r3] + ldr r0, _080354E4 @ =0x000001FF + ands r0, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r3, #0 + ldrsh r0, [r0, r3] + muls r0, r1, r0 + lsls r0, r0, #2 + ldr r5, _080354E8 @ =0x03000080 + adds r1, r4, r5 + ldrh r3, [r1] + strh r3, [r6, #0x3c] + adds r5, #2 + adds r1, r4, r5 + ldrh r1, [r1] + strh r1, [r6, #0x3e] + asrs r2, r2, #0x10 + adds r2, r2, r3 + asrs r0, r0, #0x10 + adds r0, #0x16 + adds r1, r1, r0 + ldr r3, _080354EC @ =gCamera + ldrh r0, [r3] + lsls r2, r2, #0x10 + asrs r7, r2, #0x10 + subs r0, r7, r0 + strh r0, [r6, #0x16] + ldrh r0, [r3, #2] + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + subs r0, r5, r0 + strh r0, [r6, #0x18] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite + ldr r0, _080354F0 @ =0x03000086 + adds r4, r4, r0 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #3 + ble _080354CE + ldrh r0, [r6, #0x30] + subs r0, #1 + strh r0, [r6, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080354CE + lsls r0, r7, #8 + lsls r1, r5, #8 + bl sub_8017540 + mov r1, r8 + ldr r0, [r1] + bl TaskDestroy +_080354CE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080354D8: .4byte gCurTask +_080354DC: .4byte gSineTable +_080354E0: .4byte 0x0300008A +_080354E4: .4byte 0x000001FF +_080354E8: .4byte 0x03000080 +_080354EC: .4byte gCamera +_080354F0: .4byte 0x03000086 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc new file mode 100644 index 0000000000..6398a3d72a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc @@ -0,0 +1,79 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + ldr r0, _08035534 @ =gCurTask + ldr r2, [r0] + ldrh r0, [r2, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r0, r1 @ r5 = boss_44 + ldrh r0, [r2] + adds r0, r0, r1 + ldrh r0, [r0, #6] + adds r3, r0, r1 @ r3 = boss + adds r4, r5, #0 @ r4 = s + ldrh r0, [r4, #0x30] + subs r0, #1 + strh r0, [r4, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08035538 + ldrh r0, [r4, #0x30] + lsls r0, r0, #8 + asrs r0, r0, #6 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r0, r1, #5 + subs r0, r0, r1 + lsls r0, r0, #8 + movs r1, #0x63 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + b _08035542 + .align 2, 0 +_08035534: .4byte gCurTask +_08035538: + movs r1, #0x63 + movs r0, #0x3c + strh r0, [r4, #0x30] + ldr r0, _08035580 @ =Task_8035588 + str r0, [r2, #8] +_08035542: + adds r0, r3, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r5, #0x3c] + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r5, #0x3e] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + ldr r3, _08035584 @ =gCamera + ldrh r2, [r3] + movs r6, #0x3c + ldrsh r0, [r5, r6] + subs r0, r0, r2 + strh r0, [r4, #0x16] + ldrh r0, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + strh r1, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08035580: .4byte Task_8035588 +_08035584: .4byte gCamera + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc new file mode 100644 index 0000000000..5ec31259d0 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc @@ -0,0 +1,227 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _08035654 @ =gCurTask + ldr r5, [r0] + ldrh r0, [r5, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + mov r8, r0 + ldrh r0, [r5] + adds r0, r0, r1 + ldrh r3, [r0, #6] + adds r1, r3, r1 + str r1, [sp] + mov sb, r8 + movs r0, #0x4d + mov sl, r0 + ldr r4, _08035658 @ =gSineTable + ldr r1, _0803565C @ =0x0300008A + adds r2, r3, r1 + movs r6, #0 + ldrsh r0, [r2, r6] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r6, #0 + ldrsh r0, [r0, r6] + mov r1, sl + muls r1, r0, r1 + ldrh r2, [r2] + ldr r0, _08035660 @ =0x000001FF + ands r0, r2 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r2, sl + muls r2, r0, r2 + ldr r4, _08035664 @ =0x03000080 + adds r0, r3, r4 + ldrh r4, [r0] + mov r6, r8 + strh r4, [r6, #0x3c] + ldr r6, _08035668 @ =0x03000082 + adds r0, r3, r6 + ldrh r0, [r0] + mov r6, r8 + strh r0, [r6, #0x3e] + asrs r1, r1, #0xe + adds r1, r1, r4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + asrs r2, r2, #0xe + adds r2, #0x16 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + ldr r0, _0803566C @ =0x03000086 + adds r3, r3, r0 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #3 + bgt _080356B0 + ldrh r0, [r5, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r6, r0, r1 + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + asrs r5, r0, #0x10 + mov r3, sl + lsls r0, r3, #0x10 + asrs r4, r0, #0x10 + ldr r3, _08035670 @ =gPlayer + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_800BF10 + adds r7, r0, #0 + ldr r0, _08035674 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _0803567C + ldr r3, _08035678 @ =gPartner + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_800BF10 + b _0803567E + .align 2, 0 +_08035654: .4byte gCurTask +_08035658: .4byte gSineTable +_0803565C: .4byte 0x0300008A +_08035660: .4byte 0x000001FF +_08035664: .4byte 0x03000080 +_08035668: .4byte 0x03000082 +_0803566C: .4byte 0x03000086 +_08035670: .4byte gPlayer +_08035674: .4byte gNumSingleplayerCharacters +_08035678: .4byte gPartner +_0803567C: + movs r0, #0 +_0803567E: + cmp r7, #2 + beq _08035686 + cmp r0, #2 + bne _080356B0 +_08035686: + ldr r0, _08035744 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0] + movs r4, #0xc0 + lsls r4, r4, #0x12 + adds r0, r0, r4 + ldrh r1, [r0, #6] + ldr r6, _08035748 @ =0x0300003C + adds r3, r1, r6 + ldr r0, _0803574C @ =0x0300005C + adds r2, r1, r0 + movs r0, #1 + strb r0, [r2] + ldr r2, _08035750 @ =0x0300005D + adds r1, r1, r2 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r3, #0x10] + ldr r1, _08035754 @ =0xFFFFBFFF + ands r0, r1 + str r0, [r3, #0x10] +_080356B0: + ldr r2, _08035758 @ =gCamera + ldrh r0, [r2] + ldr r3, [sp, #4] + lsls r1, r3, #0x10 + asrs r4, r1, #0x10 + subs r0, r4, r0 + mov r6, sb + strh r0, [r6, #0x16] + ldrh r0, [r2, #2] + mov r2, sl + lsls r1, r2, #0x10 + asrs r5, r1, #0x10 + subs r0, r5, r0 + strh r0, [r6, #0x18] + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + bl DisplaySprite + ldr r0, [sp] + adds r0, #0x86 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08035732 + mov r3, r8 + ldrh r1, [r3, #0x30] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0803571C + ldr r2, _0803575C @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _08035760 @ =0x00196225 + muls r1, r0, r1 + ldr r6, _08035764 @ =0x3C6EF35F + adds r1, r1, r6 + str r1, [r2] + movs r0, #0x1f + ands r0, r1 + adds r0, r4, r0 + subs r0, #0xf + lsls r0, r0, #8 + movs r2, #0xf8 + lsls r2, r2, #0xd + ands r1, r2 + asrs r1, r1, #0x10 + adds r1, r5, r1 + subs r1, #0xf + lsls r1, r1, #8 + bl sub_8017540 +_0803571C: + mov r1, r8 + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08035732 + ldr r0, _08035744 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08035732: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08035744: .4byte gCurTask +_08035748: .4byte 0x0300003C +_0803574C: .4byte 0x0300005C +_08035750: .4byte 0x0300005D +_08035754: .4byte 0xFFFFBFFF +_08035758: .4byte gCamera +_0803575C: .4byte gPseudoRandom +_08035760: .4byte 0x00196225 +_08035764: .4byte 0x3C6EF35F + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc new file mode 100644 index 0000000000..985b9019b4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc @@ -0,0 +1,1090 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + movs r0, #0 + str r0, [sp, #8] + ldr r0, _080377AC @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r6, r2, r1 + ldr r3, _080377B0 @ =0x0300009C + adds r0, r2, r3 + ldr r0, [r0] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sl, r0 + ldr r4, _080377B4 @ =0x0300000C + adds r7, r2, r4 + ldr r0, _080377B8 @ =0x03000044 + adds r0, r2, r0 + str r0, [sp, #4] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080377C0 + ldr r1, _080377BC @ =0x03000084 + adds r0, r2, r1 + ldr r1, [r6, #0x7c] + ldr r0, [r0] + adds r1, r1, r0 + str r1, [r6, #0x7c] + ldr r0, [r6, #0x74] + subs r0, r0, r1 + b _080377D0 + .align 2, 0 +_080377AC: .4byte gCurTask +_080377B0: .4byte 0x0300009C +_080377B4: .4byte 0x0300000C +_080377B8: .4byte 0x03000044 +_080377BC: .4byte 0x03000084 +_080377C0: + ldr r3, _08037830 @ =0x03000084 + adds r0, r2, r3 + ldr r1, [r6, #0x7c] + ldr r0, [r0] + adds r1, r1, r0 + str r1, [r6, #0x7c] + ldr r0, [r6, #0x74] + adds r0, r0, r1 +_080377D0: + str r0, [r6, #0x74] + adds r3, r6, #0 + adds r3, #0x80 + ldr r1, [r6, #0x78] + ldr r0, [r3] + adds r1, r1, r0 + str r1, [r6, #0x78] + adds r2, r6, #0 + adds r2, #0x88 + ldr r0, [r6, #0x74] + asrs r0, r0, #8 + ldrh r2, [r2] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r6, #0 + adds r0, #0x8a + asrs r1, r1, #8 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + ldr r0, [r3] + cmp r0, #0 + bne _0803783C + adds r2, r6, #0 + adds r2, #0x90 + ldrh r0, [r2] + adds r0, #8 + ldr r1, _08037834 @ =0x000003FF + ands r0, r1 + strh r0, [r2] + ldr r1, _08037838 @ =gSineTable + ldrh r0, [r2] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + lsls r1, r1, #0x10 + asrs r1, r1, #0x1c + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08037844 + .align 2, 0 +_08037830: .4byte 0x03000084 +_08037834: .4byte 0x000003FF +_08037838: .4byte gSineTable +_0803783C: + adds r1, r6, #0 + adds r1, #0x90 + movs r0, #0 + strh r0, [r1] +_08037844: + adds r0, r6, #0 + adds r0, #0x8c + strh r5, [r0] + adds r0, #2 + strh r4, [r0] + lsls r5, r5, #0x10 + asrs r3, r5, #0x10 + mov r8, r3 + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + mov sb, r0 + mov r0, r8 + mov r1, sb + bl sub_8036E20 + adds r0, r6, #0 + adds r0, #0x94 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r4, [sp, #0x20] + str r5, [sp, #0x1c] + cmp r0, #7 + ble _0803787A + bl sub_803803C + b _0803802A +_0803787A: + ldr r0, _080378FC @ =gCurTask + ldr r3, [r0] + ldrh r1, [r3, #6] + ldr r2, _08037900 @ =0x0300000C + adds r1, r1, r2 + ldr r2, _08037904 @ =gCamera + ldrh r0, [r2] + mov r4, r8 + subs r0, r4, r0 + strh r0, [r1, #0x16] + ldrh r0, [r2, #2] + mov r2, sb + subs r0, r2, r0 + strh r0, [r1, #0x18] + ldrh r2, [r3, #6] + ldr r3, _08037908 @ =0x03000044 + adds r1, r2, r3 + ldr r4, _0803790C @ =0x03000064 + adds r3, r2, r4 + ldrb r0, [r3] + cmp r0, #0 + beq _080378BE + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080378BE + movs r0, #0 + strb r0, [r3] + ldr r0, _08037910 @ =0x03000065 + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] +_080378BE: + adds r0, r7, #0 + bl UpdateSpriteAnimation + ldr r0, [sp, #4] + bl UpdateSpriteAnimation + ldr r0, _080378FC @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r1, _08037900 @ =0x0300000C + adds r2, r0, r1 + ldr r3, _08037908 @ =0x03000044 + adds r0, r0, r3 + ldrh r1, [r2, #0x16] + strh r1, [r0, #0x16] + ldrh r1, [r2, #0x18] + strh r1, [r0, #0x18] + bl sub_80370B4 + adds r0, r6, #0 + adds r0, #0x99 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x42 + bls _080378F2 + b _0803802A +_080378F2: + lsls r0, r1, #2 + ldr r1, _08037914 @ =_08037918 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080378FC: .4byte gCurTask +_08037900: .4byte 0x0300000C +_08037904: .4byte gCamera +_08037908: .4byte 0x03000044 +_0803790C: .4byte 0x03000064 +_08037910: .4byte 0x03000065 +_08037914: .4byte _08037918 +_08037918: @ jump table + .4byte _08037A24 @ case 0 + .4byte _08037A88 @ case 1 + .4byte _08037ACA @ case 2 + .4byte _08037B02 @ case 3 + .4byte _08037B54 @ case 4 + .4byte _08038018 @ case 5 + .4byte _0803802A @ case 6 + .4byte _0803802A @ case 7 + .4byte _0803802A @ case 8 + .4byte _0803802A @ case 9 + .4byte _0803802A @ case 10 + .4byte _0803802A @ case 11 + .4byte _0803802A @ case 12 + .4byte _0803802A @ case 13 + .4byte _0803802A @ case 14 + .4byte _0803802A @ case 15 + .4byte _08037B6A @ case 16 + .4byte _08037B8C @ case 17 + .4byte _0803802A @ case 18 + .4byte _0803802A @ case 19 + .4byte _0803802A @ case 20 + .4byte _0803802A @ case 21 + .4byte _0803802A @ case 22 + .4byte _0803802A @ case 23 + .4byte _0803802A @ case 24 + .4byte _0803802A @ case 25 + .4byte _0803802A @ case 26 + .4byte _0803802A @ case 27 + .4byte _0803802A @ case 28 + .4byte _0803802A @ case 29 + .4byte _0803802A @ case 30 + .4byte _0803802A @ case 31 + .4byte _08037BF2 @ case 32 + .4byte _0803802A @ case 33 + .4byte _0803802A @ case 34 + .4byte _0803802A @ case 35 + .4byte _0803802A @ case 36 + .4byte _0803802A @ case 37 + .4byte _0803802A @ case 38 + .4byte _0803802A @ case 39 + .4byte _0803802A @ case 40 + .4byte _0803802A @ case 41 + .4byte _0803802A @ case 42 + .4byte _0803802A @ case 43 + .4byte _0803802A @ case 44 + .4byte _0803802A @ case 45 + .4byte _0803802A @ case 46 + .4byte _0803802A @ case 47 + .4byte _08037E88 @ case 48 + .4byte _0803802A @ case 49 + .4byte _08037E92 @ case 50 + .4byte _08037E96 @ case 51 + .4byte _08037EAC @ case 52 + .4byte _08037F18 @ case 53 + .4byte _0803802A @ case 54 + .4byte _0803802A @ case 55 + .4byte _0803802A @ case 56 + .4byte _0803802A @ case 57 + .4byte _0803802A @ case 58 + .4byte _0803802A @ case 59 + .4byte _0803802A @ case 60 + .4byte _0803802A @ case 61 + .4byte _0803802A @ case 62 + .4byte _0803802A @ case 63 + .4byte _08037F54 @ case 64 + .4byte _08037F80 @ case 65 + .4byte _08037FE4 @ case 66 +_08037A24: + adds r1, r6, #0 + adds r1, #0x9a + movs r0, #0 + strb r0, [r1] + mov r1, sl + adds r1, #0x79 + movs r0, #8 + strb r0, [r1] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r2, _08037A5C @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _08037A60 @ =0x00196225 + muls r0, r1, r0 + ldr r4, _08037A64 @ =0x3C6EF35F + adds r0, r0, r4 + str r0, [r2] + movs r1, #0x30 + ands r0, r1 + lsrs r0, r0, #4 + cmp r0, #1 + beq _08037A78 + cmp r0, #1 + bgt _08037A68 + cmp r0, #0 + beq _08037A70 + b _08037A88 + .align 2, 0 +_08037A5C: .4byte gPseudoRandom +_08037A60: .4byte 0x00196225 +_08037A64: .4byte 0x3C6EF35F +_08037A68: + cmp r0, #2 + beq _08037A80 + cmp r0, #3 + bne _08037A88 +_08037A70: + adds r1, r6, #0 + adds r1, #0x92 + movs r0, #0x5a + b _08037A86 +_08037A78: + adds r1, r6, #0 + adds r1, #0x92 + movs r0, #0xb4 + b _08037A86 +_08037A80: + adds r1, r6, #0 + adds r1, #0x92 + movs r0, #0xf0 +_08037A86: + strh r0, [r1] +_08037A88: + adds r4, r6, #0 + adds r4, #0x92 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08037A9A + b _0803802A +_08037A9A: + ldr r7, [sp, #0x1c] + asrs r0, r7, #0x10 + bl sub_803711C + adds r1, r6, #0 + adds r1, #0x9a + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + beq _08037ABA + movs r0, #0xa + strh r0, [r4] + ldrb r0, [r5] + adds r0, #1 + b _08038028 +_08037ABA: + mov r1, sl + adds r1, #0x79 + movs r0, #0xa + strb r0, [r1] + movs r0, #0x14 + strh r0, [r4] + movs r0, #0x40 + b _08038028 +_08037ACA: + mov r2, sl + adds r2, #0x7a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + strb r0, [r2] + cmp r0, #0 + bne _08037ADC + b _0803802A +_08037ADC: + adds r2, r6, #0 + adds r2, #0x92 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08037AEE + b _0803802A +_08037AEE: + movs r1, #0xa + movs r0, #0xa + strh r0, [r2] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + mov r0, sl + adds r0, #0x79 + strb r1, [r0] + b _0803802A +_08037B02: + mov r0, sl + adds r0, #0x7a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037B12 + b _0803802A +_08037B12: + adds r2, r6, #0 + adds r2, #0x92 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _08037B26 + b _0803802A +_08037B26: + mov r1, sl + adds r1, #0x79 + movs r0, #0xd + strb r0, [r1] + adds r1, r6, #0 + adds r1, #0x9a + ldrb r0, [r1] + lsls r0, r0, #4 + strb r0, [r5] + ldrb r0, [r1] + cmp r0, #2 + bne _08037B4A + movs r0, #0x1e + strh r0, [r2] + movs r0, #0xac + bl m4aSongNumStart + b _0803802A +_08037B4A: + cmp r0, #1 + beq _08037B50 + b _0803802A +_08037B50: + strh r3, [r2] + b _0803802A +_08037B54: + mov r1, sl + adds r1, #0x79 + movs r2, #0 + movs r0, #0xf + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x9a + strb r2, [r0] + ldrb r0, [r5] + adds r0, #1 + b _08038028 +_08037B6A: + bl sub_803967C + adds r1, r6, #0 + adds r1, #0x92 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r6, #0x7c] + subs r1, #0xe + movs r0, #0x40 + rsbs r0, r0, #0 + str r0, [r1] + ldrb r0, [r5] + adds r0, #1 + b _08038028 +_08037B8C: + movs r2, #0 + ldr r0, [r6, #0x7c] + cmp r0, #0 + bgt _08037BA8 + adds r3, r6, #0 + adds r3, #0x84 + ldr r1, [r3] + adds r0, r1, #0 + cmp r1, #0 + bge _08037BA2 + adds r0, r1, #3 +_08037BA2: + asrs r0, r0, #2 + subs r0, r1, r0 + str r0, [r3] +_08037BA8: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08037BC4 + ldr r0, [r6, #0x74] + ldr r1, _08037BC0 @ =0xFFFF8C00 + cmp r0, r1 + blt _08037BD2 + str r1, [r6, #0x74] + b _08037BD8 + .align 2, 0 +_08037BC0: .4byte 0xFFFF8C00 +_08037BC4: + ldr r0, [r6, #0x74] + movs r1, #0xe8 + lsls r1, r1, #7 + cmp r0, r1 + bgt _08037BD2 + str r1, [r6, #0x74] + movs r2, #0xff +_08037BD2: + cmp r2, #0 + bne _08037BD8 + b _0803802A +_08037BD8: + movs r1, #0 + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r0, #0x84 + str r1, [r0] + adds r0, #0xe + ldrh r0, [r0] + cmp r0, #0 + beq _08037BEE + movs r0, #4 + b _08038028 +_08037BEE: + movs r0, #0x10 + b _08038028 +_08037BF2: + adds r1, r6, #0 + adds r1, #0x92 + ldrh r0, [r1] + subs r0, #1 + movs r4, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r3, r1, #0 + cmp r0, #0 + bne _08037C40 + movs r0, #4 + strb r0, [r5] + ldr r0, _08037C30 @ =gPlayer + ldr r0, [r0, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037C20 + ldr r0, _08037C34 @ =gNumLives + ldrb r0, [r0] + cmp r0, #0 + bne _08037C20 + b _0803802A +_08037C20: + ldr r1, _08037C38 @ =gWinRegs + ldr r0, _08037C3C @ =0x00001F1F + strh r0, [r1, #8] + movs r0, #0xf0 + strh r0, [r1] + movs r0, #0xa0 + strh r0, [r1, #4] + b _0803802A + .align 2, 0 +_08037C30: .4byte gPlayer +_08037C34: .4byte gNumLives +_08037C38: .4byte gWinRegs +_08037C3C: .4byte 0x00001F1F +_08037C40: + ldr r0, _08037D54 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #0x80 + ands r1, r2 + adds r6, r0, #0 + cmp r1, #0 + beq _08037C56 + ldr r0, _08037D58 @ =gNumLives + ldrb r0, [r0] + cmp r0, #0 + beq _08037C5C +_08037C56: + ldr r1, _08037D5C @ =gWinRegs + ldr r0, _08037D60 @ =0x00003F3F + strh r0, [r1, #8] +_08037C5C: + movs r1, #0 + ldrsh r0, [r3, r1] + subs r0, #0xf + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bge _08037C72 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08037C72: + movs r0, #0xf + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _08037C8C + movs r1, #0xc + movs r4, #0xb +_08037C8C: + ldrh r0, [r7, #0x18] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r2, r0, r1 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + adds r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0xa0 + ble _08037CA6 + movs r3, #0xa0 +_08037CA6: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08037D80 + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037CC4 + ldr r0, _08037D58 @ =gNumLives + ldrb r0, [r0] + cmp r0, #0 + beq _08037CDE +_08037CC4: + ldr r2, _08037D5C @ =gWinRegs + ldrh r0, [r7, #0x16] + adds r0, #0x20 + lsls r0, r0, #8 + movs r1, #0xf0 + orrs r0, r1 + strh r0, [r2] + lsls r1, r5, #0x10 + asrs r1, r1, #8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + orrs r0, r1 + strh r0, [r2, #4] +_08037CDE: + ldr r0, _08037D64 @ =gCamera + ldrh r5, [r0] + adds r5, #0x78 + ldrh r0, [r7, #0x16] + subs r0, #0x58 + lsls r4, r4, #0x10 + rsbs r3, r4, #0 + asrs r3, r3, #0x10 + movs r2, #0 + str r2, [sp, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08037D68 @ =0xFFFFFF00 + ldr r7, [sp, #0x10] + ands r1, r7 + orrs r1, r0 + str r1, [sp, #0x10] + movs r0, #0xf0 + lsls r0, r0, #0xf + ldr r2, _08037D6C @ =0xFF00FFFF + ands r2, r1 + orrs r2, r0 + str r2, [sp, #0x10] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + ldr r0, _08037D70 @ =0xFFFF00FF + ands r0, r2 + orrs r0, r3 + str r0, [sp, #0x10] + lsls r4, r4, #8 + ldr r1, _08037D74 @ =0x00FFFFFF + ands r0, r1 + orrs r0, r4 + str r0, [sp, #0x10] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + ldr r0, [sp, #0x20] + asrs r4, r0, #0x10 + str r6, [sp] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_800C1E8 + adds r6, r0, #0 + ldr r0, _08037D78 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + beq _08037D48 + b _08037E44 +_08037D48: + ldr r0, _08037D7C @ =gPartner + str r0, [sp] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + b _08037E14 + .align 2, 0 +_08037D54: .4byte gPlayer +_08037D58: .4byte gNumLives +_08037D5C: .4byte gWinRegs +_08037D60: .4byte 0x00003F3F +_08037D64: .4byte gCamera +_08037D68: .4byte 0xFFFFFF00 +_08037D6C: .4byte 0xFF00FFFF +_08037D70: .4byte 0xFFFF00FF +_08037D74: .4byte 0x00FFFFFF +_08037D78: .4byte gNumSingleplayerCharacters +_08037D7C: .4byte gPartner +_08037D80: + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037D92 + ldr r0, _08037E20 @ =gNumLives + ldrb r0, [r0] + cmp r0, #0 + beq _08037DA6 +_08037D92: + ldr r2, _08037E24 @ =gWinRegs + ldrh r0, [r7, #0x16] + subs r0, #0x20 + strh r0, [r2] + lsls r1, r5, #0x10 + asrs r1, r1, #8 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + orrs r0, r1 + strh r0, [r2, #4] +_08037DA6: + ldr r0, _08037E28 @ =gCamera + ldrh r5, [r0] + adds r5, #0x78 + ldrh r2, [r7, #0x16] + subs r2, #0x98 + lsls r4, r4, #0x10 + rsbs r3, r4, #0 + asrs r3, r3, #0x10 + movs r0, #0 + str r0, [sp, #0x14] + movs r1, #0x88 + ldr r0, _08037E2C @ =0xFFFFFF00 + ldr r7, [sp, #0x18] + ands r0, r7 + orrs r0, r1 + str r0, [sp, #0x18] + lsls r2, r2, #0x18 + lsrs r2, r2, #8 + ldr r1, _08037E30 @ =0xFF00FFFF + ands r1, r0 + orrs r1, r2 + str r1, [sp, #0x18] + lsls r3, r3, #0x18 + lsrs r3, r3, #0x10 + ldr r0, _08037E34 @ =0xFFFF00FF + ands r0, r1 + orrs r0, r3 + str r0, [sp, #0x18] + lsls r4, r4, #8 + ldr r1, _08037E38 @ =0x00FFFFFF + ands r0, r1 + orrs r0, r4 + str r0, [sp, #0x18] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + ldr r0, [sp, #0x20] + asrs r4, r0, #0x10 + str r6, [sp] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_800C1E8 + adds r6, r0, #0 + ldr r0, _08037E3C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _08037E44 + ldr r0, _08037E40 @ =gPartner + str r0, [sp] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] +_08037E14: + adds r2, r5, #0 + adds r3, r4, #0 + bl sub_800C1E8 + b _08037E46 + .align 2, 0 +_08037E20: .4byte gNumLives +_08037E24: .4byte gWinRegs +_08037E28: .4byte gCamera +_08037E2C: .4byte 0xFFFFFF00 +_08037E30: .4byte 0xFF00FFFF +_08037E34: .4byte 0xFFFF00FF +_08037E38: .4byte 0x00FFFFFF +_08037E3C: .4byte gNumSingleplayerCharacters +_08037E40: .4byte gPartner +_08037E44: + movs r0, #0 +_08037E46: + orrs r6, r0 + cmp r6, #2 + beq _08037E4E + b _0803802A +_08037E4E: + ldr r0, _08037E74 @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + ldr r1, _08037E78 @ =0x03000044 + adds r3, r2, r1 + ldr r4, _08037E7C @ =0x03000064 + adds r1, r2, r4 + movs r0, #3 + strb r0, [r1] + ldr r0, [r3, #0x10] + ldr r1, _08037E80 @ =0xFFFFBFFF + ands r0, r1 + str r0, [r3, #0x10] + ldr r7, _08037E84 @ =0x03000065 + adds r2, r2, r7 + movs r0, #0xff + strb r0, [r2] + b _0803802A + .align 2, 0 +_08037E74: .4byte gCurTask +_08037E78: .4byte 0x03000044 +_08037E7C: .4byte 0x03000064 +_08037E80: .4byte 0xFFFFBFFF +_08037E84: .4byte 0x03000065 +_08037E88: + bl sub_8039940 + ldrb r0, [r5] + adds r0, #1 + b _08038028 +_08037E92: + movs r0, #4 + b _08038028 +_08037E96: + ldr r0, _08037EA8 @ =0xFFFFFE00 + str r0, [r6, #0x7c] + adds r1, r6, #0 + adds r1, #0x92 + movs r0, #0 + strh r0, [r1] + ldrb r0, [r5] + adds r0, #1 + b _08038028 + .align 2, 0 +_08037EA8: .4byte 0xFFFFFE00 +_08037EAC: + adds r3, r6, #0 + adds r3, #0x92 + ldrh r0, [r3] + cmp r0, #0 + beq _08037EC2 + mov r0, sl + adds r0, #0x79 + movs r2, #0 + movs r1, #0xf + strb r1, [r0] + strh r2, [r3] +_08037EC2: + movs r2, #0 + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08037EE4 + ldr r1, [r6, #0x74] + ldr r0, _08037EE0 @ =0x0000CFFF + cmp r1, r0 + ble _08037EF0 + adds r0, #1 + str r0, [sp, #8] + b _08037EF6 + .align 2, 0 +_08037EE0: .4byte 0x0000CFFF +_08037EE4: + ldr r0, [r6, #0x74] + ldr r1, _08037F14 @ =0xFFFF3000 + cmp r0, r1 + bgt _08037EF0 + str r1, [sp, #8] + movs r2, #0xff +_08037EF0: + cmp r2, #0 + bne _08037EF6 + b _0803802A +_08037EF6: + ldr r1, [sp, #8] + str r1, [r6, #0x74] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + eors r0, r1 + str r0, [r7, #0x10] + ldr r2, [sp, #4] + ldr r0, [r2, #0x10] + eors r0, r1 + str r0, [r2, #0x10] + ldrb r0, [r5] + adds r0, #1 + b _08038028 + .align 2, 0 +_08037F14: .4byte 0xFFFF3000 +_08037F18: + movs r2, #0 + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08037F38 + ldr r0, [r6, #0x74] + ldr r1, _08037F34 @ =0xFFFF8C00 + cmp r0, r1 + blt _08037F46 + str r1, [sp, #8] + b _08037F4A + .align 2, 0 +_08037F34: .4byte 0xFFFF8C00 +_08037F38: + ldr r0, [r6, #0x74] + movs r1, #0xe8 + lsls r1, r1, #7 + cmp r0, r1 + bgt _08037F46 + str r1, [sp, #8] + movs r2, #0xff +_08037F46: + cmp r2, #0 + beq _0803802A +_08037F4A: + ldr r3, [sp, #8] + str r3, [r6, #0x74] + movs r0, #0 + str r0, [r6, #0x7c] + b _08038028 +_08037F54: + mov r0, sl + adds r0, #0x7a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0803802A + adds r1, r6, #0 + adds r1, #0x92 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803802A + ldr r0, _08037F7C @ =0xFFFFFD00 + str r0, [r6, #0x7c] + ldrb r0, [r5] + adds r0, #1 + b _08038028 + .align 2, 0 +_08037F7C: .4byte 0xFFFFFD00 +_08037F80: + movs r2, #0 + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08037FA4 + ldr r1, [r6, #0x74] + ldr r0, _08037FA0 @ =0x0000CFFF + cmp r1, r0 + ble _08037FB0 + movs r4, #0xd0 + lsls r4, r4, #8 + str r4, [sp, #8] + b _08037FB4 + .align 2, 0 +_08037FA0: .4byte 0x0000CFFF +_08037FA4: + ldr r0, [r6, #0x74] + ldr r1, _08037FDC @ =0xFFFF3000 + cmp r0, r1 + bgt _08037FB0 + str r1, [sp, #8] + movs r2, #0xff +_08037FB0: + cmp r2, #0 + beq _0803802A +_08037FB4: + ldr r0, _08037FE0 @ =0xFFFFFE00 + str r0, [r6, #0x7c] + mov r1, sl + adds r1, #0x79 + movs r0, #0x13 + strb r0, [r1] + ldr r0, [sp, #8] + str r0, [r6, #0x74] + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + eors r0, r1 + str r0, [r7, #0x10] + ldr r2, [sp, #4] + ldr r0, [r2, #0x10] + eors r0, r1 + str r0, [r2, #0x10] + ldrb r0, [r5] + adds r0, #1 + b _08038028 + .align 2, 0 +_08037FDC: .4byte 0xFFFF3000 +_08037FE0: .4byte 0xFFFFFE00 +_08037FE4: + movs r2, #0 + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08038004 + ldr r0, [r6, #0x74] + ldr r1, _08038000 @ =0xFFFF8C00 + cmp r0, r1 + blt _08038014 + str r1, [r6, #0x74] + str r2, [r6, #0x7c] + b _08038018 + .align 2, 0 +_08038000: .4byte 0xFFFF8C00 +_08038004: + ldr r0, [r6, #0x74] + movs r1, #0xe8 + lsls r1, r1, #7 + cmp r0, r1 + bgt _08038014 + str r1, [r6, #0x74] + str r2, [r6, #0x7c] + movs r2, #0xff +_08038014: + cmp r2, #0 + beq _0803802A +_08038018: + mov r0, sl + adds r0, #0x7a + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0803802A + movs r0, #0 +_08038028: + strb r0, [r5] +_0803802A: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc new file mode 100644 index 0000000000..5a20143f95 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc @@ -0,0 +1,913 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + movs r0, #0 + str r0, [sp, #8] + ldr r0, _08039AD0 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r2, r4, r1 + mov r8, r2 + ldrh r0, [r0] + adds r0, r0, r1 + ldrh r3, [r0, #6] + adds r1, r3, r1 + str r1, [sp] + mov sl, r8 + ldr r0, _08039AD4 @ =0x03000030 + adds r0, r4, r0 + str r0, [sp, #4] + ldr r1, _08039AD8 @ =0x03000094 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #7 + bgt _08039AEA + ldr r2, _08039ADC @ =0x0300008C + adds r0, r3, r2 + ldrh r0, [r0] + subs r1, #0x44 + adds r2, r4, r1 + strh r0, [r2] + adds r1, #0x3e + adds r0, r3, r1 + ldrh r1, [r0] + ldr r3, _08039AE0 @ =0x03000052 + adds r0, r4, r3 + strh r1, [r0] + mov r4, sl + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08039AE4 + ldrh r0, [r2] + adds r0, #0x1a + b _08039AE8 + .align 2, 0 +_08039AD0: .4byte gCurTask +_08039AD4: .4byte 0x03000030 +_08039AD8: .4byte 0x03000094 +_08039ADC: .4byte 0x0300008C +_08039AE0: .4byte 0x03000052 +_08039AE4: + ldrh r0, [r2] + subs r0, #0x1a +_08039AE8: + strh r0, [r2] +_08039AEA: + mov r3, r8 + adds r3, #0x48 + movs r0, #0 + ldrsh r1, [r3, r0] + mov r2, r8 + ldr r0, [r2, #0x40] + adds r0, r0, r1 + str r0, [r2, #0x40] + adds r2, #0x4a + ldrh r0, [r2] + mov r1, r8 + adds r1, #0x4e + strh r0, [r1] + ldrh r6, [r2] + mov ip, r6 + mov r4, sl + ldr r1, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + str r3, [sp, #0xc] + mov sb, r2 + cmp r1, #0 + beq _08039B38 + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + ldr r2, _08039BD4 @ =0xFFFFFE00 + adds r1, r2, #0 + subs r6, r1, r0 + ldr r1, _08039BD8 @ =0x000003FF + ands r6, r1 + mov r3, ip + lsls r0, r3, #0x10 + rsbs r0, r0, #0 + asrs r0, r0, #0x10 + mov ip, r0 + mov r4, ip + ands r4, r1 + mov ip, r4 +_08039B38: + ldr r2, _08039BDC @ =gSineTable + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r4, #0 + ldrsh r6, [r0, r4] + asrs r6, r6, #6 + mov r3, r8 + ldr r0, [r3, #0x40] + muls r6, r0, r6 + asrs r6, r6, #0x10 + lsls r1, r1, #1 + adds r1, r1, r2 + movs r4, #0 + ldrsh r7, [r1, r4] + asrs r7, r7, #6 + muls r7, r0, r7 + asrs r7, r7, #0x10 + mov r5, r8 + adds r5, #0x50 + movs r1, #0 + ldrsh r0, [r5, r1] + adds r6, r6, r0 + mov r4, r8 + adds r4, #0x52 + movs r2, #0 + ldrsh r0, [r4, r2] + adds r7, r7, r0 + ldr r1, _08039BE0 @ =gCamera + ldrh r0, [r1] + subs r0, r6, r0 + ldr r3, [sp, #4] + strh r0, [r3, #6] + ldrh r0, [r1, #2] + subs r0, r7, r0 + strh r0, [r3, #8] + mov r0, ip + strh r0, [r3] + mov r0, sl + bl UpdateSpriteAnimation + mov r0, sl + ldr r1, [sp, #4] + bl TransformSprite + mov r0, sl + bl DisplaySprite + ldr r0, [sp] + adds r0, #0x94 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #7 + ble _08039BEC + movs r0, #0 + ldr r1, [sp, #0xc] + strh r0, [r1] + lsls r0, r6, #8 + mov r2, r8 + str r0, [r2, #0x54] + lsls r0, r7, #8 + str r0, [r2, #0x58] + movs r0, #0xb8 + lsls r0, r0, #3 + mov r3, sl + strh r0, [r3, #0x1a] + movs r0, #0x50 + strh r0, [r2, #0x3c] + ldr r0, _08039BE4 @ =gCurTask + ldr r1, [r0] + ldr r0, _08039BE8 @ =Task_803A46C + str r0, [r1, #8] + b _0803A14A + .align 2, 0 +_08039BD4: .4byte 0xFFFFFE00 +_08039BD8: .4byte 0x000003FF +_08039BDC: .4byte gSineTable +_08039BE0: .4byte gCamera +_08039BE4: .4byte gCurTask +_08039BE8: .4byte Task_803A46C +_08039BEC: + mov r0, r8 + adds r0, #0x61 + ldrb r1, [r0] + str r0, [sp, #0x10] + cmp r1, #0 + blt _08039C1E + cmp r1, #1 + ble _08039C02 + cmp r1, #2 + beq _08039C0E + b _08039C1E +_08039C02: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + movs r2, #0 + b _08039C18 +_08039C0E: + lsls r0, r6, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + movs r2, #1 +_08039C18: + bl sub_8036F9C + str r0, [sp, #8] +_08039C1E: + ldr r1, [sp, #0x10] + ldrb r0, [r1] + cmp r0, #9 + bls _08039C28 + b _0803A14A +_08039C28: + lsls r0, r0, #2 + ldr r1, _08039C34 @ =_08039C38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08039C34: .4byte _08039C38 +_08039C38: @ jump table + .4byte _08039C60 @ case 0 + .4byte _08039CDE @ case 1 + .4byte _08039E08 @ case 2 + .4byte _08039EE2 @ case 3 + .4byte _08039EFC @ case 4 + .4byte _08039F30 @ case 5 + .4byte _08039F94 @ case 6 + .4byte _08039FD4 @ case 7 + .4byte _0803A026 @ case 8 + .4byte _0803A084 @ case 9 +_08039C60: + mov r2, r8 + ldrh r0, [r2, #0x3c] + subs r0, #1 + strh r0, [r2, #0x3c] + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _08039C72 + b _0803A14A +_08039C72: + ldr r2, _08039CA8 @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _08039CAC @ =0x00196225 + muls r0, r1, r0 + ldr r4, _08039CB0 @ =0x3C6EF35F + adds r0, r0, r4 + str r0, [r2] + adds r1, r0, #0 + ldr r0, [sp, #0xc] + strh r3, [r0] + ldr r2, [sp, #0x10] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r1, #0 + movs r1, #0x64 + bl __modsi3 + adds r1, r0, #0 + subs r1, #0x23 + cmp r1, #0 + bgt _08039CB4 + movs r0, #0xb4 + mov r3, r8 + strh r0, [r3, #0x3c] + b _0803A14A + .align 2, 0 +_08039CA8: .4byte gPseudoRandom +_08039CAC: .4byte 0x00196225 +_08039CB0: .4byte 0x3C6EF35F +_08039CB4: + adds r1, r0, #0 + subs r1, #0x46 + cmp r1, #0 + bgt _08039CC4 + movs r0, #0x3c + mov r4, r8 + strh r0, [r4, #0x3c] + b _0803A14A +_08039CC4: + adds r1, r0, #0 + subs r1, #0x5a + cmp r1, #0 + bgt _08039CD4 + movs r0, #0x12 + mov r1, r8 + strh r0, [r1, #0x3c] + b _0803A14A +_08039CD4: + movs r0, #0x96 + lsls r0, r0, #1 + mov r2, r8 + strh r0, [r2, #0x3c] + b _0803A14A +_08039CDE: + movs r3, #0 + ldrsh r1, [r5, r3] + ldr r2, _08039D48 @ =gPlayer + ldr r0, [r2] + asrs r0, r0, #8 + subs r6, r1, r0 + movs r0, #0 + ldrsh r1, [r4, r0] + ldr r0, [r2, #4] + asrs r0, r0, #8 + subs r7, r1, r0 + cmp r6, #0 + bge _08039CFA + rsbs r6, r6, #0 +_08039CFA: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + bl sa2__sub_8004418 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r1, _08039D4C @ =0xFF1F0000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r1, #0x8f + lsls r1, r1, #1 + cmp r0, r1 + bhi _08039D1A + movs r6, #0xe0 +_08039D1A: + lsls r0, r6, #0x10 + ldr r2, _08039D50 @ =0xFDFF0000 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + cmp r0, r1 + bhi _08039D2A + movs r6, #0xc8 + lsls r6, r6, #2 +_08039D2A: + mov r3, sb + ldrh r2, [r3] + lsls r0, r2, #0x16 + asrs r1, r0, #0x10 + lsls r0, r6, #0x16 + asrs r0, r0, #0x10 + cmp r1, r0 + ble _08039D54 + movs r3, #0xc0 + lsls r3, r3, #1 + adds r0, r0, r3 + cmp r1, r0 + blt _08039D60 + subs r0, r2, #6 + b _08039D6E + .align 2, 0 +_08039D48: .4byte gPlayer +_08039D4C: .4byte 0xFF1F0000 +_08039D50: .4byte 0xFDFF0000 +_08039D54: + cmp r1, r0 + bge _08039D72 + ldr r3, _08039D68 @ =0xFFFFFE80 + adds r0, r0, r3 + cmp r1, r0 + ble _08039D6C +_08039D60: + mov r0, sb + strh r6, [r0] + b _08039D72 + .align 2, 0 +_08039D68: .4byte 0xFFFFFE80 +_08039D6C: + adds r0, r2, #6 +_08039D6E: + mov r1, sb + strh r0, [r1] +_08039D72: + mov r2, sb + ldrh r0, [r2] + ldr r1, _08039DFC @ =0x000003FF + ands r1, r0 + strh r1, [r2] + mov r3, r8 + ldrh r0, [r3, #0x3c] + subs r0, #1 + strh r0, [r3, #0x3c] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08039D8C + b _0803A14A +_08039D8C: + movs r1, #0 + ldrsh r0, [r5, r1] + ldr r3, _08039E00 @ =gPlayer + ldr r1, [r3] + asrs r1, r1, #8 + subs r0, r0, r1 + movs r1, #0 + ldrsh r2, [r4, r1] + ldr r1, [r3, #4] + asrs r1, r1, #8 + subs r2, r2, r1 + adds r3, r0, #0 + muls r3, r0, r3 + adds r0, r3, #0 + adds r4, r2, #0 + muls r4, r2, r4 + adds r2, r4, #0 + lsls r0, r0, #8 + lsls r2, r2, #8 + adds r0, r0, r2 + bl Sqrt + lsls r0, r0, #0x10 + lsrs r0, r0, #0xc + ldr r1, _08039E04 @ =0xFFFFF000 + subs r1, r1, r0 + mov r0, r8 + str r1, [r0, #0x44] + movs r0, #0xfa + lsls r0, r0, #8 + ldr r1, [sp, #0xc] + strh r0, [r1] + mov r1, r8 + adds r1, #0x60 + movs r0, #0 + strb r0, [r1] + ldr r2, [sp, #0x10] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xf0 + lsls r0, r0, #2 + mov r3, sl + strh r0, [r3, #0x1a] + mov r1, sl + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + movs r0, #0xb3 + bl m4aSongNumStart + b _0803A14A + .align 2, 0 +_08039DFC: .4byte 0x000003FF +_08039E00: .4byte gPlayer +_08039E04: .4byte 0xFFFFF000 +_08039E08: + mov r4, r8 + ldr r0, [r4, #0x40] + rsbs r0, r0, #0 + asrs r0, r0, #8 + subs r0, #0x14 + asrs r0, r0, #4 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + mov r1, r8 + adds r1, #0x60 + ldrb r0, [r1] + cmp r0, r2 + bhs _08039E2A + strb r2, [r1] + bl sub_803A1D8 +_08039E2A: + ldr r0, [sp, #8] + cmp r0, #2 + bne _08039EB8 + mov r1, r8 + adds r1, #0x62 + movs r0, #0xff + strb r0, [r1] + movs r4, #0 + ldr r1, [sp, #0xc] + strh r4, [r1] + movs r0, #7 + ldr r2, [sp, #0x10] + strb r0, [r2] + mov r0, sl + adds r0, #0x20 + mov r3, sp + ldrb r3, [r3, #8] + strb r3, [r0] + mov r1, sl + adds r1, #0x21 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldr r5, _08039E90 @ =gPlayer + adds r0, r5, #0 + bl Player_TransitionCancelFlyingAndBoost + lsls r0, r6, #8 + str r0, [r5] + lsls r0, r7, #8 + str r0, [r5, #4] + strh r4, [r5, #8] + strh r4, [r5, #0xa] + strh r4, [r5, #0xc] + ldr r0, [r5, #0x10] + ldr r1, _08039E94 @ =0x00E00100 + orrs r0, r1 + str r0, [r5, #0x10] + mov r4, sl + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08039E98 + mov r1, sb + movs r2, #0 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + asrs r0, r0, #2 + b _08039E9E + .align 2, 0 +_08039E90: .4byte gPlayer +_08039E94: .4byte 0x00E00100 +_08039E98: + mov r3, sb + ldrh r0, [r3] + lsrs r0, r0, #2 +_08039E9E: + strb r0, [r5, #0x14] + ldr r1, _08039EB4 @ =gPlayer + adds r3, r1, #0 + adds r3, #0x40 + movs r2, #0 + movs r0, #0x28 + strb r0, [r3] + strh r2, [r1, #0x38] + strh r2, [r1, #0x3a] + b _0803A14A + .align 2, 0 +_08039EB4: .4byte gPlayer +_08039EB8: + mov r4, r8 + ldr r1, [r4, #0x40] + ldr r0, [r4, #0x44] + cmp r1, r0 + ble _08039EC4 + b _0803A14A +_08039EC4: + movs r0, #0 + ldr r1, [sp, #0xc] + strh r0, [r1] + ldr r2, [sp, #0x10] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + mov r1, sl + adds r1, #0x20 + movs r0, #2 + strb r0, [r1] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + b _0803A14A +_08039EE2: + mov r3, sl + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08039EF2 + b _0803A14A +_08039EF2: + movs r0, #0x80 + lsls r0, r0, #2 + ldr r4, [sp, #0xc] + strh r0, [r4] + b _0803A076 +_08039EFC: + mov r2, r8 + ldr r0, [r2, #0x40] + ldr r1, _08039F2C @ =0xFFFFEC00 + cmp r0, r1 + bge _08039F08 + b _0803A14A +_08039F08: + str r1, [r2, #0x40] + movs r1, #0 + movs r0, #0 + ldr r3, [sp, #0xc] + strh r0, [r3] + movs r0, #0xb8 + lsls r0, r0, #3 + mov r4, sl + strh r0, [r4, #0x1a] + mov r0, sl + adds r0, #0x20 + strb r1, [r0] + mov r1, sl + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + b _0803A076 + .align 2, 0 +_08039F2C: .4byte 0xFFFFEC00 +_08039F30: + mov r2, sb + ldrh r0, [r2] + movs r3, #0 + ldrsh r1, [r2, r3] + cmp r1, #0 + bne _08039F56 + movs r0, #0xb8 + lsls r0, r0, #3 + mov r4, sl + strh r0, [r4, #0x1a] + movs r0, #0x80 + lsls r0, r0, #1 + ldr r1, [sp, #0xc] + strh r0, [r1] + ldr r2, [sp, #0x10] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + b _0803A14A +_08039F56: + movs r2, #0x80 + lsls r2, r2, #2 + cmp r1, r2 + ble _08039F78 + adds r0, #6 + ldr r3, _08039F74 @ =0x000003FF + adds r1, r3, #0 + ands r0, r1 + mov r4, sb + strh r0, [r4] + cmp r0, #6 + ble _08039F70 + b _0803A14A +_08039F70: + b _08039F8A + .align 2, 0 +_08039F74: .4byte 0x000003FF +_08039F78: + subs r0, #6 + ldr r3, _08039F90 @ =0x000003FF + adds r1, r3, #0 + ands r0, r1 + mov r4, sb + strh r0, [r4] + cmp r0, r2 + bgt _08039F8A + b _0803A14A +_08039F8A: + movs r0, #0 + strh r0, [r4] + b _0803A14A + .align 2, 0 +_08039F90: .4byte 0x000003FF +_08039F94: + mov r0, r8 + ldr r1, [r0, #0x40] + ldr r0, _08039FB8 @ =0x00000DFF + cmp r1, r0 + bgt _08039FA0 + b _0803A14A +_08039FA0: + mov r0, r8 + adds r0, #0x62 + ldrb r0, [r0] + cmp r0, #0 + bne _08039FBC + ldr r1, [sp] + adds r1, #0x99 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08039FC4 + .align 2, 0 +_08039FB8: .4byte 0x00000DFF +_08039FBC: + ldr r1, [sp] + adds r1, #0x92 + movs r0, #1 + strh r0, [r1] +_08039FC4: + ldr r0, _08039FD0 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0803A14A + .align 2, 0 +_08039FD0: .4byte gCurTask +_08039FD4: + ldr r2, _08039FF8 @ =gPlayer + lsls r0, r6, #8 + str r0, [r2] + lsls r0, r7, #8 + str r0, [r2, #4] + mov r1, sl + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08039FFC + mov r3, sb + movs r4, #0 + ldrsh r0, [r3, r4] + rsbs r0, r0, #0 + asrs r0, r0, #2 + b _0803A002 + .align 2, 0 +_08039FF8: .4byte gPlayer +_08039FFC: + mov r1, sb + ldrh r0, [r1] + lsrs r0, r0, #2 +_0803A002: + strb r0, [r2, #0x14] + mov r2, sl + ldr r0, [r2, #0x10] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0803A014 + b _0803A14A +_0803A014: + movs r0, #0xc0 + lsls r0, r0, #3 + ldr r3, [sp, #0xc] + strh r0, [r3] + ldr r4, [sp, #0x10] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + b _0803A14A +_0803A026: + ldr r2, _0803A04C @ =gPlayer + lsls r0, r6, #8 + str r0, [r2] + lsls r0, r7, #8 + str r0, [r2, #4] + mov r1, sl + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0803A050 + mov r3, sb + movs r4, #0 + ldrsh r0, [r3, r4] + rsbs r0, r0, #0 + asrs r0, r0, #2 + b _0803A056 + .align 2, 0 +_0803A04C: .4byte gPlayer +_0803A050: + mov r1, sb + ldrh r0, [r1] + lsrs r0, r0, #2 +_0803A056: + strb r0, [r2, #0x14] + mov r2, r8 + ldr r0, [r2, #0x40] + ldr r1, _0803A080 @ =0xFFFFDC00 + cmp r0, r1 + blt _0803A14A + str r1, [r2, #0x40] + movs r2, #0 + ldr r3, [sp, #0xc] + strh r2, [r3] + mov r1, r8 + adds r1, #0x4c + movs r0, #0x10 + strh r0, [r1] + mov r4, r8 + strh r2, [r4, #0x3c] +_0803A076: + ldr r1, [sp, #0x10] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0803A14A + .align 2, 0 +_0803A080: .4byte 0xFFFFDC00 +_0803A084: + ldr r2, _0803A0AC @ =gPlayer + lsls r0, r6, #8 + str r0, [r2] + lsls r0, r7, #8 + str r0, [r2, #4] + mov r3, sl + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #0 + beq _0803A0B0 + mov r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + asrs r0, r0, #2 + b _0803A0B6 + .align 2, 0 +_0803A0AC: .4byte gPlayer +_0803A0B0: + mov r2, sb + ldrh r0, [r2] + lsrs r0, r0, #2 +_0803A0B6: + strb r0, [r3, #0x14] + mov r2, r8 + adds r2, #0x4c + ldrh r0, [r2] + mov r4, sb + ldrh r4, [r4] + adds r0, r0, r4 + ldr r1, _0803A15C @ =0x000003FF + ands r0, r1 + mov r1, sb + strh r0, [r1] + ldr r1, _0803A160 @ =0x000001FF + adds r5, r2, #0 + cmp r0, r1 + ble _0803A102 + ldr r6, _0803A164 @ =gRingCount + ldrh r4, [r6] + cmp r4, #0 + beq _0803A0FE + movs r2, #0 + ldrsh r0, [r5, r2] + cmp r0, #0 + bge _0803A0FE + cmp r4, #5 + bls _0803A0EA + movs r4, #5 +_0803A0EA: + ldr r0, [r3] + asrs r0, r0, #8 + ldr r1, [r3, #4] + asrs r1, r1, #8 + adds r2, r4, #0 + bl InitScatteringRings + ldrh r0, [r6] + subs r0, r0, r4 + strh r0, [r6] +_0803A0FE: + movs r0, #0x10 + strh r0, [r5] +_0803A102: + ldr r3, _0803A168 @ =0xFFFFFF00 + adds r0, r3, #0 + mov r4, sb + ldrh r4, [r4] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xff + bhi _0803A14A + ldr r0, _0803A16C @ =0x0000FFF0 + strh r0, [r5] + mov r1, r8 + ldrh r0, [r1, #0x3c] + adds r0, #1 + strh r0, [r1, #0x3c] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #4 + bne _0803A130 + ldr r1, [sp] + adds r1, #0x99 + movs r0, #0x33 + strb r0, [r1] +_0803A130: + mov r2, r8 + ldrh r4, [r2, #0x3c] + cmp r4, #5 + bne _0803A14A + mov r3, sl + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + bl sub_803A170 + ldr r0, [sp, #0x10] + strb r4, [r0] +_0803A14A: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0803A15C: .4byte 0x000003FF +_0803A160: .4byte 0x000001FF +_0803A164: .4byte gRingCount +_0803A168: .4byte 0xFFFFFF00 +_0803A16C: .4byte 0x0000FFF0 +.align 2, 0 +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc new file mode 100644 index 0000000000..8d5e7df124 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc @@ -0,0 +1,58 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, lr} + ldr r2, _0803A184 @ =gPlayer + movs r1, #0x78 + strh r1, [r2, #0x1c] + adds r5, r2, #0 + cmp r0, #0 + beq _0803A188 + movs r0, #0xfe + lsls r0, r0, #8 + b _0803A18C + .align 2, 0 +_0803A184: .4byte gPlayer +_0803A188: + movs r0, #0x80 + lsls r0, r0, #2 +_0803A18C: + strh r0, [r5, #8] + movs r4, #0 + ldr r0, _0803A1D0 @ =0x0000FA20 + strh r0, [r5, #0xa] + strb r4, [r5, #0x14] + ldr r0, [r5, #0x10] + ldr r1, _0803A1D4 @ =0xFF1FFAC3 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xf + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3e + strb r4, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0803A1D0: .4byte 0x0000FA20 +_0803A1D4: .4byte 0xFF1FFAC3 + +.align 2, 0 +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc b/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc new file mode 100644 index 0000000000..7cfeee85a8 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc @@ -0,0 +1,113 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0xc + ldr r6, [sp, #0x20] + ldr r4, [sp, #0x24] + mov r8, r4 + movs r5, #0 + str r5, [sp, #4] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + ldr r4, _0803A76C @ =0xFFFFFF00 + ldr r5, [sp, #8] + ands r4, r5 + orrs r4, r2 + str r4, [sp, #8] + lsls r3, r3, #0x18 + lsrs r3, r3, #8 + ldr r5, _0803A770 @ =0xFF00FFFF + ands r5, r4 + orrs r5, r3 + str r5, [sp, #8] + lsls r6, r6, #0x18 + lsrs r6, r6, #0x10 + ldr r2, _0803A774 @ =0xFFFF00FF + ands r2, r5 + orrs r2, r6 + str r2, [sp, #8] + mov r3, r8 + lsls r3, r3, #0x18 + mov r8, r3 + ldr r3, _0803A778 @ =0x00FFFFFF + ands r2, r3 + mov r4, r8 + orrs r4, r2 + str r4, [sp, #8] + lsls r0, r0, #0x10 + asrs r6, r0, #0x10 + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + ldr r0, _0803A77C @ =gPlayer + str r0, [sp] + ldr r0, [sp, #4] + ldr r1, [sp, #8] + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_800C1E8 + adds r4, r0, #0 + ldr r0, _0803A780 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _0803A788 + ldr r0, _0803A784 @ =gPartner + str r0, [sp] + ldr r0, [sp, #4] + ldr r1, [sp, #8] + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_800C1E8 + b _0803A78A + .align 2, 0 +_0803A76C: .4byte 0xFFFFFF00 +_0803A770: .4byte 0xFF00FFFF +_0803A774: .4byte 0xFFFF00FF +_0803A778: .4byte 0x00FFFFFF +_0803A77C: .4byte gPlayer +_0803A780: .4byte gNumSingleplayerCharacters +_0803A784: .4byte gPartner +_0803A788: + movs r0, #0 +_0803A78A: + orrs r4, r0 + cmp r4, #2 + bne _0803A7B2 + ldr r0, _0803A7C0 @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + ldr r5, _0803A7C4 @ =0x03000044 + adds r3, r2, r5 + ldr r0, _0803A7C8 @ =0x03000064 + adds r1, r2, r0 + movs r0, #3 + strb r0, [r1] + ldr r0, [r3, #0x10] + ldr r1, _0803A7CC @ =0xFFFFBFFF + ands r0, r1 + str r0, [r3, #0x10] + ldr r3, _0803A7D0 @ =0x03000065 + adds r2, r2, r3 + movs r0, #0xff + strb r0, [r2] +_0803A7B2: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0803A7C0: .4byte gCurTask +_0803A7C4: .4byte 0x03000044 +_0803A7C8: .4byte 0x03000064 +_0803A7CC: .4byte 0xFFFFBFFF +_0803A7D0: .4byte 0x03000065 + +.align 2, 0 +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc new file mode 100644 index 0000000000..fa9da36084 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc @@ -0,0 +1,419 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + str r0, [sp, #4] + ldr r1, _080504B8 @ =gExtraBossTaskData + ldr r0, [r1, #0x3c] + mov r8, r0 + adds r0, #0x70 + ldrh r5, [r0] + ldr r0, [r1, #0x38] + adds r0, #0x70 + ldrh r0, [r0] + str r0, [sp, #8] + mov r1, r8 + ldr r0, [r1, #0x50] + asrs r7, r0, #8 + ldr r2, _080504BC @ =gStageTime + ldr r0, [r2] + lsls r0, r0, #3 + adds r7, r7, r0 + adds r1, r7, #0 + subs r1, #0x48 + ldr r0, _080504C0 @ =0x00000A7F + cmp r1, r0 + ble _080501DC + adds r7, r1, #0 + movs r1, #0xa8 + lsls r1, r1, #4 + adds r0, r7, #0 + bl Mod + adds r7, r0, #0 + adds r7, #0x48 +_080501DC: + mov r0, r8 + ldr r3, [r0, #0x54] + asrs r3, r3, #8 + ldr r4, _080504C4 @ =gSineTable + lsrs r1, r5, #6 + lsls r0, r1, #1 + adds r0, r0, r4 + ldrh r2, [r0] + lsls r2, r2, #0x10 + asrs r2, r2, #0x16 + lsls r2, r2, #0xc + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #8 + subs r0, r0, r2 + asrs r0, r0, #0x10 + adds r0, #6 + adds r6, r3, r0 + adds r1, r7, #0 + adds r1, #0x10 + ldr r2, _080504C8 @ =sa2__sub_801EC3C + mov sl, r2 + str r2, [sp] + adds r0, r6, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F100 + mov sb, r0 + mov r0, r8 + ldr r3, [r0, #0x54] + asrs r3, r3, #8 + ldr r1, [sp, #8] + lsrs r2, r1, #6 + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r0 + lsls r1, r1, #8 + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #1 + adds r2, r2, r4 + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #0xb + adds r1, r1, r0 + asrs r1, r1, #0x10 + adds r1, #6 + adds r4, r3, r1 + adds r1, r7, #0 + adds r1, #0x15 + mov r2, sl + str r2, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F100 + mov sl, r0 + cmp sl, sb + ble _08050278 + mov sl, sb +_08050278: + mov r0, sl + cmp r0, #0 + bgt _080502D2 + ldr r0, [sp, #4] + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _080502D2 + ldr r1, _080504BC @ =gStageTime + ldr r0, [r1] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080502D2 + ldr r2, _080504CC @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _080504D0 @ =0x00196225 + muls r0, r1, r0 + ldr r1, _080504D4 @ =0x3C6EF35F + adds r0, r0, r1 + str r0, [r2] + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + bne _080502D2 + mov r2, r8 + ldr r0, [r2, #0x50] + asrs r2, r0, #8 + adds r0, r4, #0 + cmp r0, r6 + bge _080502BE + adds r0, r6, #0 +_080502BE: + subs r1, r0, #2 + adds r0, r2, #0 + bl CreateBrakingDustEffect + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + ldr r1, _080504D8 @ =0x0000FFFC + strh r1, [r0, #4] +_080502D2: + ldr r1, _080504B8 @ =gExtraBossTaskData + ldr r0, [r1, #0x48] + mov r8, r0 + adds r0, #0x70 + ldrh r5, [r0] + ldr r0, [r1, #0x44] + adds r0, #0x70 + ldrh r0, [r0] + str r0, [sp, #0xc] + mov r1, r8 + ldr r0, [r1, #0x50] + asrs r7, r0, #8 + ldr r2, _080504BC @ =gStageTime + ldr r0, [r2] + lsls r0, r0, #3 + adds r7, r7, r0 + adds r1, r7, #0 + subs r1, #0x48 + ldr r0, _080504C0 @ =0x00000A7F + cmp r1, r0 + ble _0805030C + adds r7, r1, #0 + movs r1, #0xa8 + lsls r1, r1, #4 + adds r0, r7, #0 + bl Mod + adds r7, r0, #0 + adds r7, #0x48 +_0805030C: + mov r0, r8 + ldr r3, [r0, #0x54] + asrs r3, r3, #8 + ldr r4, _080504C4 @ =gSineTable + lsrs r1, r5, #6 + lsls r0, r1, #1 + adds r0, r0, r4 + ldrh r2, [r0] + lsls r2, r2, #0x10 + asrs r2, r2, #0x16 + lsls r2, r2, #0xc + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #8 + subs r0, r0, r2 + asrs r0, r0, #0x10 + adds r0, #6 + adds r5, r3, r0 + adds r1, r7, #0 + adds r1, #0x10 + ldr r2, _080504C8 @ =sa2__sub_801EC3C + str r2, [sp] + adds r0, r5, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F100 + mov sb, r0 + mov r0, r8 + ldr r3, [r0, #0x54] + asrs r3, r3, #8 + ldr r1, [sp, #0xc] + lsrs r2, r1, #6 + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r0 + lsls r1, r1, #8 + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #1 + adds r2, r2, r4 + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #0xb + adds r1, r1, r0 + asrs r1, r1, #0x10 + adds r1, #6 + adds r4, r3, r1 + adds r1, r7, #0 + adds r1, #0x15 + ldr r2, _080504C8 @ =sa2__sub_801EC3C + str r2, [sp] + adds r0, r4, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F100 + adds r6, r0, #0 + cmp r6, sb + ble _080503A6 + mov r6, sb +_080503A6: + cmp r6, #0 + bgt _080503FE + ldr r0, [sp, #4] + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _080503FE + ldr r1, _080504BC @ =gStageTime + ldr r0, [r1] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080503FE + ldr r2, _080504CC @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _080504D0 @ =0x00196225 + muls r0, r1, r0 + ldr r1, _080504D4 @ =0x3C6EF35F + adds r0, r0, r1 + str r0, [r2] + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + bne _080503FE + mov r2, r8 + ldr r0, [r2, #0x50] + asrs r2, r0, #8 + adds r0, r4, #0 + cmp r0, r5 + bge _080503EA + adds r0, r5, #0 +_080503EA: + subs r1, r0, #2 + adds r0, r2, #0 + bl CreateBrakingDustEffect + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + ldr r1, _080504D8 @ =0x0000FFFC + strh r1, [r0, #4] +_080503FE: + ldr r0, _080504B8 @ =gExtraBossTaskData + ldr r0, [r0, #4] + str r0, [sp, #0x10] + adds r0, #0x70 + ldrh r1, [r0] + ldr r3, _080504C4 @ =gSineTable + lsrs r1, r1, #6 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r2, [r0] + lsls r2, r2, #0x10 + asrs r2, r2, #0x16 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r3, [r1] + lsls r3, r3, #0x10 + asrs r3, r3, #0x16 + ldr r0, [sp, #0x10] + ldr r4, [r0, #0x54] + asrs r4, r4, #8 + lsls r1, r3, #3 + subs r1, r1, r3 + lsls r1, r1, #2 + subs r1, r1, r3 + lsls r1, r1, #8 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + subs r0, r0, r2 + lsls r0, r0, #9 + subs r1, r1, r0 + asrs r1, r1, #0x10 + adds r7, r4, r1 + ldr r1, [sp, #0x10] + ldr r4, [r1, #0x50] + asrs r4, r4, #8 + lsls r1, r2, #3 + subs r1, r1, r2 + lsls r1, r1, #2 + subs r1, r1, r2 + lsls r1, r1, #8 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + subs r0, r0, r3 + lsls r0, r0, #9 + adds r1, r1, r0 + asrs r1, r1, #0x10 + adds r4, r4, r1 + ldr r0, _080504BC @ =gStageTime + ldr r0, [r0] + lsls r0, r0, #3 + adds r4, r4, r0 + adds r1, r4, #0 + subs r1, #0x48 + ldr r0, _080504C0 @ =0x00000A7F + cmp r1, r0 + ble _08050488 + adds r4, r1, #0 + movs r1, #0xa8 + lsls r1, r1, #4 + adds r0, r4, #0 + bl Mod + adds r4, r0, #0 + adds r4, #0x48 +_08050488: + ldr r0, _080504C8 @ =sa2__sub_801EC3C + str r0, [sp] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F100 + adds r1, r6, #0 + cmp r1, sl + ble _080504A0 + mov r1, sl +_080504A0: + cmp r0, r1 + ble _080504A6 + adds r0, r1, #0 +_080504A6: + adds r1, r0, #0 + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080504B8: .4byte gExtraBossTaskData +_080504BC: .4byte gStageTime +_080504C0: .4byte 0x00000A7F +_080504C4: .4byte gSineTable +_080504C8: .4byte sa2__sub_801EC3C +_080504CC: .4byte gPseudoRandom +_080504D0: .4byte 0x00196225 +_080504D4: .4byte 0x3C6EF35F +_080504D8: .4byte 0x0000FFFC + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc new file mode 100644 index 0000000000..8240fabce1 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc @@ -0,0 +1,435 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sl, r0 @ sl = r0 = robo + movs r4, #0 + str r4, [r0, #0x60] + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r0, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + mov r0, sl @ r0 = sl = robo + str r1, [r0, #0x64] + ldr r1, _08050848 @ =0xFFFF0000 + str r1, [r0, #0x44] + ldr r0, _0805084C @ =0xFFFFCA00 + mov r2, sl @ r2 = sl = robo + str r0, [r2, #0x48] + mov r0, sl @ r0 = sl = robo + adds r0, #0x4c + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + ldr r0, _08050850 @ =0x00400002 + str r0, [r2, #0x58] + str r4, [r2, #0x5c] + mov r0, sl @ r0 = sl = robo + adds r0, #0x54 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + mov r1, sl @ r1 = sl = robo + adds r1, #0x6c + movs r0, #0xf0 + strh r0, [r1] + subs r1, #4 + ldr r0, _08050854 @ =gLoadedSaveGame + ldrb r0, [r0, #0x18] + lsls r0, r0, #1 + movs r3, #8 + subs r0, r3, r0 + strb r0, [r1] + mov r0, sl @ r0 = sl = robo + adds r0, #0x69 + movs r1, #0 + strb r1, [r0] + mov r1, sl @ r1 = sl = robo + adds r1, #0x6a + movs r0, #0x24 + strb r0, [r1] + adds r1, #1 + movs r0, #0x36 + strb r0, [r1] + mov r0, sl @ r0 = sl = robo + adds r0, #0x6e + movs r2, #0 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldr r6, _08050858 @ =gExtraBossTaskData + mov r0, sl @ r0 = sl = robo + movs r1, #0 + movs r2, #0 + movs r3, #0x15 + bl sub_8052838 + adds r5, r6, #4 + str r0, [r6, #4] + strh r4, [r0] + movs r7, #1 + movs r1, #0x80 + lsls r1, r1, #3 + ldr r2, _0805085C @ =0xFFFFE400 + movs r3, #0x16 + bl sub_8052474 + movs r3, #4 + mov sb, r3 + str r0, [r5, #4] + strh r7, [r0] + movs r7, #2 + ldr r0, [r6, #4] + ldr r2, _08050860 @ =0xFFFFE900 + movs r1, #0xb0 + lsls r1, r1, #4 + movs r3, #0xf + bl sub_80524F0 + str r0, [r6, #0xc] + strh r7, [r0] + ldr r2, [r6, #0xc] + ldr r1, [r2, #0x28] + ldr r3, _08050864 @ =0xFFFFCFFF + mov r8, r3 + ands r1, r3 + movs r5, #0x80 + lsls r5, r5, #5 + orrs r1, r5 + str r1, [r2, #0x28] + movs r7, #3 + movs r1, #0 + movs r2, #0xa0 + lsls r2, r2, #5 + movs r3, #0x10 + bl sub_8052578 + str r0, [r6, #0x10] + strh r7, [r0] + ldr r2, [r6, #0x10] + ldr r1, [r2, #0x28] + mov r3, r8 + ands r1, r3 + orrs r1, r5 + str r1, [r2, #0x28] + movs r4, #0x90 + lsls r4, r4, #5 + movs r1, #0 + adds r2, r4, #0 + movs r3, #0xf + bl sub_80525E0 + str r0, [r6, #0x14] + mov r1, sb + strh r1, [r0] + ldr r2, [r6, #0x14] + ldr r1, [r2, #0x28] + mov r3, r8 + ands r1, r3 + orrs r1, r5 + str r1, [r2, #0x28] + movs r7, #5 + movs r1, #0 + adds r2, r4, #0 + movs r3, #0x10 + bl sub_8052578 + str r0, [r6, #0x18] + strh r7, [r0] + ldr r2, [r6, #0x18] + ldr r1, [r2, #0x28] + mov r3, r8 + ands r1, r3 + orrs r1, r5 + str r1, [r2, #0x28] + movs r7, #6 + movs r1, #0x80 + lsls r1, r1, #4 + mov sb, r1 + movs r1, #0 + mov r2, sb + movs r3, #0xe + bl sub_805265C + str r0, [r6, #0x1c] + strh r7, [r0] + ldr r1, [r6, #0x1c] + ldr r0, [r1, #0x28] + mov r2, r8 + ands r0, r2 + orrs r0, r5 + str r0, [r1, #0x28] + movs r7, #7 + ldr r0, [r6, #4] + ldr r1, _08050868 @ =0xFFFFFB00 + ldr r2, _0805086C @ =0xFFFFE700 + movs r3, #0x1b + bl sub_80524F0 + str r0, [r6, #0x20] + strh r7, [r0] + movs r1, #0 + movs r2, #0xa0 + lsls r2, r2, #5 + movs r3, #0x1c + bl sub_8052578 + str r0, [r6, #0x24] + movs r3, #8 + strh r3, [r0] + movs r7, #9 + movs r1, #0 + adds r2, r4, #0 + movs r3, #0x1b + bl sub_80525E0 + str r0, [r6, #0x28] + strh r7, [r0] + movs r7, #0xa + movs r1, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_8052578 + str r0, [r6, #0x2c] + strh r7, [r0] + movs r7, #0xb + movs r1, #0 + mov r2, sb + movs r3, #0x1a + bl sub_805265C + str r0, [r6, #0x30] + strh r7, [r0] + ldr r0, [sp, #4] + ldr r1, _08050848 @ =0xFFFF0000 + ands r0, r1 + ldr r2, _08050870 @ =0x0000029B + orrs r0, r2 + ldr r3, _08050874 @ =0xFF00FFFF + ands r0, r3 + str r0, [sp, #4] + movs r0, #0x10 + bl VramMalloc + add r1, sp, #4 + mov sb, r1 + str r0, [sp, #8] + ldr r0, [r6, #4] + movs r1, #0x80 + lsls r1, r1, #2 + movs r2, #0x14 + str r2, [sp] + movs r2, #0xa0 + lsls r2, r2, #3 + add r3, sp, #4 + bl sub_80526C4 + adds r4, r0, #0 + str r4, [r6, #0x34] + movs r3, #0xc + strh r3, [r4] + ldr r0, [r6, #0x34] + adds r0, #0x76 + movs r1, #0xe0 + lsls r1, r1, #8 + strh r1, [r0] + ldr r0, [r6, #0x34] + adds r0, #0x72 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + ldr r1, [r6, #0x34] + ldr r0, [r1, #0x28] + mov r2, r8 + ands r0, r2 + orrs r0, r5 + str r0, [r1, #0x28] + ldr r1, _08050878 @ =0x0000029D + add r0, sp, #4 + strh r1, [r0] + movs r0, #0 + mov r3, sb + strb r0, [r3, #2] + movs r0, #9 + bl VramMalloc + str r0, [sp, #8] + movs r0, #0x13 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + add r3, sp, #4 + bl sub_8052724 + ldr r1, [r0, #0x28] + mov r2, r8 + ands r1, r2 + orrs r1, r5 + str r1, [r0, #0x28] + add r0, sp, #4 + movs r3, #0xa7 + lsls r3, r3, #2 + strh r3, [r0] + movs r1, #0 + mov r0, sb + strb r1, [r0, #2] + movs r0, #0x40 + bl VramMalloc + str r0, [sp, #8] + movs r7, #0xd + movs r2, #0xc0 + lsls r2, r2, #4 + movs r0, #0x12 + str r0, [sp] + adds r0, r4, #0 + ldr r1, _0805087C @ =0xFFFFF700 + add r3, sp, #4 + bl sub_8052780 + adds r4, r0, #0 + str r4, [r6, #0x38] + strh r7, [r4] + ldr r1, [r6, #0x38] + ldr r0, [r1, #0x28] + mov r2, r8 + ands r0, r2 + orrs r0, r5 + str r0, [r1, #0x28] + add r0, sp, #4 + ldr r3, _08050870 @ =0x0000029B + strh r3, [r0] + movs r1, #2 + mov r0, sb + strb r1, [r0, #2] + movs r0, #0x10 + bl VramMalloc + str r0, [sp, #8] + movs r7, #0xe + movs r2, #0xc0 + lsls r2, r2, #2 + mov sb, r2 + movs r3, #0x11 + str r3, [sp] + adds r0, r4, #0 + mov r1, sb + movs r2, #0xd8 + lsls r2, r2, #5 + add r3, sp, #4 + bl sub_80527DC + str r0, [r6, #0x3c] + strh r7, [r0] + ldr r1, [r6, #0x3c] + ldr r0, [r1, #0x28] + mov r2, r8 + ands r0, r2 + orrs r0, r5 + str r0, [r1, #0x28] + ldr r0, [sp, #0xc] + ldr r3, _08050848 @ =0xFFFF0000 + ands r0, r3 + ldr r1, _08050870 @ =0x0000029B + orrs r0, r1 + ldr r2, _08050874 @ =0xFF00FFFF + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #9 + orrs r0, r1 + str r0, [sp, #0xc] + movs r0, #0x10 + bl VramMalloc + add r5, sp, #0xc + str r0, [r5, #4] + movs r7, #0xf + ldr r0, [r6, #4] + ldr r1, _08050880 @ =0xFFFFFA00 + movs r2, #0x17 + str r2, [sp] + movs r2, #0xa0 + lsls r2, r2, #3 + adds r3, r5, #0 + bl sub_80526C4 + adds r4, r0, #0 + str r4, [r6, #0x40] + strh r7, [r4] + ldr r0, [r6, #0x40] + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #6 + strh r1, [r0] + ldr r0, [r6, #0x40] + adds r0, #0x72 + movs r1, #0xff + lsls r1, r1, #8 + strh r1, [r0] + movs r3, #0xa7 + lsls r3, r3, #2 + strh r3, [r5] + movs r0, #1 + strb r0, [r5, #2] + movs r0, #0x40 + bl VramMalloc + str r0, [r5, #4] + movs r7, #0x10 + movs r0, #0x16 + str r0, [sp] + adds r0, r4, #0 + ldr r1, _0805087C @ =0xFFFFF700 + movs r2, #0xb0 + lsls r2, r2, #4 + adds r3, r5, #0 + bl sub_8052780 + adds r4, r0, #0 + str r4, [r6, #0x44] + strh r7, [r4] + ldr r0, _08050870 @ =0x0000029B + strh r0, [r5] + movs r0, #3 + strb r0, [r5, #2] + movs r0, #0x10 + bl VramMalloc + str r0, [r5, #4] + movs r0, #0x18 + str r0, [sp] + adds r0, r4, #0 + mov r1, sb + movs r2, #0xd8 + lsls r2, r2, #5 + adds r3, r5, #0 + bl sub_80527DC + str r0, [r6, #0x48] + movs r1, #0x11 + strh r1, [r0] + ldr r0, _08050884 @ =gInput + ldrh r0, [r0] + cmp r0, #0xfa + bne _08050836 + mov r2, sl @ r2 = sl = robo + ldr r0, [r2, #0x58] + movs r1, #0x80 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #0x58] +_08050836: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08050848: .4byte 0xFFFF0000 +_0805084C: .4byte 0xFFFFCA00 +_08050850: .4byte 0x00400002 +_08050854: .4byte gLoadedSaveGame +_08050858: .4byte gExtraBossTaskData +_0805085C: .4byte 0xFFFFE400 +_08050860: .4byte 0xFFFFE900 +_08050864: .4byte 0xFFFFCFFF +_08050868: .4byte 0xFFFFFB00 +_0805086C: .4byte 0xFFFFE700 +_08050870: .4byte 0x0000029B +_08050874: .4byte 0xFF00FFFF +_08050878: .4byte 0x0000029D +_0805087C: .4byte 0xFFFFF700 +_08050880: .4byte 0xFFFFFA00 +_08050884: .4byte gInput + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc new file mode 100644 index 0000000000..068aff057f --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc @@ -0,0 +1,632 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r0, _08050C44 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, [r7, #8] + mov ip, r0 + ldr r0, _08050C48 @ =gExtraBossTaskData + ldr r0, [r0] + mov sl, r0 + ldr r1, _08050C4C @ =0x03000018 + adds r1, r1, r4 + mov sb, r1 @ sb = s + ldr r2, _08050C50 @ =0x0300000C + adds r2, r4, r2 + str r2, [sp] + ldr r5, _08050C54 @ =gSineTable + mov r6, ip + adds r6, #0x70 + ldrh r1, [r6] + lsrs r1, r1, #6 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + mov r8, r1 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + ldrh r1, [r6] + lsrs r1, r1, #6 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r1, r8 + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + mov r1, ip + ldr r0, [r1, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r1, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r2, _08050C58 @ =0x03000076 + adds r1, r4, r2 + ldrh r0, [r6] + ldrh r1, [r1] + adds r0, r0, r1 + ldr r3, _08050C5C @ =0x03000070 + adds r4, r4, r3 + strh r0, [r4] + ldr r0, [r7, #0x50] + asrs r1, r0, #8 + ldr r4, _08050C60 @ =gCamera + movs r2, #0 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + str r0, [sp, #4] + ldr r0, [r7, #0x54] + asrs r2, r0, #8 + movs r3, #2 + ldrsh r0, [r4, r3] + subs r0, r2, r0 + str r0, [sp, #8] + ldr r4, _08050C64 @ =gPlayer + adds r4, #0x3e + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _08050B62 + b _08050C8C +_08050B62: + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + ldr r3, _08050C64 @ =gPlayer + bl sub_800C0E0 + cmp r0, #0 + bne _08050B78 + b _08050C8C +_08050B78: + mov r0, sl + ldr r3, [r0, #0x58] + movs r5, #0x80 + ands r3, r5 + movs r1, #0x69 + add r1, sl + mov r8, r1 + adds r0, #0x6e + str r0, [sp, #0xc] + cmp r3, #0 + beq _08050B90 + b _08050CC2 +_08050B90: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _08050B9A + b _08050CC2 +_08050B9A: + movs r0, #0x20 + strb r0, [r1] + movs r0, #0 + strb r0, [r4] + movs r0, #8 + ldr r2, _08050C64 @ =gPlayer + strh r0, [r2, #0x1c] + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r2, #8] + strh r0, [r2, #0xc] + mov r1, sl + adds r1, #0x68 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + ble _08050BC2 + b _08050CC2 +_08050BC2: + ldr r2, _08050C68 @ =gDispCnt + ldrh r1, [r2] + ldr r0, _08050C6C @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + ldr r0, _08050C70 @ =gBldRegs + strh r3, [r0] + ldr r2, _08050C74 @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + movs r0, #0xd + ldr r4, [sp, #0xc] + strb r0, [r4] + mov r1, sl + adds r1, #0x6f + strb r0, [r1] + subs r1, #0x23 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #2 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + mov r1, sl + ldr r0, [r1, #0x58] + orrs r0, r5 + str r0, [r1, #0x58] + mov r0, sl + adds r0, #0x54 + strh r3, [r0] + ldr r2, _08050C78 @ =gStageFlags + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08050C7C @ =gLevelScore + ldr r6, [r1] + movs r2, #0xfa + lsls r2, r2, #2 + adds r0, r6, r2 + str r0, [r1] + ldr r4, _08050C80 @ =0x0000C350 + adds r1, r4, #0 + bl Div + adds r5, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl Div + cmp r5, r0 + beq _08050CC2 + ldr r0, _08050C84 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08050CC2 + ldr r1, _08050C88 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08050CC2 + .align 2, 0 +_08050C44: .4byte gCurTask +_08050C48: .4byte gExtraBossTaskData +_08050C4C: .4byte 0x03000018 +_08050C50: .4byte 0x0300000C +_08050C54: .4byte gSineTable +_08050C58: .4byte 0x03000076 +_08050C5C: .4byte 0x03000070 +_08050C60: .4byte gCamera +_08050C64: .4byte gPlayer +_08050C68: .4byte gDispCnt +_08050C6C: .4byte 0x0000DFFF +_08050C70: .4byte gBldRegs +_08050C74: .4byte gFlags +_08050C78: .4byte gStageFlags +_08050C7C: .4byte gLevelScore +_08050C80: .4byte 0x0000C350 +_08050C84: .4byte gGameMode +_08050C88: .4byte gNumLives +_08050C8C: + ldr r3, _08050DB0 @ =gPlayer + movs r4, #0x1c + ldrsh r0, [r3, r4] + movs r1, #0x69 + add r1, sl + mov r8, r1 + mov r2, sl + adds r2, #0x6e + str r2, [sp, #0xc] + cmp r0, #0 + bne _08050CC2 + mov r3, sl + ldr r0, [r3, #0x58] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08050CC2 + ldr r1, [r7, #0x50] + lsls r1, r1, #8 + asrs r1, r1, #0x10 + ldr r2, [r7, #0x54] + lsls r2, r2, #8 + asrs r2, r2, #0x10 + mov r0, sb + ldr r3, _08050DB0 @ =gPlayer + bl sub_800BFEC +_08050CC2: + mov r4, sb + ldr r0, [r4, #0x10] + ldr r1, _08050DB4 @ =0xFFFFFE7F + ands r0, r1 + str r0, [r4, #0x10] + mov r1, sl + ldr r0, [r1, #0x58] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08050CE2 + mov r2, r8 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08050D46 +_08050CE2: + ldr r0, _08050DB0 @ =gPlayer + ldr r3, [r0, #0x10] + ands r3, r1 + cmp r3, #0 + bne _08050D00 + ldr r2, _08050DB8 @ =gDispCnt + ldrh r1, [r2] + ldr r0, _08050DBC @ =0x00007FFF + ands r0, r1 + strh r0, [r2] + ldr r0, _08050DC0 @ =gWinRegs + strh r3, [r0, #0xa] + ldr r0, _08050DC4 @ =gBldRegs + strh r3, [r0] + strh r3, [r0, #4] +_08050D00: + mov r3, r8 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _08050D46 + ldr r0, _08050DC8 @ =gStageTime + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08050D3E + mov r4, sb + ldr r0, [r4, #0x10] + adds r1, #0xfe + orrs r0, r1 + str r0, [r4, #0x10] + ldr r2, _08050DB8 @ =gDispCnt + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08050DC0 @ =gWinRegs + ldr r0, _08050DCC @ =0x00003F1F + strh r0, [r1, #0xa] + ldr r1, _08050DC4 @ =gBldRegs + movs r0, #0xbf + strh r0, [r1] + movs r0, #0x10 + strh r0, [r1, #4] +_08050D3E: + mov r4, r8 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] +_08050D46: + mov r0, sp + ldrh r1, [r0, #4] + ldr r0, [sp] + strh r1, [r0, #6] + mov r2, sp + ldrh r2, [r2, #8] + strh r2, [r0, #8] + adds r0, r7, #0 + adds r0, #0x70 + ldrh r0, [r0] + lsrs r0, r0, #6 + ldr r3, [sp] + strh r0, [r3] + mov r4, sb + ldr r0, [r4, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + ldr r2, _08050DD0 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r4, #0x10] + orrs r0, r1 + str r0, [r4, #0x10] + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + ldr r1, [sp] + bl TransformSprite + mov r0, sb + bl DisplaySprite + ldr r1, [sp, #0xc] + ldrb r0, [r1] + subs r0, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + bls _08050DA6 + b _08050F94 +_08050DA6: + lsls r0, r0, #2 + ldr r1, _08050DD4 @ =_08050DD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050DB0: .4byte gPlayer +_08050DB4: .4byte 0xFFFFFE7F +_08050DB8: .4byte gDispCnt +_08050DBC: .4byte 0x00007FFF +_08050DC0: .4byte gWinRegs +_08050DC4: .4byte gBldRegs +_08050DC8: .4byte gStageTime +_08050DCC: .4byte 0x00003F1F +_08050DD0: .4byte gOamMatrixIndex +_08050DD4: .4byte _08050DD8 +_08050DD8: @ jump table + .4byte _08050E0C @ case 0 + .4byte _08050E0C @ case 1 + .4byte _08050F94 @ case 2 + .4byte _08050F94 @ case 3 + .4byte _08050F94 @ case 4 + .4byte _08050F94 @ case 5 + .4byte _08050F94 @ case 6 + .4byte _08050F94 @ case 7 + .4byte _08050E1C @ case 8 + .4byte _08050E44 @ case 9 + .4byte _08050F30 @ case 10 + .4byte _08050F78 @ case 11 + .4byte _08050F82 @ case 12 +_08050E0C: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl sub_804CFE0 + b _08050FA2 +_08050E1C: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xf0 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_804CFE0 + cmp r0, #0 + bne _08050E32 + b _08050FA2 +_08050E32: + movs r2, #0 + ldrsh r0, [r7, r2] + movs r1, #1 + lsls r1, r0 + mov r3, sl + ldr r0, [r3, #0x5c] + orrs r0, r1 + str r0, [r3, #0x5c] + b _08050FA2 +_08050E44: + ldr r2, _08050EBC @ =gDispCnt + ldrh r1, [r2] + ldr r0, _08050EC0 @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + ldr r0, [r7, #4] + cmp r0, #0 + bne _08050E6E + ldr r0, _08050EC4 @ =0x00000299 + mov r4, sb + strh r0, [r4, #0xa] + mov r1, sb + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + movs r0, #0x9b + bl m4aSongNumStart +_08050E6E: + ldr r0, [r7, #4] + cmp r0, #0xa + bne _08050E7A + movs r0, #0x9b + bl m4aSongNumStop +_08050E7A: + ldr r0, [r7, #4] + cmp r0, #0xf + ble _08050ED0 + movs r1, #0 + ldrsh r0, [r7, r1] + movs r1, #1 + lsls r1, r0 + mov r2, sl + ldr r0, [r2, #0x5c] + orrs r0, r1 + str r0, [r2, #0x5c] + ldr r1, _08050EC8 @ =gBldRegs + movs r3, #0 + movs r0, #0 + strh r0, [r1] + ldr r2, _08050ECC @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldr r0, _08050EC4 @ =0x00000299 + mov r4, sb + strh r0, [r4, #0xa] + mov r0, sb + adds r0, #0x20 + strb r3, [r0] + mov r1, sb + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + b _08050FA2 + .align 2, 0 +_08050EBC: .4byte gDispCnt +_08050EC0: .4byte 0x0000DFFF +_08050EC4: .4byte 0x00000299 +_08050EC8: .4byte gBldRegs +_08050ECC: .4byte gFlags +_08050ED0: + ldr r2, _08050F20 @ =gSineTable + lsls r0, r0, #0xa + asrs r0, r0, #6 + ldr r1, _08050F24 @ =0x000003FF + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + subs r1, r1, r0 + lsls r1, r1, #0x15 + movs r0, #0xb8 + lsls r0, r0, #0x17 + adds r1, r1, r0 + lsrs r2, r1, #0x10 + ldr r0, _08050F28 @ =gPlayer + ldr r0, [r0, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08050F70 + ldr r0, [sp, #4] + ldr r1, [sp, #8] + adds r3, r7, #0 + bl sub_8052150 + cmp r0, #0 + bne _08050F70 + ldr r0, _08050F2C @ =gFlags + ldr r1, [r0] + movs r2, #5 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0] + b _08050F70 + .align 2, 0 +_08050F20: .4byte gSineTable +_08050F24: .4byte 0x000003FF +_08050F28: .4byte gPlayer +_08050F2C: .4byte gFlags +_08050F30: + ldr r1, [r7, #4] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08050F70 + lsls r0, r1, #0xa + ldr r1, [r7, #0x50] + subs r1, r1, r0 + ldr r3, _08050F5C @ =0xFFFF9C00 + adds r2, r1, r3 + ldr r0, _08050F60 @ =0xFFFFE000 + cmp r2, r0 + bge _08050F64 + movs r4, #0 + ldrsh r0, [r7, r4] + movs r1, #1 + lsls r1, r0 + mov r2, sl + ldr r0, [r2, #0x5c] + orrs r0, r1 + str r0, [r2, #0x5c] + b _08050F70 + .align 2, 0 +_08050F5C: .4byte 0xFFFF9C00 +_08050F60: .4byte 0xFFFFE000 +_08050F64: + mov r3, sl + ldr r1, [r3, #0x64] + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_804B570 +_08050F70: + ldr r0, [r7, #4] + adds r0, #1 + str r0, [r7, #4] + b _08050FA2 +_08050F78: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xc0 + lsls r1, r1, #5 + b _08050F8A +_08050F82: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #6 +_08050F8A: + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + b _08050FA2 +_08050F94: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 +_08050FA2: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc new file mode 100644 index 0000000000..7733b8ce8a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc @@ -0,0 +1,448 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _080510D0 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, _080510D4 @ =gExtraBossTaskData + ldr r0, [r0] + mov sb, r0 + ldr r0, _080510D8 @ =0x03000018 + adds r6, r4, r0 + ldr r1, _080510DC @ =0x0300000C + adds r1, r4, r1 + str r1, [sp] + ldr r5, _080510E0 @ =gSineTable + ldr r2, [r7, #8] + adds r2, #0x70 + mov r8, r2 + ldrh r1, [r2] + lsrs r1, r1, #6 + movs r3, #0x80 + lsls r3, r3, #1 + mov ip, r3 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + mov sl, r1 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + mov r0, r8 + ldrh r1, [r0] + lsrs r1, r1, #6 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + add r1, ip + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + ldr r1, [r7, #8] + ldr r0, [r1, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r1, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r2, _080510E4 @ =0x03000076 + adds r1, r4, r2 + mov r3, r8 + ldrh r0, [r3] + ldrh r1, [r1] + adds r0, r0, r1 + ldr r1, _080510E8 @ =0x03000070 + adds r4, r4, r1 + strh r0, [r4] + ldr r2, [r7, #0x50] + asrs r2, r2, #8 + ldr r3, _080510EC @ =gCamera + movs r4, #0 + ldrsh r0, [r3, r4] + subs r2, r2, r0 + ldr r0, [r7, #0x54] + asrs r0, r0, #8 + movs r4, #2 + ldrsh r1, [r3, r4] + subs r0, r0, r1 + ldr r1, [sp] + strh r2, [r1, #6] + strh r0, [r1, #8] + ldr r0, [r6, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] + ldr r2, _080510F0 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r6, #0x10] + orrs r0, r1 + str r0, [r6, #0x10] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + ldr r1, [sp] + bl TransformSprite + adds r0, r6, #0 + bl DisplaySprite + mov r0, sb + adds r0, #0x6e + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + bls _080510C6 + b _08051324 +_080510C6: + lsls r0, r0, #2 + ldr r1, _080510F4 @ =_080510F8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080510D0: .4byte gCurTask +_080510D4: .4byte gExtraBossTaskData +_080510D8: .4byte 0x03000018 +_080510DC: .4byte 0x0300000C +_080510E0: .4byte gSineTable +_080510E4: .4byte 0x03000076 +_080510E8: .4byte 0x03000070 +_080510EC: .4byte gCamera +_080510F0: .4byte gOamMatrixIndex +_080510F4: .4byte _080510F8 +_080510F8: @ jump table + .4byte _0805112C @ case 0 + .4byte _0805113C @ case 1 + .4byte _0805116E @ case 2 + .4byte _080511BC @ case 3 + .4byte _08051204 @ case 4 + .4byte _08051250 @ case 5 + .4byte _080512C8 @ case 6 + .4byte _080512C8 @ case 7 + .4byte _08051324 @ case 8 + .4byte _08051324 @ case 9 + .4byte _08051324 @ case 10 + .4byte _08051300 @ case 11 + .4byte _08051312 @ case 12 +_0805112C: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 + b _08051332 +_0805113C: + ldr r1, _08051158 @ =gUnknown_084AE560 + movs r2, #0 + ldrsh r0, [r7, r2] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805115C + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #5 + b _08051164 + .align 2, 0 +_08051158: .4byte gUnknown_084AE560 +_0805115C: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #6 +_08051164: + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_804CFE0 + b _08051332 +_0805116E: + ldr r1, _080511B8 @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08051184 + b _08051332 +_08051184: + movs r5, #0xc0 + lsls r5, r5, #7 + adds r4, r7, #0 + adds r4, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_804CFE0 + ldrh r0, [r4] + cmp r0, r5 + beq _080511A0 + b _08051332 +_080511A0: + ldr r0, [r7, #4] + adds r1, r0, #0 + adds r0, #1 + str r0, [r7, #4] + cmp r1, #0x1d + bgt _080511AE + b _08051332 +_080511AE: + movs r4, #0 + ldrsh r0, [r7, r4] + adds r1, r6, #0 + b _080512B2 + .align 2, 0 +_080511B8: .4byte gUnknown_084AE560 +_080511BC: + ldr r1, _080511FC @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _080511D2 + b _08051332 +_080511D2: + ldr r0, [r7, #4] + cmp r0, #0x10 + ble _080511DA + movs r0, #0x10 +_080511DA: + lsls r0, r0, #0x1a + ldr r1, _08051200 @ =gSineTable + lsrs r0, r0, #0x16 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0xa + movs r0, #0xb0 + lsls r0, r0, #7 + b _0805128C + .align 2, 0 +_080511FC: .4byte gUnknown_084AE560 +_08051200: .4byte gSineTable +_08051204: + ldr r1, _0805124C @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0805121A + b _08051332 +_0805121A: + movs r5, #0xc0 + lsls r5, r5, #7 + adds r4, r7, #0 + adds r4, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_804CFE0 + ldrh r0, [r4] + cmp r0, r5 + beq _08051236 + b _08051332 +_08051236: + ldr r0, [r7, #4] + adds r1, r0, #0 + adds r0, #1 + str r0, [r7, #4] + cmp r1, #0x1d + ble _08051332 + movs r4, #0 + ldrsh r0, [r7, r4] + adds r1, r6, #0 + b _080512B2 + .align 2, 0 +_0805124C: .4byte gUnknown_084AE560 +_08051250: + ldr r1, _080512C0 @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08051332 + ldr r0, [r7, #4] + cmp r0, #0x10 + ble _0805126C + movs r0, #0x10 +_0805126C: + lsls r0, r0, #0x1a + ldr r1, _080512C4 @ =gSineTable + lsrs r0, r0, #0x16 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0xa + movs r0, #0xc0 + lsls r0, r0, #7 +_0805128C: + adds r1, r0, #0 + subs r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #4 + bl sub_804CFE0 + ldr r0, [r7, #4] + adds r1, r0, #0 + adds r0, #1 + str r0, [r7, #4] + cmp r1, #0x4b + ble _08051332 + movs r1, #0 + ldrsh r0, [r7, r1] + adds r1, r4, #0 +_080512B2: + lsls r1, r0 + mov r2, sb + ldr r0, [r2, #0x5c] + orrs r0, r1 + str r0, [r2, #0x5c] + b _08051332 + .align 2, 0 +_080512C0: .4byte gUnknown_084AE560 +_080512C4: .4byte gSineTable +_080512C8: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xf0 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + cmp r0, #0 + beq _08051332 + mov r0, sb + adds r0, #0x54 + ldrh r1, [r0] + adds r2, r1, #1 + strh r2, [r0] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0x3b + ble _08051332 + movs r3, #0 + ldrsh r0, [r7, r3] + movs r1, #1 + lsls r1, r0 + mov r4, sb + ldr r0, [r4, #0x5c] + orrs r0, r1 + str r0, [r4, #0x5c] + b _08051332 +_08051300: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xd0 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_804CFE0 + b _08051332 +_08051312: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xf0 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + b _08051332 +_08051324: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 +_08051332: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc new file mode 100644 index 0000000000..2327a60865 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc @@ -0,0 +1,342 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _08051460 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, _08051464 @ =gExtraBossTaskData + ldr r0, [r0] + str r0, [sp] + ldr r0, _08051468 @ =0x03000018 + adds r6, r4, r0 + ldr r1, _0805146C @ =0x0300000C + adds r1, r1, r4 + mov sb, r1 + ldr r5, _08051470 @ =gSineTable + ldr r2, [r7, #8] + adds r2, #0x70 + mov r8, r2 + ldrh r1, [r2] + lsrs r1, r1, #6 + movs r3, #0x80 + lsls r3, r3, #1 + mov ip, r3 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + mov sl, r1 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + mov r0, r8 + ldrh r1, [r0] + lsrs r1, r1, #6 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + add r1, ip + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + ldr r1, [r7, #8] + ldr r0, [r1, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r1, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r2, _08051474 @ =0x03000076 + adds r1, r4, r2 + mov r3, r8 + ldrh r0, [r3] + ldrh r1, [r1] + adds r0, r0, r1 + ldr r1, _08051478 @ =0x03000070 + adds r4, r4, r1 + strh r0, [r4] + ldr r2, [r7, #0x50] + asrs r2, r2, #8 + ldr r3, _0805147C @ =gCamera + movs r4, #0 + ldrsh r0, [r3, r4] + subs r2, r2, r0 + ldr r0, [r7, #0x54] + asrs r0, r0, #8 + movs r4, #2 + ldrsh r1, [r3, r4] + subs r0, r0, r1 + mov r1, sb + strh r2, [r1, #6] + strh r0, [r1, #8] + ldr r0, [r6, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] + ldr r2, _08051480 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r6, #0x10] + orrs r0, r1 + str r0, [r6, #0x10] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + mov r1, sb + bl TransformSprite + adds r0, r6, #0 + bl DisplaySprite + ldr r0, [sp] + adds r0, #0x6e + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + bls _08051456 + b _080515E4 +_08051456: + lsls r0, r0, #2 + ldr r1, _08051484 @ =_08051488 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051460: .4byte gCurTask +_08051464: .4byte gExtraBossTaskData +_08051468: .4byte 0x03000018 +_0805146C: .4byte 0x0300000C +_08051470: .4byte gSineTable +_08051474: .4byte 0x03000076 +_08051478: .4byte 0x03000070 +_0805147C: .4byte gCamera +_08051480: .4byte gOamMatrixIndex +_08051484: .4byte _08051488 +_08051488: @ jump table + .4byte _080514BC @ case 0 + .4byte _080514CC @ case 1 + .4byte _080514F6 @ case 2 + .4byte _08051518 @ case 3 + .4byte _08051538 @ case 4 + .4byte _08051558 @ case 5 + .4byte _08051578 @ case 6 + .4byte _0805158A @ case 7 + .4byte _080515E4 @ case 8 + .4byte _080515E4 @ case 9 + .4byte _080515E4 @ case 10 + .4byte _080515C0 @ case 11 + .4byte _080515D2 @ case 12 +_080514BC: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 + b _080515F2 +_080514CC: + ldr r1, _080514E8 @ =gUnknown_084AE560 + movs r2, #0 + ldrsh r0, [r7, r2] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080514EC + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xc0 + lsls r1, r1, #7 + b _08051580 + .align 2, 0 +_080514E8: .4byte gUnknown_084AE560 +_080514EC: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xd0 + lsls r1, r1, #7 + b _08051580 +_080514F6: + ldr r1, _08051514 @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080515F2 + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xc0 + lsls r1, r1, #7 + b _080515DA + .align 2, 0 +_08051514: .4byte gUnknown_084AE560 +_08051518: + ldr r1, _08051534 @ =gUnknown_084AE560 + movs r4, #0 + ldrsh r0, [r7, r4] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080515F2 + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #5 + b _080515C8 + .align 2, 0 +_08051534: .4byte gUnknown_084AE560 +_08051538: + ldr r1, _08051554 @ =gUnknown_084AE560 + movs r2, #0 + ldrsh r0, [r7, r2] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080515F2 + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xc0 + lsls r1, r1, #7 + b _080515DA + .align 2, 0 +_08051554: .4byte gUnknown_084AE560 +_08051558: + ldr r1, _08051574 @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080515F2 + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #5 + b _080515C8 + .align 2, 0 +_08051574: .4byte gUnknown_084AE560 +_08051578: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #7 +_08051580: + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_804CFE0 + b _080515F2 +_0805158A: + movs r1, #0x80 + lsls r1, r1, #7 + ldr r3, _080515B4 @ =gPseudoRandom + ldr r2, [r3] + ldr r0, _080515B8 @ =0x00196225 + muls r0, r2, r0 + ldr r4, _080515BC @ =0x3C6EF35F + adds r0, r0, r4 + str r0, [r3] + lsls r0, r0, #0xc + lsrs r0, r0, #0x14 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_804CFE0 + b _080515F2 + .align 2, 0 +_080515B4: .4byte gPseudoRandom +_080515B8: .4byte 0x00196225 +_080515BC: .4byte 0x3C6EF35F +_080515C0: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #6 +_080515C8: + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_804CFE0 + b _080515F2 +_080515D2: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #5 +_080515DA: + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + b _080515F2 +_080515E4: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 +_080515F2: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc new file mode 100644 index 0000000000..dafa6261d4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc @@ -0,0 +1,351 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _080517AC @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, [r7, #8] + mov sl, r0 + ldr r0, _080517B0 @ =gExtraBossTaskData + ldr r0, [r0] + str r0, [sp] + ldr r1, _080517B4 @ =0x03000018 + adds r1, r1, r4 + mov sb, r1 + ldr r2, _080517B8 @ =0x0300000C + adds r2, r2, r4 + mov r8, r2 + ldr r5, _080517BC @ =gSineTable + mov ip, r5 + mov r5, sl + adds r5, #0x70 + ldrh r1, [r5] + lsrs r1, r1, #6 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r1, r6 + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + add r1, ip + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + muls r0, r1, r0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + ldrh r1, [r5] + ldr r0, _080517C0 @ =0x000003FF + mov r6, sp + strh r0, [r6, #4] + lsrs r1, r1, #6 + lsls r0, r1, #1 + add r0, ip + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + movs r6, #0x80 + lsls r6, r6, #1 + adds r1, r1, r6 + lsls r1, r1, #1 + add r1, ip + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + muls r0, r1, r0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + mov r6, sl + ldr r0, [r6, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r6, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r0, _080517C4 @ =0x03000076 + adds r1, r4, r0 + ldrh r0, [r5] + ldrh r1, [r1] + adds r2, r0, r1 + ldr r1, _080517C8 @ =0x03000070 + adds r4, r4, r1 + strh r2, [r4] + ldr r0, [r7, #0x50] + asrs r3, r0, #8 + ldr r4, _080517CC @ =gCamera + movs r5, #0 + ldrsh r0, [r4, r5] + subs r0, r3, r0 + str r0, [sp, #8] + ldr r0, [r7, #0x54] + asrs r4, r0, #8 + ldr r6, _080517CC @ =gCamera + movs r1, #2 + ldrsh r0, [r6, r1] + subs r5, r4, r0 + ldr r6, _080517D0 @ =gPlayer + movs r1, #0x1c + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0805173E + ldr r6, [sp] + ldr r0, [r6, #0x58] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0805173E + ldr r0, _080517D4 @ =0xFFFFC000 + adds r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x16 + mov r1, sp + ldrh r1, [r1, #4] + ands r2, r1 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r2, r6 + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + subs r1, r1, r0 + lsls r1, r1, #8 + rsbs r1, r1, #0 + asrs r1, r1, #0x10 + adds r1, r3, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #1 + add r2, ip + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #3 + subs r2, r2, r0 + lsls r2, r2, #8 + rsbs r2, r2, #0 + asrs r2, r2, #0x10 + adds r2, r4, r2 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + ldr r3, _080517D0 @ =gPlayer + bl sub_800BFEC +_0805173E: + mov r0, sp + ldrh r1, [r0, #8] + mov r0, r8 + strh r1, [r0, #6] + strh r5, [r0, #8] + adds r0, r7, #0 + adds r0, #0x70 + ldrh r0, [r0] + ldr r2, _080517D4 @ =0xFFFFC000 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x16 + mov r4, r8 + strh r0, [r4] + mov r5, sb + ldr r0, [r5, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + ldr r2, _080517D8 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r5, #0x10] + orrs r0, r1 + str r0, [r5, #0x10] + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + mov r1, r8 + bl TransformSprite + mov r0, sb + bl DisplaySprite + ldr r0, [sp] + adds r0, #0x6e + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + bls _080517A2 + b _080518CA +_080517A2: + lsls r0, r0, #2 + ldr r1, _080517DC @ =_080517E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080517AC: .4byte gCurTask +_080517B0: .4byte gExtraBossTaskData +_080517B4: .4byte 0x03000018 +_080517B8: .4byte 0x0300000C +_080517BC: .4byte gSineTable +_080517C0: .4byte 0x000003FF +_080517C4: .4byte 0x03000076 +_080517C8: .4byte 0x03000070 +_080517CC: .4byte gCamera +_080517D0: .4byte gPlayer +_080517D4: .4byte 0xFFFFC000 +_080517D8: .4byte gOamMatrixIndex +_080517DC: .4byte _080517E0 +_080517E0: @ jump table + .4byte _08051814 @ case 0 + .4byte _0805181E @ case 1 + .4byte _080518CA @ case 2 + .4byte _080518CA @ case 3 + .4byte _080518CA @ case 4 + .4byte _080518CA @ case 5 + .4byte _08051828 @ case 6 + .4byte _08051842 @ case 7 + .4byte _080518CA @ case 8 + .4byte _080518CA @ case 9 + .4byte _080518CA @ case 10 + .4byte _080518A8 @ case 11 + .4byte _080518BA @ case 12 +_08051814: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #7 + b _08051838 +_0805181E: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #2 + b _080518C2 +_08051828: + adds r0, r7, #0 + adds r0, #0x76 + mov r1, sl + adds r1, #0x70 + ldrh r1, [r1] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 +_08051838: + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_804CFE0 + b _080518D8 +_08051842: + adds r0, r7, #0 + adds r0, #0x76 + mov r1, sl + adds r1, #0x70 + ldrh r1, [r1] + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_804CFE0 + ldr r0, _08051898 @ =gStageTime + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080518D8 + ldr r3, [r7, #0x50] + ldr r0, [r7, #0x54] + movs r6, #0xb8 + lsls r6, r6, #5 + adds r4, r0, r6 + ldr r2, _0805189C @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _080518A0 @ =0x00196225 + muls r0, r1, r0 + ldr r1, _080518A4 @ =0x3C6EF35F + adds r0, r0, r1 + str r0, [r2] + movs r2, #0 + movs r1, #0xc0 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + bne _0805188C + movs r2, #1 +_0805188C: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_804A8A8 + b _080518D8 + .align 2, 0 +_08051898: .4byte gStageTime +_0805189C: .4byte gPseudoRandom +_080518A0: .4byte 0x00196225 +_080518A4: .4byte 0x3C6EF35F +_080518A8: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xb0 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_804CFE0 + b _080518D8 +_080518BA: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080518C2: + movs r1, #0 + bl sub_804CFE0 + b _080518D8 +_080518CA: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 +_080518D8: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc new file mode 100644 index 0000000000..8fa0d09cb2 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc @@ -0,0 +1,288 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _08051B0C @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, [r7, #8] + str r0, [sp] + ldr r0, _08051B10 @ =gExtraBossTaskData + ldr r0, [r0] + str r0, [sp, #4] + ldr r1, _08051B14 @ =0x03000018 + adds r6, r4, r1 + ldr r2, _08051B18 @ =0x0300000C + adds r2, r2, r4 + mov sl, r2 + ldr r5, _08051B1C @ =gSineTable + ldr r3, [sp] + adds r3, #0x70 + mov r8, r3 + ldrh r1, [r3] + lsrs r1, r1, #6 + movs r0, #0x80 + lsls r0, r0, #1 + mov ip, r0 + adds r0, r1, r0 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + mov sb, r1 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + mov r0, r8 + ldrh r1, [r0] + lsrs r1, r1, #6 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + add r1, ip + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + ldr r5, [sp] + ldr r0, [r5, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r5, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r0, _08051B20 @ =0x03000076 + adds r1, r4, r0 + mov r2, r8 + ldrh r0, [r2] + ldrh r1, [r1] + adds r0, r0, r1 + ldr r3, _08051B24 @ =0x03000070 + adds r4, r4, r3 + strh r0, [r4] + ldr r2, [r7, #0x50] + asrs r2, r2, #8 + ldr r5, _08051B28 @ =gCamera + movs r1, #0 + ldrsh r0, [r5, r1] + subs r2, r2, r0 + ldr r0, [r7, #0x54] + asrs r0, r0, #8 + movs r3, #2 + ldrsh r1, [r5, r3] + subs r0, r0, r1 + mov r5, sl + strh r2, [r5, #6] + strh r0, [r5, #8] + ldrh r0, [r4] + lsrs r0, r0, #6 + strh r0, [r5] + ldr r0, [r6, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] + ldr r2, _08051B2C @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r6, #0x10] + orrs r0, r1 + str r0, [r6, #0x10] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + mov r1, sl + bl TransformSprite + adds r0, r6, #0 + bl DisplaySprite + ldr r0, [sp, #4] + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bls _08051B02 + b _08051C28 +_08051B02: + lsls r0, r0, #2 + ldr r1, _08051B30 @ =_08051B34 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051B0C: .4byte gCurTask +_08051B10: .4byte gExtraBossTaskData +_08051B14: .4byte 0x03000018 +_08051B18: .4byte 0x0300000C +_08051B1C: .4byte gSineTable +_08051B20: .4byte 0x03000076 +_08051B24: .4byte 0x03000070 +_08051B28: .4byte gCamera +_08051B2C: .4byte gOamMatrixIndex +_08051B30: .4byte _08051B34 +_08051B34: @ jump table + .4byte _08051BCC @ case 0 + .4byte _08051C28 @ case 1 + .4byte _08051B70 @ case 2 + .4byte _08051B70 @ case 3 + .4byte _08051B80 @ case 4 + .4byte _08051B8C @ case 5 + .4byte _08051C34 @ case 6 + .4byte _08051BA4 @ case 7 + .4byte _08051C28 @ case 8 + .4byte _08051C28 @ case 9 + .4byte _08051C28 @ case 10 + .4byte _08051C28 @ case 11 + .4byte _08051C28 @ case 12 + .4byte _08051BDC @ case 13 + .4byte _08051C16 @ case 14 +_08051B70: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #2 + movs r1, #0 + bl sub_804CFE0 + b _08051C34 +_08051B80: + adds r0, r7, #0 + adds r0, #0x76 + ldr r1, [sp] + adds r1, #0x76 + ldrh r1, [r1] + b _08051C1E +_08051B8C: + ldr r1, _08051BA0 @ =gUnknown_084AE560 + movs r2, #0 + ldrsh r0, [r7, r2] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08051C34 + b _08051BB6 + .align 2, 0 +_08051BA0: .4byte gUnknown_084AE560 +_08051BA4: + ldr r1, _08051BC8 @ =gUnknown_084AE560 + movs r3, #0 + ldrsh r0, [r7, r3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08051C34 +_08051BB6: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xe8 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_804CFE0 + b _08051C34 + .align 2, 0 +_08051BC8: .4byte gUnknown_084AE560 +_08051BCC: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #5 + movs r2, #0x80 + bl sub_804CFE0 + b _08051C34 +_08051BDC: + adds r4, r7, #0 + adds r4, #0x76 + movs r5, #0x80 + lsls r5, r5, #7 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_804CFE0 + ldr r0, [sp, #4] + adds r0, #0x69 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08051C34 + ldrh r0, [r4] + cmp r0, r5 + bne _08051C34 + movs r5, #0 + ldrsh r0, [r7, r5] + movs r1, #1 + lsls r1, r0 + ldr r2, [sp, #4] + ldr r0, [r2, #0x5c] + orrs r0, r1 + str r0, [r2, #0x5c] + b _08051C34 +_08051C16: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xe8 + lsls r1, r1, #8 +_08051C1E: + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + b _08051C34 +_08051C28: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0 + movs r2, #0x80 + bl sub_804CFE0 +_08051C34: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc new file mode 100644 index 0000000000..bd6cd39169 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc @@ -0,0 +1,235 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _08051D64 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, _08051D68 @ =gExtraBossTaskData + ldr r0, [r0] + str r0, [sp] + ldr r0, _08051D6C @ =0x03000018 + adds r6, r4, r0 + ldr r1, _08051D70 @ =0x0300000C + adds r1, r1, r4 + mov sb, r1 + ldr r5, _08051D74 @ =gSineTable + ldr r2, [r7, #8] + adds r2, #0x70 + mov r8, r2 + ldrh r1, [r2] + lsrs r1, r1, #6 + movs r3, #0x80 + lsls r3, r3, #1 + mov ip, r3 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + mov sl, r1 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + mov r0, r8 + ldrh r1, [r0] + lsrs r1, r1, #6 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + add r1, ip + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + ldr r5, [r7, #8] + ldr r0, [r5, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r5, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r0, _08051D78 @ =0x03000076 + adds r1, r4, r0 + mov r2, r8 + ldrh r0, [r2] + ldrh r1, [r1] + adds r0, r0, r1 + ldr r3, _08051D7C @ =0x03000070 + adds r4, r4, r3 + strh r0, [r4] + ldr r2, [r7, #0x50] + asrs r2, r2, #8 + ldr r5, _08051D80 @ =gCamera + movs r1, #0 + ldrsh r0, [r5, r1] + subs r2, r2, r0 + ldr r0, [r7, #0x54] + asrs r0, r0, #8 + movs r3, #2 + ldrsh r1, [r5, r3] + subs r0, r0, r1 + mov r5, sb + strh r2, [r5, #6] + strh r0, [r5, #8] + ldrh r0, [r4] + lsrs r0, r0, #6 + strh r0, [r5] + ldr r0, [r6, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] + ldr r2, _08051D84 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r6, #0x10] + orrs r0, r1 + str r0, [r6, #0x10] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + mov r1, sb + bl TransformSprite + adds r0, r6, #0 + bl DisplaySprite + ldr r0, [sp] + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bhi _08051E18 + lsls r0, r0, #2 + ldr r1, _08051D88 @ =_08051D8C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051D64: .4byte gCurTask +_08051D68: .4byte gExtraBossTaskData +_08051D6C: .4byte 0x03000018 +_08051D70: .4byte 0x0300000C +_08051D74: .4byte gSineTable +_08051D78: .4byte 0x03000076 +_08051D7C: .4byte 0x03000070 +_08051D80: .4byte gCamera +_08051D84: .4byte gOamMatrixIndex +_08051D88: .4byte _08051D8C +_08051D8C: @ jump table + .4byte _08051DDC @ case 0 + .4byte _08051DE6 @ case 1 + .4byte _08051DC8 @ case 2 + .4byte _08051E18 @ case 3 + .4byte _08051E18 @ case 4 + .4byte _08051E18 @ case 5 + .4byte _08051E18 @ case 6 + .4byte _08051E18 @ case 7 + .4byte _08051DD2 @ case 8 + .4byte _08051DD2 @ case 9 + .4byte _08051E18 @ case 10 + .4byte _08051E18 @ case 11 + .4byte _08051E18 @ case 12 + .4byte _08051DF6 @ case 13 + .4byte _08051E06 @ case 14 +_08051DC8: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #2 + b _08051DFE +_08051DD2: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #2 + b _08051DFE +_08051DDC: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #6 + b _08051DEE +_08051DE6: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xe0 + lsls r1, r1, #8 +_08051DEE: + movs r2, #0x80 + bl sub_804CFE0 + b _08051E28 +_08051DF6: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #3 +_08051DFE: + movs r1, #0 + bl sub_804CFE0 + b _08051E28 +_08051E06: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xc0 + lsls r1, r1, #5 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + b _08051E28 +_08051E18: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #6 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 +_08051E28: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc new file mode 100644 index 0000000000..f16ee077b4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc @@ -0,0 +1,233 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _08051F58 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + ldr r0, _08051F5C @ =gExtraBossTaskData + ldr r0, [r0] + str r0, [sp] + ldr r0, _08051F60 @ =0x03000018 + adds r6, r4, r0 + ldr r1, _08051F64 @ =0x0300000C + adds r1, r1, r4 + mov sb, r1 + ldr r5, _08051F68 @ =gSineTable + ldr r2, [r7, #8] + adds r2, #0x70 + mov r8, r2 + ldrh r1, [r2] + lsrs r1, r1, #6 + movs r3, #0x80 + lsls r3, r3, #1 + mov ip, r3 + adds r0, r1, r3 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r2, [r7, #0x68] + adds r3, r2, #0 + muls r3, r0, r3 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r7, #0x6c] + mov sl, r1 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + subs r3, r3, r0 + asrs r3, r3, #8 + str r3, [r7, #0x60] + mov r0, r8 + ldrh r1, [r0] + lsrs r1, r1, #6 + lsls r0, r1, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r2, r0, r2 + add r1, ip + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r2, r2, r0 + asrs r2, r2, #8 + str r2, [r7, #0x64] + ldr r5, [r7, #8] + ldr r0, [r5, #0x50] + adds r3, r3, r0 + str r3, [r7, #0x50] + ldr r0, [r5, #0x54] + adds r2, r2, r0 + str r2, [r7, #0x54] + ldr r0, _08051F6C @ =0x03000076 + adds r1, r4, r0 + mov r2, r8 + ldrh r0, [r2] + ldrh r1, [r1] + adds r0, r0, r1 + ldr r3, _08051F70 @ =0x03000070 + adds r4, r4, r3 + strh r0, [r4] + ldr r2, [r7, #0x50] + asrs r2, r2, #8 + ldr r5, _08051F74 @ =gCamera + movs r1, #0 + ldrsh r0, [r5, r1] + subs r2, r2, r0 + ldr r0, [r7, #0x54] + asrs r0, r0, #8 + movs r3, #2 + ldrsh r1, [r5, r3] + subs r0, r0, r1 + mov r5, sb + strh r2, [r5, #6] + strh r0, [r5, #8] + ldrh r0, [r4] + lsrs r0, r0, #6 + strh r0, [r5] + ldr r0, [r6, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] + ldr r2, _08051F78 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r6, #0x10] + orrs r0, r1 + str r0, [r6, #0x10] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + mov r1, sb + bl TransformSprite + adds r0, r6, #0 + bl DisplaySprite + ldr r0, [sp] + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bhi _0805200C + lsls r0, r0, #2 + ldr r1, _08051F7C @ =_08051F80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051F58: .4byte gCurTask +_08051F5C: .4byte gExtraBossTaskData +_08051F60: .4byte 0x03000018 +_08051F64: .4byte 0x0300000C +_08051F68: .4byte gSineTable +_08051F6C: .4byte 0x03000076 +_08051F70: .4byte 0x03000070 +_08051F74: .4byte gCamera +_08051F78: .4byte gOamMatrixIndex +_08051F7C: .4byte _08051F80 +_08051F80: @ jump table + .4byte _08051FD8 @ case 0 + .4byte _0805200C @ case 1 + .4byte _0805201A @ case 2 + .4byte _0805201A @ case 3 + .4byte _08051FBC @ case 4 + .4byte _08051FBC @ case 5 + .4byte _08051FBC @ case 6 + .4byte _08051FBC @ case 7 + .4byte _0805200C @ case 8 + .4byte _0805200C @ case 9 + .4byte _0805200C @ case 10 + .4byte _08051FD8 @ case 11 + .4byte _08051FD8 @ case 12 + .4byte _08051FEA @ case 13 + .4byte _08051FFC @ case 14 +_08051FBC: + adds r0, r7, #0 + adds r0, #0x70 + ldrh r1, [r0] + ldr r0, _08051FD4 @ =0x00000FFF + cmp r1, r0 + bhi _08051FFC + adds r0, r7, #0 + adds r0, #0x76 + rsbs r1, r1, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + b _08051FE0 + .align 2, 0 +_08051FD4: .4byte 0x00000FFF +_08051FD8: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xe0 + lsls r1, r1, #8 +_08051FE0: + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_804CFE0 + b _0805201A +_08051FEA: + adds r0, r7, #0 + adds r0, #0x76 + movs r1, #0xf8 + lsls r1, r1, #8 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_804CFE0 + b _0805201A +_08051FFC: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 + b _0805201A +_0805200C: + adds r0, r7, #0 + adds r0, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 + movs r1, #0 + bl sub_804CFE0 +_0805201A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc b/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc new file mode 100644 index 0000000000..a4af645682 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc @@ -0,0 +1,99 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sb, r1 @ sb = screenY + movs r6, #0 @ r6 = i + movs r4, #0 + lsls r0, r0, #0x10 + asrs r7, r0, #0x10 @ r7 = screenX + lsls r5, r7, #2 + movs r0, #8 + adds r0, r0, r7 + mov r8, r0 +_080712A8: + str r4, [sp] + ldr r0, _080712DC @ =Task_FireballSpark + movs r1, #0x38 + movs r2, #0xc0 + lsls r2, r2, #6 + movs r3, #0 + bl TaskCreate + ldrh r0, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r1, r0, r2 @ r1 = spark + strh r5, [r1, #0x30] + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r1, #0x34] + movs r0, #6 + strh r0, [r1, #0x32] + cmp r6, #0 + beq _080712E0 + rsbs r0, r0, #0 + strh r0, [r1, #0x32] + adds r0, r7, #0 + subs r0, #8 + b _080712E4 + .align 2, 0 +_080712DC: .4byte Task_FireballSpark +_080712E0: + strh r5, [r1, #0x30] + mov r0, r8 +_080712E4: + strh r0, [r1, #0x16] + mov r2, sb + strh r2, [r1, #0x18] + ldr r0, _08071340 @ =0x06012580 + str r0, [r1, #4] + movs r0, #0x90 + lsls r0, r0, #2 + strh r0, [r1, #0x1a] + strh r4, [r1, #8] + subs r0, #0xa2 + strh r0, [r1, #0xa] + adds r0, r1, #0 + adds r0, #0x20 + strb r4, [r0] + strh r4, [r1, #0x14] + strh r4, [r1, #0x1c] + adds r2, r1, #0 + adds r2, #0x21 + movs r0, #0xff + strb r0, [r2] + adds r2, #1 + movs r0, #0x10 + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0x25 + strb r4, [r0] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #0x28] + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r1, #0x10] + adds r0, r1, #0 + bl UpdateSpriteAnimation + adds r6, #1 + cmp r6, #1 + ble _080712A8 + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08071340: .4byte 0x06012580 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc b/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc new file mode 100644 index 0000000000..d3319d9439 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc @@ -0,0 +1,157 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r1, _08056468 @ =gCurTask + ldr r0, [r1] + ldrh r0, [r0, #6] + mov sl, r0 + movs r0, #0xc0 + lsls r0, r0, #0x12 + mov r3, sl + adds r5, r3, r0 @ r5 = screen + ldr r0, [r5, #0x78] @ r0 = frames + ldr r6, _0805646C @ =0x0300003C + add r6, sl @ r6 = s2 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + str r1, [sp, #0xc] @ sp0C = frames + ldr r3, _08056470 @ =0xFF880000 + adds r0, r0, r3 + lsrs r0, r0, #8 + lsls r2, r0, #0xc + ldr r7, _08056474 @ =gOamMatrixIndex + ldrb r0, [r7] + adds r1, r0, #1 + strb r1, [r7] + movs r1, #0x20 + orrs r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0x80 + orrs r0, r3 + str r0, [r5, #0x10] + mov r0, sp + movs r1, #0 + strh r1, [r0] + mov r1, sp + ldr r0, _08056478 @ =gSineTable + asrs r2, r2, #0x10 + adds r3, #0x80 + mov sb, r3 + add r2, sb + lsls r2, r2, #1 + adds r2, r2, r0 + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r4, r0, #0x16 + strh r4, [r1, #2] + mov r8, r4 + cmp r4, #9 + bgt _080563B6 + movs r0, #0xa + strh r0, [r1, #2] +_080563B6: + mov r0, sp + mov r1, sb + strh r1, [r0, #4] + mov r1, sp + movs r0, #0x7f + strh r0, [r1, #6] + mov r0, sp + movs r3, #0x3c + strh r3, [r0, #8] + adds r0, r5, #0 + bl TransformSprite + ldrb r0, [r7] + adds r1, r0, #1 + strb r1, [r7] + movs r1, #0x20 + orrs r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r3, #0x80 + orrs r0, r3 + str r0, [r6, #0x10] + mov r0, sp + movs r1, #0 + strh r1, [r0] + strh r4, [r0, #2] + mov r3, r8 + cmp r3, #9 + bgt _080563F6 + mov r1, sp + movs r0, #0xa + strh r0, [r1, #2] +_080563F6: + mov r0, sp + mov r1, sb + strh r1, [r0, #4] + mov r1, sp + ldrh r0, [r0, #6] + strh r0, [r1, #6] + mov r0, sp + movs r3, #0x3c + strh r3, [r0, #8] + adds r0, r6, #0 + bl TransformSprite + ldr r0, [sp, #0xc] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [r5, #0x78] + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + bl DisplaySprite + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x87 + ble _08056458 + ldr r2, _0805647C @ =0x000002CB + strh r2, [r5, #0xa] + ldr r1, _08056480 @ =0x03000020 + add r1, sl + movs r0, #2 + strb r0, [r1] + strh r2, [r6, #0xa] + ldr r1, _08056484 @ =0x0300005C + add r1, sl + movs r0, #3 + strb r0, [r1] + ldr r0, _08056468 @ =gCurTask + ldr r1, [r0] + ldr r0, _08056488 @ =Task_805648C + str r0, [r1, #8] +_08056458: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08056468: .4byte gCurTask +_0805646C: .4byte 0x0300003C +_08056470: .4byte 0xFF880000 +_08056474: .4byte gOamMatrixIndex +_08056478: .4byte gSineTable +_0805647C: .4byte 0x000002CB +_08056480: .4byte 0x03000020 +_08056484: .4byte 0x0300005C +_08056488: .4byte Task_805648C + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc b/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc new file mode 100644 index 0000000000..ec1ea8d919 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc @@ -0,0 +1,154 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r1, _080565AC @ =gCurTask + ldr r0, [r1] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + ldr r0, [r6, #0x78] + ldr r2, _080565B0 @ =0x0300003C + adds r7, r1, r2 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + str r4, [sp, #0xc] + ldr r1, _080565B4 @ =0xFF780000 + adds r0, r0, r1 + lsrs r0, r0, #8 + lsls r2, r0, #0xc + ldr r3, _080565B8 @ =gOamMatrixIndex + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + movs r4, #0x20 + orrs r0, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x80 + mov sl, r1 + orrs r0, r1 + str r0, [r6, #0x10] + mov r0, sp + movs r4, #0 + strh r4, [r0] + adds r1, #0x80 + adds r0, r1, #0 + asrs r2, r2, #0x10 + subs r0, r0, r2 + mov r2, sp + ldr r1, _080565BC @ =gSineTable + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + mov sb, r4 + add r0, sb + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r5, r0, #0x16 + strh r5, [r2, #2] + mov r0, sp + adds r4, r5, #1 + strh r4, [r0, #2] + mov r8, r4 + cmp r4, #9 + bgt _0805650C + mov r1, sp + movs r0, #0xa + strh r0, [r1, #2] +_0805650C: + mov r0, sp + mov r1, sb + strh r1, [r0, #4] + mov r1, sp + movs r0, #0x7f + strh r0, [r1, #6] + mov r0, sp + movs r2, #0x3c + strh r2, [r0, #8] + adds r0, r6, #0 + str r3, [sp, #0x10] + bl TransformSprite + ldr r3, [sp, #0x10] + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + movs r1, #0x20 + orrs r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r2, sl + orrs r0, r2 + str r0, [r7, #0x10] + mov r0, sp + movs r1, #0 + strh r1, [r0] + strh r5, [r0, #2] + strh r4, [r0, #2] + mov r2, r8 + cmp r2, #9 + bgt _08056552 + mov r1, sp + movs r0, #0xa + strh r0, [r1, #2] +_08056552: + mov r0, sp + mov r4, sb + strh r4, [r0, #4] + mov r1, sl + strh r1, [r0, #6] + movs r2, #0x3c + strh r2, [r0, #8] + adds r0, r7, #0 + mov r1, sp + bl TransformSprite + ldr r0, [sp, #0xc] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [r6, #0x78] + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite + adds r0, r7, #0 + bl UpdateSpriteAnimation + adds r0, r7, #0 + bl DisplaySprite + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x97 + ble _0805659C + ldr r4, _080565AC @ =gCurTask + ldr r1, [r4] + ldr r0, _080565C0 @ =Task_80565C4 + str r0, [r1, #8] +_0805659C: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080565AC: .4byte gCurTask +_080565B0: .4byte 0x0300003C +_080565B4: .4byte 0xFF780000 +_080565B8: .4byte gOamMatrixIndex +_080565BC: .4byte gSineTable +_080565C0: .4byte Task_80565C4 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc b/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc new file mode 100644 index 0000000000..b2f5a6d6a5 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc @@ -0,0 +1,253 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x1c + ldr r0, _08056814 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = overD + ldrh r7, [r6, #0x24] @ r7 = unk24 + mov r1, sp + movs r0, #0 + mov r8, r0 + movs r0, #0x5b + strh r0, [r1, #0xc] + movs r0, #6 + strh r0, [r1, #0x12] + mov r0, sp + mov r1, r8 + strh r1, [r0, #8] + mov r1, sp + movs r0, #4 + strh r0, [r1, #0x10] + movs r2, #1 + movs r0, #1 + strh r0, [r1, #0xe] + mov r0, sp + strb r2, [r0, #0x16] + lsls r4, r7, #0x10 + asrs r4, r4, #0x10 + adds r0, r4, #0 + movs r1, #0x78 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0x29 + subs r0, r0, r1 + add r5, sp, #0x18 @ r5 = sp18 = arr + strb r0, [r5] + adds r0, r4, #0 + movs r1, #0x78 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0x50 + ble _0805681C + adds r0, r1, #0 + subs r0, #0x50 + mov r4, sp + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x74 + muls r0, r1, r0 + movs r1, #0x12 + bl __divsi3 + adds r0, #0x74 + strh r0, [r4, #0xa] + ldrb r0, [r5] + cmp r0, #0x1f + bls _0805689E + mov r0, sp + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + strh r1, [r0, #2] + mov r3, r8 + strh r3, [r0, #4] + mov r3, sp + ldr r2, _08056818 @ =gOamMatrixIndex + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r3, #6] + adds r0, r5, #0 + mov r1, sp + bl sub_8052C84 + b _0805689E + .align 2, 0 +_08056814: .4byte gCurTask +_08056818: .4byte gOamMatrixIndex +_0805681C: + cmp r1, #0x14 + ble _08056864 + subs r1, #0x14 + mov r2, sp + lsls r1, r1, #0x10 + asrs r1, r1, #0xe + ldr r3, _0805685C @ =0x000001F1 + adds r0, r3, #0 + subs r0, r0, r1 + strh r0, [r2] + mov r1, sp + strh r0, [r1, #2] + mov r0, sp + mov r1, r8 + strh r1, [r0, #4] + mov r3, sp + ldr r2, _08056860 @ =gOamMatrixIndex + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r3, #6] + mov r1, sp + movs r0, #0x68 + strh r0, [r1, #0xa] + movs r0, #0x53 + strh r0, [r1, #0xc] + adds r0, r5, #0 + bl sub_8052C84 + b _0805689E + .align 2, 0 +_0805685C: .4byte 0x000001F1 +_08056860: .4byte gOamMatrixIndex +_08056864: + mov r4, sp + movs r0, #0x74 + muls r0, r1, r0 + movs r1, #0x14 + bl __divsi3 + strh r0, [r4, #0xa] + ldrb r0, [r5] + cmp r0, #0x1f + bls _0805689E + mov r0, sp + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + strh r1, [r0, #2] + mov r3, r8 + strh r3, [r0, #4] + mov r3, sp + ldr r2, _08056918 @ =gOamMatrixIndex + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + strh r0, [r3, #6] + adds r0, r5, #0 + mov r1, sp + bl sub_8052C84 +_0805689E: + lsls r0, r7, #0x10 @ r0 = unk24 << 16 + asrs r2, r0, #0x10 + ldr r0, _0805691C @ =0x000004AF + cmp r2, r0 + ble _080568B0 + ldr r0, _08056920 @ =gCurTask + ldr r1, [r0] + ldr r0, _08056924 @ =Task_DestroyGameOverD + str r0, [r1, #8] +_080568B0: + ldr r5, _08056928 @ =gPressedKeys + ldrh r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080568F8 + adds r0, r2, #0 + movs r1, #0x78 + bl Div + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + asrs r2, r0, #0x10 @ r2_s16 = (unk24 / 120) + 1; + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #0x13 + lsrs r7, r1, #0x10 @ r7 = unk24 = r2_s16 * 45; + ldr r4, [r6, #0x1c] @ r4 = overB = overD->unk1C + movs r3, #0x96 + lsls r3, r3, #3 @ r3 = 1200 + adds r0, r2, #0 + movs r1, #0xa + subs r1, r1, r0 + lsls r2, r1, #4 + subs r2, r2, r1 + lsls r2, r2, #3 + subs r3, r3, r2 + str r3, [r4, #0x18] + ldr r1, [r6, #0x20] @ r1 = (GameOverC*)overD->unk20 + ldr r0, _0805692C @ =0x00000566 + subs r0, r0, r2 + str r0, [r1, #0x18] + ldr r1, [r6, #0x18] + str r0, [r1, #0x78] +_080568F8: + ldrh r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08056934 + ldr r0, _08056920 @ =gCurTask + ldr r1, [r0] + ldr r0, _08056930 @ =Task_8056970 + str r0, [r1, #8] + movs r0, #0 + str r0, [r6, #0x24] + ldr r1, [r6, #0x18] + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + b _08056940 + .align 2, 0 +_08056918: .4byte gOamMatrixIndex +_0805691C: .4byte 0x000004AF +_08056920: .4byte gCurTask +_08056924: .4byte Task_DestroyGameOverD +_08056928: .4byte gPressedKeys +_0805692C: .4byte 0x00000566 +_08056930: .4byte Task_8056970 +_08056934: + lsls r0, r7, #0x10 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r0, r3 + asrs r0, r0, #0x10 + str r0, [r6, #0x24] +_08056940: + ldr r0, [r6, #0x24] + movs r1, #0x78 + bl Mod + cmp r0, #0x3c + bne _08056960 + ldr r4, _0805696C @ =gUnknown_086883E4 + ldr r0, [r6, #0x24] + movs r1, #0x78 + bl Div + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl m4aSongNumStart +_08056960: + add sp, #0x1c + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805696C: .4byte gUnknown_086883E4 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc b/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc new file mode 100644 index 0000000000..28087e6f86 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc @@ -0,0 +1,348 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r4, _08027E18 @ =gCurTask + ldr r0, [r4] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = wall + adds r0, #0xc + adds r7, r1, r0 @ r7 = s + ldr r1, [r6] + str r1, [sp] + ldrb r2, [r6, #8] + lsls r2, r2, #3 + ldrh r0, [r6, #4] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldX = TO_WORLD_POS(wall->base.meX, wall->base.regionX); + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r6, #6] + lsls r0, r0, #8 + adds r1, r1, r0 @ r1 = worldY = TO_WORLD_POS(me->y, wall->base.regionY); + ldr r3, _08027E1C @ =gCamera + ldrh r0, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] @ sp0C = + ldrh r0, [r3] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + subs r0, r2, r0 + strh r0, [r7, #0x16] + ldrh r0, [r3, #2] + subs r1, r1, r0 + strh r1, [r7, #0x18] + ldrh r0, [r6, #0x3c] + adds r0, #1 + strh r0, [r6, #0x3c] + movs r0, #0 + ldrsh r1, [r3, r0] + movs r3, #0xb8 + lsls r3, r3, #1 + adds r0, r1, r3 + cmp r2, r0 + bgt _08027DFA + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + bge _08027E20 +_08027DFA: + ldrh r0, [r7, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bls _08027E20 + ldrb r0, [r6, #8] + ldr r1, [sp] + strb r0, [r1] + ldr r0, [r4] + bl TaskDestroy + b _08028002_return + .align 2, 0 +_08027E18: .4byte gCurTask +_08027E1C: .4byte gCamera +_08027E20: + ldr r0, _08027E68 @ =gRefSpriteTables + ldr r1, [r0] + ldrh r0, [r7, #0xa] + ldr r1, [r1, #8] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] @ r2 = oamData + ldr r0, [r7, #0xc] @ r0 = s->dimensions->oamIndex + ldrb r1, [r0, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r2, r2, r0 + str r2, [sp, #8] @ sp08 = &oamDataEntry + movs r2, #0 + str r2, [sp, #4] @ sp04 = i +_08027E40_outer_loop: + movs r3, #0 + mov sl, r3 @ sl = j + ldr r4, [sp, #4] + lsls r4, r4, #2 + str r4, [sp, #0x10] @ sp10 = i * 4 +_08027E4A_inner_loop: + ldr r1, [r7, #0x10] @ r1 = s->frameFlags + adds r0, r1, #0 + movs r2, #0x80 + lsls r2, r2, #3 + ands r0, r2 + adds r2, r1, #0 @ r2 = r1 = s->frameFlags + cmp r0, #0 + beq _08027E6C + movs r0, #3 + mov r3, sl + subs r0, r0, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + b _08027E6E + .align 2, 0 +_08027E68: .4byte gRefSpriteTables +_08027E6C: + mov sb, sl +_08027E6E: + movs r4, #0x3e + ldrsh r0, [r6, r4] + ldrh r3, [r6, #0x3e] + cmp r0, #0 + blt _08027E7C + mov r1, sl + b _08027E86 +_08027E7C: + movs r0, #3 + mov r1, sl + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 +_08027E86: + ldr r0, [sp, #0x10] @ r0 = sp10 = i * 4 + add r0, sb + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 @ r8 = i * 4 + sb; + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldrh r1, [r6, #0x3c] + subs r1, r1, r0 @ temp = wall->qUnk3C - r1 * 10; + movs r0, #7 + ldr r4, [sp, #4] + subs r0, r0, r4 + lsls r0, r0, #1 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + ble _08027F38 + movs r0, #0x2a + muls r0, r1, r0 + ldr r4, _08027EEC @ =0xFFFFFE00 + adds r0, r0, r4 + muls r0, r1, r0 + lsls r0, r0, #8 + lsrs r5, r0, #0x10 @ r5 = I(temp * ((temp * 42) - Q(2))); + lsls r0, r3, #0x10 + movs r4, #0x3e + ldrsh r0, [r6, r4] + muls r0, r1, r0 + lsls r0, r0, #8 + lsrs r4, r0, #0x10 @ r4 = temp2 + lsls r0, r5, #0x10 + mov ip, r0 + ldr r1, [sp, #0xc] + lsls r0, r1, #0x10 + cmp ip, r0 + ble _08027F3C + lsls r0, r3, #0x10 + cmp r0, #0 + blt _08027EF8 + movs r3, #0x80 + lsls r3, r3, #3 + ands r2, r3 + cmp r2, #0 + beq _08027EF0 + mov r4, r8 @ r4 = r8 = + cmp r4, #3 + beq _08027EEA + b _08027FE2 +_08027EEA: + b _08027F08 + .align 2, 0 +_08027EEC: .4byte 0xFFFFFE00 +_08027EF0: + mov r3, r8 + cmp r3, #0 + bne _08027FE2 + b _08027F22 +_08027EF8: + movs r3, #0x80 + lsls r3, r3, #3 + ands r2, r3 + cmp r2, #0 + beq _08027F1C + mov r4, r8 + cmp r4, #0 + bne _08027FE2 +_08027F08: + ldrb r0, [r6, #8] + ldr r1, [sp] + strb r0, [r1] + ldr r2, _08027F18 @ =gCurTask + ldr r0, [r2] + bl TaskDestroy + b _08028002_return + .align 2, 0 +_08027F18: .4byte gCurTask +_08027F1C: + mov r3, r8 + cmp r3, #3 + bne _08027FE2 +_08027F22: + ldrb r0, [r6, #8] + ldr r4, [sp] + strb r0, [r4] + ldr r1, _08027F34 @ =gCurTask + ldr r0, [r1] + bl TaskDestroy + b _08028002_return + .align 2, 0 +_08027F34: .4byte gCurTask +_08027F38: + movs r4, #0 + movs r5, #0 +_08027F3C: + ldrh r0, [r7, #0x1a] + movs r2, #0xf8 + lsls r2, r2, #3 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #6 + bl OamMalloc + adds r3, r0, #0 + ldr r0, _08027F98 @ =iwram_end + ldr r0, [r0] + cmp r0, r3 + beq _08028002_return + ldr r0, [sp, #4] @ r0 = i + lsls r1, r0, #3 + ldrh r2, [r7, #0x18] + adds r1, r1, r2 + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + movs r1, #0 + strh r0, [r3] + ldr r0, [r7, #0x10] + movs r2, #0x80 + lsls r2, r2, #3 + ands r0, r2 + cmp r0, #0 + beq _08027FA0 + mov r1, sb @ r1 = sb = + lsls r0, r1, #3 + ldrh r1, [r7, #0x16] + subs r1, r1, r0 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + subs r0, #8 + adds r1, r1, r0 + ldr r2, _08027F9C @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + movs r4, #0x80 + lsls r4, r4, #5 + adds r0, r4, #0 + orrs r1, r0 + b _08027FB4 + .align 2, 0 +_08027F98: .4byte iwram_end +_08027F9C: .4byte 0x000001FF +_08027FA0: + mov r1, sb + lsls r0, r1, #3 + ldrh r2, [r7, #0x16] + adds r0, r0, r2 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + adds r1, r1, r0 + ldr r4, _08028014 @ =0x000001FF + adds r0, r4, #0 + ands r1, r0 +_08027FB4: + strh r1, [r3, #2] + adds r0, r7, #0 + adds r0, #0x25 + ldrb r0, [r0] + ldr r1, [sp, #8] + ldrh r2, [r1, #4] + adds r2, r2, r0 + ldr r4, _08028018 @ =0xFFFFF000 + adds r0, r4, #0 + ands r2, r0 + ldr r0, [r7, #0x10] + movs r1, #0xc0 + lsls r1, r1, #6 + ands r0, r1 + lsrs r0, r0, #2 + orrs r2, r0 + ldr r0, [r7, #4] + ldr r1, _0802801C @ =0xF9FF0000 + adds r0, r0, r1 + lsrs r0, r0, #5 + add r0, r8 + orrs r2, r0 + strh r2, [r3, #4] +_08027FE2: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #3 + bhi _08027FF2 + b _08027E4A_inner_loop +_08027FF2: + ldr r0, [sp, #4] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + cmp r0, #7 + bhi _08028002_return + b _08027E40_outer_loop +_08028002_return: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08028014: .4byte 0x000001FF +_08028018: .4byte 0xFFFFF000 +_0802801C: .4byte 0xF9FF0000 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc b/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc new file mode 100644 index 0000000000..317a2dc0df --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc @@ -0,0 +1,112 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + mov r8, r0 @ r8 = me + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 @ r4 = regionX + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 @ r5 = regionY + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 @ r6 = id + ldr r0, _080883F4 @ =Task_SecurityGateMain + movs r2, #0x80 + lsls r2, r2, #6 + ldr r1, _080883F8 @ =TaskDestructor_SecurityGateMain + str r1, [sp] + movs r1, #0x40 + movs r3, #0 + bl TaskCreate + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r2, r1, r0 @ r2 = gate + adds r0, #0xc + adds r7, r1, r0 @ r7 = s + movs r3, #0 + strh r4, [r2, #4] + strh r5, [r2, #6] + mov r4, r8 + str r4, [r2] + ldrb r0, [r4] + strb r0, [r2, #8] + strb r6, [r2, #9] + ldr r4, _080883FC @ =0x0300003C + adds r0, r1, r4 + strb r3, [r0] + ldr r0, _08088400 @ =0x0300003D + adds r1, r1, r0 + strb r3, [r1] + mov r1, r8 + movs r0, #3 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08088404 + ldrb r0, [r1, #5] + lsls r0, r0, #3 + subs r0, #0xa + b _08088406 + .align 2, 0 +_080883F4: .4byte Task_SecurityGateMain +_080883F8: .4byte TaskDestructor_SecurityGateMain +_080883FC: .4byte 0x0300003C +_08088400: .4byte 0x0300003D +_08088404: + ldr r0, _08088460 @ =0x0000FFF6 +_08088406: + strh r0, [r2, #0x3e] + movs r4, #2 + rsbs r4, r4, #0 + adds r0, r4, #0 + mov r1, r8 + strb r0, [r1] + movs r0, #0xc + bl VramMalloc + str r0, [r7, #4] + movs r2, #0 + movs r1, #0 + ldr r0, _08088464 @ =0x00000216 + strh r0, [r7, #0xa] + adds r0, r7, #0 + adds r0, #0x20 + strb r2, [r0] + movs r0, #0x90 + lsls r0, r0, #3 + strh r0, [r7, #0x1a] + strh r1, [r7, #8] + strh r1, [r7, #0x14] + strh r1, [r7, #0x1c] + adds r1, r7, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r1, #1 + movs r0, #0x10 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x25 + strb r2, [r0] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7, #0x28] + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r7, #0x10] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08088460: .4byte 0x0000FFF6 +_08088464: .4byte 0x00000216 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc b/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc new file mode 100644 index 0000000000..9bcf5ce725 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc @@ -0,0 +1,161 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov r8, r0 @ r8 = me + adds r6, r1, #0 + mov sb, r2 + mov sl, r3 + lsls r6, r6, #0x10 + lsrs r6, r6, #0x10 @ r1 = regionX + mov r0, sb + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 @ sb = regionY + mov r1, sl + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + mov sl, r1 @ sl = id + ldr r1, _0807EBAC @ =gUnknown_086CED90 + add r0, sp, #4 + movs r2, #6 + bl memcpy + ldr r0, _0807EBB0 @ =Task_SegaSonicLetter + ldr r1, _0807EBB4 @ =TaskDestructor_SegaSonicLetter + str r1, [sp] + movs r1, #0x44 + movs r2, #0x80 + lsls r2, r2, #6 + movs r3, #0 + bl TaskCreate + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r4, r0 + ldr r2, _0807EBB8 @ =0x0300000C + adds r5, r4, r2 @ r5 = s + movs r7, #0 + strh r6, [r0, #4] + mov r3, sb + strh r3, [r0, #6] + mov r1, r8 + str r1, [r0] + ldrb r1, [r1] + strb r1, [r0, #8] + mov r2, sl + strb r2, [r0, #9] + mov r3, r8 @ r3 = r8 = me + ldrb r0, [r3, #3] + ldr r1, _0807EBBC @ =0x0300003C + adds r1, r1, r4 + mov sl, r1 @ sl = s->meDat0 + strb r0, [r1] + ldr r2, _0807EBC0 @ =0x0300003D + adds r0, r4, r2 + movs r3, #0 + strb r3, [r0] + mov r0, r8 + ldrb r2, [r0, #4] + movs r0, #3 + adds r1, r0, #0 + ands r1, r2 + ldr r3, _0807EBC4 @ =0x0300003E + adds r2, r4, r3 + strb r1, [r2] @ letter->meDat1 = me->d.uData[1] % 4u; + mov r2, r8 @ r2 = r8 = me + ldrb r1, [r2, #4] + ands r0, r1 + lsls r0, r0, #1 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + subs r0, #0xa1 + asrs r0, r0, #1 + adds r3, #1 + adds r1, r4, r3 + strb r0, [r1] + ldrb r1, [r2, #5] + ldr r2, _0807EBC8 @ =0x03000040 + adds r0, r4, r2 + strb r1, [r0] + mov r3, r8 @ r3 = r8 = me + ldrb r0, [r3] + lsls r0, r0, #3 + lsls r6, r6, #8 + adds r0, r0, r6 + strh r0, [r5, #0x16] + ldrb r0, [r3, #1] + lsls r0, r0, #3 + mov r1, sb + lsls r1, r1, #8 + mov sb, r1 + add r0, sb + strh r0, [r5, #0x18] + movs r0, #0xfe + strb r0, [r3] + movs r0, #0x10 + bl VramMalloc + str r0, [r5, #4] + movs r0, #0x90 + lsls r0, r0, #3 + strh r0, [r5, #0x1a] + strh r7, [r5, #8] + movs r0, #0xf6 + lsls r0, r0, #1 + strh r0, [r5, #0xa] + mov r2, sl + ldrb r0, [r2] + lsls r0, r0, #2 + ldr r3, _0807EBCC @ =0x0300002C + adds r1, r4, r3 + strb r0, [r1] + strh r7, [r5, #0x14] + strh r7, [r5, #0x1c] + ldr r0, _0807EBD0 @ =0x0300002D + adds r1, r4, r0 + movs r0, #0xff + strb r0, [r1] + ldr r2, _0807EBD4 @ =0x0300002E + adds r1, r4, r2 + movs r0, #0x10 + strb r0, [r1] + adds r3, #5 + adds r4, r4, r3 + movs r0, #0 + strb r0, [r4] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r5, #0x28] + movs r1, #0x80 + lsls r1, r1, #6 + str r1, [r5, #0x10] + adds r0, r5, #0 + bl UpdateSpriteAnimation + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807EBAC: .4byte gUnknown_086CED90 +_0807EBB0: .4byte Task_SegaSonicLetter +_0807EBB4: .4byte TaskDestructor_SegaSonicLetter +_0807EBB8: .4byte 0x0300000C +_0807EBBC: .4byte 0x0300003C +_0807EBC0: .4byte 0x0300003D +_0807EBC4: .4byte 0x0300003E +_0807EBC8: .4byte 0x03000040 +_0807EBCC: .4byte 0x0300002C +_0807EBD0: .4byte 0x0300002D +_0807EBD4: .4byte 0x0300002E + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc b/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc new file mode 100644 index 0000000000..40d86ff72a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc @@ -0,0 +1,236 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 @ r8 = s + adds r7, r1, #0 @ r7 = me + adds r4, r3, #0 @ r4 = p + movs r0, #0 @ r2 = spring + mov sb, r0 @ sb = sb = r0 = 0 + movs r6, #0 + ldrb r3, [r2, #8] + lsls r3, r3, #3 + ldrh r0, [r2, #4] + lsls r0, r0, #8 + adds r3, r3, r0 + lsls r3, r3, #0x10 @ r3 = worldX + ldrb r1, [r7, #1] + lsls r1, r1, #3 + ldrh r0, [r2, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r2, _08022764 @ =gCamera + ldrh r0, [r2] + lsrs r5, r3, #0x10 + mov sl, r5 @ sl = worldX + asrs r3, r3, #0x10 + subs r3, r3, r0 + mov r0, r8 + strh r3, [r0, #0x16] + ldrh r0, [r2, #2] + lsrs r2, r1, #0x10 + mov ip, r2 @ ip = worldY + asrs r1, r1, #0x10 + subs r1, r1, r0 + mov r5, r8 @ r5 = r8 = s + strh r1, [r5, #0x18] + ldr r0, _08022768 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _0802269A + ldr r3, [r4, #0x10] + cmp r0, #5 + bne _080226E2 +_0802269A: + movs r2, #0 + ldr r1, _0802276C @ =gMultiplayerPlayerTasks + ldr r0, [r1] + ldr r3, [r4, #0x10] + cmp r0, #0 + beq _080226E2 + adds r5, r1, #0 +_080226A8: + ldr r0, _08022770 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r2, r0 + beq _080226CE @ if(i != SIO_MULTI_CNT->id) + lsls r0, r2, #2 + adds r0, r0, r5 + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + ldr r0, [r0, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _080226CE + movs r6, #1 +_080226CE: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bhi _080226E2 + lsls r0, r2, #2 + adds r0, r0, r5 + ldr r0, [r0] + cmp r0, #0 + bne _080226A8 +_080226E2: + movs r0, #0x80 + lsls r0, r0, #0xf + ands r3, r0 + cmp r3, #0 + beq _080226F2 + cmp r6, #0 + bne _080226F2 + b _080227F2 +_080226F2: + mov r1, sl + lsls r0, r1, #0x10 + asrs r6, r0, #0x10 + mov r2, ip @ r2 = ip = worldY + lsls r0, r2, #0x10 + asrs r5, r0, #0x10 + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl Coll_Player_Platform + movs r1, #8 + ands r1, r0 + cmp r1, #0 + bne _08022724 + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl Coll_AmyHammer_Spring + mov sb, r0 + cmp r0, #0 + beq _080227F2 +_08022724: + ldr r0, _08022768 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _08022730 + cmp r0, #5 + bne _08022734 +_08022730: + movs r0, #2 + strh r0, [r4, #0x1c] +_08022734: + adds r0, r4, #0 + bl sa2__sub_8021BE0 + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + ldr r1, _08022774 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + ldrb r2, [r7, #3] + movs r0, #3 + ldrsb r0, [r7, r0] + cmp r0, #3 + ble _08022778 + ldrb r0, [r7, #4] + lsls r0, r0, #4 + b _08022784 + .align 2, 0 +_08022764: .4byte gCamera +_08022768: .4byte gGameMode +_0802276C: .4byte gMultiplayerPlayerTasks +_08022770: .4byte 0x04000128 +_08022774: .4byte 0xFFFFFEFF +_08022778: + ldr r0, _080227B0 @ =sData0Accel + movs r1, #3 + ands r1, r2 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] +_08022784: + rsbs r0, r0, #0 + strh r0, [r4, #0xa] + mov r5, sb + cmp r5, #0 + beq _08022798 + ldrh r1, [r4, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x11 + adds r0, r0, r1 + strh r0, [r4, #0xa] +_08022798: + ldrb r1, [r7, #3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080227B4 + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x15 + b _080227C0 + .align 2, 0 +_080227B0: .4byte sData0Accel +_080227B4: + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x11 +_080227C0: + strb r0, [r1] + ldr r0, [r4, #0x64] + adds r0, #0x2d + movs r1, #0xff + strb r1, [r0] + mov r1, r8 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0xaa + bl m4aSongNumStart + movs r0, #1 + b _080227F4 +_080227F2: + movs r0, #0 +_080227F4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc b/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc new file mode 100644 index 0000000000..bc0cec7cb2 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc @@ -0,0 +1,606 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _08075690 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 @ r0 = ramp + ldr r0, [r0] + str r0, [sp] @ sp00 = me + ldr r2, _08075694 @ =0x03000008 + adds r0, r1, r2 + ldrb r0, [r0] + str r0, [sp, #4] @ sp04 = meX + ldr r3, _08075698 @ =0x03000004 + adds r0, r1, r3 + ldrh r2, [r0] @ r2 = regionX + adds r3, #2 + adds r0, r1, r3 + ldrh r3, [r0] @ r3 = regionY + ldr r0, _0807569C @ =0x03000009 + adds r1, r1, r0 + ldrb r1, [r1] + str r1, [sp, #8] @ sp08 = incline + ldr r1, [sp, #4] @ sp04 = meX + lsls r0, r1, #3 + lsls r2, r2, #8 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 @ sl = worldX + ldr r2, [sp] + ldrb r0, [r2, #1] + lsls r0, r0, #3 + lsls r3, r3, #8 + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 @ r8 = worldY + movs r4, #0 + ldr r5, _080756A0 @ =gPartner + ldr r6, _080756A4 @ =gPlayer +_08075678_loop: + cmp r4, #0 + beq _080756A8 + ldr r1, [r5, #0x10] + movs r0, #0x80 + ands r1, r0 + mov r3, sl + lsls r3, r3, #0x10 + mov sb, r3 @ sb = worldX << 16 + mov r0, r8 + lsls r7, r0, #0x10 @ r7 = worldY << 16 + b _080756B8 + .align 2, 0 +_08075690: .4byte gCurTask +_08075694: .4byte 0x03000008 +_08075698: .4byte 0x03000004 +_0807569C: .4byte 0x03000009 +_080756A0: .4byte gPartner +_080756A4: .4byte gPlayer +_080756A8: + ldr r1, [r6, #0x10] + movs r0, #0x80 + ands r1, r0 + mov r2, sl + lsls r2, r2, #0x10 + mov sb, r2 + mov r3, r8 + lsls r7, r3, #0x10 +_080756B8: + cmp r1, #0 + beq _080756BE + b _08075A08_continue +_080756BE: + mov r1, sl + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 @ r1 = sl = worldX + mov sb, r0 + cmp r4, #0 + beq _080756D8 + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + ble _080756E6 + mov r2, r8 @ r2 = r8 = worldY + lsls r7, r2, #0x10 + b _08075A08_continue +_080756D8: + ldr r0, [r6] + asrs r0, r0, #8 + mov r3, r8 + lsls r7, r3, #0x10 + cmp r1, r0 + ble _080756E6 + b _08075A08_continue +_080756E6: + mov r0, sb @ r0 = sb = worldX << 16 + asrs r1, r0, #0x10 + ldr r2, [sp] @ r2 = sp00 = me + ldrb r0, [r2, #5] + lsls r0, r0, #3 + adds r1, r1, r0 + cmp r4, #0 + beq _08075704 + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + bge _08075712 + mov r3, r8 + lsls r7, r3, #0x10 + b _08075A08_continue +_08075704: + ldr r0, [r6] + asrs r0, r0, #8 + mov r2, r8 + lsls r7, r2, #0x10 + cmp r1, r0 + bge _08075712 + b _08075A08_continue +_08075712: + mov r3, r8 + lsls r0, r3, #0x10 + asrs r1, r0, #0x10 + adds r7, r0, #0 + cmp r4, #0 + beq _08075728 + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _08075732 + b _08075A08_continue +_08075728: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _08075732 + b _08075A08_continue +_08075732: + asrs r1, r7, #0x10 + ldr r2, [sp] + ldrb r0, [r2, #6] + lsls r0, r0, #3 + adds r1, r1, r0 + cmp r4, #0 + beq _0807574A + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08075754 + b _08075A08_continue +_0807574A: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08075754 + b _08075A08_continue +_08075754: + ldr r3, [sp, #8] @ r3 = sp08 = incline + cmp r3, #0 + bne _0807575C + b _080758AC +_0807575C: + cmp r4, #0 + beq _0807576E + movs r0, #8 + ldrsh r1, [r5, r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bgt _0807577C + b _08075A08_continue +_0807576E: + movs r2, #8 + ldrsh r1, [r6, r2] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bgt _0807577C + b _08075A08_continue +_0807577C: + cmp r4, #0 + beq _0807578C + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _08075796 +_0807578C: + ldr r0, [r6, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08075796: + cmp r4, #0 + beq _080757A4 + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] + b _080757AC +_080757A4: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_080757AC: + cmp r4, #0 + beq _080757C0 + ldr r0, [r5, #0x10] + ldr r1, _080757BC @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] + b _080757C8 + .align 2, 0 +_080757BC: .4byte 0xFFFFFEFF +_080757C0: + ldr r0, [r6, #0x10] + ldr r1, _080757D8 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r6, #0x10] +_080757C8: + cmp r4, #0 + beq _080757DC + ldr r0, [r5, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _080757E6 + .align 2, 0 +_080757D8: .4byte 0xFFFFFEFF +_080757DC: + ldr r0, [r6, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_080757E6: + ldr r0, _0807581C @ =gPlayer + cmp r4, #0 + beq _080757EE + ldr r0, _08075820 @ =gPartner +_080757EE: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _0807581C @ =gPlayer + cmp r4, #0 + beq _080757FC + ldr r1, _08075820 @ =gPartner +_080757FC: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r2, _0807581C @ =gPlayer + adds r1, r2, #0 + cmp r4, #0 + beq _0807580A + ldr r1, _08075820 @ =gPartner +_0807580A: + movs r0, #0xe + strb r0, [r1, #0xf] + cmp r4, #0 + beq _08075824 + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r5, #0xa] + b _0807582A + .align 2, 0 +_0807581C: .4byte gPlayer +_08075820: .4byte gPartner +_08075824: + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r2, #0xa] +_0807582A: + cmp r4, #0 + beq _0807583C + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + ldrh r1, [r5, #8] + adds r0, r0, r1 + strh r0, [r5, #8] + b _08075848 +_0807583C: + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + ldrh r1, [r6, #8] + adds r0, r0, r1 + strh r0, [r6, #8] +_08075848: + cmp r4, #0 + beq _0807585A + movs r3, #8 + ldrsh r1, [r5, r3] + movs r0, #0x88 + lsls r0, r0, #5 + cmp r1, r0 + bgt _08075866 + b _08075878 +_0807585A: + movs r0, #8 + ldrsh r1, [r2, r0] + movs r0, #0x88 + lsls r0, r0, #5 + cmp r1, r0 + ble _08075878 +_08075866: + cmp r4, #0 + beq _08075872 + movs r0, #0x88 + lsls r0, r0, #5 + strh r0, [r5, #8] + b _08075878 +_08075872: + movs r0, #0x88 + lsls r0, r0, #5 + strh r0, [r2, #8] +_08075878: + adds r0, r2, #0 + cmp r4, #0 + beq _08075880 + ldr r0, _08075890 @ =gPartner +_08075880: + bl Player_TransitionCancelFlyingAndBoost + cmp r4, #0 + beq _08075898 + movs r0, #0x11 + ldr r1, _08075894 @ =gPartner + 0x40 + strb r0, [r1] + b _0807589E + .align 2, 0 +_08075890: .4byte gPartner +_08075894: .4byte gPartner + 0x40 +_08075898: + movs r0, #0x11 + ldr r2, _080758A8 @ =gPlayer + 0x40 + strb r0, [r2] +_0807589E: + movs r0, #0xaa + bl m4aSongNumStart + b _08075A08_continue + .align 2, 0 +_080758A8: .4byte gPlayer + 0x40 +_080758AC: + cmp r4, #0 + beq _080758C0 + movs r3, #8 + ldrsh r1, [r5, r3] + ldr r0, _080758BC @ =0xFFFFFC00 + cmp r1, r0 + blt _080758CC + b _08075A08_continue + .align 2, 0 +_080758BC: .4byte 0xFFFFFC00 +_080758C0: + movs r0, #8 + ldrsh r1, [r6, r0] + ldr r0, _080758DC @ =0xFFFFFC00 + cmp r1, r0 + blt _080758CC + b _08075A08_continue +_080758CC: + cmp r4, #0 + beq _080758E0 + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _080758EA + .align 2, 0 +_080758DC: .4byte 0xFFFFFC00 +_080758E0: + ldr r0, [r6, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_080758EA: + cmp r4, #0 + beq _080758F8 + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] + b _08075900 +_080758F8: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_08075900: + cmp r4, #0 + beq _08075914 + ldr r0, [r5, #0x10] + ldr r1, _08075910 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] + b _0807591C + .align 2, 0 +_08075910: .4byte 0xFFFFFEFF +_08075914: + ldr r0, [r6, #0x10] + ldr r1, _0807592C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r6, #0x10] +_0807591C: + cmp r4, #0 + beq _08075930 + ldr r0, [r5, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _0807593A + .align 2, 0 +_0807592C: .4byte 0xFFFFFEFF +_08075930: + ldr r0, [r6, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_0807593A: + ldr r0, _08075970 @ =gPlayer + cmp r4, #0 + beq _08075942 + ldr r0, _08075974 @ =gPartner +_08075942: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08075970 @ =gPlayer + cmp r4, #0 + beq _08075950 + ldr r1, _08075974 @ =gPartner +_08075950: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r2, _08075970 @ =gPlayer + adds r1, r2, #0 + cmp r4, #0 + beq _0807595E + ldr r1, _08075974 @ =gPartner +_0807595E: + movs r0, #0xe + strb r0, [r1, #0xf] + cmp r4, #0 + beq _08075978 + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r5, #0xa] + b _0807597E + .align 2, 0 +_08075970: .4byte gPlayer +_08075974: .4byte gPartner +_08075978: + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r2, #0xa] +_0807597E: + cmp r4, #0 + beq _08075994 + ldr r1, _08075990 @ =0xFFFFFC00 + adds r0, r1, #0 + ldrh r3, [r5, #8] + adds r0, r0, r3 + strh r0, [r5, #8] + b _0807599E + .align 2, 0 +_08075990: .4byte 0xFFFFFC00 +_08075994: + ldr r1, _080759B0 @ =0xFFFFFC00 + adds r0, r1, #0 + ldrh r3, [r6, #8] + adds r0, r0, r3 + strh r0, [r6, #8] +_0807599E: + cmp r4, #0 + beq _080759B8 + movs r0, #8 + ldrsh r1, [r5, r0] + ldr r0, _080759B4 @ =0xFFFFEF00 + cmp r1, r0 + blt _080759C2 + b _080759DA + .align 2, 0 +_080759B0: .4byte 0xFFFFFC00 +_080759B4: .4byte 0xFFFFEF00 +_080759B8: + movs r3, #8 + ldrsh r1, [r2, r3] + ldr r0, _080759D0 @ =0xFFFFEF00 + cmp r1, r0 + bge _080759DA +_080759C2: + cmp r4, #0 + beq _080759D4 + movs r0, #0xef + lsls r0, r0, #8 + strh r0, [r5, #8] + b _080759DA + .align 2, 0 +_080759D0: .4byte 0xFFFFEF00 +_080759D4: + movs r0, #0xef + lsls r0, r0, #8 + strh r0, [r2, #8] +_080759DA: + adds r0, r2, #0 + cmp r4, #0 + beq _080759E2 + ldr r0, _080759F4 @ =gPartner +_080759E2: + bl Player_TransitionCancelFlyingAndBoost + cmp r4, #0 + beq _080759FC + movs r0, #0x11 + ldr r1, _080759F8 @ =gPartner + 0x40 + strb r0, [r1] + b _08075A02 + .align 2, 0 +_080759F4: .4byte gPartner +_080759F8: .4byte gPartner + 0x40 +_080759FC: + movs r0, #0x11 + ldr r2, _08075A74 @ =gPlayer + 0x40 + strb r0, [r2] +_08075A02: + movs r0, #0xaa + bl m4aSongNumStart +_08075A08_continue: + adds r4, #1 + ldr r0, _08075A78 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + bge _08075A18_postloop + b _08075678_loop +_08075A18_postloop: + ldr r2, _08075A7C @ =gCamera + ldrh r0, [r2] + mov r3, sb @ r3 = sb + asrs r1, r3, #0x10 + subs r1, r1, r0 + ldrh r2, [r2, #2] + asrs r0, r7, #0x10 + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x10 + adds r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #0x11 + cmp r1, r0 + bhi _08075A54 + mov r1, r8 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08075A54 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08075A64 +_08075A54: + mov r2, sp + ldrb r3, [r2, #4] + ldr r2, [sp] + strb r3, [r2] + ldr r0, _08075A80 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08075A64: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08075A74: .4byte gPlayer + 0x40 +_08075A78: .4byte gNumSingleplayerCharacters +_08075A7C: .4byte gCamera +_08075A80: .4byte gCurTask + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc b/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc new file mode 100644 index 0000000000..c0555d7fa2 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc @@ -0,0 +1,152 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0804D7A4 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + movs r0, #0 + mov r8, r0 +_0804D746: + ldr r5, _0804D7A8 @ =gPlayer + mov r1, r8 + cmp r1, #0 + beq _0804D750 + ldr r5, _0804D7AC @ =gPartner +_0804D750: + ldr r0, [r5] + asrs r4, r0, #8 + ldr r0, [r5, #4] + asrs r7, r0, #8 + ldr r3, _0804D7B0 @ =gCamera + movs r0, #0 + ldrsh r2, [r3, r0] + movs r1, #0xb8 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r1, [r6, #4] + cmp r1, r0 + bgt _0804D78A + adds r0, r2, #0 + subs r0, #0x80 + cmp r1, r0 + blt _0804D78A + movs r0, #2 + ldrsh r2, [r3, r0] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r1, [r6, #8] + cmp r1, r0 + bgt _0804D78A + adds r0, r2, #0 + subs r0, #0x80 + cmp r1, r0 + bge _0804D7B8 +_0804D78A: + ldr r0, [r5, #0x10] + ldr r1, _0804D7B4 @ =0xFFFF7FFF + ands r0, r1 + str r0, [r5, #0x10] + ldr r1, [r6] + ldrb r0, [r6, #0x1d] + strb r0, [r1] + ldr r0, _0804D7A4 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0804D848 + .align 2, 0 +_0804D7A4: .4byte gCurTask +_0804D7A8: .4byte gPlayer +_0804D7AC: .4byte gPartner +_0804D7B0: .4byte gCamera +_0804D7B4: .4byte 0xFFFF7FFF +_0804D7B8: + ldr r0, [r6, #0xc] + cmp r0, r4 + bgt _0804D836 + ldr r0, [r6, #0x10] + cmp r4, r0 + bge _0804D836 + ldr r0, [r6, #0x14] + cmp r0, r7 + bgt _0804D836 + ldr r0, [r6, #0x18] + cmp r7, r0 + bge _0804D836 + ldr r4, [r5, #0x10] + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + bne _0804D848 + adds r0, r5, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r1, [r5, #0x10] + movs r0, #0x81 + lsls r0, r0, #2 + orrs r1, r0 + movs r0, #0x80 + lsls r0, r0, #0xe + orrs r1, r0 + str r1, [r5, #0x10] + strh r4, [r5, #0x38] + strh r4, [r5, #0x3a] + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #5 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #9 + strb r0, [r5, #0xf] + adds r2, r5, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r2, _0804D854 @ =gPlayer + ldr r0, [r2, #0x10] + ldr r1, _0804D858 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r2, #0x10] + adds r0, r5, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + beq _0804D836 + movs r0, #0x6d + bl m4aSongNumStartOrChange +_0804D836: + movs r0, #1 + add r8, r0 + ldr r0, _0804D85C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r8, r0 + bge _0804D848 + b _0804D746 +_0804D848: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D854: .4byte gPlayer +_0804D858: .4byte 0xFFBFFFFF +_0804D85C: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc b/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc new file mode 100644 index 0000000000..64a4971a2f --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc @@ -0,0 +1,384 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r5, _0807EFC4 @ =gCurTask + ldr r0, [r5] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = balloon + adds r0, #0xc + adds r7, r1, r0 @ r7 = s + ldr r1, [r6] + mov sl, r1 @ sl = me + ldrb r1, [r6, #8] + lsls r1, r1, #3 + ldrh r0, [r6, #4] + lsls r0, r0, #8 + adds r1, r1, r0 @ r1 = worldX + mov r0, sl + ldrb r2, [r0, #1] + lsls r2, r2, #3 + ldrh r0, [r6, #6] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldY + ldr r4, _0807EFC8 @ =gCamera + ldrh r3, [r4] + lsls r1, r1, #0x10 + mov r8, r1 + asrs r0, r1, #0x10 + subs r0, r0, r3 + strh r0, [r7, #0x16] + ldrh r3, [r4, #2] + lsls r2, r2, #0x10 + asrs r1, r2, #0x10 + subs r3, r1, r3 + strh r3, [r7, #0x18] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0807EFB6 + movs r1, #0x18 + ldrsh r0, [r7, r1] + adds r0, #0x80 + cmp r0, #0 + blt _0807EFB6 + lsls r1, r3, #0x10 + movs r0, #0x90 + lsls r0, r0, #0x11 + cmp r1, r0 + ble _0807EFCC +_0807EFB6: + ldrb r0, [r6, #8] + mov r1, sl + strb r0, [r1] + ldr r0, [r5] + bl TaskDestroy + b _0807F1F8 + .align 2, 0 +_0807EFC4: .4byte gCurTask +_0807EFC8: .4byte gCamera +_0807EFCC: + movs r4, #0 + mov r0, r8 + str r0, [sp] @ sp00 = worldX << 16 + str r2, [sp, #4] @ sp04 = worldY << 16 + ldr r5, _0807F004 @ =gPartner + ldr r1, _0807F008 @ =gPlayer + mov r8, r1 + movs r0, #1 + mov sb, r0 @ sb = 1 +_0807EFDE_loop: + ldr r0, [sp] + asrs r1, r0, #0x10 @ r1 = worldX + ldr r0, [sp, #4] + asrs r2, r0, #0x10 @ r2 = worldY + ldr r3, _0807F008 @ =gPlayer + cmp r4, #0 + beq _0807EFEE + ldr r3, _0807F004 @ =gPartner +_0807EFEE: + adds r0, r7, #0 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _0807EFFA + b _0807F1A0 +_0807EFFA: + cmp r4, #0 + beq _0807F00C + ldr r0, [r5, #0x10] + b _0807F010 + .align 2, 0 +_0807F004: .4byte gPartner +_0807F008: .4byte gPlayer +_0807F00C: + mov r1, r8 + ldr r0, [r1, #0x10] +_0807F010: + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0807F01C + b _0807F1A0 +_0807F01C: + ldr r0, _0807F038 @ =gPlayer + cmp r4, #0 + beq _0807F024 + ldr r0, _0807F03C @ =gPartner +_0807F024: + bl Player_TransitionCancelFlyingAndBoost + cmp r4, #0 + beq _0807F040 + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _0807F04E + .align 2, 0 +_0807F038: .4byte gPlayer +_0807F03C: .4byte gPartner +_0807F040: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_0807F04E: + cmp r4, #0 + beq _0807F05C + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] + b _0807F068 +_0807F05C: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #2 + orrs r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_0807F068: + cmp r4, #0 + beq _0807F07C + ldr r0, [r5, #0x10] + ldr r1, _0807F078 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] + b _0807F088 + .align 2, 0 +_0807F078: .4byte 0xFFFFFEFF +_0807F07C: + mov r1, r8 + ldr r0, [r1, #0x10] + ldr r1, _0807F098 @ =0xFFFFFEFF + ands r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_0807F088: + cmp r4, #0 + beq _0807F09C + ldr r0, [r5, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _0807F0AA + .align 2, 0 +_0807F098: .4byte 0xFFFFFEFF +_0807F09C: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_0807F0AA: + cmp r4, #0 + beq _0807F0BA + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _0807F0C8 +_0807F0BA: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_0807F0C8: + ldr r0, _0807F0FC @ =gPlayer + cmp r4, #0 + beq _0807F0D0 + ldr r0, _0807F100 @ =gPartner +_0807F0D0: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _0807F0FC @ =gPlayer + cmp r4, #0 + beq _0807F0DE + ldr r1, _0807F100 @ =gPartner +_0807F0DE: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _0807F0FC @ =gPlayer + adds r2, r1, #0 + cmp r4, #0 + beq _0807F0EC + ldr r2, _0807F100 @ =gPartner +_0807F0EC: + movs r0, #0xe + strb r0, [r2, #0xf] + cmp r4, #0 + beq _0807F104 + movs r0, #0xfa + lsls r0, r0, #8 + strh r0, [r5, #0xa] + b _0807F10A + .align 2, 0 +_0807F0FC: .4byte gPlayer +_0807F100: .4byte gPartner +_0807F104: + movs r0, #0xfa + lsls r0, r0, #8 + strh r0, [r1, #0xa] +_0807F10A: + cmp r4, #0 + beq _0807F118 + movs r0, #0x15 + ldr r1, _0807F114 @ =gPartner + 0x40 + b _0807F11C + .align 2, 0 +_0807F114: .4byte gPartner + 0x40 +_0807F118: + adds r1, #0x40 + movs r0, #0x15 +_0807F11C: + strb r0, [r1] + cmp r4, #0 + beq _0807F12C + ldr r0, _0807F128 @ =gPartnerBodyPSI + b _0807F12E + .align 2, 0 +_0807F128: .4byte gPartnerBodyPSI +_0807F12C: + ldr r0, _0807F208 @ =gPlayerBodyPSI +_0807F12E: + adds r0, #0x2d + movs r1, #0xff + strb r1, [r0] + adds r1, r6, #0 + adds r1, #0x40 + movs r0, #0x21 + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x20 + mov r1, sb + strb r1, [r0] + ldr r0, _0807F20C @ =gPlayer + cmp r4, #0 + beq _0807F154 + ldr r0, _0807F210 @ =gPartner +_0807F154: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _0807F20C @ =gPlayer + cmp r4, #0 + beq _0807F162 + ldr r1, _0807F210 @ =gPartner +_0807F162: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _0807F20C @ =gPlayer + cmp r4, #0 + beq _0807F16E + ldr r1, _0807F210 @ =gPartner +_0807F16E: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #0xbd + bl m4aSongNumStart + ldr r0, _0807F214 @ =gCurTask + ldr r1, [r0] + ldr r0, _0807F218 @ =Task_PartyBalloonPopped + str r0, [r1, #8] + ldr r0, _0807F21C @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _0807F1DC + bl CreateRoomEvent + mov r1, sb + strb r1, [r0] + ldrh r1, [r6, #4] + strb r1, [r0, #1] + ldrh r1, [r6, #6] + strb r1, [r0, #2] + ldrb r1, [r6, #9] + strb r1, [r0, #3] + mov r1, sb + strb r1, [r0, #4] +_0807F1A0: + ldr r0, _0807F21C @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _0807F1DC + mov r0, sl + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0807F1DC + adds r1, r6, #0 + adds r1, #0x40 + movs r0, #0x21 + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x20 + mov r1, sb + strb r1, [r0] + movs r0, #0xbd + bl m4aSongNumStart + ldr r0, _0807F214 @ =gCurTask + ldr r1, [r0] + ldr r0, _0807F218 @ =Task_PartyBalloonPopped + str r0, [r1, #8] +_0807F1DC: + adds r4, #1 + ldr r0, _0807F220 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + bge _0807F1EC + b _0807EFDE_loop +_0807F1EC: + adds r0, r7, #0 + bl UpdateSpriteAnimation + adds r0, r7, #0 + bl DisplaySprite +_0807F1F8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807F208: .4byte gPlayerBodyPSI +_0807F20C: .4byte gPlayer +_0807F210: .4byte gPartner +_0807F214: .4byte gCurTask +_0807F218: .4byte Task_PartyBalloonPopped +_0807F21C: .4byte gGameMode +_0807F220: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc b/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc new file mode 100644 index 0000000000..62d1e82e8e --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc @@ -0,0 +1,287 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r1, _0807EC68 @ =gUnknown_086CED90 + mov r0, sp + movs r2, #6 + bl memcpy + ldr r0, _0807EC6C @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r4, r0 @ r5 = letter + adds r0, #0xc + adds r7, r4, r0 @ r7 = s + ldr r1, [r5] + mov sl, r1 @ sl = me + ldrb r2, [r5, #8] + lsls r2, r2, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldX + lsls r2, r2, #0x10 + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r1, r1, r0 @ r1 = worldY + lsls r1, r1, #0x10 + ldr r3, _0807EC70 @ =gCamera + ldrh r0, [r3] + lsrs r6, r2, #0x10 + str r6, [sp, #8] @ sp08 = worldX + asrs r2, r2, #0x10 + mov sb, r2 + subs r0, r2, r0 + strh r0, [r7, #0x16] + ldrh r2, [r3, #2] + lsrs r3, r1, #0x10 + str r3, [sp, #0xc] @ sp0C = worldY + asrs r1, r1, #0x10 + mov r8, r1 + subs r2, r1, r2 + strh r2, [r7, #0x18] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0807EC58 + movs r6, #0x18 + ldrsh r0, [r7, r6] + adds r0, #0x80 + cmp r0, #0 + blt _0807EC58 + lsls r1, r2, #0x10 + movs r0, #0x90 + lsls r0, r0, #0x11 + cmp r1, r0 + ble _0807EC74 +_0807EC58: + ldrb r0, [r5, #8] + mov r1, sl + strb r0, [r1] + ldr r0, _0807EC6C @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0807EE02 + .align 2, 0 +_0807EC68: .4byte gUnknown_086CED90 +_0807EC6C: .4byte gCurTask +_0807EC70: .4byte gCamera +_0807EC74: + movs r2, #0 + mov sl, r2 @ sl = r2 = 0 + ldr r2, _0807ECC0 @ =gStageTime + ldr r3, _0807ECC4 @ =0x03000040 + adds r0, r4, r3 + ldrb r1, [r0] + ldr r0, [r2] + subs r0, r0, r1 @ gStageTime - letter->unk40 + ldr r6, _0807ECC8 @ =0x0300003E + adds r5, r4, r6 + ldrb r1, [r5] + lsls r1, r1, #1 + add r1, sp + ldrh r1, [r1] + bl Mod + adds r1, r0, #0 + cmp r1, #0x39 + bhi _0807ECD4 + movs r0, #1 + mov sl, r0 @ sl = 1 + cmp r1, #0 + beq _0807ECA4 + b _0807EDC6_post_elif +_0807ECA4: + movs r1, #0 + mov sl, r1 + ldr r2, _0807ECCC @ =0x0300002D + adds r1, r4, r2 + movs r0, #0xff + strb r0, [r1] + ldr r3, _0807ECD0 @ =0x0300003C + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, #1 + subs r6, #0x12 + b _0807ED40_set_variant + .align 2, 0 +_0807ECC0: .4byte gStageTime +_0807ECC4: .4byte 0x03000040 +_0807ECC8: .4byte 0x0300003E +_0807ECCC: .4byte 0x0300002D +_0807ECD0: .4byte 0x0300003C +_0807ECD4: + ldr r2, _0807ED04 @ =0x0300003F + adds r0, r4, r2 + ldrb r2, [r0] + adds r3, r2, #0 + adds r3, #0x3a + cmp r1, r3 + bhs _0807ED14 + movs r3, #1 + mov sl, r3 + cmp r1, #0x3a + bne _0807EDC6_post_elif + ldr r6, _0807ED08 @ =0x0300002D + adds r1, r4, r6 + movs r0, #0xff + strb r0, [r1] + ldr r1, _0807ED0C @ =0x0300003C + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, #3 + ldr r2, _0807ED10 @ =0x0300002C + adds r1, r4, r2 + strb r0, [r1] + b _0807EDC6_post_elif + .align 2, 0 +_0807ED04: .4byte 0x0300003F +_0807ED08: .4byte 0x0300002D +_0807ED0C: .4byte 0x0300003C +_0807ED10: .4byte 0x0300002C +_0807ED14: + ldrb r0, [r5] + lsls r0, r0, #1 + add r0, sp + ldrh r0, [r0] + subs r0, r0, r2 + cmp r1, r0 + bhs _0807ED54 + movs r6, #1 + mov sl, r6 + cmp r1, r3 + bne _0807EDC6_post_elif + movs r0, #0 + mov sl, r0 + ldr r2, _0807ED48 @ =0x0300002D + adds r1, r4, r2 + movs r0, #0xff + strb r0, [r1] + ldr r3, _0807ED4C @ =0x0300003C + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, r0, #2 + ldr r6, _0807ED50 @ =0x0300002C +_0807ED40_set_variant: + adds r1, r4, r6 + strb r0, [r1] + b _0807EDC6_post_elif + .align 2, 0 +_0807ED48: .4byte 0x0300002D +_0807ED4C: .4byte 0x0300003C +_0807ED50: .4byte 0x0300002C +_0807ED54: + cmp r1, r0 + bne _0807ED70 + ldr r0, _0807ED9C @ =0x0300002D + adds r1, r4, r0 + movs r0, #0xff + strb r0, [r1] + ldr r1, _0807EDA0 @ =0x0300003C + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, #2 + ldr r2, _0807EDA4 @ =0x0300002C + adds r1, r4, r2 + strb r0, [r1] +_0807ED70: + movs r4, #0 + ldr r6, _0807EDA8 @ =gPartner + movs r5, #9 + rsbs r5, r5, #0 +_0807ED78: + ldr r3, _0807EDAC @ =gPlayer + cmp r4, #0 + beq _0807ED80 + ldr r3, _0807EDA8 @ =gPartner +_0807ED80: + adds r0, r7, #0 + mov r1, sb + mov r2, r8 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + beq _0807EDB8 + cmp r4, #0 + beq _0807EDB0 + ldr r0, [r6, #0x10] + ands r0, r5 + str r0, [r6, #0x10] + b _0807EDB8 + .align 2, 0 +_0807ED9C: .4byte 0x0300002D +_0807EDA0: .4byte 0x0300003C +_0807EDA4: .4byte 0x0300002C +_0807EDA8: .4byte gPartner +_0807EDAC: .4byte gPlayer +_0807EDB0: + ldr r1, _0807EE14 @ =gPlayer + ldr r0, [r1, #0x10] + ands r0, r5 + str r0, [r1, #0x10] +_0807EDB8: + adds r4, #1 + ldr r0, _0807EE18 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + blt _0807ED78 +_0807EDC6_post_elif: + movs r4, #0 +_0807EDC8: + mov r3, sl + cmp r3, #1 + bne _0807EDE8 + ldr r6, [sp, #8] + lsls r0, r6, #0x10 + asrs r1, r0, #0x10 + ldr r2, [sp, #0xc] + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + ldr r3, _0807EE14 @ =gPlayer + cmp r4, #0 + beq _0807EDE2 + ldr r3, _0807EE1C @ =gPartner +_0807EDE2: + adds r0, r7, #0 + bl Coll_Player_Platform +_0807EDE8: + adds r4, #1 + ldr r0, _0807EE18 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + blt _0807EDC8 + adds r0, r7, #0 + bl UpdateSpriteAnimation + adds r0, r7, #0 + bl DisplaySprite +_0807EE02: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807EE14: .4byte gPlayer +_0807EE18: .4byte gNumSingleplayerCharacters +_0807EE1C: .4byte gPartner + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc b/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc new file mode 100644 index 0000000000..3ceac59f60 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc @@ -0,0 +1,729 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _08084A78 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 @ r7 = orb + ldr r0, [r7] + str r0, [sp, #0x10] @ sp10 = me + ldrb r1, [r7, #8] + lsls r1, r1, #3 + ldrh r0, [r7, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 @ r1 = worldX << 16 + ldr r5, [sp, #0x10] @ r5 = sp10 = me + ldrb r2, [r5, #1] + lsls r2, r2, #3 + ldrh r0, [r7, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldr r3, _08084A7C @ =gCamera + ldrh r0, [r3] + lsrs r5, r1, #0x10 + str r5, [sp] @ sp00 = worldX + asrs r1, r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #8] @ sp08 = screenX + ldrh r0, [r3, #2] + lsrs r1, r2, #0x10 + str r1, [sp, #4] @ sp04 = worldY + asrs r2, r2, #0x10 + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0xc] @ sp0C = screenY + movs r5, #0 + mov ip, r3 @ ip = r3 = gCamera + ldr r2, _08084A80 @ =0x03000044 + adds r2, r2, r4 + mov r8, r2 @ r8 = &orb->unk44 + ldr r4, _08084A84 @ =gPartner + ldr r6, _08084A88 @ =gPlayer + movs r0, #0x26 + adds r0, r0, r4 + mov sl, r0 + movs r1, #0x26 + adds r1, r1, r6 + mov sb, r1 @ sb = &gPlayer.itemEffect + movs r3, #0 +_08084A44_loop: + adds r0, r7, #0 + adds r0, #0x44 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08084A58 + b _08084CCC +_08084A58: + mov r0, ip @ r0 = ip = gCamera + ldr r1, [r0] + ldr r0, [r7, #0x40] + cmp r1, r0 + beq _08084A64 + b _08084B72 +_08084A64: + mov r2, ip @ r2 = ip = gCamera + movs r0, #0 + ldrsh r1, [r2, r0] + cmp r5, #0 + beq _08084A8C + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + ble _08084A94 + b _08084B72 + .align 2, 0 +_08084A78: .4byte gCurTask +_08084A7C: .4byte gCamera +_08084A80: .4byte 0x03000044 +_08084A84: .4byte gPartner +_08084A88: .4byte gPlayer +_08084A8C: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + bgt _08084B72 +_08084A94: + mov r1, ip @ r1 = ip = gCamera + movs r2, #0 + ldrsh r0, [r1, r2] + adds r1, r0, #0 + adds r1, #0xf0 + cmp r5, #0 + beq _08084AAC + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08084AB4 + b _08084B72 +_08084AAC: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + blt _08084B72 +_08084AB4: + mov r0, ip + movs r2, #2 + ldrsh r1, [r0, r2] + cmp r5, #0 + beq _08084AC8 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _08084AD0 + b _08084B72 +_08084AC8: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + bgt _08084B72 +_08084AD0: + mov r1, ip + movs r2, #2 + ldrsh r0, [r1, r2] + adds r1, r0, #0 + adds r1, #0xa0 + cmp r5, #0 + beq _08084AE8 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08084AF0 + b _08084B72 +_08084AE8: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + blt _08084B72 +_08084AF0: + cmp r5, #0 + beq _08084B04 + ldr r0, [r4, #0x10] + ldr r1, _08084B00 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08084B0C + .align 2, 0 +_08084B00: .4byte 0xFFBFFFFF +_08084B04: + ldr r0, [r6, #0x10] + ldr r1, _08084B1C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08084B0C: + cmp r5, #0 + beq _08084B20 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _08084B28 + .align 2, 0 +_08084B1C: .4byte 0xFFBFFFFF +_08084B20: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_08084B28: + movs r0, #1 + lsls r0, r5 + mov r2, r8 @ r2 = r8 = &orb->unk44 + ldrh r1, [r2] + bics r1, r0 + movs r0, #0 + strh r1, [r2] + cmp r5, #0 + beq _08084B3E + strh r0, [r4, #0xa] + b _08084B40 +_08084B3E: + strh r5, [r6, #0xa] +_08084B40: + cmp r5, #0 + beq _08084B48 + strh r3, [r4, #8] + b _08084B4A +_08084B48: + strh r5, [r6, #8] +_08084B4A: + cmp r5, #0 + beq _08084B52 + strh r3, [r4, #0xc] + b _08084B54 +_08084B52: + strh r5, [r6, #0xc] +_08084B54: + cmp r5, #0 + beq _08084B66 + mov r0, sl @ r0 = sl = + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + mov r1, sl + strb r0, [r1] + b _08084C1A +_08084B66: + mov r2, sb + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + b _08084C1A +_08084B72: + ldr r0, _08084B94 @ =gPlayer + cmp r5, #0 + beq _08084B7A + ldr r0, _08084B98 @ =gPartner +_08084B7A: + str r3, [sp, #0x14] + bl Player_TransitionCancelFlyingAndBoost + ldr r3, [sp, #0x14] + cmp r5, #0 + beq _08084B9C + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + b _08084BA6 + .align 2, 0 +_08084B94: .4byte gPlayer +_08084B98: .4byte gPartner +_08084B9C: + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r6, #0x10] +_08084BA6: + ldr r2, _08084BB0 @ =gPlayer + cmp r5, #0 + beq _08084BB4 + strh r3, [r4, #0xa] + b _08084BB6 + .align 2, 0 +_08084BB0: .4byte gPlayer +_08084BB4: + strh r5, [r2, #0xa] +_08084BB6: + cmp r5, #0 + beq _08084BBE + strh r3, [r4, #8] + b _08084BC0 +_08084BBE: + strh r5, [r2, #8] +_08084BC0: + cmp r5, #0 + beq _08084BC8 + strh r3, [r4, #0xc] + b _08084BCA +_08084BC8: + strh r5, [r2, #0xc] +_08084BCA: + cmp r5, #0 + beq _08084BD8 + movs r0, #5 + ldr r1, _08084BD4 @ =gPartner + 0x40 + b _08084BDE + .align 2, 0 +_08084BD4: .4byte gPartner + 0x40 +_08084BD8: + adds r1, r2, #0 + adds r1, #0x40 + movs r0, #5 +_08084BDE: + strb r0, [r1] + ldr r0, _08084C2C @ =gPlayer + cmp r5, #0 + beq _08084BE8 + ldr r0, _08084C30 @ =gPartner +_08084BE8: + movs r1, #0xe + str r3, [sp, #0x14] + bl Player_HandleSpriteYOffsetChange + ldr r1, _08084C2C @ =gPlayer + ldr r3, [sp, #0x14] + cmp r5, #0 + beq _08084BFA + ldr r1, _08084C30 @ =gPartner +_08084BFA: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08084C2C @ =gPlayer + cmp r5, #0 + beq _08084C06 + ldr r1, _08084C30 @ =gPartner +_08084C06: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #1 + lsls r0, r5 + mov r2, r8 @ r2 = r8 = &orb->unk44 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] + ldr r0, _08084C34 @ =gCamera + mov ip, r0 +_08084C1A: @@@@@@@@@@@@@@ + cmp r5, #0 + beq _08084C38 + ldr r0, [r4, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08084C42 + b _08084CB8 + .align 2, 0 +_08084C2C: .4byte gPlayer +_08084C30: .4byte gPartner +_08084C34: .4byte gCamera +_08084C38: + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084CB8 +_08084C42: + movs r1, #1 + lsls r1, r5 + mov r2, r8 @ r2 = s8 = &orb->unk44 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] + cmp r5, #0 + beq _08084C60 + ldr r0, [r4, #0x10] + ldr r1, _08084C5C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08084C68 + .align 2, 0 +_08084C5C: .4byte 0xFFBFFFFF +_08084C60: + ldr r0, [r6, #0x10] + ldr r1, _08084C74 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08084C68: + cmp r5, #0 + beq _08084C7C + ldr r1, _08084C78 @ =gPartner + 0x3C + movs r0, #0 + ldrsb r0, [r1, r0] + b _08084C82 + .align 2, 0 +_08084C74: .4byte 0xFFBFFFFF +_08084C78: .4byte gPartner + 0x3C +_08084C7C: + ldr r2, _08084C98 @ =gPlayer + 0x3C + movs r0, #0 + ldrsb r0, [r2, r0] +_08084C82: + cmp r0, #0 + bne _08084CB8 + mov r1, ip + movs r2, #2 + ldrsh r0, [r1, r2] + adds r0, #0x50 + lsls r0, r0, #8 + cmp r5, #0 + beq _08084C9C + str r0, [r4, #4] + b _08084C9E + .align 2, 0 +_08084C98: .4byte gPlayer + 0x3C +_08084C9C: + str r0, [r6, #4] +_08084C9E: + mov r1, ip + movs r2, #0 + ldrsh r0, [r1, r2] + adds r0, #0x78 + lsls r0, r0, #8 + cmp r5, #0 + beq _08084CB0 + str r0, [r4] + b _08084CB2 +_08084CB0: + str r0, [r6] +_08084CB2: + mov r0, ip + strh r3, [r0, #6] + strh r3, [r0, #4] +_08084CB8: + mov r1, ip + ldrh r0, [r1] + adds r1, r7, #0 + adds r1, #0x40 + strh r0, [r1] + mov r2, ip + ldrh r0, [r2, #2] + adds r1, #2 + strh r0, [r1] + b _08084E8C_continue +_08084CCC: + cmp r5, #0 + beq _08084CD4 + ldr r0, [r4, #0x10] + b _08084CD6 +_08084CD4: + ldr r0, [r6, #0x10] +_08084CD6: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084CE0 + b _08084E8C_continue +_08084CE0: + ldr r0, [sp] @ r0 = sp00 = worldX + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #0xc + cmp r5, #0 + beq _08084CF8 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08084D02 + b _08084E8C_continue +_08084CF8: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r2, r0 + ble _08084D02 + b _08084E8C_continue +_08084D02: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0xc + cmp r5, #0 + beq _08084D16 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08084D20 + b _08084E8C_continue +_08084D16: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + bge _08084D20 + b _08084E8C_continue +_08084D20: + ldr r2, [sp, #4] + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #0xc + cmp r5, #0 + beq _08084D38 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08084D42 + b _08084E8C_continue +_08084D38: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08084D42 + b _08084E8C_continue +_08084D42: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0xc + cmp r5, #0 + beq _08084D56 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08084D60 + b _08084E8C_continue +_08084D56: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08084D60 + b _08084E8C_continue +_08084D60: + ldr r0, _08084D80 @ =gPlayer + cmp r5, #0 + beq _08084D68 + ldr r0, _08084D84 @ =gPartner +_08084D68: + str r3, [sp, #0x14] + bl Player_TransitionCancelFlyingAndBoost + ldr r3, [sp, #0x14] + cmp r5, #0 + beq _08084D88 + ldr r0, [r4, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r4, #0x10] + b _08084D90 + .align 2, 0 +_08084D80: .4byte gPlayer +_08084D84: .4byte gPartner +_08084D88: + ldr r0, [r6, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r6, #0x10] +_08084D90: + ldr r2, _08084DA4 @ =gPlayer + cmp r5, #0 + beq _08084DA8 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + b _08084DB2 + .align 2, 0 +_08084DA4: .4byte gPlayer +_08084DA8: + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r6, #0x10] +_08084DB2: + ldrh r0, [r7, #0x3c] + adds r1, r7, #0 + adds r1, #0x46 + lsls r0, r0, #8 + ldrh r1, [r1] + adds r0, r0, r1 + cmp r5, #0 + beq _08084DC6 + str r0, [r4] + b _08084DC8 +_08084DC6: + str r0, [r2] +_08084DC8: + ldrh r0, [r7, #0x3e] + adds r1, r7, #0 + adds r1, #0x48 + lsls r0, r0, #8 + ldrh r1, [r1] + adds r0, r0, r1 + cmp r5, #0 + beq _08084DDC + str r0, [r4, #4] + b _08084DDE +_08084DDC: + str r0, [r2, #4] +_08084DDE: + cmp r5, #0 + beq _08084DE6 + strh r3, [r4, #0xa] + b _08084DE8 +_08084DE6: + strh r5, [r2, #0xa] +_08084DE8: + cmp r5, #0 + beq _08084DF0 + strh r3, [r4, #8] + b _08084DF2 +_08084DF0: + strh r5, [r2, #8] +_08084DF2: + cmp r5, #0 + beq _08084DFA + strh r3, [r4, #0xc] + b _08084DFC +_08084DFA: + strh r5, [r2, #0xc] +_08084DFC: + cmp r5, #0 + beq _08084E0C + movs r0, #5 + ldr r1, _08084E08 @ =gPartner + 0x40 + b _08084E12 + .align 2, 0 +_08084E08: .4byte gPartner + 0x40 +_08084E0C: + adds r1, r2, #0 + adds r1, #0x40 + movs r0, #5 +_08084E12: + strb r0, [r1] + ldr r0, _08084E64 @ =gPlayer + cmp r5, #0 + beq _08084E1C + ldr r0, _08084E68 @ =gPartner +_08084E1C: + movs r1, #0xe + str r3, [sp, #0x14] + bl Player_HandleSpriteYOffsetChange + ldr r1, _08084E64 @ =gPlayer + ldr r3, [sp, #0x14] + cmp r5, #0 + beq _08084E2E + ldr r1, _08084E68 @ =gPartner +_08084E2E: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08084E64 @ =gPlayer + cmp r5, #0 + beq _08084E3A + ldr r1, _08084E68 @ =gPartner +_08084E3A: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #0xaa + str r3, [sp, #0x14] + bl m4aSongNumStart + movs r0, #1 + lsls r0, r5 + mov r2, r8 @ r2 = r8 = &orb->unk44 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] + ldr r3, [sp, #0x14] @ r3 = sp14 = + cmp r5, #0 + beq _08084E6C + mov r1, sl + ldrb r0, [r1] + movs r1, #0x80 + orrs r0, r1 + mov r2, sl + b _08084E76 + .align 2, 0 +_08084E64: .4byte gPlayer +_08084E68: .4byte gPartner +_08084E6C: + mov r1, sb + ldrb r0, [r1] + movs r1, #0x80 + orrs r0, r1 + mov r2, sb +_08084E76: + strb r0, [r2] + ldr r2, _08084EF0 @ =gCamera + ldrh r1, [r2] + adds r0, r7, #0 + adds r0, #0x40 + strh r1, [r0] + ldrh r0, [r2, #2] + adds r1, r7, #0 + adds r1, #0x42 + strh r0, [r1] + mov ip, r2 +_08084E8C_continue: + adds r5, #1 + ldr r0, _08084EF4 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bge _08084E9C + b _08084A44_loop +_08084E9C: + mov r5, r8 @ r5 = r8 = &orb->unk44 + ldrh r1, [r5] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08084EDE + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #0x10 + adds r0, r0, r2 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08084ED0 + ldr r5, [sp, #0xc] + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08084ED0 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r2, r0 + ble _08084EDE +_08084ED0: + ldrb r0, [r7, #8] + ldr r1, [sp, #0x10] @ r1 = sp10 = me + strb r0, [r1] + ldr r0, _08084EF8 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08084EDE: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08084EF0: .4byte gCamera +_08084EF4: .4byte gNumSingleplayerCharacters +_08084EF8: .4byte gCurTask + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc b/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc new file mode 100644 index 0000000000..a3e7c9609e --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc @@ -0,0 +1,408 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r5, _080911B8 @ =gCurTask + ldr r0, [r5] + ldrh r6, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r6 + mov r8, r0 @ r8 = bubbles + ldr r0, _080911BC @ =0x0300000C + adds r7, r6, r0 @ r7 = s + ldr r1, _080911C0 @ =0x03000040 + adds r0, r6, r1 @ r0 = unk40 + ldr r4, _080911C4 @ =gCamera + ldrh r2, [r0] + ldrh r0, [r4] + subs r2, r2, r0 + ldr r3, _080911C8 @ =gSineTable + mov r0, r8 + ldrh r1, [r0, #0x3e] + lsls r0, r1, #1 + adds r0, r0, r1 + ldr r1, _080911CC @ =0x000003FF + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x1b + adds r2, r2, r0 + strh r2, [r7, #0x16] + ldr r1, _080911D0 @ =0x03000042 + adds r3, r6, r1 + ldrh r1, [r3] + ldrh r0, [r4, #2] + subs r1, r1, r0 + mov r4, r8 + ldrh r0, [r4, #0x3e] + lsrs r0, r0, #1 + subs r1, r1, r0 + strh r1, [r7, #0x18] + adds r2, #0x80 + lsls r2, r2, #0x10 + movs r0, #0xf8 + lsls r0, r0, #0x11 + cmp r2, r0 + bhi _080911AE + movs r2, #0x18 + ldrsh r0, [r7, r2] + adds r0, #0x80 + cmp r0, #0 + blt _080911AE + lsls r1, r1, #0x10 + movs r0, #0x90 + lsls r0, r0, #0x11 + cmp r1, r0 + bgt _080911AE + ldr r2, _080911D4 @ =gWater + movs r4, #2 + ldrsh r0, [r2, r4] + cmp r0, #0 + blt _080911AE + movs r1, #0 + ldrsh r0, [r3, r1] + mov r4, r8 + ldrh r3, [r4, #0x3e] + lsrs r1, r3, #1 + subs r0, r0, r1 + movs r4, #2 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _080911D8 +_080911AE: + ldr r0, [r5] + bl TaskDestroy + b _08091400 + .align 2, 0 +_080911B8: .4byte gCurTask +_080911BC: .4byte 0x0300000C +_080911C0: .4byte 0x03000040 +_080911C4: .4byte gCamera +_080911C8: .4byte gSineTable +_080911CC: .4byte 0x000003FF +_080911D0: .4byte 0x03000042 +_080911D4: .4byte gWater +_080911D8: + ldr r0, _080911F8 @ =0x0300003C + adds r2, r6, r0 + ldrb r1, [r2] + lsls r1, r1, #3 + adds r0, r3, #1 + mov r3, r8 + strh r0, [r3, #0x3e] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _080911FC + adds r0, r7, #0 + bl UpdateSpriteAnimation + b _0809120A + .align 2, 0 +_080911F8: .4byte 0x0300003C +_080911FC: + ldrb r0, [r2] + cmp r0, #4 + beq _08091204 + b _080913FA_DisplaySprite_ret +_08091204: + adds r0, r7, #0 + bl UpdateSpriteAnimation +_0809120A: + mov r0, r8 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #4 + beq _08091216 + b _080913FA_DisplaySprite_ret +_08091216: + mov r4, r8 @ r4 = r8 = bubbles + ldrh r0, [r4, #0x3e] + cmp r0, #0x4f + bhi _08091220 + b _080913FA_DisplaySprite_ret +_08091220: + movs r4, #0 + ldr r5, _08091274 @ r5 = gPartner + ldr r6, _08091278 @ r6 = gPlayer + movs r0, #0x5a + adds r0, r0, r6 + mov sl, r0 + movs r1, #0x3c + adds r1, r1, r6 + mov sb, r1 +_08091232_loop: + ldr r0, _0809127C @ =gCamera + ldrh r1, [r0] + ldrh r2, [r7, #0x16] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r0, [r0, #2] + ldrh r3, [r7, #0x18] + adds r0, r0, r3 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + ldr r3, _08091278 @ =gPlayer + cmp r4, #0 + beq _08091250 + ldr r3, _08091274 @ =gPartner +_08091250: + adds r0, r7, #0 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _0809125C + b _080913EA_continue +_0809125C: + ldr r0, _08091278 @ =gPlayer + cmp r4, #0 + beq _08091264 + ldr r0, _08091274 @ =gPartner +_08091264: + bl Player_TransitionCancelFlyingAndBoost + cmp r4, #0 + beq _08091284 + movs r0, #0x1b + ldr r1, _08091280 @ =gPartner + 0x40 + strb r0, [r1] + b _0809128A + .align 2, 0 +_08091274: .4byte gPartner +_08091278: .4byte gPlayer +_0809127C: .4byte gCamera +_08091280: .4byte gPartner + 0x40 +_08091284: + movs r0, #0x1b + ldr r2, _0809129C @ =gPlayer + 0x40 + strb r0, [r2] +_0809128A: + cmp r4, #0 + beq _080912A0 + ldr r0, [r5, #0x10] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _080912AA + b _0809133A + .align 2, 0 +_0809129C: .4byte gPlayer + 0x40 +_080912A0: + ldr r0, [r6, #0x10] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0809133A +_080912AA: + cmp r4, #0 + beq _080912BA + ldr r0, [r5, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _080912C4 +_080912BA: + ldr r0, [r6, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_080912C4: + ldr r2, _080912D8 @ =gPlayer + cmp r4, #0 + beq _080912DC + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _080912E6 + .align 2, 0 +_080912D8: .4byte gPlayer +_080912DC: + ldr r0, [r6, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_080912E6: + cmp r4, #0 + beq _080912F6 + ldr r0, [r5, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08091300 + b _08091314 +_080912F6: + ldr r0, [r2, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08091314 +_08091300: + adds r1, r2, #0 + cmp r4, #0 + beq _08091308 + ldr r1, _08091310 @ =gPartner +_08091308: + movs r0, #6 + strb r0, [r1, #0xe] + adds r1, r2, #0 + b _08091330 + .align 2, 0 +_08091310: .4byte gPartner +_08091314: + ldr r0, _08091344 @ =gPlayer + cmp r4, #0 + beq _0809131C + ldr r0, _08091348 @ =gPartner +_0809131C: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08091344 @ =gPlayer + cmp r4, #0 + beq _0809132A + ldr r1, _08091348 @ =gPartner +_0809132A: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08091344 @ =gPlayer +_08091330: + cmp r4, #0 + beq _08091336 + ldr r1, _08091348 @ =gPartner +_08091336: + movs r0, #0xe + strb r0, [r1, #0xf] +_0809133A: + cmp r4, #0 + beq _0809134C + movs r0, #0 + strh r0, [r5, #8] + b _0809134E + .align 2, 0 +_08091344: .4byte gPlayer +_08091348: .4byte gPartner +_0809134C: + strh r4, [r6, #8] +_0809134E: + cmp r4, #0 + beq _08091358 + movs r0, #0 + strh r0, [r5, #0xa] + b _0809135A +_08091358: + strh r4, [r6, #0xa] +_0809135A: + cmp r4, #0 + beq _08091364 + movs r0, #0 + strh r0, [r5, #0xc] + b _08091366 +_08091364: + strh r4, [r6, #0xc] +_08091366: + cmp r4, #0 + beq _08091376 + ldr r0, [r5, #0x10] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _08091380 +_08091376: + ldr r0, [r6, #0x10] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08091380: + cmp r4, #0 + beq _08091390 + movs r0, #0x3c + ldr r3, _0809138C @ =gPartner + 0x5B + strb r0, [r3] + b _08091396 + .align 2, 0 +_0809138C: .4byte gPartner + 0x5B +_08091390: + movs r0, #0x3c + ldr r1, _080913A4 @ =gPlayer + 0x5B + strb r0, [r1] +_08091396: + cmp r4, #0 + beq _080913AC + movs r0, #0x1e + ldr r2, _080913A8 @ =gPartner + 0x5A + strb r0, [r2] + b _080913B2 + .align 2, 0 +_080913A4: .4byte gPlayer + 0x5B +_080913A8: .4byte gPartner + 0x5A +_080913AC: + movs r0, #0x1e + mov r3, sl + strb r0, [r3] +_080913B2: + cmp r4, #0 + beq _080913C4 + ldr r1, _080913C0 @ =gPartner + 0x3C + movs r0, #0 + ldrsb r0, [r1, r0] + b _080913CA + .align 2, 0 +_080913C0: .4byte gPartner + 0x3C +_080913C4: + mov r2, sb + movs r0, #0 + ldrsb r0, [r2, r0] +_080913CA: + cmp r0, #0 + bne _080913D4 + movs r0, #0x1b + bl m4aSongNumStop +_080913D4: + movs r0, #0xbf + bl m4aSongNumStart + ldr r0, _08091410 @ =gCurTask + ldr r1, [r0] + ldr r0, _08091414 @ =Task_809141C + str r0, [r1, #8] + mov r1, r8 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] +_080913EA_continue: + adds r4, #1 + ldr r0, _08091418 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + bge _080913FA_DisplaySprite_ret + b _08091232_loop +_080913FA_DisplaySprite_ret: + adds r0, r7, #0 + bl DisplaySprite +_08091400: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08091410: .4byte gCurTask +_08091414: .4byte Task_809141C +_08091418: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc b/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc new file mode 100644 index 0000000000..7b2efbf785 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc @@ -0,0 +1,961 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _08080BE4 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + adds r0, #0xc + adds r0, r1, r0 + str r0, [sp] + ldr r1, [r7] + str r1, [sp, #0xc] + ldrb r2, [r7, #8] + lsls r2, r2, #3 + ldrh r0, [r7, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldrb r0, [r1, #1] + lsls r0, r0, #3 + ldrh r1, [r7, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + ldr r1, _08080BE8 @ =gCamera + ldrh r0, [r1] + lsrs r6, r2, #0x10 + asrs r2, r2, #0x10 + subs r2, r2, r0 + ldr r4, [sp] + strh r2, [r4, #0x16] + ldr r4, [r7, #0x48] + ldr r3, [r7, #0x4c] + cmp r4, r3 + bls _08080BEC + ldrh r1, [r1, #2] + ldr r0, [sp, #4] + lsls r2, r0, #0x10 + asrs r0, r2, #0x10 + subs r0, r0, r1 + lsrs r1, r4, #0xd + adds r0, r0, r1 + ldr r1, [sp] + strh r0, [r1, #0x18] + ldr r0, [r7, #0x48] + b _08080C00 + .align 2, 0 +_08080BE4: .4byte gCurTask +_08080BE8: .4byte gCamera +_08080BEC: + ldrh r1, [r1, #2] + ldr r4, [sp, #4] + lsls r2, r4, #0x10 + asrs r0, r2, #0x10 + subs r0, r0, r1 + lsrs r1, r3, #0xd + adds r0, r0, r1 + ldr r1, [sp] + strh r0, [r1, #0x18] + ldr r0, [r7, #0x4c] +_08080C00: + lsrs r0, r0, #0xd + str r0, [sp, #8] + str r2, [sp, #0x10] + movs r5, #0 + lsls r6, r6, #0x10 + mov sl, r6 + adds r2, r7, #0 + adds r2, #0x51 + str r2, [sp, #0x18] + ldr r6, _08080C20 @ =gPartner + ldr r4, _08080C24 @ =gPlayer + mov r8, r4 +_08080C18_loop: + cmp r5, #0 + beq _08080C28 + ldr r0, [r6, #0x10] + b _08080C2C + .align 2, 0 +_08080C20: .4byte gPartner +_08080C24: .4byte gPlayer +_08080C28: + mov r1, r8 + ldr r0, [r1, #0x10] +_08080C2C: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08080C36 + b _08080DF2 +_08080C36: + ldr r2, [sp, #0x18] + ldrb r0, [r2] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08080C46 + b _08080DF2 +_08080C46: + mov r4, sl + asrs r1, r4, #0x10 + cmp r5, #0 + beq _08080C60 + ldr r0, [r6] + asrs r0, r0, #8 + ldr r3, _08080C5C @ =gPlayer + cmp r0, r1 + bgt _08080C6C + b _08080C74 + .align 2, 0 +_08080C5C: .4byte gPlayer +_08080C60: + mov r2, r8 + ldr r0, [r2] + asrs r0, r0, #8 + ldr r3, _08080C70 @ =gPlayer + cmp r0, r1 + ble _08080C74 +_08080C6C: + movs r1, #0xa + b _08080C76 + .align 2, 0 +_08080C70: .4byte gPlayer +_08080C74: + ldr r1, _08080CBC @ =0x0000FFF6 +_08080C76: + mov r4, sl + asrs r0, r4, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + ldr r0, [sp, #4] + adds r0, #0xd + ldr r2, [sp, #8] + adds r0, r0, r2 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r5, #0 + beq _08080C96 + ldr r3, _08080CC0 @ =gPartner +_08080C96: + ldr r0, [sp] + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _08080CA2 + b _08080DF2 +_08080CA2: + adds r0, r7, #0 + adds r0, #0x40 + adds r4, r7, #0 + adds r4, #0x42 + ldrh r3, [r0] + ldrh r1, [r4] + adds r2, r0, #0 + cmp r3, r1 + bls _08080CC4 + strh r3, [r4] + ldr r0, [r7, #0x48] + str r0, [r7, #0x4c] + b _08080CCA + .align 2, 0 +_08080CBC: .4byte 0x0000FFF6 +_08080CC0: .4byte gPartner +_08080CC4: + strh r1, [r2] + ldr r0, [r7, #0x4c] + str r0, [r7, #0x48] +_08080CCA: + movs r0, #1 + lsls r0, r5 + ldr r4, [sp, #0x18] + ldrb r1, [r4] + orrs r0, r1 + strb r0, [r4] + lsls r1, r5, #1 + adds r0, r7, #0 + adds r0, #0x3c + adds r0, r0, r1 + mov sb, r0 + ldr r0, [r7, #0x48] + lsrs r4, r0, #8 + mov r0, sl + asrs r1, r0, #0x10 + cmp r5, #0 + beq _08080CF0 + ldr r0, [r6] + b _08080CF4 +_08080CF0: + mov r2, r8 + ldr r0, [r2] +_08080CF4: + asrs r0, r0, #8 + subs r0, r0, r1 + adds r0, #0x30 + lsls r0, r0, #9 + movs r1, #0x60 + bl Div + cmp r0, #0 + bge _08080D34 + mov r0, sl + asrs r1, r0, #0x10 + cmp r5, #0 + beq _08080D12 + ldr r0, [r6] + b _08080D16 +_08080D12: + mov r2, r8 + ldr r0, [r2] +_08080D16: + asrs r0, r0, #8 + subs r0, r0, r1 + adds r0, #0x30 + lsls r0, r0, #9 + movs r1, #0x60 + bl Div + movs r2, #0xc0 + lsls r2, r2, #2 + adds r1, r4, r2 + subs r1, r1, r0 + ldr r0, _08080D30 @ =0x000003FF + b _08080D5C + .align 2, 0 +_08080D30: .4byte 0x000003FF +_08080D34: + mov r0, sl + asrs r1, r0, #0x10 + cmp r5, #0 + beq _08080D40 + ldr r0, [r6] + b _08080D44 +_08080D40: + mov r2, r8 + ldr r0, [r2] +_08080D44: + asrs r0, r0, #8 + subs r0, r0, r1 + adds r0, #0x30 + lsls r0, r0, #9 + movs r1, #0x60 + bl Div + movs r2, #0xc0 + lsls r2, r2, #2 + adds r1, r4, r2 + adds r0, r0, r1 + ldr r1, _08080D6C @ =0x000003FF +_08080D5C: + ands r0, r1 + movs r1, #0 + mov r4, sb + strh r0, [r4] + cmp r5, #0 + beq _08080D70 + strh r1, [r6, #0x38] + b _08080D74 + .align 2, 0 +_08080D6C: .4byte 0x000003FF +_08080D70: + mov r0, r8 + strh r5, [r0, #0x38] +_08080D74: + ldr r3, _08080D80 @ =gPlayer + cmp r5, #0 + beq _08080D84 + movs r0, #0 + strh r0, [r6, #0x3a] + b _08080D86 + .align 2, 0 +_08080D80: .4byte gPlayer +_08080D84: + strh r5, [r3, #0x3a] +_08080D86: + adds r0, r3, #0 + cmp r5, #0 + beq _08080D8E + ldr r0, _08080DA0 @ =gPartner +_08080D8E: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _08080DA8 + movs r0, #5 + ldr r1, _08080DA4 @ =gPartner + 0x40 + strb r0, [r1] + b _08080DAE + .align 2, 0 +_08080DA0: .4byte gPartner +_08080DA4: .4byte gPartner + 0x40 +_08080DA8: + movs r0, #5 + ldr r2, _08080DC0 @ =gPlayer + 0x40 + strb r0, [r2] +_08080DAE: + cmp r5, #0 + beq _08080DC4 + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r6, #0x10] + b _08080DD0 + .align 2, 0 +_08080DC0: .4byte gPlayer + 0x40 +_08080DC4: + mov r4, r8 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] +_08080DD0: + cmp r5, #0 + beq _08080DE8 + ldr r0, _08080DE4 @ =gPartner + 0x26 + ldrb r1, [r0] + movs r0, #0x80 + orrs r0, r1 + ldr r1, _08080DE4 @ =gPartner + 0x26 + strb r0, [r1] + b _08080DF2 + .align 2, 0 +_08080DE4: .4byte gPartner + 0x26 +_08080DE8: + ldr r2, _08080E4C @ =gPlayer + 0x26 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] +_08080DF2: + adds r5, #1 + ldr r0, _08080E50 @ =gNumSingleplayerCharacters + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r5, r1 + bge _08080E00 + b _08080C18_loop +_08080E00: + movs r5, #0 + mov r8, r5 + ldr r4, _08080E54 @ =gPlayer + mov sb, r4 +_08080E08_loop: + ldr r1, [sp, #0x18] + ldrb r0, [r1] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08080ECC + adds r4, r7, #0 + adds r4, #0x48 + mov r2, r8 + adds r0, r4, r2 + ldr r2, [r0] + lsls r1, r5, #1 + adds r0, r7, #0 + adds r0, #0x3c + adds r0, r0, r1 + lsrs r2, r2, #8 + ldrh r0, [r0] + adds r2, r2, r0 + adds r3, r7, #0 + adds r3, #0x50 + ldrb r1, [r3] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #6 + adds r2, r2, r0 + ldr r0, _08080E58 @ =0x000003FF + ands r2, r0 + adds r6, r4, #0 + cmp r5, #0 + beq _08080E60 + ldr r4, _08080E5C @ =gPartner + ldr r0, [r4, #0x10] + b _08080E64 + .align 2, 0 +_08080E4C: .4byte gPlayer + 0x26 +_08080E50: .4byte gNumSingleplayerCharacters +_08080E54: .4byte gPlayer +_08080E58: .4byte 0x000003FF +_08080E5C: .4byte gPartner +_08080E60: + mov r1, sb + ldr r0, [r1, #0x10] +_08080E64: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08080ECC + ldr r1, _08080E98 @ =gSineTable + lsls r0, r2, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, #0x32 + bl Div + mov r4, sl + asrs r1, r4, #8 + adds r1, r1, r0 + cmp r5, #0 + beq _08080EA0 + ldr r0, _08080E9C @ =gPartner + str r1, [r0] + b _08080EA4 + .align 2, 0 +_08080E98: .4byte gSineTable +_08080E9C: .4byte gPartner +_08080EA0: + mov r2, sb + str r1, [r2] +_08080EA4: + ldr r4, [sp, #0x10] + asrs r1, r4, #8 + ldr r0, _08080EC0 @ =0xFFFFEF00 + adds r1, r1, r0 + mov r2, r8 + adds r0, r6, r2 + ldr r0, [r0] + lsrs r0, r0, #5 + adds r0, r1, r0 + cmp r5, #0 + beq _08080EC8 + ldr r4, _08080EC4 @ =gPartner + str r0, [r4, #4] + b _08080ECC + .align 2, 0 +_08080EC0: .4byte 0xFFFFEF00 +_08080EC4: .4byte gPartner +_08080EC8: + mov r1, sb + str r0, [r1, #4] +_08080ECC: + movs r2, #4 + add r8, r2 + adds r5, #1 + ldr r4, _08080F0C @ =gNumSingleplayerCharacters + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r5, r0 + blt _08080E08_loop + movs r5, #0 + mov r8, r5 + mov sb, r5 +_08080EE2_loop: + ldr r1, [sp, #0x18] + ldrb r0, [r1] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08080FB0 + adds r1, r7, #0 + adds r1, #0x48 + mov r2, sb + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _08080F10 @ =0x000D8107 + adds r6, r1, #0 + cmp r2, r0 + bls _08080F60 + cmp r5, #0 + beq _08080F18 + ldr r0, _08080F14 @ =gPartner + b _08080F1A + .align 2, 0 +_08080F0C: .4byte gNumSingleplayerCharacters +_08080F10: .4byte 0x000D8107 +_08080F14: .4byte gPartner +_08080F18: + ldr r0, _08080F48 @ =gPlayer +_08080F1A: + ldr r1, [r0, #0x10] + movs r0, #0x80 + ands r1, r0 + adds r2, r7, #0 + adds r2, #0x40 + cmp r1, #0 + bne _08080F6E + adds r1, r7, #0 + adds r1, #0x40 + mov r4, r8 + adds r0, r1, r4 + ldrh r0, [r0] + lsrs r0, r0, #2 + ldr r2, _08080F4C @ =0xFFFFF830 + adds r0, r0, r2 + lsls r3, r0, #1 + adds r2, r1, #0 + cmp r5, #0 + beq _08080F54 + ldr r0, _08080F50 @ =gPartner + strh r3, [r0, #0xa] + b _08080F6E + .align 2, 0 +_08080F48: .4byte gPlayer +_08080F4C: .4byte 0xFFFFF830 +_08080F50: .4byte gPartner +_08080F54: + ldr r0, _08080F5C @ =gPlayer + strh r3, [r0, #0xa] + b _08080F6E + .align 2, 0 +_08080F5C: .4byte gPlayer +_08080F60: + adds r2, r7, #0 + adds r2, #0x40 + mov r4, r8 + adds r1, r2, r4 + ldrh r0, [r1] + adds r0, #0x40 + strh r0, [r1] +_08080F6E: + mov r0, r8 + adds r4, r2, r0 + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #0x18 + lsrs r1, r2, #0x10 + cmp r0, r1 + bls _08080F80 + strh r1, [r4] +_08080F80: + ldrh r1, [r4] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + movs r1, #0xa0 + lsls r1, r1, #8 + bl Div + ldr r1, [sp] + adds r1, #0x22 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _08080FA4 + movs r0, #0x10 + strb r0, [r1] +_08080FA4: + mov r0, sb + adds r2, r6, r0 + ldrh r1, [r4] + ldr r0, [r2] + adds r0, r0, r1 + str r0, [r2] +_08080FB0: + movs r1, #2 + add r8, r1 + movs r2, #4 + add sb, r2 + adds r5, #1 + ldr r4, _08081030 @ =gNumSingleplayerCharacters + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r5, r0 + blt _08080EE2_loop + mov r0, sl + asrs r2, r0, #0x10 + ldr r3, _08081034 @ =gCamera + movs r4, #0 + ldrsh r1, [r3, r4] + movs r4, #0xb8 + lsls r4, r4, #1 + adds r0, r1, r4 + cmp r2, r0 + bgt _08080FF8 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _08080FF8 + ldr r0, [sp, #0x10] + asrs r1, r0, #0x10 + movs r2, #2 + ldrsh r3, [r3, r2] + subs r4, #0x50 + adds r0, r3, r4 + cmp r1, r0 + bgt _08080FF8 + adds r0, r3, #0 + subs r0, #0x80 + cmp r1, r0 + bge _0808103C +_08080FF8: + ldr r1, [sp] + ldrh r0, [r1, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08081020 + ldr r2, [sp] + movs r4, #0x18 + ldrsh r0, [r2, r4] + adds r0, #0x80 + cmp r0, #0 + blt _08081020 + movs r0, #0x18 + ldrsh r1, [r2, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0808103C +_08081020: + ldrb r0, [r7, #8] + ldr r1, [sp, #0xc] + strb r0, [r1] + ldr r0, _08081038 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0808126E + .align 2, 0 +_08081030: .4byte gNumSingleplayerCharacters +_08081034: .4byte gCamera +_08081038: .4byte gCurTask +_0808103C: + movs r4, #0 + adds r2, r7, #0 + adds r2, #0x44 + str r2, [sp, #0x14] + ldr r0, [sp, #0x18] + mov r8, r0 + ldr r6, _08081088 @ =gPartner + movs r1, #0x80 + mov sb, r1 + ldr r5, _0808108C @ =gPlayer + movs r2, #0x26 + adds r2, r2, r5 + mov ip, r2 +_08081056: + mov r1, r8 + ldrb r0, [r1] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08081066 + b _080811CA +_08081066: + lsls r1, r4, #2 + adds r0, r7, #0 + adds r0, #0x48 + adds r2, r0, r1 + ldr r1, [r2] + ldr r0, _08081090 @ =0x000D8107 + cmp r1, r0 + bhi _08081078 + b _080811CA +_08081078: + adds r0, #1 + str r0, [r2] + cmp r4, #0 + beq _08081094 + ldr r0, [r6, #0x10] + mov r2, sb + ands r0, r2 + b _0808109A + .align 2, 0 +_08081088: .4byte gPartner +_0808108C: .4byte gPlayer +_08081090: .4byte 0x000D8107 +_08081094: + ldr r0, [r5, #0x10] + mov r1, sb + ands r0, r1 +_0808109A: + adds r3, r7, #0 + adds r3, #0x50 + cmp r0, #0 + bne _080810DE + adds r0, r7, #0 + adds r0, #0x50 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #0xf + bhi _080810C4 + ldrb r1, [r3] + movs r0, #0xb4 + muls r1, r0, r1 + cmp r4, #0 + beq _080810C0 + ldr r0, [r6, #4] + adds r0, r0, r1 + str r0, [r6, #4] + b _080810DE +_080810C0: + ldr r0, [r5, #4] + b _080810DA +_080810C4: + cmp r4, #0 + beq _080810D4 + ldr r0, [r6, #4] + movs r2, #0xb4 + lsls r2, r2, #4 + adds r0, r0, r2 + str r0, [r6, #4] + b _080810DE +_080810D4: + ldr r0, [r5, #4] + movs r1, #0xb4 + lsls r1, r1, #4 +_080810DA: + adds r0, r0, r1 + str r0, [r5, #4] +_080810DE: + cmp r4, #0 + bne _080810E8 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_080810E8: + ldrb r0, [r3] + cmp r0, #0x40 + bls _080811CA + cmp r4, #0 + beq _080810FA + ldr r0, [r6, #0x10] + mov r2, sb + ands r0, r2 + b _08081100 +_080810FA: + ldr r0, [r5, #0x10] + mov r1, sb + ands r0, r1 +_08081100: + cmp r0, #0 + bne _0808119A + cmp r4, #0 + beq _08081118 + ldr r0, [r6, #0x10] + ldr r1, _08081114 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] + b _08081120 + .align 2, 0 +_08081114: .4byte 0xFFBFFFFF +_08081118: + ldr r0, [r5, #0x10] + ldr r1, _08081130 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] +_08081120: + cmp r4, #0 + beq _08081134 + ldr r0, [r6, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r6, #0x10] + b _0808113C + .align 2, 0 +_08081130: .4byte 0xFFBFFFFF +_08081134: + ldr r0, [r5, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r5, #0x10] +_0808113C: + cmp r4, #0 + beq _0808114A + ldr r0, [r6, #0x10] + movs r1, #0x10 + orrs r0, r1 + str r0, [r6, #0x10] + b _08081152 +_0808114A: + ldr r0, [r5, #0x10] + movs r1, #0x10 + orrs r0, r1 + str r0, [r5, #0x10] +_08081152: + cmp r4, #0 + beq _08081160 + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] + b _08081168 +_08081160: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_08081168: + cmp r4, #0 + beq _08081172 + movs r0, #0 + strh r0, [r6, #8] + b _08081174 +_08081172: + strh r4, [r5, #8] +_08081174: + cmp r4, #0 + beq _0808117E + movs r0, #0 + strh r0, [r6, #0xc] + b _08081180 +_0808117E: + strh r4, [r5, #0xc] +_08081180: + mov r2, sl + asrs r0, r2, #8 + cmp r4, #0 + beq _0808118C + str r0, [r6] + b _0808118E +_0808118C: + str r0, [r5] +_0808118E: + movs r1, #1 + lsls r1, r4 + mov r2, r8 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_0808119A: + ldr r0, _080811B4 @ =gCurTask + ldr r1, [r0] + ldr r0, _080811B8 @ =Task_Bowl3 + str r0, [r1, #8] + cmp r4, #0 + beq _080811C0 + ldr r0, _080811BC @ =gPartner + 0x26 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + ldr r1, _080811BC @ =gPartner + 0x26 + strb r0, [r1] + b _080811CA + .align 2, 0 +_080811B4: .4byte gCurTask +_080811B8: .4byte Task_Bowl3 +_080811BC: .4byte gPartner + 0x26 +_080811C0: + mov r2, ip + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080811CA: + adds r4, #1 + ldr r1, _08081200 @ =gNumSingleplayerCharacters + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r4, r0 + bge _080811D8 + b _08081056 +_080811D8: + ldr r1, [sp, #0x14] + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf0 + bls _080811EC + movs r0, #0xf0 + strh r0, [r1] +_080811EC: + ldr r2, [sp, #0x14] + ldrh r0, [r2] + cmp r0, #0x38 + bne _08081230 + movs r4, #0 + movs r5, #0x80 +_080811F8: + cmp r4, #0 + beq _08081208 + ldr r0, _08081204 @ =gPartner + b _0808120A + .align 2, 0 +_08081200: .4byte gNumSingleplayerCharacters +_08081204: .4byte gPartner +_08081208: + ldr r0, _08081228 @ =gPlayer +_0808120A: + ldr r0, [r0, #0x10] + ands r0, r5 + cmp r0, #0 + bne _08081218 + movs r0, #0xcf + bl m4aSongNumStart +_08081218: + adds r4, #1 + ldr r0, _0808122C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + blt _080811F8 + b _08081262 + .align 2, 0 +_08081228: .4byte gPlayer +_0808122C: .4byte gNumSingleplayerCharacters +_08081230: + cmp r0, #0x70 + bne _08081262 + movs r4, #0 + movs r5, #0x80 +_08081238: + cmp r4, #0 + beq _08081244 + ldr r0, _08081240 @ =gPartner + b _08081246 + .align 2, 0 +_08081240: .4byte gPartner +_08081244: + ldr r0, _08081280 @ =gPlayer +_08081246: + ldr r0, [r0, #0x10] + ands r0, r5 + cmp r0, #0 + bne _08081254 + movs r0, #0xd0 + bl m4aSongNumStart +_08081254: + adds r4, #1 + ldr r0, _08081284 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + blt _08081238 +_08081262: + ldr r0, [sp] + bl UpdateSpriteAnimation + ldr r0, [sp] + bl DisplaySprite +_0808126E: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08081280: .4byte gPlayer +_08081284: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc b/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc new file mode 100644 index 0000000000..64a12a35be --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc @@ -0,0 +1,574 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov r8, r0 + str r1, [sp] + str r2, [sp, #4] + str r3, [sp, #8] + movs r0, #0 + str r0, [sp, #0xc] + movs r1, #0 + str r1, [sp, #0x10] + movs r6, #0 + ldr r4, _0807ACAC @ =gPartner + ldr r5, _0807ACB0 @ =gPlayer + ldr r2, _0807ACB4 @ =0x0000FA27 + mov sl, r2 +_0807ACA2: + cmp r6, #0 + beq _0807ACB8 + ldr r3, [r4] + mov sb, r3 + b _0807ACBC + .align 2, 0 +_0807ACAC: .4byte gPartner +_0807ACB0: .4byte gPlayer +_0807ACB4: .4byte 0x0000FA27 +_0807ACB8: + ldr r0, [r5] + mov sb, r0 +_0807ACBC: + cmp r6, #0 + beq _0807ACCA + ldr r1, [r4, #0x10] + movs r0, #0x80 + ands r1, r0 + adds r7, r6, #1 + b _0807ACD2 +_0807ACCA: + ldr r1, [r5, #0x10] + movs r0, #0x80 + ands r1, r0 + movs r7, #1 +_0807ACD2: + cmp r1, #0 + beq _0807ACD8 + b _0807B066 +_0807ACD8: + ldr r0, _0807AD44 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _0807ACE6 + adds r7, r6, #1 + cmp r0, #5 + bne _0807AD30 +_0807ACE6: + movs r2, #0 + ldr r1, _0807AD48 @ =gMultiplayerPlayerTasks + ldr r0, [r1] + adds r7, r6, #1 + cmp r0, #0 + beq _0807AD30 + adds r3, r1, #0 +_0807ACF4: + ldr r0, _0807AD4C @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r2, r0 + beq _0807AD1C + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + ldr r0, [r0, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0807AD1C + movs r0, #1 + str r0, [sp, #0x10] +_0807AD1C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bhi _0807AD30 + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + bne _0807ACF4 +_0807AD30: + cmp r6, #0 + beq _0807AD50 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807AD5C + b _0807AD64 + .align 2, 0 +_0807AD44: .4byte gGameMode +_0807AD48: .4byte gMultiplayerPlayerTasks +_0807AD4C: .4byte 0x04000128 +_0807AD50: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0807AD64 +_0807AD5C: + ldr r1, [sp, #0x10] + cmp r1, #0 + bne _0807AD64 + b _0807B066 +_0807AD64: + mov r2, r8 + ldr r0, [r2, #0x40] + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r0, r3, r0 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + ldr r0, [r2, #0x44] + asrs r0, r0, #8 + ldr r2, [sp, #8] + adds r0, r2, r0 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + ldr r3, _0807ADA0 @ =gPlayer + cmp r6, #0 + beq _0807AD86 + ldr r3, _0807ADA4 @ =gPartner +_0807AD86: + ldr r0, [sp] + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _0807AD92 + b _0807B066 +_0807AD92: + cmp r6, #0 + beq _0807ADAC + ldr r3, _0807ADA8 @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r3, r0] + b _0807ADB2 + .align 2, 0 +_0807ADA0: .4byte gPlayer +_0807ADA4: .4byte gPartner +_0807ADA8: .4byte gPartner + 0x59 +_0807ADAC: + ldr r1, _0807ADC8 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] +_0807ADB2: + ldr r3, _0807ADCC @ =gPlayer + cmp r0, #1 + beq _0807ADDE + cmp r6, #0 + beq _0807ADD4 + ldr r2, _0807ADD0 @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + beq _0807ADDE + b _0807AE34 + .align 2, 0 +_0807ADC8: .4byte gPlayer + 0x59 +_0807ADCC: .4byte gPlayer +_0807ADD0: .4byte gPartner + 0x59 +_0807ADD4: + ldr r1, _0807ADF0 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #2 + bne _0807AE34 +_0807ADDE: + cmp r6, #0 + beq _0807ADF8 + ldr r2, _0807ADF4 @ =gPartner + 0x3D + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _0807AE06 + b _0807AE34 + .align 2, 0 +_0807ADF0: .4byte gPlayer + 0x59 +_0807ADF4: .4byte gPartner + 0x3D +_0807ADF8: + adds r0, r3, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807AE34 +_0807AE06: + ldr r0, _0807AE20 @ =gPlayer + cmp r6, #0 + beq _0807AE0E + ldr r0, _0807AE24 @ =gPartner +_0807AE0E: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _0807AE2C + movs r0, #5 + ldr r3, _0807AE28 @ =gPartner + 0x40 + strb r0, [r3] + b _0807AE32 + .align 2, 0 +_0807AE20: .4byte gPlayer +_0807AE24: .4byte gPartner +_0807AE28: .4byte gPartner + 0x40 +_0807AE2C: + movs r0, #5 + ldr r1, _0807AE4C @ =gPlayer + 0x40 + strb r0, [r1] +_0807AE32: + ldr r3, _0807AE50 @ =gPlayer +_0807AE34: + ldr r0, _0807AE54 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _0807AE40 + cmp r0, #5 + bne _0807AE5C +_0807AE40: + cmp r6, #0 + beq _0807AE58 + movs r0, #0x1e + strh r0, [r4, #0x1c] + b _0807AE5C + .align 2, 0 +_0807AE4C: .4byte gPlayer + 0x40 +_0807AE50: .4byte gPlayer +_0807AE54: .4byte gGameMode +_0807AE58: + movs r0, #0x1e + strh r0, [r3, #0x1c] +_0807AE5C: + cmp r6, #0 + beq _0807AE6C + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807AE76 +_0807AE6C: + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807AE76: + cmp r6, #0 + beq _0807AE84 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _0807AE8C +_0807AE84: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_0807AE8C: + cmp r6, #0 + beq _0807AEA0 + ldr r0, [r4, #0x10] + ldr r1, _0807AE9C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + b _0807AEA8 + .align 2, 0 +_0807AE9C: .4byte 0xFFFFFEFF +_0807AEA0: + ldr r0, [r5, #0x10] + ldr r1, _0807AEB8 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] +_0807AEA8: + cmp r6, #0 + beq _0807AEBC + ldr r0, [r4, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r4, #0x10] + b _0807AEC4 + .align 2, 0 +_0807AEB8: .4byte 0xFFFFFEFF +_0807AEBC: + ldr r0, [r5, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r5, #0x10] +_0807AEC4: + cmp r6, #0 + beq _0807AED4 + ldr r0, [r4, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807AEDE +_0807AED4: + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807AEDE: + adds r1, r3, #0 + cmp r6, #0 + beq _0807AEE6 + ldr r1, _0807AF04 @ =gPartner +_0807AEE6: + movs r0, #6 + strb r0, [r1, #0xe] + adds r1, r3, #0 + cmp r6, #0 + beq _0807AEF2 + ldr r1, _0807AF04 @ =gPartner +_0807AEF2: + movs r0, #9 + strb r0, [r1, #0xf] + mov r2, r8 + ldr r0, [r2, #0x44] + asrs r1, r0, #8 + cmp r6, #0 + beq _0807AF08 + ldr r0, [r4, #4] + b _0807AF0A + .align 2, 0 +_0807AF04: .4byte gPartner +_0807AF08: + ldr r0, [r3, #4] +_0807AF0A: + asrs r0, r0, #8 + ldr r2, [sp, #8] + subs r0, r0, r2 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + mov r1, r8 + ldr r0, [r1, #0x40] + asrs r1, r0, #8 + cmp r6, #0 + beq _0807AF24 + ldr r0, [r4] + b _0807AF26 +_0807AF24: + ldr r0, [r3] +_0807AF26: + asrs r0, r0, #8 + ldr r3, [sp, #4] + subs r0, r0, r3 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + adds r0, r2, #0 + bl sa2__sub_8004418 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + ldr r1, [sp] + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0807AFC4 + ldr r0, _0807AF5C @ =0x000001FF + cmp r2, r0 + bls _0807AF6C + cmp r6, #0 + beq _0807AF64 + ldr r0, _0807AF60 @ =0x0000F99A + strh r0, [r4, #0xa] + b _0807B054 + .align 2, 0 +_0807AF5C: .4byte 0x000001FF +_0807AF60: .4byte 0x0000F99A +_0807AF64: + ldr r0, _0807AF68 @ =0x0000F99A + b _0807B052 + .align 2, 0 +_0807AF68: .4byte 0x0000F99A +_0807AF6C: + cmp r2, #0xff + bhi _0807AF94 + cmp r6, #0 + beq _0807AF80 + ldr r2, _0807AF7C @ =0x00000297 + strh r2, [r4, #8] + b _0807AF84 + .align 2, 0 +_0807AF7C: .4byte 0x00000297 +_0807AF80: + ldr r3, _0807AF8C @ =0x00000297 + strh r3, [r5, #8] +_0807AF84: + cmp r6, #0 + bne _0807AFAC + ldr r0, _0807AF90 @ =0x000005D9 + b _0807B052 + .align 2, 0 +_0807AF8C: .4byte 0x00000297 +_0807AF90: .4byte 0x000005D9 +_0807AF94: + cmp r6, #0 + beq _0807AFA4 + ldr r0, _0807AFA0 @ =0x0000FD69 + strh r0, [r4, #8] + b _0807AFA8 + .align 2, 0 +_0807AFA0: .4byte 0x0000FD69 +_0807AFA4: + ldr r0, _0807AFB4 @ =0x0000FD69 + strh r0, [r5, #8] +_0807AFA8: + cmp r6, #0 + beq _0807AFBC +_0807AFAC: + ldr r0, _0807AFB8 @ =0x000005D9 + strh r0, [r4, #0xa] + b _0807B054 + .align 2, 0 +_0807AFB4: .4byte 0x0000FD69 +_0807AFB8: .4byte 0x000005D9 +_0807AFBC: + ldr r0, _0807AFC0 @ =0x000005D9 + b _0807B052 + .align 2, 0 +_0807AFC0: .4byte 0x000005D9 +_0807AFC4: + movs r0, #0xf7 + lsls r0, r0, #1 + cmp r2, r0 + bls _0807B014 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r2, r0 + bls _0807AFF6 + cmp r6, #0 + beq _0807AFDE + subs r0, #0x69 + strh r0, [r4, #8] + b _0807AFE2 +_0807AFDE: + ldr r1, _0807AFEC @ =0x00000297 + strh r1, [r5, #8] +_0807AFE2: + cmp r6, #0 + beq _0807AFF0 + mov r2, sl + strh r2, [r4, #0xa] + b _0807B054 + .align 2, 0 +_0807AFEC: .4byte 0x00000297 +_0807AFF0: + mov r3, sl + strh r3, [r5, #0xa] + b _0807B054 +_0807AFF6: + cmp r6, #0 + beq _0807B004 + ldr r0, _0807B000 @ =0x0000FD69 + strh r0, [r4, #8] + b _0807B008 + .align 2, 0 +_0807B000: .4byte 0x0000FD69 +_0807B004: + ldr r0, _0807B010 @ =0x0000FD69 + strh r0, [r5, #8] +_0807B008: + cmp r6, #0 + bne _0807B030 + b _0807B03C + .align 2, 0 +_0807B010: .4byte 0x0000FD69 +_0807B014: + cmp r2, #0x14 + bhi _0807B042 + cmp r6, #0 + beq _0807B028 + ldr r2, _0807B024 @ =0x00000297 + strh r2, [r4, #8] + b _0807B02C + .align 2, 0 +_0807B024: .4byte 0x00000297 +_0807B028: + ldr r3, _0807B038 @ =0x00000297 + strh r3, [r5, #8] +_0807B02C: + cmp r6, #0 + beq _0807B03C +_0807B030: + mov r0, sl + strh r0, [r4, #0xa] + b _0807B054 + .align 2, 0 +_0807B038: .4byte 0x00000297 +_0807B03C: + mov r1, sl + strh r1, [r5, #0xa] + b _0807B054 +_0807B042: + cmp r6, #0 + beq _0807B050 + ldr r0, _0807B04C @ =0x00000666 + strh r0, [r4, #0xa] + b _0807B054 + .align 2, 0 +_0807B04C: .4byte 0x00000666 +_0807B050: + ldr r0, _0807B070 @ =0x00000666 +_0807B052: + strh r0, [r5, #0xa] +_0807B054: + movs r0, #0xb8 + bl m4aSongNumStart + mov r1, r8 + adds r1, #0x4c + movs r0, #0 + strb r0, [r1] + movs r2, #1 + str r2, [sp, #0xc] +_0807B066: + cmp r6, #0 + beq _0807B074 + mov r3, sb + str r3, [r4] + b _0807B078 + .align 2, 0 +_0807B070: .4byte 0x00000666 +_0807B074: + mov r0, sb + str r0, [r5] +_0807B078: + adds r6, r7, #0 + ldr r0, _0807B09C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r6, r0 + bge _0807B088 + b _0807ACA2 +_0807B088: + ldr r0, [sp, #0xc] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807B09C: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc b/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc new file mode 100644 index 0000000000..0af0925533 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc @@ -0,0 +1,1160 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + str r0, [sp] + str r1, [sp, #4] + str r2, [sp, #8] + adds r7, r3, #0 + movs r0, #0 + mov sb, r0 + movs r1, #0 + str r1, [sp, #0xc] + movs r6, #0 + ldr r4, _0807B468 @ =gPartner + ldr r5, _0807B46C @ =gPlayer + movs r2, #4 + mov sl, r2 +BumperCheckCollAndPosC3_loop: @ 0x0807B45A + cmp r6, #0 + beq _0807B470 + ldr r0, [r4] + mov r8, r0 + ldr r1, _0807B46C @ =gPlayer + mov ip, r1 + b _0807B478 + .align 2, 0 +_0807B468: .4byte gPartner +_0807B46C: .4byte gPlayer +_0807B470: + ldr r2, [r5] + mov r8, r2 + ldr r0, _0807B50C @ =gPlayer + mov ip, r0 +_0807B478: + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + lsls r0, r7, #0x10 + asrs r2, r0, #0x10 + mov r3, ip + cmp r6, #0 + beq _0807B48A + ldr r3, _0807B510 @ =gPartner +_0807B48A: + ldr r0, [sp, #4] + bl Coll_Player_Entity_Intersection + adds r2, r6, #1 + str r2, [sp, #0x10] + cmp r0, #0 + bne _0807B49C + bl _0807BC64 +_0807B49C: + ldr r0, _0807B514 @ =gGameMode + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #3 + beq _0807B4AA + cmp r1, #5 + bne _0807B4FA +_0807B4AA: + movs r1, #0 + ldr r2, _0807B518 @ =gMultiplayerPlayerTasks + ldr r0, [r2] + mov ip, r0 + adds r0, r6, #1 + str r0, [sp, #0x10] + mov r0, ip + cmp r0, #0 + beq _0807B4FA + mov ip, r2 +_0807B4BE: + ldr r0, _0807B51C @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r1, r0 + beq _0807B4E6 + lsls r0, r1, #2 + add r0, ip + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r0, r0, r2 + ldr r0, [r0, #0x5c] + mov r2, sl + ands r0, r2 + cmp r0, #0 + beq _0807B4E6 + movs r0, #1 + str r0, [sp, #0xc] +_0807B4E6: + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bhi _0807B4FA + lsls r0, r1, #2 + add r0, ip + ldr r0, [r0] + cmp r0, #0 + bne _0807B4BE +_0807B4FA: + cmp r6, #0 + beq _0807B520 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807B52C + b _0807B534 + .align 2, 0 +_0807B50C: .4byte gPlayer +_0807B510: .4byte gPartner +_0807B514: .4byte gGameMode +_0807B518: .4byte gMultiplayerPlayerTasks +_0807B51C: .4byte 0x04000128 +_0807B520: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0807B534 +_0807B52C: + ldr r1, [sp, #0xc] + cmp r1, #0 + bne _0807B534 + b _0807BC64 +_0807B534: + ldr r2, [sp, #4] + ldr r1, [r2, #0x10] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0807B544 + b _0807B8C2 +_0807B544: + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + cmp r1, #0 + bne _0807B550 + b _0807B70A +_0807B550: + mov r1, r8 + asrs r0, r1, #8 + ldr r2, [sp, #8] + subs r0, r2, r0 + movs r1, #0x41 + subs r1, r1, r0 + cmp r6, #0 + beq _0807B56C + ldr r0, [r4, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + blt _0807B578 + b _0807BC64 +_0807B56C: + ldr r0, [r5, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + blt _0807B578 + b _0807BC64 +_0807B578: + cmp r6, #0 + beq _0807B584 + ldr r1, _0807B580 @ =gPartner + 0x59 + b _0807B586 + .align 2, 0 +_0807B580: .4byte gPartner + 0x59 +_0807B584: + ldr r1, _0807B5A4 @ =gPlayer + 0x59 +_0807B586: + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r2, _0807B5A8 @ =gPlayer + mov ip, r2 + cmp r0, #1 + beq _0807B5BA + cmp r6, #0 + beq _0807B5B0 + ldr r1, _0807B5AC @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #2 + beq _0807B5BA + b _0807B618 + .align 2, 0 +_0807B5A4: .4byte gPlayer + 0x59 +_0807B5A8: .4byte gPlayer +_0807B5AC: .4byte gPartner + 0x59 +_0807B5B0: + ldr r2, _0807B5CC @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0807B618 +_0807B5BA: + cmp r6, #0 + beq _0807B5D4 + ldr r1, _0807B5D0 @ =gPartner + 0x3D + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0807B5E2 + b _0807B618 + .align 2, 0 +_0807B5CC: .4byte gPlayer + 0x59 +_0807B5D0: .4byte gPartner + 0x3D +_0807B5D4: + mov r0, ip + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807B618 +_0807B5E2: + ldr r0, _0807B600 @ =gPlayer + cmp r6, #0 + beq _0807B5EA + ldr r0, _0807B604 @ =gPartner +_0807B5EA: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _0807B60C + movs r0, #5 + ldr r2, _0807B608 @ =gPartner + 0x40 + strb r0, [r2] + ldr r0, _0807B600 @ =gPlayer + mov ip, r0 + b _0807B616 + .align 2, 0 +_0807B600: .4byte gPlayer +_0807B604: .4byte gPartner +_0807B608: .4byte gPartner + 0x40 +_0807B60C: + movs r0, #5 + ldr r1, _0807B62C @ =gPlayer + 0x40 + strb r0, [r1] + ldr r2, _0807B630 @ =gPlayer + mov ip, r2 +_0807B616: + ldr r3, _0807B634 @ =gGameMode +_0807B618: + ldrb r0, [r3] + cmp r0, #3 + beq _0807B622 + cmp r0, #5 + bne _0807B63E +_0807B622: + cmp r6, #0 + beq _0807B638 + movs r0, #0x1e + strh r0, [r4, #0x1c] + b _0807B63E + .align 2, 0 +_0807B62C: .4byte gPlayer + 0x40 +_0807B630: .4byte gPlayer +_0807B634: .4byte gGameMode +_0807B638: + movs r0, #0x1e + mov r1, ip + strh r0, [r1, #0x1c] +_0807B63E: + cmp r6, #0 + beq _0807B64E + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807B658 +_0807B64E: + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807B658: + cmp r6, #0 + beq _0807B666 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _0807B66E +_0807B666: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_0807B66E: + cmp r6, #0 + beq _0807B680 + ldr r0, [r4, #0x10] + ldr r1, _0807B67C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + b _0807B688 + .align 2, 0 +_0807B67C: .4byte 0xFFFFFEFF +_0807B680: + ldr r0, [r5, #0x10] + ldr r1, _0807B698 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] +_0807B688: + cmp r6, #0 + beq _0807B69C + ldr r0, [r4, #0x10] + mov r2, sl + orrs r0, r2 + str r0, [r4, #0x10] + b _0807B6A4 + .align 2, 0 +_0807B698: .4byte 0xFFFFFEFF +_0807B69C: + ldr r0, [r5, #0x10] + mov r1, sl + orrs r0, r1 + str r0, [r5, #0x10] +_0807B6A4: + cmp r6, #0 + beq _0807B6B4 + ldr r0, [r4, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807B6BE +_0807B6B4: + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807B6BE: + mov r1, ip + cmp r6, #0 + beq _0807B6C6 + ldr r1, _0807B6E0 @ =gPartner +_0807B6C6: + movs r0, #6 + strb r0, [r1, #0xe] + mov r1, ip + cmp r6, #0 + beq _0807B6D2 + ldr r1, _0807B6E0 @ =gPartner +_0807B6D2: + movs r0, #9 + strb r0, [r1, #0xf] + cmp r6, #0 + beq _0807B6E8 + ldr r2, _0807B6E4 @ =0xFFFFFB50 + strh r2, [r4, #8] + b _0807B6EE + .align 2, 0 +_0807B6E0: .4byte gPartner +_0807B6E4: .4byte 0xFFFFFB50 +_0807B6E8: + ldr r1, _0807B6FC @ =0xFFFFFB50 + mov r0, ip + strh r1, [r0, #8] +_0807B6EE: + cmp r6, #0 + beq _0807B700 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r4, #0xa] + b _0807BC52 + .align 2, 0 +_0807B6FC: .4byte 0xFFFFFB50 +_0807B700: + movs r0, #0x96 + lsls r0, r0, #3 + mov r2, ip + strh r0, [r2, #0xa] + b _0807BC52 +_0807B70A: + mov r1, r8 + asrs r0, r1, #8 + ldr r2, [sp, #8] + subs r0, r0, r2 + movs r1, #0x41 + subs r1, r1, r0 + cmp r6, #0 + beq _0807B726 + ldr r0, [r4, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + blt _0807B732 + b _0807BC64 +_0807B726: + ldr r0, [r5, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + blt _0807B732 + b _0807BC64 +_0807B732: + cmp r6, #0 + beq _0807B740 + ldr r1, _0807B73C @ =gPartner + 0x59 + b _0807B742 + .align 2, 0 +_0807B73C: .4byte gPartner + 0x59 +_0807B740: + ldr r1, _0807B760 @ =gPlayer + 0x59 +_0807B742: + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r2, _0807B764 @ =gPlayer + mov ip, r2 + cmp r0, #1 + beq _0807B776 + cmp r6, #0 + beq _0807B76C + ldr r1, _0807B768 @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #2 + beq _0807B776 + b _0807B7D4 + .align 2, 0 +_0807B760: .4byte gPlayer + 0x59 +_0807B764: .4byte gPlayer +_0807B768: .4byte gPartner + 0x59 +_0807B76C: + ldr r2, _0807B788 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0807B7D4 +_0807B776: + cmp r6, #0 + beq _0807B790 + ldr r1, _0807B78C @ =gPartner + 0x3D + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0807B79E + b _0807B7D4 + .align 2, 0 +_0807B788: .4byte gPlayer + 0x59 +_0807B78C: .4byte gPartner + 0x3D +_0807B790: + mov r0, ip + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807B7D4 +_0807B79E: + ldr r0, _0807B7BC @ =gPlayer + cmp r6, #0 + beq _0807B7A6 + ldr r0, _0807B7C0 @ =gPartner +_0807B7A6: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _0807B7C8 + movs r0, #5 + ldr r2, _0807B7C4 @ =gPartner + 0x40 + strb r0, [r2] + ldr r0, _0807B7BC @ =gPlayer + mov ip, r0 + b _0807B7D2 + .align 2, 0 +_0807B7BC: .4byte gPlayer +_0807B7C0: .4byte gPartner +_0807B7C4: .4byte gPartner + 0x40 +_0807B7C8: + movs r0, #5 + ldr r1, _0807B7E8 @ =gPlayer + 0x40 + strb r0, [r1] + ldr r2, _0807B7EC @ =gPlayer + mov ip, r2 +_0807B7D2: + ldr r3, _0807B7F0 @ =gGameMode +_0807B7D4: + ldrb r0, [r3] + cmp r0, #3 + beq _0807B7DE + cmp r0, #5 + bne _0807B7FA +_0807B7DE: + cmp r6, #0 + beq _0807B7F4 + movs r0, #0x1e + strh r0, [r4, #0x1c] + b _0807B7FA + .align 2, 0 +_0807B7E8: .4byte gPlayer + 0x40 +_0807B7EC: .4byte gPlayer +_0807B7F0: .4byte gGameMode +_0807B7F4: + movs r0, #0x1e + mov r1, ip + strh r0, [r1, #0x1c] +_0807B7FA: + cmp r6, #0 + beq _0807B80A + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807B814 +_0807B80A: + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807B814: + cmp r6, #0 + beq _0807B822 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _0807B82A +_0807B822: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_0807B82A: + cmp r6, #0 + beq _0807B83C + ldr r0, [r4, #0x10] + ldr r1, _0807B838 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + b _0807B844 + .align 2, 0 +_0807B838: .4byte 0xFFFFFEFF +_0807B83C: + ldr r0, [r5, #0x10] + ldr r1, _0807B854 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] +_0807B844: + cmp r6, #0 + beq _0807B858 + ldr r0, [r4, #0x10] + mov r2, sl + orrs r0, r2 + str r0, [r4, #0x10] + b _0807B860 + .align 2, 0 +_0807B854: .4byte 0xFFFFFEFF +_0807B858: + ldr r0, [r5, #0x10] + mov r1, sl + orrs r0, r1 + str r0, [r5, #0x10] +_0807B860: + cmp r6, #0 + beq _0807B870 + ldr r0, [r4, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807B87A +_0807B870: + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807B87A: + mov r1, ip + cmp r6, #0 + beq _0807B882 + ldr r1, _0807B8A0 @ =gPartner +_0807B882: + movs r0, #6 + strb r0, [r1, #0xe] + mov r1, ip + cmp r6, #0 + beq _0807B88E + ldr r1, _0807B8A0 @ =gPartner +_0807B88E: + movs r0, #9 + strb r0, [r1, #0xf] + cmp r6, #0 + beq _0807B8A4 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r4, #8] + b _0807B8AC + .align 2, 0 +_0807B8A0: .4byte gPartner +_0807B8A4: + movs r0, #0x96 + lsls r0, r0, #3 + mov r2, ip + strh r0, [r2, #8] +_0807B8AC: + cmp r6, #0 + beq _0807B8B8 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r4, #0xa] + b _0807BA82 +_0807B8B8: + movs r0, #0x96 + lsls r0, r0, #3 + mov r1, ip + strh r0, [r1, #0xa] + b _0807BA82 +_0807B8C2: + movs r0, #0x80 + lsls r0, r0, #3 + ands r1, r0 + cmp r1, #0 + bne _0807B8CE + b _0807BA9C +_0807B8CE: + mov r1, r8 + asrs r0, r1, #8 + ldr r2, [sp, #8] + subs r0, r2, r0 + adds r1, r0, #0 + subs r1, #0x3c + cmp r6, #0 + beq _0807B8EA + ldr r0, [r4, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + bgt _0807B8F6 + b _0807BC64 +_0807B8EA: + ldr r0, [r5, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + bgt _0807B8F6 + b _0807BC64 +_0807B8F6: + cmp r6, #0 + beq _0807B904 + ldr r1, _0807B900 @ =gPartner + 0x59 + b _0807B906 + .align 2, 0 +_0807B900: .4byte gPartner + 0x59 +_0807B904: + ldr r1, _0807B924 @ =gPlayer + 0x59 +_0807B906: + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r2, _0807B928 @ =gPlayer + mov ip, r2 + cmp r0, #1 + beq _0807B93A + cmp r6, #0 + beq _0807B930 + ldr r1, _0807B92C @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #2 + beq _0807B93A + b _0807B998 + .align 2, 0 +_0807B924: .4byte gPlayer + 0x59 +_0807B928: .4byte gPlayer +_0807B92C: .4byte gPartner + 0x59 +_0807B930: + ldr r2, _0807B94C @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0807B998 +_0807B93A: + cmp r6, #0 + beq _0807B954 + ldr r1, _0807B950 @ =gPartner + 0x3D + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0807B962 + b _0807B998 + .align 2, 0 +_0807B94C: .4byte gPlayer + 0x59 +_0807B950: .4byte gPartner + 0x3D +_0807B954: + mov r0, ip + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807B998 +_0807B962: + ldr r0, _0807B980 @ =gPlayer + cmp r6, #0 + beq _0807B96A + ldr r0, _0807B984 @ =gPartner +_0807B96A: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _0807B98C + movs r0, #5 + ldr r2, _0807B988 @ =gPartner + 0x40 + strb r0, [r2] + ldr r0, _0807B980 @ =gPlayer + mov ip, r0 + b _0807B996 + .align 2, 0 +_0807B980: .4byte gPlayer +_0807B984: .4byte gPartner +_0807B988: .4byte gPartner + 0x40 +_0807B98C: + movs r0, #5 + ldr r1, _0807B9AC @ =gPlayer + 0x40 + strb r0, [r1] + ldr r2, _0807B9B0 @ =gPlayer + mov ip, r2 +_0807B996: + ldr r3, _0807B9B4 @ =gGameMode +_0807B998: + ldrb r0, [r3] + cmp r0, #3 + beq _0807B9A2 + cmp r0, #5 + bne _0807B9BE +_0807B9A2: + cmp r6, #0 + beq _0807B9B8 + movs r0, #0x1e + strh r0, [r4, #0x1c] + b _0807B9BE + .align 2, 0 +_0807B9AC: .4byte gPlayer + 0x40 +_0807B9B0: .4byte gPlayer +_0807B9B4: .4byte gGameMode +_0807B9B8: + movs r0, #0x1e + mov r1, ip + strh r0, [r1, #0x1c] +_0807B9BE: + cmp r6, #0 + beq _0807B9CE + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807B9D8 +_0807B9CE: + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807B9D8: + cmp r6, #0 + beq _0807B9E6 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _0807B9EE +_0807B9E6: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_0807B9EE: + cmp r6, #0 + beq _0807BA00 + ldr r0, [r4, #0x10] + ldr r1, _0807B9FC @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + b _0807BA08 + .align 2, 0 +_0807B9FC: .4byte 0xFFFFFEFF +_0807BA00: + ldr r0, [r5, #0x10] + ldr r1, _0807BA18 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] +_0807BA08: + cmp r6, #0 + beq _0807BA1C + ldr r0, [r4, #0x10] + mov r2, sl + orrs r0, r2 + str r0, [r4, #0x10] + b _0807BA24 + .align 2, 0 +_0807BA18: .4byte 0xFFFFFEFF +_0807BA1C: + ldr r0, [r5, #0x10] + mov r1, sl + orrs r0, r1 + str r0, [r5, #0x10] +_0807BA24: + cmp r6, #0 + beq _0807BA34 + ldr r0, [r4, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807BA3E +_0807BA34: + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807BA3E: + mov r1, ip + cmp r6, #0 + beq _0807BA46 + ldr r1, _0807BA60 @ =gPartner +_0807BA46: + movs r0, #6 + strb r0, [r1, #0xe] + mov r1, ip + cmp r6, #0 + beq _0807BA52 + ldr r1, _0807BA60 @ =gPartner +_0807BA52: + movs r0, #9 + strb r0, [r1, #0xf] + cmp r6, #0 + beq _0807BA68 + ldr r2, _0807BA64 @ =0xFFFFFB50 + strh r2, [r4, #8] + b _0807BA6E + .align 2, 0 +_0807BA60: .4byte gPartner +_0807BA64: .4byte 0xFFFFFB50 +_0807BA68: + ldr r1, _0807BA78 @ =0xFFFFFB50 + mov r0, ip + strh r1, [r0, #8] +_0807BA6E: + cmp r6, #0 + beq _0807BA7C + ldr r2, _0807BA78 @ =0xFFFFFB50 + strh r2, [r4, #0xa] + b _0807BA82 + .align 2, 0 +_0807BA78: .4byte 0xFFFFFB50 +_0807BA7C: + ldr r1, _0807BA98 @ =0xFFFFFB50 + mov r0, ip + strh r1, [r0, #0xa] +_0807BA82: + movs r0, #0xb8 + bl m4aSongNumStart + ldr r1, [sp] + adds r1, #0x4c + movs r0, #0 + strb r0, [r1] + movs r2, #1 + mov sb, r2 + b _0807BC64 + .align 2, 0 +_0807BA98: .4byte 0xFFFFFB50 +_0807BA9C: + mov r1, r8 + asrs r0, r1, #8 + ldr r2, [sp, #8] + subs r0, r0, r2 + adds r1, r0, #0 + subs r1, #0x3c + cmp r6, #0 + beq _0807BAB8 + ldr r0, [r4, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + bgt _0807BAC4 + b _0807BC64 +_0807BAB8: + ldr r0, [r5, #4] + asrs r0, r0, #8 + subs r0, r0, r7 + cmp r0, r1 + bgt _0807BAC4 + b _0807BC64 +_0807BAC4: + cmp r6, #0 + beq _0807BAD0 + ldr r1, _0807BACC @ =gPartner + 0x59 + b _0807BAD2 + .align 2, 0 +_0807BACC: .4byte gPartner + 0x59 +_0807BAD0: + ldr r1, _0807BAF0 @ =gPlayer + 0x59 +_0807BAD2: + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r2, _0807BAF4 @ =gPlayer + mov ip, r2 + cmp r0, #1 + beq _0807BB06 + cmp r6, #0 + beq _0807BAFC + ldr r1, _0807BAF8 @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #2 + beq _0807BB06 + b _0807BB64 + .align 2, 0 +_0807BAF0: .4byte gPlayer + 0x59 +_0807BAF4: .4byte gPlayer +_0807BAF8: .4byte gPartner + 0x59 +_0807BAFC: + ldr r2, _0807BB18 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0807BB64 +_0807BB06: + cmp r6, #0 + beq _0807BB20 + ldr r1, _0807BB1C @ =gPartner + 0x3D + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0807BB2E + b _0807BB64 + .align 2, 0 +_0807BB18: .4byte gPlayer + 0x59 +_0807BB1C: .4byte gPartner + 0x3D +_0807BB20: + mov r0, ip + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807BB64 +_0807BB2E: + ldr r0, _0807BB4C @ =gPlayer + cmp r6, #0 + beq _0807BB36 + ldr r0, _0807BB50 @ =gPartner +_0807BB36: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _0807BB58 + movs r0, #5 + ldr r2, _0807BB54 @ =gPartner + 0x40 + strb r0, [r2] + ldr r0, _0807BB4C @ =gPlayer + mov ip, r0 + b _0807BB62 + .align 2, 0 +_0807BB4C: .4byte gPlayer +_0807BB50: .4byte gPartner +_0807BB54: .4byte gPartner + 0x40 +_0807BB58: + movs r0, #5 + ldr r1, _0807BB78 @ =gPlayer + 0x40 + strb r0, [r1] + ldr r2, _0807BB7C @ =gPlayer + mov ip, r2 +_0807BB62: + ldr r3, _0807BB80 @ =gGameMode +_0807BB64: + ldrb r0, [r3] + cmp r0, #3 + beq _0807BB6E + cmp r0, #5 + bne _0807BB8A +_0807BB6E: + cmp r6, #0 + beq _0807BB84 + movs r0, #0x1e + strh r0, [r4, #0x1c] + b _0807BB8A + .align 2, 0 +_0807BB78: .4byte gPlayer + 0x40 +_0807BB7C: .4byte gPlayer +_0807BB80: .4byte gGameMode +_0807BB84: + movs r0, #0x1e + mov r1, ip + strh r0, [r1, #0x1c] +_0807BB8A: + cmp r6, #0 + beq _0807BB9A + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807BBA4 +_0807BB9A: + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807BBA4: + cmp r6, #0 + beq _0807BBB2 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _0807BBBA +_0807BBB2: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_0807BBBA: + cmp r6, #0 + beq _0807BBCC + ldr r0, [r4, #0x10] + ldr r1, _0807BBC8 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + b _0807BBD4 + .align 2, 0 +_0807BBC8: .4byte 0xFFFFFEFF +_0807BBCC: + ldr r0, [r5, #0x10] + ldr r1, _0807BBE4 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] +_0807BBD4: + cmp r6, #0 + beq _0807BBE8 + ldr r0, [r4, #0x10] + mov r2, sl + orrs r0, r2 + str r0, [r4, #0x10] + b _0807BBF0 + .align 2, 0 +_0807BBE4: .4byte 0xFFFFFEFF +_0807BBE8: + ldr r0, [r5, #0x10] + mov r1, sl + orrs r0, r1 + str r0, [r5, #0x10] +_0807BBF0: + cmp r6, #0 + beq _0807BC00 + ldr r0, [r4, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0807BC0A +_0807BC00: + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] +_0807BC0A: + mov r1, ip + cmp r6, #0 + beq _0807BC12 + ldr r1, _0807BC30 @ =gPartner +_0807BC12: + movs r0, #6 + strb r0, [r1, #0xe] + mov r1, ip + cmp r6, #0 + beq _0807BC1E + ldr r1, _0807BC30 @ =gPartner +_0807BC1E: + movs r0, #9 + strb r0, [r1, #0xf] + cmp r6, #0 + beq _0807BC34 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r4, #8] + b _0807BC3C + .align 2, 0 +_0807BC30: .4byte gPartner +_0807BC34: + movs r0, #0x96 + lsls r0, r0, #3 + mov r2, ip + strh r0, [r2, #8] +_0807BC3C: + cmp r6, #0 + beq _0807BC4C + ldr r0, _0807BC48 @ =0xFFFFFB50 + strh r0, [r4, #0xa] + b _0807BC52 + .align 2, 0 +_0807BC48: .4byte 0xFFFFFB50 +_0807BC4C: + ldr r2, _0807BC70 @ =0xFFFFFB50 + mov r1, ip + strh r2, [r1, #0xa] +_0807BC52: + movs r0, #0xb8 + bl m4aSongNumStart + ldr r1, [sp] + adds r1, #0x4c + movs r0, #0 + strb r0, [r1] + movs r0, #1 + mov sb, r0 +_0807BC64: + cmp r6, #0 + beq _0807BC74 + mov r1, r8 + str r1, [r4] + b _0807BC78 + .align 2, 0 +_0807BC70: .4byte 0xFFFFFB50 +_0807BC74: + mov r2, r8 + str r2, [r5] +_0807BC78: + ldr r6, [sp, #0x10] + ldr r0, _0807BC9C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r6, r0 + bge _0807BC8A + bl BumperCheckCollAndPosC3_loop +_0807BC8A: + mov r0, sb + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807BC9C: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc b/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc new file mode 100644 index 0000000000..7f78c07856 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc @@ -0,0 +1,640 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r4, _080857CC @ =gCurTask + ldr r0, [r4] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r1, r1, r0 + mov sb, r1 @ sb = carousel + ldr r1, _080857D0 @ =0x0300000C + adds r1, r0, r1 + str r1, [sp] @ sp00 = s1 + ldr r2, _080857D4 @ =0x0300003C + adds r2, r0, r2 + str r2, [sp, #4] @ sp04 = s2 + mov r3, sb + ldr r6, [r3] @ r6 = me + ldrb r2, [r3, #8] + lsls r2, r2, #3 + ldrh r0, [r3, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 @ r2 = worldX << 16 + ldrb r1, [r6, #1] + lsls r1, r1, #3 + ldrh r0, [r3, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 @ r1 = worldY << 16 + ldr r5, _080857D8 @ =gCamera + ldrh r3, [r5] + lsrs r7, r2, #0x10 + mov r8, r7 @ r8 = worldX + asrs r2, r2, #0x10 + subs r3, r2, r3 + ldr r0, [sp] + strh r3, [r0, #0x16] @ s->x = worldX - gCamera.x; + ldrh r0, [r5, #2] + lsrs r7, r1, #0x10 + str r7, [sp, #8] @ sp08 = worldY + asrs r1, r1, #0x10 + subs r0, r1, r0 + ldr r7, [sp] @ r7 = sp00 = s1 + strh r0, [r7, #0x18] @ s->y = worldY - gCamera.y; + ldr r0, [sp, #4] @ r0 = sp04 = s2 + strh r3, [r0, #0x16] + ldrh r0, [r7, #0x18] + ldr r3, [sp, #4] @ r0 = sp04 = s2 + strh r0, [r3, #0x18] + movs r7, #0 + ldrsh r3, [r5, r7] + movs r7, #0xb8 + lsls r7, r7, #1 + adds r0, r3, r7 + cmp r2, r0 + bgt _08085796 + adds r0, r3, #0 + subs r0, #0x80 + cmp r2, r0 + blt _08085796 + movs r0, #2 + ldrsh r3, [r5, r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r0, r3, r2 + cmp r1, r0 + bgt _08085796 + adds r0, r3, #0 + subs r0, #0x80 + cmp r1, r0 + bge _080857DC +_08085796: + ldr r3, [sp] @ r3 = sp00 = s1 + ldrh r0, [r3, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _080857BC + movs r7, #0x18 + ldrsh r0, [r3, r7] + adds r0, #0x80 + cmp r0, #0 + blt _080857BC + movs r0, #0x18 + ldrsh r1, [r3, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _080857DC +_080857BC: + mov r1, sb + ldrb r0, [r1, #8] + strb r0, [r6] + ldr r0, [r4] + bl TaskDestroy + b _08085B94_return + .align 2, 0 +_080857CC: .4byte gCurTask +_080857D0: .4byte 0x0300000C +_080857D4: .4byte 0x0300003C +_080857D8: .4byte gCamera +_080857DC: + movs r5, #0 + mov r2, r8 + lsls r2, r2, #0x10 + mov sl, r2 @ sl = worldX << 16 + ldr r6, _080857F4 @ =gPartner + ldr r7, _080857F8 @ =gPlayer +_080857E8_loop: + cmp r5, #0 + bne _080857F0 + cmp r5, #0 + beq _080857FC +_080857F0: + ldr r0, [r6, #0x10] + b _080857FE + .align 2, 0 +_080857F4: .4byte gPartner +_080857F8: .4byte gPlayer +_080857FC: + ldr r0, [r7, #0x10] +_080857FE: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08085808 + b _08085B78_continue +_08085808: + cmp r5, #0 + beq _08085824 + ldr r3, _0808581C @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #2 + beq _08085832 + ldr r3, _08085820 @ =gPlayer + b _08085906 + .align 2, 0 +_0808581C: .4byte gPartner + 0x59 +_08085820: .4byte gPlayer +_08085824: + ldr r1, _08085840 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r3, _08085844 @ =gPlayer + cmp r0, #2 + beq _08085832 + b _08085906 +_08085832: + cmp r5, #0 + beq _0808584C + ldr r2, _08085848 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r2, r0] + b _08085852 + .align 2, 0 +_08085840: .4byte gPlayer + 0x59 +_08085844: .4byte gPlayer +_08085848: .4byte gPartner + 0x40 +_0808584C: + ldr r3, _08085864 @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r3, r0] +_08085852: + cmp r0, #0x46 + bne _08085858 + b _08085B78_continue +_08085858: + cmp r5, #0 + beq _0808586C + ldr r1, _08085868 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r1, r0] + b _08085872 + .align 2, 0 +_08085864: .4byte gPlayer + 0x40 +_08085868: .4byte gPartner + 0x40 +_0808586C: + ldr r2, _08085884 @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r2, r0] +_08085872: + cmp r0, #0x47 + bne _08085878 + b _08085B78_continue +_08085878: + cmp r5, #0 + beq _0808588C + ldr r3, _08085888 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r3, r0] + b _08085892 + .align 2, 0 +_08085884: .4byte gPlayer + 0x40 +_08085888: .4byte gPartner + 0x40 +_0808588C: + ldr r1, _080858A4 @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r1, r0] +_08085892: + cmp r0, #0x48 + bne _08085898 + b _08085B78_continue +_08085898: + cmp r5, #0 + beq _080858AC + ldr r2, _080858A8 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r2, r0] + b _080858B2 + .align 2, 0 +_080858A4: .4byte gPlayer + 0x40 +_080858A8: .4byte gPartner + 0x40 +_080858AC: + ldr r3, _080858C4 @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r3, r0] +_080858B2: + cmp r0, #0x49 + bne _080858B8 + b _08085B78_continue +_080858B8: + cmp r5, #0 + beq _080858CC + ldr r1, _080858C8 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r1, r0] + b _080858D2 + .align 2, 0 +_080858C4: .4byte gPlayer + 0x40 +_080858C8: .4byte gPartner + 0x40 +_080858CC: + ldr r2, _080858EC @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r2, r0] +_080858D2: + cmp r0, #0x4a + bne _080858D8 + b _08085B78_continue +_080858D8: + cmp r5, #0 + beq _080858F8 + ldr r3, _080858F0 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0x4b + bne _080858E8 + b _08085B78_continue +_080858E8: + ldr r3, _080858F4 @ =gPlayer + b _08085906 + .align 2, 0 +_080858EC: .4byte gPlayer + 0x40 +_080858F0: .4byte gPartner + 0x40 +_080858F4: .4byte gPlayer +_080858F8: + ldr r1, _08085934 @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r3, _08085938 @ =gPlayer + cmp r0, #0x4b + bne _08085906 + b _08085B78_continue +_08085906: + mov r2, sl @ r2 = sl = worldX << 16 + asrs r4, r2, #0x10 @ r4 = worldX + ldr r1, [sp, #8] @ r1 = sp08 = worldY + lsls r0, r1, #0x10 + asrs r2, r0, #0x10 @ r2 = worldY + mov r8, r0 @ r8 = worldY << 16 + cmp r5, #0 + beq _08085918 + ldr r3, _0808593C @ =gPartner +_08085918: + ldr r0, [sp] @ r0 = sp00 = s1 + adds r1, r4, #0 + bl Coll_Player_PlatformCrumbling + adds r1, r4, #0 + subs r1, #8 + cmp r5, #0 + beq _08085940 + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + ble _0808594A + b _08085B78_continue + .align 2, 0 +_08085934: .4byte gPlayer + 0x40 +_08085938: .4byte gPlayer +_0808593C: .4byte gPartner +_08085940: + ldr r0, [r7] + asrs r0, r0, #8 + cmp r1, r0 + ble _0808594A + b _08085B78_continue +_0808594A: + mov r2, sl @ r2 = sl = worldX << 16 + asrs r0, r2, #0x10 + adds r1, r0, #0 + adds r1, #8 + cmp r5, #0 + beq _08085960 + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808596A + b _08085B78_continue +_08085960: + ldr r0, [r7] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808596A + b _08085B78_continue +_0808596A: + mov r3, r8 @ r3 = r8 = worldY << 16 + asrs r0, r3, #0x10 + adds r1, r0, #0 + subs r1, #0x30 + cmp r5, #0 + beq _08085980 + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _0808598A + b _08085B78_continue +_08085980: + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _0808598A + b _08085B78_continue +_0808598A: + mov r1, r8 @ r1 = r8 = worldY << 16 + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0xc + cmp r5, #0 + beq _080859A0 + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _080859AA + b _08085B78_continue +_080859A0: + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _080859AA + b _08085B78_continue +_080859AA: + mov r2, sb @ r2 = sb = carousel + adds r2, #0x79 + movs r0, #1 + lsls r0, r5 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _080859C6 + movs r2, #8 + ldrsh r0, [r6, r2] + cmp r0, #0 + blt _080859CE + b _080859DE +_080859C6: + movs r3, #8 + ldrsh r0, [r7, r3] + cmp r0, #0 + bge _080859DE +_080859CE: + cmp r5, #0 + beq _080859D8 + ldrh r0, [r6, #8] + rsbs r0, r0, #0 + b _080859E8 +_080859D8: + ldrh r0, [r7, #8] + rsbs r0, r0, #0 + b _080859E8 +_080859DE: + cmp r5, #0 + beq _080859E6 + ldrh r0, [r6, #8] + b _080859E8 +_080859E6: + ldrh r0, [r7, #8] +_080859E8: + lsls r0, r0, #2 + mov r1, sb @ r1 = sb = carousel + adds r1, #0x6e + strh r0, [r1] + mov r0, sl @ r0 = sl = worldX << 16 + asrs r1, r0, #0x10 + cmp r5, #0 + beq _080859FC + ldr r0, [r6] + b _080859FE +_080859FC: + ldr r0, [r7] +_080859FE: + asrs r0, r0, #8 + subs r0, r0, r1 + adds r0, #0x30 + lsls r0, r0, #9 + movs r1, #0x60 + bl Div + cmp r0, #0 + bge _08085A40 + mov r2, sl @ r2 = sl = worldX << 16 + asrs r1, r2, #0x10 + cmp r5, #0 + beq _08085A1C + ldr r0, [r6] + b _08085A1E +_08085A1C: + ldr r0, [r7] +_08085A1E: + asrs r0, r0, #8 + subs r0, r0, r1 + adds r0, #0x30 + lsls r0, r0, #9 + movs r1, #0x60 + bl Div + movs r3, #0xc0 + lsls r3, r3, #2 + adds r1, r3, #0 + subs r1, r1, r0 + ldr r2, _08085A3C @ =0x000003FF + adds r0, r2, #0 + b _08085A66 + .align 2, 0 +_08085A3C: .4byte 0x000003FF +_08085A40: + mov r3, sl @ r3 = sl = worldX << 16 + asrs r1, r3, #0x10 + cmp r5, #0 + beq _08085A4C + ldr r0, [r6] + b _08085A4E +_08085A4C: + ldr r0, [r7] +_08085A4E: + asrs r0, r0, #8 + subs r0, r0, r1 + adds r0, #0x30 + lsls r0, r0, #9 + movs r1, #0x60 + bl Div + movs r1, #0xc0 + lsls r1, r1, #2 + adds r0, r0, r1 + ldr r2, _08085A84 @ =0x000003FF + adds r1, r2, #0 +_08085A66: + ands r1, r0 + mov r0, sb @ r0 = sb = carousel + adds r0, #0x6c + movs r2, #0 + strh r1, [r0] + mov r3, sb @ r3 = sb = carousel + str r2, [r3, #0x70] + adds r0, #0xa + strh r2, [r0] + subs r0, #2 + strh r2, [r0] + cmp r5, #0 + beq _08085A88 + strh r2, [r6, #8] + b _08085A8A + .align 2, 0 +_08085A84: .4byte 0x000003FF +_08085A88: + strh r5, [r7, #8] +_08085A8A: + ldr r3, _08085A9C @ =gPlayer + cmp r5, #0 + beq _08085AA0 + movs r1, #0xc + ldrsh r0, [r6, r1] + cmp r0, #0 + bgt _08085AA8 + b _08085AC2 + .align 2, 0 +_08085A9C: .4byte gPlayer +_08085AA0: + movs r2, #0xc + ldrsh r0, [r3, r2] + cmp r0, #0 + ble _08085AC2 +_08085AA8: + mov r1, sb @ r1 = sb = carousel + adds r1, #0x78 + movs r0, #1 + strb r0, [r1] + cmp r5, #0 + beq _08085ABC + movs r0, #0xf0 + lsls r0, r0, #3 + strh r0, [r6, #0xc] + b _08085ADC +_08085ABC: + movs r0, #0xf0 + lsls r0, r0, #3 + b _08085ADA +_08085AC2: + mov r0, sb @ r0 = sb = carousel + adds r0, #0x78 + movs r1, #0 + strb r1, [r0] + cmp r5, #0 + beq _08085AD8 + ldr r0, _08085AD4 @ =0x0000F880 + strh r0, [r6, #0xc] + b _08085ADC + .align 2, 0 +_08085AD4: .4byte 0x0000F880 +_08085AD8: + ldr r0, _08085AE8 @ =0x0000F880 +_08085ADA: + strh r0, [r3, #0xc] +_08085ADC: + cmp r5, #0 + beq _08085AEC + movs r2, #0 + strh r2, [r6, #0x38] + b _08085AEE + .align 2, 0 +_08085AE8: .4byte 0x0000F880 +_08085AEC: + strh r5, [r3, #0x38] +_08085AEE: + cmp r5, #0 + beq _08085AF8 + movs r0, #0 + strh r0, [r6, #0x3a] + b _08085AFA +_08085AF8: + strh r5, [r3, #0x3a] +_08085AFA: + adds r0, r3, #0 + cmp r5, #0 + beq _08085B02 + ldr r0, _08085B14 @ =gPartner +_08085B02: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _08085B1C + movs r0, #0x21 + ldr r1, _08085B18 @ =gPartner + 0x40 + strb r0, [r1] + b _08085B22 + .align 2, 0 +_08085B14: .4byte gPartner +_08085B18: .4byte gPartner + 0x40 +_08085B1C: + movs r0, #0x21 + ldr r2, _08085B34 @ =gPlayer + 0x40 + strb r0, [r2] +_08085B22: + cmp r5, #0 + beq _08085B38 + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r6, #0x10] + b _08085B42 + .align 2, 0 +_08085B34: .4byte gPlayer + 0x40 +_08085B38: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r7, #0x10] +_08085B42: + movs r0, #0xd1 + bl m4aSongNumStart + ldr r0, _08085B60 @ =gCurTask + ldr r1, [r0] + ldr r0, _08085B64 @ =Task_RidingCarousel + str r0, [r1, #8] + cmp r5, #0 + beq _08085B6C + ldr r3, _08085B68 @ =gPartner + 0x26 + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + b _08085B78_continue + .align 2, 0 +_08085B60: .4byte gCurTask +_08085B64: .4byte Task_RidingCarousel +_08085B68: .4byte gPartner + 0x26 +_08085B6C: + ldr r1, _08085BA4 @ =gPlayer + 0x26 + ldrb r0, [r1] + movs r1, #0x80 + orrs r0, r1 + ldr r2, _08085BA4 @ =gPlayer + 0x26 + strb r0, [r2] +_08085B78_continue: + adds r5, #1 + ldr r0, _08085BA8 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bge _08085B88 + b _080857E8_loop +_08085B88: + ldr r0, [sp] @ r0 = sp00 = s1 + bl DisplaySprite + ldr r0, [sp, #4] @ r0 = sp04 = s2 + bl DisplaySprite +_08085B94_return: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08085BA4: .4byte gPlayer + 0x26 +_08085BA8: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc b/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc new file mode 100644 index 0000000000..c913381682 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc @@ -0,0 +1,1155 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r0, _08085C44 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r1, r1, r0 + mov sb, r1 @ sb = carousel + ldr r1, _08085C48 @ =0x0300000C + adds r1, r0, r1 + str r1, [sp] @ sp00 = s1 + ldr r2, _08085C4C @ =0x0300003C + adds r2, r0, r2 + str r2, [sp, #4] @ sp04 = s2 + mov r3, sb + ldr r3, [r3] + str r3, [sp, #0x10] @ sp10 = me + mov r4, sb + ldrb r2, [r4, #8] + lsls r2, r2, #3 + ldrh r0, [r4, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #3 + ldrh r0, [r4, #6] + lsls r0, r0, #8 + adds r3, r3, r0 + lsls r3, r3, #0x10 + ldr r1, _08085C50 @ =gCamera + ldrh r0, [r1] + lsrs r4, r2, #0x10 + str r4, [sp, #8] @ sp08 = worldX + asrs r2, r2, #0x10 + subs r2, r2, r0 + ldr r0, [sp] @ r0 = sp00 = s1 + strh r2, [r0, #0x16] + ldrh r1, [r1, #2] + lsrs r4, r3, #0x10 + str r4, [sp, #0xc] @ sp0C = worldY + asrs r3, r3, #0x10 + subs r1, r3, r1 + mov r4, sb + ldr r0, [r4, #0x70] + lsrs r0, r0, #0xd + adds r1, r1, r0 + adds r1, #2 + ldr r0, [sp] @ r0 = sp00 = s1 + strh r1, [r0, #0x18] + ldr r1, [sp, #4] @ r1 = sp04 = s2 + strh r2, [r1, #0x16] + ldrh r0, [r0, #0x18] + adds r0, #2 + strh r0, [r1, #0x18] + movs r5, #0 + ldr r4, _08085C54 @ =gPartner + ldr r7, _08085C58 @ =gPlayer + str r3, [sp, #0x14] @ sp14 = worldY +_08085C2C_loop: + cmp r5, #0 + beq _08085C5C + ldr r1, [r4, #0x10] + movs r0, #0x80 + ands r1, r0 + ldr r2, [sp, #8] @ r2 = sp08 = worldX + lsls r2, r2, #0x10 + str r2, [sp, #0x18] @ sp18 = worldX << 16 + mov r3, sb + adds r3, #0x79 + str r3, [sp, #0x1c] @ sp1C = &carousel->unk79 + b _08085C6E + .align 2, 0 +_08085C44: .4byte gCurTask +_08085C48: .4byte 0x0300000C +_08085C4C: .4byte 0x0300003C +_08085C50: .4byte gCamera +_08085C54: .4byte gPartner +_08085C58: .4byte gPlayer +_08085C5C: + ldr r1, [r7, #0x10] + movs r0, #0x80 + ands r1, r0 + ldr r0, [sp, #8] @ r0 = sp08 = worldX + lsls r0, r0, #0x10 + str r0, [sp, #0x18] @ sp18 = worldX << 16 + mov r2, sb + adds r2, #0x79 + str r2, [sp, #0x1c] @ sp1C = &carousel->unk79 +_08085C6E: + cmp r1, #0 + bne _08085CAC + mov r1, sb + adds r1, #0x79 + ldrb r0, [r1] + asrs r0, r5 + movs r3, #1 + ands r0, r3 + ldr r2, [sp, #8] @ r2 = sp08 = worldX + lsls r2, r2, #0x10 + str r2, [sp, #0x18] @ sp18 = worldX << 16 + str r1, [sp, #0x1c] @ sp1C = &carousel->unk79 + cmp r0, #0 + beq _08085CBC + asrs r0, r2, #8 + cmp r5, #0 + beq _08085C94 + str r0, [r4] + b _08085C96 +_08085C94: + str r0, [r7] +_08085C96: + mov r3, sb + ldr r0, [r3, #0x70] + lsrs r0, r0, #0xd + ldr r1, [sp, #0x14] @ r1 = worldY + adds r0, r1, r0 + lsls r0, r0, #8 + cmp r5, #0 + beq _08085CAA + str r0, [r4, #4] + b _08085CAC +_08085CAA: + str r0, [r7, #4] +_08085CAC: + ldr r2, [sp, #0x1c] @ r2 = sp1C = &carousel->unk79 + ldrb r0, [r2] + asrs r0, r5 + movs r3, #1 + ands r0, r3 + cmp r0, #0 + beq _08085CBC + b _08085EE8_continue +_08085CBC: + mov r1, sb + ldr r0, [r1, #0x70] + lsls r0, r0, #3 + ldr r2, [sp, #0x18] @ r2 = sp18 = worldX << 16 + asrs r1, r2, #0x10 @ r1 = worldX + lsrs r3, r0, #0x10 + mov sl, r3 + asrs r0, r0, #0x10 + ldr r2, [sp, #0x14] @ r2 = worldY + adds r6, r2, r0 @ r6 = worldY + + lsls r0, r6, #0x10 + asrs r2, r0, #0x10 + ldr r3, _08085D08 @ =gPlayer + ldr r0, [sp, #0xc] @ r0 = sp0C = worldY + lsls r0, r0, #0x10 + mov r8, r0 @ r8 = worldY << 16 + cmp r5, #0 + beq _08085CE2 + ldr r3, _08085D0C @ =gPartner +_08085CE2: + ldr r0, [sp] @ r0 = sp00 = s1 + bl Coll_Player_PlatformCrumbling + movs r1, #8 + ands r1, r0 + cmp r1, #0 + beq _08085D14 + ldr r1, [sp, #0x1c] @ r1 = sp1C = &carousel->unk79 + ldrb r0, [r1] + asrs r0, r5 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + bne _08085D14 + lsls r0, r6, #8 + cmp r5, #0 + beq _08085D10 + str r0, [r4, #4] + b _08085D6A + .align 2, 0 +_08085D08: .4byte gPlayer +_08085D0C: .4byte gPartner +_08085D10: + str r0, [r7, #4] + b _08085D6A +_08085D14: + ldr r3, [sp, #0x18] @ r3 = sp18 = worldX << 16 + asrs r6, r3, #0x10 + mov r0, r8 + asrs r1, r0, #0x10 + mov r2, sl + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + lsls r1, r1, #0x10 + asrs r2, r1, #0x10 + ldr r3, _08085D58 @ =gPlayer + cmp r5, #0 + beq _08085D30 + ldr r3, _08085D5C @ =gPartner +_08085D30: + ldr r0, [sp] @ r0 = sp00 = s1 + adds r1, r6, #0 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _08085D6A + ldr r3, [sp, #0x1c] @ r3 = sp1C = &carousel->unk79 + ldrb r0, [r3] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08085D6A + cmp r5, #0 + beq _08085D60 + ldr r0, [r4, #0x10] + subs r1, #0xa + ands r0, r1 + str r0, [r4, #0x10] + b _08085D6A + .align 2, 0 +_08085D58: .4byte gPlayer +_08085D5C: .4byte gPartner +_08085D60: + ldr r0, [r7, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r7, #0x10] +_08085D6A: + ldr r2, [sp, #0x18] @ r2 = sp18 = worldX << 16 + asrs r0, r2, #0x10 + adds r1, r0, #0 + subs r1, #8 + cmp r5, #0 + beq _08085D80 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + ble _08085D8A + b _08085EE8_continue +_08085D80: + ldr r0, [r7] + asrs r0, r0, #8 + cmp r1, r0 + ble _08085D8A + b _08085EE8_continue +_08085D8A: + ldr r3, [sp, #0x18] @ r3 = sp18 = worldX << 16 + asrs r0, r3, #0x10 + adds r1, r0, #0 + adds r1, #8 + cmp r5, #0 + beq _08085DA0 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08085DAA + b _08085EE8_continue +_08085DA0: + ldr r0, [r7] + asrs r0, r0, #8 + cmp r1, r0 + bge _08085DAA + b _08085EE8_continue +_08085DAA: + mov r1, r8 + asrs r0, r1, #0x10 + mov r3, sl + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + adds r0, r0, r1 + adds r3, r0, #0 + subs r3, #0x30 + cmp r5, #0 + beq _08085DC8 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r3, r0 + ble _08085DD2 + b _08085EE8_continue +_08085DC8: + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r3, r0 + ble _08085DD2 + b _08085EE8_continue +_08085DD2: + mov r1, r8 + asrs r0, r1, #0x10 + asrs r1, r2, #0x10 + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0xc + cmp r5, #0 + beq _08085DEC + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08085DF6 + b _08085EE8_continue +_08085DEC: + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08085DF6 + b _08085EE8_continue +_08085DF6: + mov r2, sb + ldr r1, [r2, #0x70] + ldr r0, _08085E18 @ =0x003C2A57 + cmp r1, r0 + bhi _08085EE8_continue + movs r1, #1 + lsls r1, r5 + ldr r3, [sp, #0x1c] @ r3 = sp1C = &carousel->unk79 + ldrb r0, [r3] + orrs r1, r0 + movs r0, #0 + strb r1, [r3] + cmp r5, #0 + beq _08085E1C + strh r0, [r4, #8] + b _08085E1E + .align 2, 0 +_08085E18: .4byte 0x003C2A57 +_08085E1C: + strh r5, [r7, #8] +_08085E1E: + ldr r2, _08085E30 @ =gPlayer + cmp r5, #0 + beq _08085E34 + movs r1, #0xc + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _08085E3C + b _08085E4E + .align 2, 0 +_08085E30: .4byte gPlayer +_08085E34: + movs r3, #0xc + ldrsh r0, [r2, r3] + cmp r0, #0 + ble _08085E4E +_08085E3C: + cmp r5, #0 + beq _08085E48 + movs r0, #0xf0 + lsls r0, r0, #3 + strh r0, [r4, #0xc] + b _08085E60 +_08085E48: + movs r0, #0xf0 + lsls r0, r0, #3 + b _08085E5E +_08085E4E: + cmp r5, #0 + beq _08085E5C + ldr r0, _08085E58 @ =0x0000F880 + strh r0, [r4, #0xc] + b _08085E60 + .align 2, 0 +_08085E58: .4byte 0x0000F880 +_08085E5C: + ldr r0, _08085E6C @ =0x0000F880 +_08085E5E: + strh r0, [r2, #0xc] +_08085E60: + cmp r5, #0 + beq _08085E70 + movs r0, #0 + strh r0, [r4, #0x38] + b _08085E72 + .align 2, 0 +_08085E6C: .4byte 0x0000F880 +_08085E70: + strh r5, [r2, #0x38] +_08085E72: + cmp r5, #0 + beq _08085E7C + movs r0, #0 + strh r0, [r4, #0x3a] + b _08085E7E +_08085E7C: + strh r5, [r2, #0x3a] +_08085E7E: + adds r0, r2, #0 + cmp r5, #0 + beq _08085E86 + ldr r0, _08085E98 @ =gPartner +_08085E86: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _08085EA0 + movs r0, #0x21 + ldr r1, _08085E9C @ =gPartner + 0x40 + strb r0, [r1] + b _08085EA6 + .align 2, 0 +_08085E98: .4byte gPartner +_08085E9C: .4byte gPartner + 0x40 +_08085EA0: + movs r0, #0x21 + ldr r2, _08085EB8 @ =gPlayer + 0x40 + strb r0, [r2] +_08085EA6: + cmp r5, #0 + beq _08085EBC + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + b _08085EC6 + .align 2, 0 +_08085EB8: .4byte gPlayer + 0x40 +_08085EBC: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r7, #0x10] +_08085EC6: + cmp r5, #0 + beq _08085EDC + ldr r3, _08085ED8 @ =gPartner + 0x26 + ldrb r1, [r3] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3] + b _08085EE8_continue + .align 2, 0 +_08085ED8: .4byte gPartner + 0x26 +_08085EDC: + ldr r0, _08085F1C @ =gPlayer + 0x26 + ldrb r1, [r0] + movs r0, #0x80 + orrs r0, r1 + ldr r1, _08085F1C @ =gPlayer + 0x26 + strb r0, [r1] +_08085EE8_continue: + adds r5, #1 + ldr r0, _08085F20 @ =gNumSingleplayerCharacters + movs r1, #0 + ldrsb r1, [r0, r1] + adds r2, r0, #0 + cmp r5, r1 + bge _08085EF8 + b _08085C2C_loop +_08085EF8: + mov r3, sb + ldr r1, [r3, #0x70] + ldr r0, _08085F24 @ =0x003C2A57 + cmp r1, r0 + bls _08085F9C + movs r4, #0 + movs r0, #0x6e + add r0, sb + mov r8, r0 @ r8 = carousel->unk6E + ldr r7, [sp] @ r7 = sp00 = s1 + adds r7, #0x22 @ r7 = &s1->animSpeed + ldr r6, _08085F28 @ =gPartner + ldr r5, _08085F2C @ =gPlayer +_08085F12_loop: + cmp r4, #0 + beq _08085F30 + ldr r0, [r6, #0x10] + b _08085F32 + .align 2, 0 +_08085F1C: .4byte gPlayer + 0x26 +_08085F20: .4byte gNumSingleplayerCharacters +_08085F24: .4byte 0x003C2A57 +_08085F28: .4byte gPartner +_08085F2C: .4byte gPlayer +_08085F30: + ldr r0, [r5, #0x10] +_08085F32: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08085F8C + ldr r1, [sp, #0x1c] @ r1 = sp1C = &carousel->unk79 + ldrb r0, [r1] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08085F8C + mov r2, r8 @ r2 = r8 = carousel->unk6E + ldrh r0, [r2] + lsrs r0, r0, #2 + ldr r3, _08085F64 @ =0xFFFFF830 + adds r0, r0, r3 + lsls r0, r0, #1 + movs r1, #3 + bl Div + cmp r4, #0 + beq _08085F68 + strh r0, [r6, #8] + b _08085F6A + .align 2, 0 +_08085F64: .4byte 0xFFFFF830 +_08085F68: + strh r0, [r5, #8] +_08085F6A: + mov r1, r8 @ r1 = r8 = carousel->unk6E + ldrh r0, [r1] + lsrs r0, r0, #2 + ldr r2, _08085F84 @ =0xFFFFF830 + adds r0, r0, r2 + lsls r0, r0, #1 + movs r1, #3 + bl Div + cmp r4, #0 + beq _08085F88 + strh r0, [r6, #0xc] + b _08085F8A + .align 2, 0 +_08085F84: .4byte 0xFFFFF830 +_08085F88: + strh r0, [r5, #0xc] +_08085F8A: + ldr r2, _08085F98 @ =gNumSingleplayerCharacters +_08085F8C: + adds r4, #1 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r4, r0 + blt _08085F12_loop + b _08085FAC + .align 2, 0 +_08085F98: .4byte gNumSingleplayerCharacters +_08085F9C: + mov r1, sb + adds r1, #0x6e + ldrh r0, [r1] + adds r0, #0x40 + strh r0, [r1] + mov r8, r1 @ r8 = carousel->unk6E + ldr r7, [sp] @ r7 = sp00 = s1 + adds r7, #0x22 @ r7 = &s1->animSpeed +_08085FAC: + mov r3, r8 @ r3 = r8 = carousel->unk6E + ldrh r0, [r3] + movs r1, #0x80 + lsls r1, r1, #8 + cmp r0, r1 + bls _08085FBA + strh r1, [r3] +_08085FBA: + mov r4, r8 @ r4 = r8 = carousel->unk6E + ldrh r1, [r4] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + movs r1, #0xa0 + lsls r1, r1, #8 + bl Div + strb r0, [r7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _08085FDC + movs r0, #0x10 + strb r0, [r7] +_08085FDC: + mov r1, r8 @ r1 = r8 = carousel->unk6E + ldrh r0, [r1] + mov r2, sb + ldr r1, [r2, #0x70] + adds r1, r1, r0 + str r1, [r2, #0x70] + ldr r3, [sp, #0x18] @ r3 = sp18 = worldX << 16 + asrs r2, r3, #0x10 + ldr r4, _0808605C @ =gCamera + movs r0, #0 + ldrsh r1, [r4, r0] + movs r3, #0xb8 + lsls r3, r3, #1 + adds r0, r1, r3 + cmp r2, r0 + bgt _08086020 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _08086020 + ldr r1, [sp, #0xc] @ r1 = sp0C = worldY + lsls r0, r1, #0x10 + asrs r3, r0, #0x10 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r4, #0x90 + lsls r4, r4, #1 + adds r0, r1, r4 + cmp r3, r0 + bgt _08086020 + adds r0, r1, #0 + subs r0, #0x80 + cmp r3, r0 + bge _08086064 +_08086020: + ldr r1, [sp] @ r1 = sp00 = s1 + ldrh r0, [r1, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08086048 + ldr r2, [sp] @ r2 = sp00 = s1 + movs r3, #0x18 + ldrsh r0, [r2, r3] + adds r0, #0x80 + cmp r0, #0 + blt _08086048 + movs r4, #0x18 + ldrsh r1, [r2, r4] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08086064 +_08086048: + mov r1, sb + ldrb r0, [r1, #8] + ldr r2, [sp, #0x10] @ r2 = sp10 = me + strb r0, [r2] + ldr r0, _08086060 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0808640E + .align 2, 0 +_0808605C: .4byte gCamera +_08086060: .4byte gCurTask +_08086064: + movs r5, #0 + movs r3, #0x74 + add r3, sb + mov sl, r3 @ sl = &carousel->unk74 + ldr r4, _0808607C @ =gPartner + ldr r6, _08086080 @ =gPlayer + adds r7, r4, #0 + adds r7, #0x26 +_08086074_loop: + cmp r5, #0 + beq _08086084 + ldr r0, [r4, #0x10] + b _08086086 + .align 2, 0 +_0808607C: .4byte gPartner +_08086080: .4byte gPlayer +_08086084: + ldr r0, [r6, #0x10] +_08086086: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08086090 + b _08086314 +_08086090: + ldr r1, [sp, #0x1c] @ r1 = sp1C = &carousel->unk79 + ldrb r0, [r1] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080860A0 + b _08086314 +_080860A0: + mov r2, sb + ldr r1, [r2, #0x70] + ldr r0, _080860D4 @ =0x003C2A57 + cmp r1, r0 + bhi _080860AC + b _0808637A_continue +_080860AC: + adds r0, #1 + str r0, [r2, #0x70] + adds r2, #0x76 + cmp r5, #0 + bne _080860BC + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] +_080860BC: + ldrh r1, [r2] + ldr r0, _080860D8 @ =0x0000012B + cmp r1, r0 + bhi _080860E8 + cmp r5, #0 + beq _080860DC + ldrh r0, [r4, #0x38] + movs r1, #0x30 + ands r0, r1 + cmp r0, #0 + bne _080860E8 + b _0808637A_continue + .align 2, 0 +_080860D4: .4byte 0x003C2A57 +_080860D8: .4byte 0x0000012B +_080860DC: + ldrh r0, [r6, #0x38] + movs r1, #0x30 + ands r0, r1 + cmp r0, #0 + bne _080860E8 + b _0808637A_continue +_080860E8: + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r2] + cmp r5, #0 + beq _08086104 + ldrh r1, [r4, #0x38] + movs r0, #0x20 + ands r1, r0 + ldr r2, _08086100 @ =gPlayer + cmp r1, #0 + bne _08086110 + b _0808615C + .align 2, 0 +_08086100: .4byte gPlayer +_08086104: + ldrh r1, [r6, #0x38] + movs r0, #0x20 + ands r1, r0 + ldr r2, _08086120 @ =gPlayer + cmp r1, #0 + beq _0808615C +_08086110: + cmp r5, #0 + beq _08086124 + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + bgt _0808612C + b _08086156 + .align 2, 0 +_08086120: .4byte gPlayer +_08086124: + movs r1, #0xc + ldrsh r0, [r2, r1] + cmp r0, #0 + ble _08086156 +_0808612C: + cmp r5, #0 + beq _0808613A + movs r3, #0xc + ldrsh r0, [r4, r3] + rsbs r0, r0, #0 + strh r0, [r4, #0xc] + b _08086142 +_0808613A: + movs r1, #0xc + ldrsh r0, [r6, r1] + rsbs r0, r0, #0 + strh r0, [r6, #0xc] +_08086142: + cmp r5, #0 + beq _0808614C +_08086146: + movs r3, #0xc + ldrsh r0, [r4, r3] + b _08086150 +_0808614C: + movs r1, #0xc + ldrsh r0, [r2, r1] +_08086150: + cmp r5, #0 + bne _080861C2 + b _080861C6 +_08086156: + cmp r5, #0 + bne _08086146 + b _0808614C +_0808615C: + cmp r5, #0 + beq _0808616C + ldrh r0, [r4, #0x38] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08086176 + b _08086198 +_0808616C: + ldrh r0, [r2, #0x38] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08086198 +_08086176: + cmp r5, #0 + beq _08086184 + movs r3, #0xc + ldrsh r0, [r4, r3] + cmp r0, #0 + blt _080861A2 + b _08086156 +_08086184: + movs r1, #0xc + ldrsh r0, [r2, r1] + cmp r0, #0 + bge _08086156 + b _080861A2 +_0808618E: + movs r3, #0xc + ldrsh r0, [r4, r3] + rsbs r0, r0, #0 + strh r0, [r4, #0xc] + b _08086156 +_08086198: + mov r0, sb + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + bne _080861B0 +_080861A2: + cmp r5, #0 + bne _0808618E + movs r1, #0xc + ldrsh r0, [r6, r1] + rsbs r0, r0, #0 + strh r0, [r6, #0xc] + b _08086156 +_080861B0: + cmp r5, #0 + beq _080861BA + movs r3, #0xc + ldrsh r0, [r4, r3] + b _080861BE +_080861BA: + movs r1, #0xc + ldrsh r0, [r2, r1] +_080861BE: + cmp r5, #0 + beq _080861C6 +_080861C2: + strh r0, [r4, #8] + b _080861C8 +_080861C6: + strh r0, [r2, #8] +_080861C8: + movs r1, #1 + lsls r1, r5 + ldr r2, [sp, #0x1c] @ r2 = sp1C = &carousel->unk79 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r0, _080861F0 @ =gPlayer + cmp r5, #0 + beq _080861DC + ldr r0, _080861F4 @ =gPartner +_080861DC: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _080861FC + ldr r0, [r4, #0x10] + ldr r1, _080861F8 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08086204 + .align 2, 0 +_080861F0: .4byte gPlayer +_080861F4: .4byte gPartner +_080861F8: .4byte 0xFFBFFFFF +_080861FC: + ldr r0, [r6, #0x10] + ldr r1, _08086218 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08086204: + ldr r2, _0808621C @ =gPlayer + cmp r5, #0 + beq _08086220 + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _0808622A + .align 2, 0 +_08086218: .4byte 0xFFBFFFFF +_0808621C: .4byte gPlayer +_08086220: + ldr r0, [r6, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_0808622A: + cmp r5, #0 + beq _08086238 + ldr r0, [r4, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r4, #0x10] + b _08086240 +_08086238: + ldr r0, [r6, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r6, #0x10] +_08086240: + cmp r5, #0 + beq _0808624E + ldr r0, [r4, #0x10] + movs r1, #0x10 + orrs r0, r1 + str r0, [r4, #0x10] + b _08086256 +_0808624E: + ldr r0, [r6, #0x10] + movs r1, #0x10 + orrs r0, r1 + str r0, [r6, #0x10] +_08086256: + cmp r5, #0 + beq _08086264 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _0808626C +_08086264: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_0808626C: + cmp r5, #0 + beq _0808627C + movs r0, #4 + ldr r3, _08086278 @ =gPartner + 0x40 + strb r0, [r3] + b _08086284 + .align 2, 0 +_08086278: .4byte gPartner + 0x40 +_0808627C: + adds r1, r2, #0 + adds r1, #0x40 + movs r0, #4 + strb r0, [r1] +_08086284: + ldr r0, _080862B8 @ =gPlayer + cmp r5, #0 + beq _0808628C + ldr r0, _080862BC @ =gPartner +_0808628C: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _080862B8 @ =gPlayer + cmp r5, #0 + beq _0808629A + ldr r1, _080862BC @ =gPartner +_0808629A: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r2, _080862B8 @ =gPlayer + adds r1, r2, #0 + cmp r5, #0 + beq _080862A8 + ldr r1, _080862BC @ =gPartner +_080862A8: + movs r0, #0xe + strb r0, [r1, #0xf] + cmp r5, #0 + beq _080862C0 + movs r0, #0 + strh r0, [r4, #0xa] + b _080862C2 + .align 2, 0 +_080862B8: .4byte gPlayer +_080862BC: .4byte gPartner +_080862C0: + strh r5, [r2, #0xa] +_080862C2: + ldr r1, [sp, #0x18] @ r1 = sp18 = worldX << 16 + asrs r0, r1, #8 + cmp r5, #0 + beq _080862CE + str r0, [r4] + b _080862D0 +_080862CE: + str r0, [r2] +_080862D0: + ldr r0, _080862E8 @ =gCurTask + ldr r1, [r0] + ldr r0, _080862EC @ =Task_ExitCarousel + str r0, [r1, #8] + cmp r5, #0 + beq _080862F0 + ldrb r1, [r7] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7] + b _080862FA + .align 2, 0 +_080862E8: .4byte gCurTask +_080862EC: .4byte Task_ExitCarousel +_080862F0: + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080862FA: + ldr r1, _0808630C @ =gPlayer + 0x64 + cmp r5, #0 + beq _08086302 + ldr r1, _08086310 @ =gPartner + 0x64 +_08086302: + ldr r1, [r1] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x26] + b _0808637A_continue + .align 2, 0 +_0808630C: .4byte gPlayer + 0x64 +_08086310: .4byte gPartner + 0x64 +_08086314: + cmp r5, #0 + beq _08086324 + ldr r0, [r4, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808632E + b _0808637A_continue +_08086324: + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808637A_continue +_0808632E: + mov r2, sb + ldr r0, [r2, #0x70] + ldr r1, _08086348 @ =0x003C2A58 + cmp r0, r1 + bls _0808633A + str r1, [r2, #0x70] +_0808633A: + cmp r5, #0 + beq _08086350 + ldr r0, [r4, #0x10] + ldr r1, _0808634C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08086358 + .align 2, 0 +_08086348: .4byte 0x003C2A58 +_0808634C: .4byte 0xFFBFFFFF +_08086350: + ldr r0, [r6, #0x10] + ldr r1, _080863B4 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08086358: + mov r2, sb + adds r2, #0x76 + cmp r5, #0 + bne _08086366 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] +_08086366: + ldrh r1, [r2] + movs r3, #0x96 + lsls r3, r3, #0x11 + lsrs r0, r3, #0x10 + cmp r1, r0 + bls _0808637A_continue + ldr r0, _080863B8 @ =gCurTask + ldr r1, [r0] + ldr r0, _080863BC @ =Task_ExitCarousel + str r0, [r1, #8] +_0808637A_continue: + adds r5, #1 + ldr r0, _080863C0 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bge _0808638A + b _08086074_loop +_0808638A: + mov r2, sl @ r2 = sl = &carousel->unk74 + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + mov r4, r8 @ r4 = r8 = carousel->unk6E + ldrh r1, [r4] + ldr r0, _080863C4 @ =0x000031FF + cmp r1, r0 + bhi _080863C8 + cmp r1, #0 + beq _080863FC + ldrh r0, [r2] + movs r1, #0x19 + bl Mod + cmp r0, #0 + bne _080863FC + movs r0, #0xd1 + bl m4aSongNumStart + b _080863FC + .align 2, 0 +_080863B4: .4byte 0xFFBFFFFF +_080863B8: .4byte gCurTask +_080863BC: .4byte Task_ExitCarousel +_080863C0: .4byte gNumSingleplayerCharacters +_080863C4: .4byte 0x000031FF +_080863C8: + ldr r0, _080863E4 @ =0x00004AFF + cmp r1, r0 + bhi _080863E8 + ldrh r0, [r2] + movs r1, #0x10 + bl Mod + cmp r0, #0 + bne _080863FC + movs r0, #0xd2 + bl m4aSongNumStart + b _080863FC + .align 2, 0 +_080863E4: .4byte 0x00004AFF +_080863E8: + mov r1, sl @ r1 = sl = &carousel->unk74 + ldrh r0, [r1] + movs r1, #8 + bl Mod + cmp r0, #0 + bne _080863FC + movs r0, #0xd3 + bl m4aSongNumStart +_080863FC: + ldr r0, [sp] @ r0 = sp00 = s1 + bl UpdateSpriteAnimation + ldr r0, [sp] @ r0 = sp00 = s1 + bl DisplaySprite + ldr r0, [sp, #4] @ r0 = sp04 = s2 + bl DisplaySprite +_0808640E: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc b/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc new file mode 100644 index 0000000000..c5adde4077 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc @@ -0,0 +1,194 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r3, _08023C04 @ =gPlayer + adds r0, r3, #0 + adds r0, #0x59 + ldrb r0, [r0] + mov ip, r0 + mov r0, ip + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08023B2A + b _08023C70_return +_08023B2A: + ldr r0, _08023C08 @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r2, r0 + ldr r7, [r0] + ldr r1, _08023C0C @ =0x03000008 + adds r0, r2, r1 + ldrb r0, [r0] + mov sl, r0 + ldr r4, _08023C10 @ =0x03000004 + adds r0, r2, r4 + ldrh r1, [r0] + ldr r0, _08023C14 @ =0x03000006 + adds r2, r2, r0 + ldrh r2, [r2] + mov r4, sl + lsls r0, r4, #3 + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrb r0, [r7, #1] + lsls r0, r0, #3 + lsls r2, r2, #8 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r6, [r3, #0x10] + movs r0, #0x80 + ands r0, r6 + cmp r0, #0 + beq _08023B70 + b _08023C70_return +_08023B70: + lsls r1, r1, #0x10 + asrs r5, r1, #0x10 + ldr r0, [r3] + asrs r4, r0, #8 + mov sb, r1 + lsls r2, r2, #0x10 + mov r8, r2 + cmp r5, r4 + bgt _08023C2A + ldrb r0, [r7, #5] + lsls r0, r0, #3 + adds r0, r5, r0 + cmp r0, r4 + blt _08023C2A + asrs r2, r2, #0x10 + ldr r0, [r3, #4] + asrs r1, r0, #8 + cmp r2, r1 + bgt _08023C2A + ldrb r0, [r7, #6] + lsls r0, r0, #3 + adds r0, r2, r0 + cmp r0, r1 + blt _08023C2A + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + bne _08023C2A + movs r1, #0xa + ldrsh r0, [r3, r1] + cmp r0, #0 + blt _08023C2A + ldrh r1, [r3, #8] + movs r4, #8 + ldrsh r0, [r3, r4] + cmp r0, #0 + ble _08023C2A + cmp r0, #0x80 + bge _08023BC4 + movs r1, #0x80 +_08023BC4: + strh r1, [r3, #8] + orrs r6, r2 + str r6, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x27 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + ldr r2, _08023C18 @ =gPlayerBodyPSI + ldr r0, [r2, #0x1c] + ldr r1, _08023C1C @ =0xFFFFCFFF + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2, #0x1c] + adds r2, r3, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + mov r1, ip + lsls r0, r1, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + bne _08023C20 + movs r0, #0x86 + bl m4aSongNumStart + b _08023C26 + .align 2, 0 +_08023C04: .4byte gPlayer +_08023C08: .4byte gCurTask +_08023C0C: .4byte 0x03000008 +_08023C10: .4byte 0x03000004 +_08023C14: .4byte 0x03000006 +_08023C18: .4byte gPlayerBodyPSI +_08023C1C: .4byte 0xFFFFCFFF +_08023C20: + movs r0, #0x72 + bl m4aSongNumStart +_08023C26: + bl CreateGrindEffect +_08023C2A: + ldr r2, _08023C80 @ =gCamera + ldrh r0, [r2] + mov r3, sb + asrs r1, r3, #0x10 + subs r1, r1, r0 + ldrh r2, [r2, #2] + mov r4, r8 + asrs r0, r4, #0x10 + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x10 + adds r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #0x11 + cmp r1, r0 + bhi _08023C64 + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08023C64 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08023C70_return +_08023C64: + mov r1, sl + strb r1, [r7] + ldr r0, _08023C84 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08023C70_return: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08023C80: .4byte gCamera +_08023C84: .4byte gCurTask + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc b/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc new file mode 100644 index 0000000000..d366ce7566 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc @@ -0,0 +1,189 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r3, r0, #0 @ r3 = param0 + adds r4, r2, #0 @ r4 = p + ldr r0, _0804D4E8 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 @ r1 = halfpipe + mov r8, r1 @ r8 = r1 = halfpipe + movs r6, #0 + ldr r0, _0804D4EC @ =0x0000029F + cmp r3, r0 + bhi _0804D550 + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _0804D4CA + rsbs r0, r0, #0 +_0804D4CA: + ldr r2, _0804D4F0 @ =0xFFFFFDC0 + adds r0, r0, r2 + lsls r0, r0, #0xe + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + blt _0804D4F4 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + ble _0804D4E2 + adds r1, r2, #0 +_0804D4E2: + adds r0, r1, #0 + b _0804D4F6 + .align 2, 0 +_0804D4E8: .4byte gCurTask +_0804D4EC: .4byte 0x0000029F +_0804D4F0: .4byte 0xFFFFFDC0 +_0804D4F4: + movs r0, #0 +_0804D4F6: + ldr r7, _0804D518 @ =gSineTable + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r6, r0, #0x16 + movs r5, #0x80 + lsls r5, r5, #1 + cmp r6, r5 + ble _0804D50C + adds r6, r5, #0 +_0804D50C: + ldr r0, _0804D51C @ =0x0000014F + cmp r3, r0 + bgt _0804D520 + lsls r0, r3, #0xf + b _0804D526 + .align 2, 0 +_0804D518: .4byte gSineTable +_0804D51C: .4byte 0x0000014F +_0804D520: + ldr r2, _0804D58C @ =0xFFFFFD60 + adds r0, r3, r2 + lsls r0, r0, #0xf +_0804D526: + movs r1, #0xa8 + lsls r1, r1, #1 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x16 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r7 + movs r2, #0 + ldrsh r1, [r0, r2] + rsbs r1, r1, #0 @ -COS_24_8(Div(divParam0, 0x150)); + lsls r0, r1, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r0, r1 + muls r0, r6, r0 + asrs r0, r0, #8 + adds r6, r0, #0 +_0804D550: + ldr r0, [r4, #0x10] + movs r3, #4 + ands r0, r3 + cmp r0, #0 + bne _0804D5B8 +__0804D55A: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0804D5B8 + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #4 + beq _0804D582 + adds r0, r2, #0 + subs r0, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0804D5B8 +_0804D582: + ldr r0, _0804D590 @ =0x000007FF + cmp r6, r0 + bgt _0804D594 + strb r3, [r1] + b _0804D5B8 + .align 2, 0 +_0804D58C: .4byte 0xFFFFFD60 +_0804D590: .4byte 0x000007FF +_0804D594: + ldr r0, _0804D5A0 @ =0x000017FF + cmp r6, r0 + bgt _0804D5A4 + movs r0, #0x18 + b _0804D5B6 + .align 2, 0 +_0804D5A0: .4byte 0x000017FF +_0804D5A4: + ldr r0, _0804D5B0 @ =0x00002FFF + cmp r6, r0 + bgt _0804D5B4 + movs r0, #0x19 + b _0804D5B6 + .align 2, 0 +_0804D5B0: .4byte 0x00002FFF +_0804D5B4: + movs r0, #0x1a +_0804D5B6: + strb r0, [r1] +_0804D5B8: + ldr r0, [r4, #0x10] + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + movs r0, #0 + strh r0, [r4, #0xa] + mov r2, r8 + ldr r1, [r2, #0x1c] + subs r1, r1, r6 + movs r0, #0xf + ldrsb r0, [r4, r0] + lsls r0, r0, #8 + subs r1, r1, r0 + ldr r0, [r4, #4] + subs r1, r1, r0 + ldr r2, _0804D5FC @ =0xFFFFFA00 + adds r3, r0, #0 + cmp r1, r2 + blt _0804D5EA + adds r0, r1, #0 + movs r2, #0xc0 + lsls r2, r2, #3 + cmp r0, r2 + ble _0804D5EC +_0804D5EA: + adds r0, r2, #0 +_0804D5EC: + adds r0, r3, r0 + str r0, [r4, #4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D5FC: .4byte 0xFFFFFA00 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc b/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc new file mode 100644 index 0000000000..8f8d474fb2 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc @@ -0,0 +1,1399 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + ldr r0, _080879D8 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r4, r0 + str r0, [sp, #0x24] @ sp24 = hook + ldr r0, _080879DC @ =0x0300000C + adds r0, r0, r4 + mov sb, r0 @ sb = s1 + ldr r1, _080879E0 @ =0x0300009C + adds r1, r4, r1 + str r1, [sp] @ sp00 = transform + ldr r2, _080879E4 @ =0x0300003C + adds r7, r4, r2 @ r7 = s2 + ldr r3, _080879E8 @ =0x0300006C + adds r3, r3, r4 + mov r8, r3 @ r8 = s3 + ldr r5, [sp, #0x24] @ r5 = sp24 = hook + ldr r5, [r5] @ r5 = me + str r5, [sp, #0x20] @ sp20 = me + movs r0, #0 + str r0, [sp, #0x18] @ sp18 = 0 + movs r1, #0 + str r1, [sp, #0x1c] + ldr r2, [sp, #0x24] @ r2 = sp24 = hook + ldrb r0, [r2, #8] + lsls r0, r0, #3 + ldrh r1, [r2, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] @ sp04 = worldX + ldrb r0, [r5, #1] + lsls r0, r0, #3 + ldrh r1, [r2, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] @ sp0C = worldY + ldr r3, [sp, #4] + str r3, [sp, #8] @ sp08 = worldX + str r0, [sp, #0x10] @ sp10 = worldY + ldr r0, _080879EC @ =gStageTime + ldr r0, [r0] + lsls r0, r0, #3 + movs r1, #3 + bl Div + ldr r5, _080879F0 @ =0x030000B2 + adds r4, r4, r5 + ldrh r1, [r4] + adds r0, r0, r1 + movs r1, #0x80 + lsls r1, r1, #2 + bl Mod + adds r5, r0, #0 @ r5 = modRes = Mod(Div(gStageTime * 8, 3) + hook->qUnkB2, Q(2)); + movs r0, #0x80 + lsls r0, r0, #1 + cmp r5, r0 + bls _080879FC + ldr r1, _080879F4 @ =0xFFFFFF00 + adds r5, r5, r1 + subs r5, r0, r5 + ldr r0, _080879F8 @ =gSineTable + lsls r1, r5, #2 + adds r1, r1, r0 + ldrh r1, [r1] + lsrs r2, r1, #8 + adds r3, r0, #0 @ r3 = r0 = gSineTable + b _08087A10 + .align 2, 0 +_080879D8: .4byte gCurTask +_080879DC: .4byte 0x0300000C +_080879E0: .4byte 0x0300009C +_080879E4: .4byte 0x0300003C +_080879E8: .4byte 0x0300006C +_080879EC: .4byte gStageTime +_080879F0: .4byte 0x030000B2 +_080879F4: .4byte 0xFFFFFF00 +_080879F8: .4byte gSineTable +_080879FC: + ldr r1, _08087A2C @ =gSineTable + lsls r0, r5, #2 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r1, #0 @ r3 = r1 = gSineTable +_08087A10: + adds r0, r5, #0 + subs r0, #0x7e + ldr r1, _08087A30 @ =0x000001FF + ands r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r5, r0, #0x17 + ands r5, r1 + cmp r5, #0xff + bhi _08087A34 + lsrs r5, r5, #1 + b _08087A3E + .align 2, 0 +_08087A2C: .4byte gSineTable +_08087A30: .4byte 0x000001FF +_08087A34: + movs r1, #0x80 + lsls r1, r1, #2 + subs r0, r1, r5 + lsrs r0, r0, #1 + subs r5, r1, r0 +_08087A3E: + lsls r5, r5, #1 + mov ip, r5 @ ip = r5 = modRes + ldr r0, _08087B24 @ =0x000003FF + ands r0, r5 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r5, #0 + ldrsh r4, [r1, r5] + str r4, [sp, #0x14] @ sp14 = sinVal = SIN(modRes & ONE_CYCLE) + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r2, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + mov sl, r1 @ sl = cosVal = SIN(modRes & ONE_CYCLE) + ldr r6, _08087B28 @ =gCamera + ldrh r0, [r6] + ldr r5, [sp, #4] @ r5 = sp04 = worldX + lsls r4, r5, #0x10 + asrs r2, r4, #0x10 + subs r0, r2, r0 + mov r1, sb + strh r0, [r1, #0x16] + ldrh r0, [r6, #2] + ldr r5, [sp, #0xc] @ r5 = sp0C = worldY + lsls r3, r5, #0x10 + asrs r1, r3, #0x10 + subs r0, r1, r0 + mov r5, sb + strh r0, [r5, #0x18] + ldrh r0, [r6] + subs r2, r2, r0 + mov r0, r8 @ r0 = r8 = s3 + strh r2, [r0, #0x16] + ldrh r0, [r6, #2] + subs r1, r1, r0 + subs r1, #8 + mov r2, r8 @ r2 = r8 = s3 + strh r1, [r2, #0x18] + ldr r5, [sp, #8] @ r5 = sp08 = worldX + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + movs r0, #0 + ldrsh r1, [r6, r0] + movs r5, #0xb8 + lsls r5, r5, #1 + adds r0, r1, r5 + str r4, [sp, #0x2c] @ sp2C = worldX << 16 + str r3, [sp, #0x30] @ sp30 = worldY << 16 + mov r3, ip @ r3 = ip = modRes + str r3, [sp, #0x28] + cmp r2, r0 + bgt _08087AD8 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _08087AD8 + ldr r4, [sp, #0x10] @ r4 = sp10 = worldY + lsls r0, r4, #0x10 + asrs r2, r0, #0x10 + movs r5, #2 + ldrsh r1, [r6, r5] + movs r3, #0x90 + lsls r3, r3, #1 + adds r0, r1, r3 + cmp r2, r0 + bgt _08087AD8 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _08087AD8 + b _08087CE4 +_08087AD8: + mov r4, sb + ldrh r0, [r4, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08087B00 + movs r5, #0x18 + ldrsh r0, [r4, r5] + adds r0, #0x80 + cmp r0, #0 + blt _08087B00 + movs r0, #0x18 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + bgt _08087B00 + b _08087CE4 +_08087B00: + movs r4, #0 + ldr r5, _08087B2C @ =gPartner + ldr r6, _08087B30 @ =gPlayer + movs r1, #0x59 + adds r1, r1, r5 + mov sl, r1 @ sl = &gPartner->character + movs r2, #0x40 + adds r2, r2, r5 + mov r8, r2 @ r8 = &gPartner->charState + movs r7, #0 @ r7 = 0 +_08087B14_loop: + cmp r4, #0 + beq _08087B34 + ldr r0, [r5, #0x10] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08087B40 + b _08087CB0 + .align 2, 0 +_08087B24: .4byte 0x000003FF +_08087B28: .4byte gCamera +_08087B2C: .4byte gPartner +_08087B30: .4byte gPlayer +_08087B34: + ldr r0, [r6, #0x10] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08087B40 + b _08087CB0 +_08087B40: + cmp r4, #0 + beq _08087B4C + ldr r0, [r5, #0x28] + cmp r0, sb + beq _08087B54 + b _08087CB0 +_08087B4C: + ldr r0, [r6, #0x28] + cmp r0, sb + beq _08087B54 + b _08087CB0 +_08087B54: + ldr r0, _08087B70 @ =gPlayer + cmp r4, #0 + beq _08087B5C + ldr r0, _08087B74 @ =gPartner +_08087B5C: + bl Player_TransitionCancelFlyingAndBoost + cmp r4, #0 + beq _08087B7C + ldr r0, [r5, #0x10] + ldr r1, _08087B78 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] + b _08087B84 + .align 2, 0 +_08087B70: .4byte gPlayer +_08087B74: .4byte gPartner +_08087B78: .4byte 0xFFBFFFFF +_08087B7C: + ldr r0, [r6, #0x10] + ldr r1, _08087B94 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08087B84: + ldr r3, _08087B98 @ =gPlayer + cmp r4, #0 + beq _08087B9C + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] + b _08087BA4 + .align 2, 0 +_08087B94: .4byte 0xFFBFFFFF +_08087B98: .4byte gPlayer +_08087B9C: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_08087BA4: + cmp r4, #0 + beq _08087BB4 + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _08087BBE +_08087BB4: + ldr r0, [r6, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08087BBE: + cmp r4, #0 + beq _08087BC6 + str r7, [r5, #0x28] + b _08087BC8 +_08087BC6: + str r4, [r3, #0x28] +_08087BC8: + cmp r4, #0 + beq _08087BD0 + strh r7, [r5, #8] + b _08087BD2 +_08087BD0: + strh r4, [r3, #8] +_08087BD2: + cmp r4, #0 + beq _08087BDA + strh r7, [r5, #0xc] + b _08087BDC +_08087BDA: + strh r4, [r3, #0xc] +_08087BDC: + cmp r4, #0 + beq _08087BE4 + strh r7, [r5, #0xa] + b _08087BE6 +_08087BE4: + strh r4, [r3, #0xa] +_08087BE6: + cmp r4, #0 + beq _08087BF6 + mov r1, sl @ r1 = sl = gPartner->character + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #3 + bne _08087C04 + b _08087C5C +_08087BF6: + adds r0, r3, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + beq _08087C5C +_08087C04: + cmp r4, #0 + beq _08087C12 + ldr r0, [r5, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r5, #0x10] + b _08087C1A +_08087C12: + ldr r0, [r6, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r6, #0x10] +_08087C1A: + cmp r4, #0 + beq _08087C26 + movs r0, #5 + mov r2, r8 + strb r0, [r2] + b _08087C2E +_08087C26: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #5 + strb r0, [r1] +_08087C2E: + ldr r0, _08087C54 @ =gPlayer + cmp r4, #0 + beq _08087C36 + ldr r0, _08087C58 @ =gPartner +_08087C36: + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + ldr r1, _08087C54 @ =gPlayer + cmp r4, #0 + beq _08087C44 + ldr r1, _08087C58 @ =gPartner +_08087C44: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08087C54 @ =gPlayer + cmp r4, #0 + beq _08087C50 + ldr r1, _08087C58 @ =gPartner +_08087C50: + movs r0, #9 + b _08087CAE + .align 2, 0 +_08087C54: .4byte gPlayer +_08087C58: .4byte gPartner +_08087C5C: + cmp r4, #0 + beq _08087C6C + ldr r0, [r5, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _08087C76 +_08087C6C: + ldr r0, [r6, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08087C76: + cmp r4, #0 + beq _08087C82 + movs r0, #0x55 + mov r3, r8 + strb r0, [r3] + b _08087C8A +_08087C82: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #0x55 + strb r0, [r1] +_08087C8A: + ldr r0, _08087CD4 @ =gPlayer + cmp r4, #0 + beq _08087C92 + ldr r0, _08087CD8 @ =gPartner +_08087C92: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08087CD4 @ =gPlayer + cmp r4, #0 + beq _08087CA0 + ldr r1, _08087CD8 @ =gPartner +_08087CA0: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08087CD4 @ =gPlayer + cmp r4, #0 + beq _08087CAC + ldr r1, _08087CD8 @ =gPartner +_08087CAC: + movs r0, #0xe +_08087CAE: + strb r0, [r1, #0xf] +_08087CB0: + adds r4, #1 + ldr r0, _08087CDC @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + bge _08087CC0 + b _08087B14_loop +_08087CC0: + ldr r4, [sp, #0x24] @ r4 = sp24 = hook + ldrb r0, [r4, #8] + ldr r5, [sp, #0x20] @ r5 = sp20 = me + strb r0, [r5] + ldr r0, _08087CE0 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08088350 + .align 2, 0 +_08087CD4: .4byte gPlayer +_08087CD8: .4byte gPartner +_08087CDC: .4byte gNumSingleplayerCharacters +_08087CE0: .4byte gCurTask +_08087CE4: + mov r0, r8 + bl DisplaySprite + movs r4, #0 + ldr r0, [sp, #0x24] @ r0 = sp24 = hook + adds r0, #0xb4 + mov r8, r0 @ r8 = &hook->unkB4 + movs r5, #0x5a @ r5 = 90 + ldr r6, _08087D40 @ =gCamera +_08087CF6_loop: + ldr r1, [sp, #0x14] @ r1 = sp14 = sinVal + adds r0, r1, #0 + muls r0, r5, r0 + movs r1, #0x64 + bl Div + ldr r2, [sp, #0x18] + adds r2, r2, r0 + str r2, [sp, #0x18] @ sp18 += Div(sinVal * 90, 100); + mov r0, sl @ r0 = sl = cosVal + muls r0, r5, r0 + movs r1, #0x64 + bl Div + ldr r3, [sp, #0x1c] + adds r3, r3, r0 + str r3, [sp, #0x1c] @ sp1C += Div(cosVal * 90, 100); + ldrh r1, [r6] + ldr r2, [sp, #0x2c] @ r2 = sp2C = worldX << 16 + asrs r0, r2, #0x10 + subs r0, r0, r1 + ldr r3, [sp, #0x18] + asrs r1, r3, #0xa + adds r0, r0, r1 + strh r0, [r7, #0x16] + ldrh r1, [r6, #2] + ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 + asrs r0, r2, #0x10 + subs r0, r0, r1 + ldr r3, [sp, #0x1c] + asrs r1, r3, #0xa + adds r0, r0, r1 + strh r0, [r7, #0x18] + cmp r4, #4 + bne _08087D44 + movs r0, #0xc0 + b _08087D48 + .align 2, 0 +_08087D40: .4byte gCamera +_08087D44: + movs r0, #0x90 + lsls r0, r0, #3 +_08087D48: + strh r0, [r7, #0x1a] + adds r0, r7, #0 + bl DisplaySprite + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #2 + bls _08087CF6_loop + movs r4, #0x6e + ldr r5, [sp, #0x14] + adds r0, r5, #0 + muls r0, r4, r0 + movs r1, #0x64 + bl Div + ldr r1, [sp, #0x18] + adds r1, r1, r0 + str r1, [sp, #0x18] + mov r0, sl + muls r0, r4, r0 + movs r1, #0x64 + bl Div + ldr r2, [sp, #0x1c] + adds r2, r2, r0 + str r2, [sp, #0x1c] + movs r5, #0 + ldr r4, _08087D90 @ =gPartner + ldr r6, _08087D94 @ =gPlayer + mov sl, r5 @ sl = r5 = 0 + movs r7, #1 +_08087D88_loop: + cmp r5, #0 + beq _08087D98 + ldr r0, [r4, #0x10] + b _08087D9A + .align 2, 0 +_08087D90: .4byte gPartner +_08087D94: .4byte gPlayer +_08087D98: + ldr r0, [r6, #0x10] +_08087D9A: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087DA4 + b _08088230 +_08087DA4: + mov r3, r8 + ldrb r0, [r3] + asrs r0, r5 + ands r0, r7 + cmp r0, #0 + bne _08087DB2 + b _080880B2 +_08087DB2: + ldr r0, [sp, #0x18] + movs r1, #0xc3 + lsls r1, r1, #2 + bl Div + ldr r2, [sp, #0x2c] @ r2 = sp2C = worldX << 16 + asrs r1, r2, #0x10 + adds r1, r1, r0 + subs r1, #4 + lsls r1, r1, #8 + cmp r5, #0 + beq _08087DCE + str r1, [r4] + b _08087DD0 +_08087DCE: + str r1, [r6] +_08087DD0: + cmp r5, #0 + beq _08087DDE + ldr r0, [r4, #0x10] + ands r0, r7 + cmp r0, #0 + bne _08087DE6 + b _08087E00 +_08087DDE: + ldr r0, [r6, #0x10] + ands r0, r7 + cmp r0, #0 + beq _08087E00 +_08087DE6: + cmp r5, #0 + beq _08087DF6 + ldr r0, [r4] + movs r3, #0xa0 + lsls r3, r3, #4 + adds r0, r0, r3 + str r0, [r4] + b _08087E00 +_08087DF6: + ldr r0, [r6] + movs r1, #0xa0 + lsls r1, r1, #4 + adds r0, r0, r1 + str r0, [r6] +_08087E00: + ldr r0, [sp, #0x1c] + movs r1, #0xaa + lsls r1, r1, #2 + bl Div + ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 + asrs r1, r2, #0x10 + adds r1, r1, r0 + adds r1, #2 + lsls r1, r1, #8 + cmp r5, #0 + beq _08087E1C + str r1, [r4, #4] + b _08087E1E +_08087E1C: + str r1, [r6, #4] +_08087E1E: + cmp r5, #0 + beq _08087E28 + mov r3, sl @ r3 = sl = 0 + strb r3, [r4, #0x14] + b _08087E2A +_08087E28: + strb r5, [r6, #0x14] +_08087E2A: + ldr r0, _08087E3C @ =gPlayerControls + ldrh r1, [r0] + cmp r5, #0 + beq _08087E40 + ldrh r0, [r4, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _08087E4A + b _080880A4 + .align 2, 0 +_08087E3C: .4byte gPlayerControls +_08087E40: + ldrh r0, [r6, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _08087E4A + b _080880A4 +_08087E4A: + ldr r0, _08087E64 @ =gPlayer + cmp r5, #0 + beq _08087E52 + ldr r0, _08087E68 @ =gPartner +_08087E52: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _08087E70 + ldr r0, [r4, #0x10] + ldr r1, _08087E6C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08087E78 + .align 2, 0 +_08087E64: .4byte gPlayer +_08087E68: .4byte gPartner +_08087E6C: .4byte 0xFFBFFFFF +_08087E70: + ldr r0, [r6, #0x10] + ldr r1, _08087E88 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08087E78: + ldr r3, _08087E8C @ =gPlayer + cmp r5, #0 + beq _08087E90 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _08087E98 + .align 2, 0 +_08087E88: .4byte 0xFFBFFFFF +_08087E8C: .4byte gPlayer +_08087E90: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_08087E98: + cmp r5, #0 + beq _08087EA8 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r4, #0x10] + b _08087EB2 +_08087EA8: + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r6, #0x10] +_08087EB2: + cmp r5, #0 + beq _08087EBE + movs r0, #0xfb + lsls r0, r0, #8 + strh r0, [r4, #0xa] + b _08087EC4 +_08087EBE: + movs r0, #0xfb + lsls r0, r0, #8 + strh r0, [r3, #0xa] +_08087EC4: + cmp r5, #0 + beq _08087ECE + mov r0, sl @ r0 = sl = 0 + str r0, [r4, #0x28] + b _08087ED0 +_08087ECE: + str r5, [r3, #0x28] +_08087ED0: + cmp r5, #0 + beq _08087EE0 + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _08087EEA +_08087EE0: + ldr r0, [r6, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08087EEA: + cmp r5, #0 + beq _08087EF8 + ldr r2, _08087EF4 @ =gPartner + 0x26 + b _08087EFC + .align 2, 0 +_08087EF4: .4byte gPartner + 0x26 +_08087EF8: + adds r2, r3, #0 + adds r2, #0x26 +_08087EFC: + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08087F14 + ldrh r0, [r4, #0x38] + movs r1, #0x30 + ands r0, r1 + cmp r0, #0 + bne _08087F1E + b _08087FB0 +_08087F14: + ldrh r0, [r3, #0x38] + movs r1, #0x30 + ands r0, r1 + cmp r0, #0 + beq _08087FB0 +_08087F1E: + cmp r5, #0 + beq _08087F2E + ldrh r0, [r4, #0x38] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08087F38 + b _08087F70 +_08087F2E: + ldrh r0, [r3, #0x38] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08087F70 +_08087F38: + cmp r5, #0 + beq _08087F44 + ldr r0, [r4, #0x10] + orrs r0, r7 + str r0, [r4, #0x10] + b _08087F4A +_08087F44: + ldr r0, [r6, #0x10] + orrs r0, r7 + str r0, [r6, #0x10] +_08087F4A: + cmp r5, #0 + beq _08087F56 + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r4, #8] + b _08087F5C +_08087F56: + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r3, #8] +_08087F5C: + cmp r5, #0 + beq _08087F68 + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r4, #0xc] + b _08087FC8 +_08087F68: + movs r0, #0xfe + lsls r0, r0, #8 + strh r0, [r3, #0xc] + b _08087FC8 +_08087F70: + cmp r5, #0 + beq _08087F80 + ldr r0, [r4, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + b _08087F8A +_08087F80: + ldr r0, [r6, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08087F8A: + cmp r5, #0 + beq _08087F96 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #8] + b _08087F9C +_08087F96: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r3, #8] +_08087F9C: + cmp r5, #0 + beq _08087FA8 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0xc] + b _08087FC8 +_08087FA8: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r3, #0xc] + b _08087FC8 +_08087FB0: + cmp r5, #0 + beq _08087FBA + mov r0, sl @ r0 = sl = 0 + strh r0, [r4, #8] + b _08087FBC +_08087FBA: + strh r5, [r3, #8] +_08087FBC: + cmp r5, #0 + beq _08087FC6 + mov r1, sl @ r1 = sl = 0 + strh r1, [r4, #0xc] + b _08087FC8 +_08087FC6: + strh r5, [r3, #0xc] +_08087FC8: + cmp r5, #0 + beq _08087FDC + ldr r2, _08087FD8 @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #3 + bne _08087FEA + b _08088048 + .align 2, 0 +_08087FD8: .4byte gPartner + 0x59 +_08087FDC: + adds r0, r3, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + beq _08088048 +_08087FEA: + cmp r5, #0 + beq _08087FF8 + ldr r0, [r4, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r4, #0x10] + b _08088000 +_08087FF8: + ldr r0, [r6, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r6, #0x10] +_08088000: + cmp r5, #0 + beq _08088010 + movs r0, #5 + ldr r3, _0808800C @ =gPartner + 0x40 + strb r0, [r3] + b _08088018 + .align 2, 0 +_0808800C: .4byte gPartner + 0x40 +_08088010: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #5 + strb r0, [r1] +_08088018: + ldr r0, _08088040 @ =gPlayer + cmp r5, #0 + beq _08088020 + ldr r0, _08088044 @ =gPartner +_08088020: + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + ldr r1, _08088040 @ =gPlayer + cmp r5, #0 + beq _0808802E + ldr r1, _08088044 @ =gPartner +_0808802E: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08088040 @ =gPlayer + cmp r5, #0 + beq _0808803A + ldr r1, _08088044 @ =gPartner +_0808803A: + movs r0, #9 + b _08088084 + .align 2, 0 +_08088040: .4byte gPlayer +_08088044: .4byte gPartner +_08088048: + cmp r5, #0 + beq _08088058 + movs r0, #0x55 + ldr r1, _08088054 @ =gPartner + 0x40 + b _0808805E + .align 2, 0 +_08088054: .4byte gPartner + 0x40 +_08088058: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #0x55 +_0808805E: + strb r0, [r1] + ldr r0, _0808809C @ =gPlayer + cmp r5, #0 + beq _08088068 + ldr r0, _080880A0 @ =gPartner +_08088068: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _0808809C @ =gPlayer + cmp r5, #0 + beq _08088076 + ldr r1, _080880A0 @ =gPartner +_08088076: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _0808809C @ =gPlayer + cmp r5, #0 + beq _08088082 + ldr r1, _080880A0 @ =gPartner +_08088082: + movs r0, #0xe +_08088084: + strb r0, [r1, #0xf] + ldr r0, [sp, #0x24] @ r0 = sp24 = hook + adds r0, #0xb0 + adds r0, r0, r5 + movs r1, #0x14 + strb r1, [r0] + adds r1, r7, #0 + lsls r1, r5 + mov r2, r8 + ldrb r0, [r2] + bics r0, r1 + b _08088292 + .align 2, 0 +_0808809C: .4byte gPlayer +_080880A0: .4byte gPartner +_080880A4: + cmp r5, #0 + beq _080880AE + mov r3, sl @ r3 = sl = 0 + strh r3, [r4, #0xa] + b _08088294_continue +_080880AE: + strh r5, [r6, #0xa] + b _08088294_continue +_080880B2: + ldr r0, [sp, #0x24] @ r0 = sp24 = hook + adds r0, #0xb0 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + beq _080880C4 + subs r0, #1 + strb r0, [r1] + b _08088294_continue +_080880C4: + ldr r0, [sp, #0x18] + ldr r1, _080880E4 @ =950 + bl Div + ldr r2, [sp, #0x2c] @ r2 = sp2C = worldX << 16 + asrs r1, r2, #0x10 + adds r1, r1, r0 + subs r1, #0x10 + cmp r5, #0 + beq _080880E8 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + ble _080880F2 + b _08088294_continue + .align 2, 0 +_080880E4: .4byte 0x000003B6 +_080880E8: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + ble _080880F2 + b _08088294_continue +_080880F2: + ldr r0, [sp, #0x18] + ldr r1, _08088110 @ =950 + bl Div + ldr r3, [sp, #0x2c] @ r3 = sp2C = worldX << 16 + asrs r1, r3, #0x10 + adds r1, r1, r0 + adds r1, #0x10 + cmp r5, #0 + beq _08088114 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808811E + b _08088294_continue + .align 2, 0 +_08088110: .4byte 0x000003B6 +_08088114: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808811E + b _08088294_continue +_0808811E: + ldr r0, [sp, #0x1c] + ldr r1, _0808813C @ =950 + bl Div + ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 + asrs r1, r2, #0x10 + adds r1, r1, r0 + subs r1, #0x10 + cmp r5, #0 + beq _08088140 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _0808814A + b _08088294_continue + .align 2, 0 +_0808813C: .4byte 0x000003B6 +_08088140: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + ble _0808814A + b _08088294_continue +_0808814A: + ldr r0, [sp, #0x1c] + ldr r1, _08088168 @ =950 + bl Div + ldr r3, [sp, #0x30] @ r3 = sp30 = worldY << 16 + asrs r1, r3, #0x10 + adds r1, r1, r0 + adds r1, #0x10 + cmp r5, #0 + beq _0808816C + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08088176 + b _08088294_continue + .align 2, 0 +_08088168: .4byte 0x000003B6 +_0808816C: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08088176 + b _08088294_continue +_08088176: + adds r0, r7, #0 + lsls r0, r5 + mov r2, r8 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r0, _08088198 @ =gPlayer + cmp r5, #0 + beq _0808818A + ldr r0, _0808819C @ =gPartner +_0808818A: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _080881A0 + mov r3, sb + str r3, [r4, #0x28] + b _080881A4 + .align 2, 0 +_08088198: .4byte gPlayer +_0808819C: .4byte gPartner +_080881A0: + mov r0, sb + str r0, [r6, #0x28] +_080881A4: + cmp r5, #0 + beq _080881B2 + ldr r0, [r4, #0x10] + movs r1, #8 + orrs r0, r1 + str r0, [r4, #0x10] + b _080881BA +_080881B2: + ldr r0, [r6, #0x10] + movs r1, #8 + orrs r0, r1 + str r0, [r6, #0x10] +_080881BA: + cmp r5, #0 + beq _080881CA + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + b _080881D4 +_080881CA: + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r6, #0x10] +_080881D4: + cmp r5, #0 + beq _080881DE + mov r1, sl @ r1 = sl = 0 + strh r1, [r4, #8] + b _080881E0 +_080881DE: + strh r5, [r6, #8] +_080881E0: + cmp r5, #0 + beq _080881EA + mov r2, sl @ r2 = sl = 0 + strh r2, [r4, #0xc] + b _080881EC +_080881EA: + strh r5, [r6, #0xc] +_080881EC: + cmp r5, #0 + beq _080881F6 + mov r3, sl @ r3 = sl = 0 + strh r3, [r4, #0xa] + b _080881F8 +_080881F6: + strh r5, [r6, #0xa] +_080881F8: + cmp r5, #0 + beq _08088208 + movs r0, #0x26 + ldr r1, _08088204 @ =gPartner + 0x40 + b _0808820E + .align 2, 0 +_08088204: .4byte gPartner + 0x40 +_08088208: + adds r1, r6, #0 + adds r1, #0x40 + movs r0, #0x26 +_0808820E: + strb r0, [r1] + cmp r5, #0 + beq _08088224 + ldr r2, _08088220 @ =gPartner + 0x26 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + b _08088292 + .align 2, 0 +_08088220: .4byte gPartner + 0x26 +_08088224: + adds r2, r6, #0 + adds r2, #0x26 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + b _08088292 +_08088230: + mov r3, r8 + ldrb r0, [r3] + asrs r0, r5 + ands r0, r7 + cmp r0, #0 + beq _08088294_continue + cmp r5, #0 + beq _08088250 + ldr r0, [r4, #0x10] + ldr r1, _0808824C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08088258 + .align 2, 0 +_0808824C: .4byte 0xFFBFFFFF +_08088250: + ldr r0, [r6, #0x10] + ldr r1, _08088280 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08088258: + ldr r0, [sp, #0x24] @ r0 = sp24 = hook + adds r0, #0xb0 + adds r0, r0, r5 + movs r1, #0x14 + strb r1, [r0] + adds r1, r7, #0 + lsls r1, r5 + mov r2, r8 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08088288 + ldr r3, _08088284 @ =gPartner + 0x26 + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3] + b _08088294_continue + .align 2, 0 +_08088280: .4byte 0xFFBFFFFF +_08088284: .4byte gPartner + 0x26 +_08088288: + adds r2, r6, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 +_08088292: + strb r0, [r2] +_08088294_continue: + adds r5, #1 + ldr r0, _080882FC @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bge _080882A4 + b _08087D88_loop +_080882A4: + ldr r4, _08088300 @ =0x000003FF + adds r0, r4, #0 + ldr r5, [sp, #0x28] + bics r0, r5 + ldr r1, [sp] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #2] + strh r0, [r1, #4] + ldr r2, _08088304 @ =gCamera + ldrh r1, [r2] + ldr r3, [sp, #0x2c] @ r2 = sp2C = worldX << 16 + asrs r0, r3, #0x10 + subs r0, r0, r1 + ldr r4, [sp, #0x18] + asrs r1, r4, #0xa + adds r0, r0, r1 + ldr r5, [sp] + strh r0, [r5, #6] + ldrh r1, [r2, #2] + ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 + asrs r0, r2, #0x10 + subs r0, r0, r1 + ldr r3, [sp, #0x1c] + asrs r1, r3, #0xa + adds r0, r0, r1 + strh r0, [r5, #8] + ldr r4, [sp, #0x20] + movs r0, #3 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _0808830C + ldr r2, _08088308 @ =gOamMatrixIndex + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0xc + movs r1, #0x7e + orrs r0, r1 + mov r5, sb + str r0, [r5, #0x10] + b _08088320 + .align 2, 0 +_080882FC: .4byte gNumSingleplayerCharacters +_08088300: .4byte 0x000003FF +_08088304: .4byte gCamera +_08088308: .4byte gOamMatrixIndex +_0808830C: + ldr r2, _08088360 @ =gOamMatrixIndex + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0xc + movs r1, #0x7f + orrs r0, r1 + mov r1, sb + str r0, [r1, #0x10] +_08088320: + mov r0, sb + ldr r1, [sp] + bl TransformSprite + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + bl DisplaySprite + mov r2, sb + ldr r0, [r2, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r2, #0x10] + mov r0, sb + bl DisplaySprite + mov r3, sb + ldr r0, [r3, #0x10] + ldr r1, _08088364 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r3, #0x10] +_08088350: + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08088360: .4byte gOamMatrixIndex +_08088364: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc b/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc new file mode 100644 index 0000000000..e9f575e320 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc @@ -0,0 +1,452 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r1, _08086E04 @ =gCurTask + ldr r0, [r1] + ldrh r6, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r6, r0 + ldr r2, _08086E08 @ =0x0300000C + adds r7, r6, r2 + ldr r3, [r4] + str r3, [sp] + ldrb r0, [r4, #8] + lsls r0, r0, #3 + ldrh r1, [r4, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r1, [sp] + ldrb r0, [r1, #1] + lsls r0, r0, #3 + ldrh r1, [r4, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov sb, r2 + ldr r5, _08086E0C @ =gPlayer + ldr r0, [r5, #0x10] + mov r8, r0 + movs r0, #0x80 + mov r1, r8 + ands r1, r0 + mov r8, r1 + cmp r1, #0 + beq _08086D14 + b _08086F10 +_08086D14: + movs r0, #0x40 + adds r0, r0, r5 + mov sb, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x26 + beq _08086D38 + adds r0, r5, #0 + str r2, [sp, #4] + str r3, [sp, #8] + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0x26 + mov r1, sb + strb r0, [r1] + ldr r3, [sp, #8] + ldr r2, [sp, #4] +_08086D38: + mov r0, r8 + strh r0, [r5, #0xa] + ldr r1, _08086E10 @ =0x03000050 + adds r6, r6, r1 + ldrb r0, [r6] + cmp r0, #0 + beq _08086E28 + ldr r0, [r4, #0x40] + adds r0, #0x14 + str r0, [r4, #0x40] + ldr r1, [r4, #0x4c] + adds r1, r1, r0 + str r1, [r4, #0x4c] + lsls r0, r3, #0x10 + asrs r0, r0, #8 + ldr r3, _08086E14 @ =0xFFFFFA00 + adds r0, r0, r3 + adds r0, r0, r1 + str r0, [r5] + lsls r0, r2, #0x10 + asrs r6, r0, #0x10 + movs r0, #0x8a + lsls r0, r0, #1 + adds r1, r6, r0 + lsls r1, r1, #8 + ldr r0, [r4, #0x4c] + asrs r0, r0, #1 + adds r1, r1, r0 + str r1, [r5, #4] + ldr r0, [r4, #0x4c] + asrs r0, r0, #9 + adds r0, r6, r0 + ldr r1, _08086E18 @ =gCamera + mov sl, r1 + ldrh r1, [r1, #2] + subs r0, r0, r1 + adds r0, #0xf0 + strh r0, [r7, #0x18] + ldr r0, [r4, #0x4c] + asrs r0, r0, #8 + cmp r0, #2 + ble _08086E7E + movs r0, #0xb4 + bl m4aSongNumStop + adds r0, r5, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r0, [r5, #0x10] + ldr r1, _08086E1C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] + movs r0, #4 + mov r2, sb + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + ldr r3, _08086E04 @ =gCurTask + ldr r1, [r3] + ldr r0, _08086E20 @ =Task_HookRail_Shared1 + str r0, [r1, #8] + ldr r0, [r4, #0x40] + strh r0, [r5, #0xc] + ldr r0, [r5, #4] + ldr r1, _08086E24 @ =0xFFFFF600 + adds r0, r0, r1 + str r0, [r5, #4] + ldr r0, [r4, #0x4c] + asrs r0, r0, #9 + adds r0, r6, r0 + mov r2, sl + ldrh r1, [r2, #2] + subs r0, r0, r1 + adds r0, #0x78 + strh r0, [r7, #0x18] + adds r2, r5, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r5, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08086E7E + ldr r0, [r5, #0x28] + cmp r0, r7 + bne _08086E7E + mov r3, r8 + str r3, [r5, #0x28] + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x10] + b _08086E7E + .align 2, 0 +_08086E04: .4byte gCurTask +_08086E08: .4byte 0x0300000C +_08086E0C: .4byte gPlayer +_08086E10: .4byte 0x03000050 +_08086E14: .4byte 0xFFFFFA00 +_08086E18: .4byte gCamera +_08086E1C: .4byte 0xFFBFFFFF +_08086E20: .4byte Task_HookRail_Shared1 +_08086E24: .4byte 0xFFFFF600 +_08086E28: + ldr r0, [r4, #0x40] + subs r0, #9 + str r0, [r4, #0x40] + ldr r1, _08086EB4 @ =0xFFFFFA00 + cmp r0, r1 + bge _08086E36 + str r1, [r4, #0x40] +_08086E36: + ldr r1, [r4, #0x4c] + ldr r0, [r4, #0x40] + adds r1, r1, r0 + str r1, [r4, #0x4c] + lsls r0, r3, #0x10 + asrs r0, r0, #8 + ldr r3, _08086EB4 @ =0xFFFFFA00 + adds r0, r0, r3 + adds r0, r0, r1 + str r0, [r5] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r1, r2, #0 + adds r1, #0x26 + lsls r1, r1, #8 + ldr r0, [r4, #0x4c] + asrs r0, r0, #1 + subs r1, r1, r0 + str r1, [r5, #4] + ldr r0, [r4, #0x4c] + asrs r0, r0, #9 + subs r2, r2, r0 + ldr r0, _08086EB8 @ =gCamera + ldrh r0, [r0, #2] + subs r2, r2, r0 + strh r2, [r7, #0x18] + ldr r0, [r5] + ldr r1, [r4, #0x48] + subs r0, r0, r1 + asrs r0, r0, #8 + movs r1, #0xf4 + rsbs r1, r1, #0 + cmp r0, r1 + bge _08086E7E + movs r0, #1 + strb r0, [r6] +_08086E7E: + ldr r0, _08086EBC @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _08086ECC + ldr r0, _08086EC0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08086EC4 @ =gMultiSioRecv + adds r1, r1, r0 + ldr r3, _08086EB8 @ =gCamera + ldrh r0, [r1, #2] + ldrh r2, [r3] + subs r0, r0, r2 + adds r0, #5 + strh r0, [r7, #0x16] + ldrh r0, [r1, #4] + ldrh r1, [r3, #2] + subs r0, r0, r1 + subs r0, #0x24 + strh r0, [r7, #0x18] + ldr r6, _08086EC8 @ =gPlayer + adds r2, r3, #0 + b _08086EEA + .align 2, 0 +_08086EB4: .4byte 0xFFFFFA00 +_08086EB8: .4byte gCamera +_08086EBC: .4byte gGameMode +_08086EC0: .4byte 0x04000128 +_08086EC4: .4byte gMultiSioRecv +_08086EC8: .4byte gPlayer +_08086ECC: + ldr r3, _08086F08 @ =gPlayer + ldr r0, [r3] + asrs r0, r0, #8 + ldr r2, _08086F0C @ =gCamera + ldrh r1, [r2] + subs r0, r0, r1 + adds r0, #5 + strh r0, [r7, #0x16] + ldr r0, [r3, #4] + asrs r0, r0, #8 + ldrh r1, [r2, #2] + subs r0, r0, r1 + subs r0, #0x24 + strh r0, [r7, #0x18] + adds r6, r3, #0 +_08086EEA: + ldr r0, [r6] + asrs r0, r0, #8 + ldrh r1, [r2] + subs r0, r0, r1 + adds r0, #5 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + ldrh r1, [r2, #2] + subs r0, r0, r1 + subs r0, #0x24 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _08086FDA + .align 2, 0 +_08086F08: .4byte gPlayer +_08086F0C: .4byte gCamera +_08086F10: + ldr r0, _08086F70 @ =0x03000050 + adds r6, r6, r0 + ldrb r0, [r6] + cmp r0, #0 + beq _08086F80 + ldr r0, [r4, #0x40] + adds r0, #0x14 + str r0, [r4, #0x40] + ldr r1, [r4, #0x4c] + adds r1, r1, r0 + str r1, [r4, #0x4c] + asrs r1, r1, #9 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + ldr r1, _08086F74 @ =gCamera + ldrh r1, [r1, #2] + subs r0, r0, r1 + adds r0, #0xf0 + strh r0, [r7, #0x18] + ldr r0, [r4, #0x4c] + asrs r0, r0, #8 + lsls r3, r3, #0x10 + mov r8, r3 + cmp r0, #2 + ble _08086FC4 + movs r0, #0xb4 + bl m4aSongNumStop + ldr r2, _08086F78 @ =gCurTask + ldr r1, [r2] + ldr r0, _08086F7C @ =Task_HookRail_Shared1 + str r0, [r1, #8] + ldr r1, [r5, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08086FC4 + ldr r0, [r5, #0x28] + cmp r0, r7 + bne _08086FC4 + movs r0, #0 + str r0, [r5, #0x28] + subs r0, #9 + ands r1, r0 + str r1, [r5, #0x10] + b _08086FC4 + .align 2, 0 +_08086F70: .4byte 0x03000050 +_08086F74: .4byte gCamera +_08086F78: .4byte gCurTask +_08086F7C: .4byte Task_HookRail_Shared1 +_08086F80: + ldr r0, [r4, #0x40] + subs r0, #9 + str r0, [r4, #0x40] + ldr r1, _0808702C @ =0xFFFFFA00 + cmp r0, r1 + bge _08086F8E + str r1, [r4, #0x40] +_08086F8E: + ldr r1, [r4, #0x4c] + ldr r0, [r4, #0x40] + adds r1, r1, r0 + str r1, [r4, #0x4c] + lsls r2, r3, #0x10 + asrs r0, r2, #8 + adds r0, r0, r1 + ldr r1, [r4, #0x48] + subs r0, r0, r1 + asrs r0, r0, #8 + movs r1, #0xf4 + rsbs r1, r1, #0 + mov r8, r2 + cmp r0, r1 + bge _08086FB0 + movs r0, #1 + strb r0, [r6] +_08086FB0: + ldr r1, [r4, #0x4c] + asrs r1, r1, #9 + mov r3, sb + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + ldr r1, _08087030 @ =gCamera + ldrh r1, [r1, #2] + subs r0, r0, r1 + strh r0, [r7, #0x18] +_08086FC4: + ldr r0, [r4, #0x4c] + asrs r0, r0, #8 + mov r2, r8 + asrs r1, r2, #0x10 + adds r1, r1, r0 + ldr r0, _08087030 @ =gCamera + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r7, #0x16] + ldrh r5, [r7, #0x16] + ldrh r2, [r7, #0x18] +_08086FDA: + lsls r0, r5, #0x10 + movs r3, #0x80 + lsls r3, r3, #0x10 + adds r0, r0, r3 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08086FFE + lsls r0, r2, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08086FFE + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0808703C +_08086FFE: + ldr r2, _08087034 @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808701A + ldr r0, [r2, #0x28] + cmp r0, r7 + bne _0808701A + movs r0, #0 + str r0, [r2, #0x28] + subs r0, #9 + ands r1, r0 + str r1, [r2, #0x10] +_0808701A: + ldrb r0, [r4, #8] + ldr r1, [sp] + strb r0, [r1] + ldr r0, _08087038 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08087042 + .align 2, 0 +_0808702C: .4byte 0xFFFFFA00 +_08087030: .4byte gCamera +_08087034: .4byte gPlayer +_08087038: .4byte gCurTask +_0808703C: + adds r0, r7, #0 + bl DisplaySprite +_08087042: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc b/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc new file mode 100644 index 0000000000..1d93e0b330 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc @@ -0,0 +1,351 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r1, _0808696C @ =gCurTask + ldr r0, [r1] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r1, r0 @ r5 = hookRail + ldr r2, _08086970 @ =0x0300000C + adds r6, r1, r2 @ r6 = s + ldr r3, [r5] + str r3, [sp] @ sp00 = r3 = me + ldrb r0, [r5, #8] + lsls r0, r0, #3 + ldrh r1, [r5, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sb, r0 @ sb = worldX + ldrb r0, [r3, #1] + lsls r0, r0, #3 + ldrh r1, [r5, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 @ sl = worldY + ldr r4, _08086974 @ =gPlayer + ldr r1, [r4, #0x10] + movs r0, #0x80 + mov r8, r0 + mov r2, r8 + ands r2, r1 + mov r8, r2 + cmp r2, #0 + beq _080868D8 + b _08086A50 +_080868D8: + adds r7, r4, #0 + adds r7, #0x40 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x26 + beq _080868EE + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0x26 + strb r0, [r7] +_080868EE: + mov r3, r8 + strh r3, [r4, #0xa] + ldr r0, [r4] + ldr r1, [r5, #0x48] + subs r0, r0, r1 + asrs r0, r0, #8 + movs r1, #0xf0 + lsls r1, r1, #1 + cmp r0, r1 + ble _08086984 + movs r0, #0xb4 + bl m4aSongNumStop + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r0, [r4, #0x10] + ldr r1, _08086978 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + movs r0, #4 + strb r0, [r7] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + ldr r0, _0808696C @ =gCurTask + ldr r1, [r0] + ldr r0, _0808697C @ =Task_HookRail_Shared0 + str r0, [r1, #8] + ldr r0, [r5, #0x40] + movs r1, #0 + strh r0, [r4, #0xc] + ldr r0, [r4, #4] + ldr r2, _08086980 @ =0xFFFFF600 + adds r0, r0, r2 + str r0, [r4, #4] + strb r1, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] @ gPlayer.itemEffect &= ~PLAYER_ITEM_EFFECT__TELEPORT; + ldr r1, [r4, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080869BC + ldr r0, [r4, #0x28] + cmp r0, r6 + bne _080869BC + mov r3, r8 + str r3, [r4, #0x28] + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x10] + b _080869BC + .align 2, 0 +_0808696C: .4byte gCurTask +_08086970: .4byte 0x0300000C +_08086974: .4byte gPlayer +_08086978: .4byte 0xFFBFFFFF +_0808697C: .4byte Task_HookRail_Shared0 +_08086980: .4byte 0xFFFFF600 +_08086984: + ldr r0, [r5, #0x40] + adds r0, #0x10 + str r0, [r5, #0x40] + ldr r1, [r5, #0x4c] + adds r1, r1, r0 + str r1, [r5, #0x4c] + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #8 + ldr r3, _080869F4 @ =0xFFFFFA00 + adds r0, r0, r3 + adds r0, r0, r1 + str r0, [r4] + mov r1, sl @ r1 = sl = worldY + lsls r0, r1, #0x10 + asrs r0, r0, #8 + movs r2, #0x90 + lsls r2, r2, #6 + adds r0, r0, r2 + ldr r1, [r5, #0x4c] + asrs r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #4] + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0x26 + strb r0, [r7] +_080869BC: + ldr r0, _080869F8 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _08086A0C + ldr r0, _080869FC @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08086A00 @ =gMultiSioRecv + adds r1, r1, r0 + ldr r3, _08086A04 @ =gCamera + ldrh r0, [r1, #2] + ldrh r2, [r3] + subs r0, r0, r2 + adds r0, #5 + strh r0, [r6, #0x16] + ldrh r0, [r1, #4] + ldrh r1, [r3, #2] + subs r0, r0, r1 + subs r0, #0x24 + strh r0, [r6, #0x18] + ldr r4, _08086A08 @ =gPlayer + adds r2, r3, #0 + b _08086A2A + .align 2, 0 +_080869F4: .4byte 0xFFFFFA00 +_080869F8: .4byte gGameMode +_080869FC: .4byte 0x04000128 +_08086A00: .4byte gMultiSioRecv +_08086A04: .4byte gCamera +_08086A08: .4byte gPlayer +_08086A0C: + ldr r3, _08086A48 @ =gPlayer + ldr r0, [r3] + asrs r0, r0, #8 + ldr r2, _08086A4C @ =gCamera + ldrh r1, [r2] + subs r0, r0, r1 + adds r0, #5 + strh r0, [r6, #0x16] + ldr r0, [r3, #4] + asrs r0, r0, #8 + ldrh r1, [r2, #2] + subs r0, r0, r1 + subs r0, #0x24 + strh r0, [r6, #0x18] + adds r4, r3, #0 +_08086A2A: + ldr r0, [r4] + asrs r0, r0, #8 + ldrh r1, [r2] + subs r0, r0, r1 + adds r0, #5 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r0, [r4, #4] + asrs r0, r0, #8 + ldrh r1, [r2, #2] + subs r0, r0, r1 + subs r0, #0x24 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08086AD2 + .align 2, 0 +_08086A48: .4byte gPlayer +_08086A4C: .4byte gCamera +_08086A50: + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08086A68 + ldr r0, [r4, #0x28] + cmp r0, r6 + bne _08086A68 + movs r0, #0 + str r0, [r4, #0x28] + subs r0, #9 + ands r1, r0 + str r1, [r4, #0x10] +_08086A68: + ldr r0, [r5, #0x40] + adds r0, #0x10 + str r0, [r5, #0x40] + ldr r1, [r5, #0x4c] + adds r1, r1, r0 + str r1, [r5, #0x4c] + asrs r1, r1, #8 + mov r3, sb + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + ldr r2, _08086B24 @ =gCamera + ldrh r1, [r2] + subs r0, r0, r1 + strh r0, [r6, #0x16] + ldr r1, [r5, #0x4c] + asrs r1, r1, #9 + mov r3, sl + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r0, r0, r1 + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r6, #0x18] + ldrh r7, [r6, #0x16] @ r7 = screenX = s->x; + ldrh r4, [r6, #0x18] @ r4 = screenY = s->y; + ldr r0, [r5, #0x4c] + asrs r0, r0, #8 + movs r1, #0xf0 + lsls r1, r1, #1 + cmp r0, r1 + ble _08086AD2 + movs r0, #0xb4 + bl m4aSongNumStop + ldr r0, _08086B28 @ =gCurTask + ldr r1, [r0] + ldr r0, _08086B2C @ =Task_HookRail_Shared0 + str r0, [r1, #8] + ldr r2, _08086B30 @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08086AD2 + ldr r0, [r2, #0x28] + cmp r0, r6 + bne _08086AD2 + movs r0, #0 + str r0, [r2, #0x28] + subs r0, #9 + ands r1, r0 + str r1, [r2, #0x10] +_08086AD2: + lsls r0, r7, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x10 + adds r0, r0, r1 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08086AF6 + lsls r0, r4, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08086AF6 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08086B34 +_08086AF6: + ldr r2, _08086B30 @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08086B12 + ldr r0, [r2, #0x28] + cmp r0, r6 + bne _08086B12 + movs r0, #0 + str r0, [r2, #0x28] + subs r0, #9 + ands r1, r0 + str r1, [r2, #0x10] +_08086B12: + ldrb r0, [r5, #8] + ldr r2, [sp] + strb r0, [r2] + ldr r0, _08086B28 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08086B3A + .align 2, 0 +_08086B24: .4byte gCamera +_08086B28: .4byte gCurTask +_08086B2C: .4byte Task_HookRail_Shared0 +_08086B30: .4byte gPlayer +_08086B34: + adds r0, r6, #0 + bl DisplaySprite +_08086B3A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc b/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc new file mode 100644 index 0000000000..736d26ed68 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc @@ -0,0 +1,320 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + movs r0, #0 + str r0, [sp, #8] + ldr r1, _08091894 @ =gCurTask + mov r8, r1 + ldr r0, [r1] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 + str r0, [sp, #4] @ r0 = block + ldr r2, _08091898 @ =0x0300000C + adds r7, r1, r2 @ r7 = s + ldr r3, [r0] + str r3, [sp] @ sp00 = me + ldrb r2, [r0, #8] + lsls r2, r2, #3 + ldrh r0, [r0, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 @ r2 = worldX << 16 + ldrb r1, [r3, #1] + lsls r1, r1, #3 + ldr r3, [sp, #4] + ldrh r0, [r3, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 @ r1 = worldY << 16 + ldr r3, _0809189C @ =gCamera + ldrh r0, [r3] + lsrs r6, r2, #0x10 @ r6 = worldX + asrs r5, r2, #0x10 @ r5 = worldX + subs r0, r5, r0 + strh r0, [r7, #0x16] + ldrh r0, [r3, #2] + lsrs r2, r1, #0x10 @ r2 = worldY + asrs r4, r1, #0x10 @ r4 = worldY + subs r0, r4, r0 + strh r0, [r7, #0x18] + ldr r0, _080918A0 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _080918AC + ldr r0, [sp] + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080918AC + adds r0, r5, #0 + adds r1, r4, #0 + bl CreateDustCloud + movs r0, #0x8a + bl m4aSongNumStart + ldr r1, _080918A4 @ =sa2__gUnknown_0300194C + ldrh r0, [r7, #0x16] + strh r0, [r1] + ldr r2, _080918A8 @ =sa2__gUnknown_03002820 + ldrh r1, [r7, #0x18] + strh r1, [r2] + subs r0, r5, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, #0x10 + subs r1, r4, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CreateIceBlockShards + mov r1, r8 + ldr r0, [r1] + bl TaskDestroy + b _08091A66_return + .align 2, 0 +_08091894: .4byte gCurTask +_08091898: .4byte 0x0300000C +_0809189C: .4byte gCamera +_080918A0: .4byte gGameMode +_080918A4: .4byte sa2__gUnknown_0300194C +_080918A8: .4byte sa2__gUnknown_03002820 +_080918AC: + lsls r6, r6, #0x10 + mov sl, r6 @ sl = worldX << 16 + lsls r2, r2, #0x10 + mov sb, r2 @ sb = worldY << 16 + mov r2, sl + asrs r2, r2, #0x10 + str r2, [sp, #0xc] @ sp0C = worldX + mov r3, sb + asrs r3, r3, #0x10 + str r3, [sp, #0x10] @ sp10 = worldY +_080918C0_loop: + ldr r6, _08091914 @ =gPlayer + ldr r0, [sp, #8] + cmp r0, #0 + beq _080918CA + ldr r6, _08091918 @ =gPartner +_080918CA: + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080918D6 + b _080919FC +_080918D6: + adds r0, r6, #0 + adds r0, #0x40 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + bne _0809191C + adds r0, r7, #0 + mov r2, sl + asrs r1, r2, #0x10 + mov r3, sb + asrs r2, r3, #0x10 + adds r3, r6, #0 + bl Coll_Player_Platform + adds r1, r0, #0 + adds r0, r6, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r2, #0 + mov r8, r2 + cmp r0, #3 + beq _08091920 + movs r0, #8 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r0, r0, #0x1f + mov r8, r0 + b _08091920 + .align 2, 0 +_08091914: .4byte gPlayer +_08091918: .4byte gPartner +_0809191C: + movs r3, #0 + mov r8, r3 +_08091920: + mov r0, sl @ r0 = sl = worldX << 16 + asrs r4, r0, #0x10 + mov r1, sb + asrs r5, r1, #0x10 + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_800C394 + cmp r0, #0 + bne _0809194E + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_8091E88 + cmp r0, #0 + bne _0809194E + mov r2, r8 + cmp r2, #0 + beq _080919FC +_0809194E: + movs r3, #0 + ldr r0, _080919E4 @ =gPlayer + mov sb, r0 + ldr r1, _080919E8 @ =gNumSingleplayerCharacters + mov r8, r1 + movs r6, #8 + movs r5, #9 + rsbs r5, r5, #0 + movs r4, #2 +_08091960_loop: + mov r2, sb + cmp r3, #0 + beq _08091968 + ldr r2, _080919EC @ =gPartner +_08091968: + ldr r1, [r2, #0x10] + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _0809197E + ldr r0, [r2, #0x28] + cmp r0, r7 + bne _0809197E + ands r1, r5 + orrs r1, r4 + str r1, [r2, #0x10] +_0809197E: + adds r3, #1 + mov r2, r8 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r3, r0 + blt _08091960_loop + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + bl CreateDustCloud + movs r0, #0x8a + bl m4aSongNumStart + ldr r1, _080919F0 @ =sa2__gUnknown_0300194C + ldrh r0, [r7, #0x16] + strh r0, [r1] + ldr r2, _080919F4 @ =sa2__gUnknown_03002820 + ldrh r1, [r7, #0x18] + strh r1, [r2] + ldr r3, [sp, #0xc] + subs r0, r3, r0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, #0x10 + ldr r2, [sp, #0x10] + subs r1, r2, r1 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CreateIceBlockShards + ldr r0, _080919F8 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _080919DC + bl CreateRoomEvent + movs r2, #0 + movs r1, #1 + strb r1, [r0] + ldr r3, [sp, #4] + ldrh r1, [r3, #4] + strb r1, [r0, #1] + ldrh r1, [r3, #6] + strb r1, [r0, #2] + ldrb r1, [r3, #9] + strb r1, [r0, #3] + strb r2, [r0, #4] +_080919DC: + movs r0, #0xc1 + bl m4aSongNumStart + b _08091A4E + .align 2, 0 +_080919E4: .4byte gPlayer +_080919E8: .4byte gNumSingleplayerCharacters +_080919EC: .4byte gPartner +_080919F0: .4byte sa2__gUnknown_0300194C +_080919F4: .4byte sa2__gUnknown_03002820 +_080919F8: .4byte gGameMode +_080919FC: + adds r0, r7, #0 + mov r2, sl @ r2 = sl = worldX << 16 + asrs r1, r2, #0x10 @ r1 = worldX + mov r3, sb + asrs r2, r3, #0x10 + adds r3, r6, #0 + bl Coll_Player_Platform + ldr r0, [sp, #8] + adds r0, #1 + str r0, [sp, #8] + ldr r0, _08091A58 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [sp, #8] + cmp r1, r0 + bge _08091A22 + b _080918C0_loop +_08091A22: + ldrh r0, [r7, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08091A46 + movs r2, #0x18 + ldrsh r0, [r7, r2] + adds r0, #0x80 + cmp r0, #0 + blt _08091A46 + movs r3, #0x18 + ldrsh r1, [r7, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08091A60 +_08091A46: + ldr r1, [sp, #4] + ldrb r0, [r1, #8] + ldr r2, [sp] + strb r0, [r2] +_08091A4E: + ldr r0, _08091A5C @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08091A66_return + .align 2, 0 +_08091A58: .4byte gNumSingleplayerCharacters +_08091A5C: .4byte gCurTask +_08091A60: + adds r0, r7, #0 + bl DisplaySprite +_08091A66_return: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc b/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc new file mode 100644 index 0000000000..9f783990f7 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc @@ -0,0 +1,724 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _08092A84 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r4 + mov sl, r0 @ sl = platform + ldr r1, [r0] @ r1 = platform->base.me + ldr r0, _08092A88 @ =0x0300000C + adds r0, r0, r4 + mov sb, r0 @ sb = s + ldr r2, _08092A8C @ =0x03000044 + adds r2, r4, r2 + str r2, [sp, #8] @ sp08 = s2 + mov r5, sl @ r5 = sl = platform + ldrb r3, [r5, #8] + lsls r3, r3, #3 + ldrh r0, [r5, #4] + lsls r0, r0, #8 + adds r3, r3, r0 + lsls r3, r3, #0x10 @ r3 = worldX << 16 + ldrb r2, [r1, #1] + lsls r2, r2, #3 + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 @ r2 = worldY << 16 + ldr r1, [r5, #0x78] + adds r1, #0x25 + str r1, [r5, #0x78] @ + ldr r0, [r5, #0x7c] + adds r0, r0, r1 + str r0, [r5, #0x7c] @ platform->qUnk7C += platform->qUnk78; + ldr r1, _08092A90 @ =gCamera + ldrh r0, [r1] + lsrs r5, r3, #0x10 + str r5, [sp] @ sp00 = worldX + asrs r3, r3, #0x10 @ r3 = worldX + subs r0, r3, r0 + mov r5, sb + strh r0, [r5, #0x16] + ldrh r0, [r1, #2] + lsrs r5, r2, #0x10 + str r5, [sp, #4] + asrs r2, r2, #0x10 + subs r0, r2, r0 + subs r0, #3 + mov r5, sb + strh r0, [r5, #0x18] + ldrh r0, [r1] + subs r3, r3, r0 + ldr r0, [sp, #8] + strh r3, [r0, #0x16] + ldrh r0, [r1, #2] + subs r2, r2, r0 + mov r1, sl + ldr r0, [r1, #0x7c] + asrs r0, r0, #8 + adds r2, r2, r0 + ldr r3, [sp, #8] + strh r2, [r3, #0x18] + movs r6, #0 + ldr r5, _08092A94 @ =0x03000074 + adds r5, r5, r4 + mov r8, r5 @ r8 = r5 = &platform->unk74 + ldr r0, _08092A94 @ =0x03000074 + adds r0, r4, r0 + str r0, [sp, #0x10] @ sp10 = &platform->unk74 +_08092A34_loop: + mov r1, r8 + ldrb r0, [r1] + asrs r0, r6 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _08092AC8 + ldr r5, [sp] + lsls r3, r5, #0x10 + asrs r7, r3, #0x10 + mov r0, sl + ldr r1, [r0, #0x7c] + asrs r1, r1, #8 + ldr r5, [sp, #4] + lsls r2, r5, #0x10 + asrs r0, r2, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r4, r0, #0x10 + ldr r5, _08092A98 @ =gPlayer + str r3, [sp, #0x14] + str r2, [sp, #0x18] + cmp r6, #0 + beq _08092A66 + ldr r5, _08092A9C @ =gPartner +_08092A66: + ldr r0, [sp, #8] + adds r1, r7, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _08092AA0 + movs r1, #1 + lsls r1, r6 + mov r2, r8 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + b _08092BE4_continue + .align 2, 0 +_08092A84: .4byte gCurTask +_08092A88: .4byte 0x0300000C +_08092A8C: .4byte 0x03000044 +_08092A90: .4byte gCamera +_08092A94: .4byte 0x03000074 +_08092A98: .4byte gPlayer +_08092A9C: .4byte gPartner +_08092AA0: + mov r3, sl + ldr r1, [r3, #0x78] + cmp r6, #0 + beq _08092AB8 + ldr r5, _08092AB4 @ =gPartner + ldr r0, [r5, #4] + adds r0, r0, r1 + str r0, [r5, #4] + b _08092BE4_continue + .align 2, 0 +_08092AB4: .4byte gPartner +_08092AB8: + ldr r2, _08092AC4 @ =gPlayer + ldr r0, [r2, #4] + adds r0, r0, r1 + str r0, [r2, #4] + b _08092BE4_continue + .align 2, 0 +_08092AC4: .4byte gPlayer +_08092AC8: + ldr r3, [sp] @ r3 = sp00 = worldX + lsls r0, r3, #0x10 + asrs r7, r0, #0x10 @ r7 = worldX + mov r5, sl @ r5 = sl = platform + ldr r1, [r5, #0x7c] + asrs r1, r1, #8 + ldr r3, [sp, #4] @ r3 = worldY + lsls r2, r3, #0x10 + asrs r4, r2, #0x10 @ r4 = worldY + adds r1, r4, r1 + lsls r1, r1, #0x10 + asrs r3, r1, #0x10 + ldr r5, _08092B14 @ =gPlayer + str r0, [sp, #0x14] + str r2, [sp, #0x18] + cmp r6, #0 + beq _08092AEC + ldr r5, _08092B18 @ =gPartner +_08092AEC: + ldr r0, [sp, #8] + adds r1, r7, #0 + adds r2, r3, #0 + adds r3, r5, #0 + bl Coll_Player_PlatformCrumbling + cmp r0, #0 + beq _08092BD8 + mov r5, sl + ldr r0, [r5, #0x7c] + asrs r0, r0, #8 + adds r0, r4, r0 + subs r0, #0x1b + lsls r0, r0, #8 + cmp r6, #0 + beq _08092B1C + ldr r1, _08092B18 @ =gPartner + str r0, [r1, #4] + b _08092B20 + .align 2, 0 +_08092B14: .4byte gPlayer +_08092B18: .4byte gPartner +_08092B1C: + ldr r2, _08092B40 @ =gPlayer + str r0, [r2, #4] +_08092B20: + movs r0, #1 + lsls r0, r6 + ldr r3, [sp, #0x10] @ r3 = &platform->unk74 + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + cmp r6, #0 + beq _08092B48 + ldr r5, _08092B44 @ =gPartner + ldr r0, [r5, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08092B54 + b _08092B60 + .align 2, 0 +_08092B40: .4byte gPlayer +_08092B44: .4byte gPartner +_08092B48: + ldr r1, _08092B6C @ =gPlayer + ldr r0, [r1, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08092B60 +_08092B54: + movs r1, #1 + lsls r1, r6 + ldr r2, [sp, #0x10] @ r2 = &platform->unk74 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_08092B60: + cmp r6, #0 + beq _08092B74 + ldr r3, _08092B70 @ =gPartner + movs r5, #0xa + ldrsh r0, [r3, r5] + b _08092B7A + .align 2, 0 +_08092B6C: .4byte gPlayer +_08092B70: .4byte gPartner +_08092B74: + ldr r1, _08092B90 @ =gPlayer + movs r2, #0xa + ldrsh r0, [r1, r2] +_08092B7A: + cmp r0, #0 + bne _08092BE4_continue + cmp r6, #0 + beq _08092B98 + ldr r3, _08092B94 @ =gPartner + 0x40 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #4 + bne _08092BA2 + b _08092BE4_continue + .align 2, 0 +_08092B90: .4byte gPlayer +_08092B94: .4byte gPartner + 0x40 +_08092B98: + ldr r5, _08092BBC @ =gPlayer + 0x40 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #4 + beq _08092BE4_continue +_08092BA2: + ldr r0, _08092BC0 @ =gPlayer + cmp r6, #0 + beq _08092BAA + ldr r0, _08092BC4 @ =gPartner +_08092BAA: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _08092BCC + movs r0, #4 + ldr r1, _08092BC8 @ =gPartner + 0x40 + strb r0, [r1] + b _08092BE4_continue + .align 2, 0 +_08092BBC: .4byte gPlayer + 0x40 +_08092BC0: .4byte gPlayer +_08092BC4: .4byte gPartner +_08092BC8: .4byte gPartner + 0x40 +_08092BCC: + movs r0, #4 + ldr r2, _08092BD4 @ =gPlayer + 0x40 + strb r0, [r2] + b _08092BE4_continue + .align 2, 0 +_08092BD4: .4byte gPlayer + 0x40 +_08092BD8: + movs r1, #1 + lsls r1, r6 + mov r3, r8 + ldrb r0, [r3] + bics r0, r1 + strb r0, [r3] +_08092BE4_continue: + adds r6, #1 + ldr r0, _08092C1C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r6, r0 + bge _08092BF4 + b _08092A34_loop +_08092BF4: + mov r0, sl + adds r0, #0x84 + ldr r2, [r0] + subs r1, r2, #1 + str r1, [r0] + cmp r1, #0x30 + bne _08092C24 + mov r1, sb + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + movs r1, #0 + ldr r0, _08092C20 @ =0x00000231 + mov r5, sb + strh r0, [r5, #0xa] + mov r0, sb + adds r0, #0x20 + strb r1, [r0] + b _08092E54 + .align 2, 0 +_08092C1C: .4byte gNumSingleplayerCharacters +_08092C20: .4byte 0x00000231 +_08092C24: + adds r0, r2, #0 + subs r0, #0x32 + cmp r0, #0x2e + bls _08092C2E + b _08092E68 +_08092C2E: + movs r5, #0 + ldr r6, _08092C80 @ =gPlayerBodyPSI+0xC+0x28 + ldr r0, [sp, #0x14] + asrs r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r4, _08092C84 @ =gPartner + ldr r7, _08092C88 @ =gPlayer + ldr r1, [sp, #0x18] + asrs r1, r1, #0x10 + mov r8, r1 +_08092C42_loop: + ldr r1, _08092C80 @ =gPlayerBodyPSI+0xC+0x28 + cmp r5, #0 + beq _08092C4A + ldr r1, _08092C8C @ =gPartnerBodyPSI+0xC+0x28 +_08092C4A: + ldr r1, [r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08092C56 + b _08092E44_continue +_08092C56: + adds r0, r6, #0 + cmp r5, #0 + beq _08092C5E + ldr r0, _08092C8C @ =gPartnerBodyPSI+0xC+0x28 +_08092C5E: + movs r3, #4 + ldrsb r3, [r0, r3] + mov r1, sb @ r1 = sb = s + adds r1, #0x34 + movs r2, #0 + ldrsb r2, [r1, r2] + ldr r0, [sp, #0xc] + adds r2, r0, r2 + cmp r5, #0 + beq _08092C90 + ldr r0, [r4] + asrs r0, r0, #8 + adds r0, r0, r3 + cmp r2, r0 + ble _08092C9A + b _08092CCA + .align 2, 0 +_08092C80: .4byte gPlayerBodyPSI+0xC+0x28 +_08092C84: .4byte gPartner +_08092C88: .4byte gPlayer +_08092C8C: .4byte gPartnerBodyPSI+0xC+0x28 +_08092C90: + ldr r0, [r7] + asrs r0, r0, #8 + adds r0, r0, r3 + cmp r2, r0 + bgt _08092CCA +_08092C9A: + adds r0, r6, #0 + cmp r5, #0 + beq _08092CA2 + ldr r0, _08092CBC @ =gPartnerBodyPSI+0xC+0x28 +_08092CA2: + movs r3, #4 + ldrsb r3, [r0, r3] + mov r0, sb + adds r0, #0x36 + movs r2, #0 + ldrsb r2, [r0, r2] + ldr r0, [sp, #0xc] + adds r2, r2, r0 + cmp r5, #0 + beq _08092CC0 + ldr r0, [r4] + b _08092CC2 + .align 2, 0 +_08092CBC: .4byte gPartnerBodyPSI+0xC+0x28 +_08092CC0: + ldr r0, [r7] +_08092CC2: + asrs r0, r0, #8 + adds r0, r0, r3 + cmp r2, r0 + bge _08092D56 +_08092CCA: + adds r0, r6, #0 + cmp r5, #0 + beq _08092CD2 + ldr r0, _08092CF0 @ =gPartnerBodyPSI+0xC+0x28 +_08092CD2: + movs r2, #4 + ldrsb r2, [r0, r2] + movs r3, #0 + ldrsb r3, [r1, r3] + ldr r0, [sp, #0xc] + adds r3, r0, r3 + cmp r5, #0 + beq _08092CF4 + ldr r0, [r4] + asrs r0, r0, #8 + adds r0, r0, r2 + cmp r3, r0 + bge _08092D00 + b _08092E44_continue + .align 2, 0 +_08092CF0: .4byte gPartnerBodyPSI+0xC+0x28 +_08092CF4: + ldr r0, [r7] + asrs r0, r0, #8 + adds r0, r0, r2 + cmp r3, r0 + bge _08092D00 + b _08092E44_continue +_08092D00: + adds r0, r6, #0 + cmp r5, #0 + beq _08092D08 + ldr r0, _08092D44 @ =gPartnerBodyPSI+0xC+0x28 +_08092D08: + movs r3, #4 + ldrsb r3, [r0, r3] + adds r0, r6, #0 + cmp r5, #0 + beq _08092D14 + ldr r0, _08092D44 @ =gPartnerBodyPSI+0xC+0x28 +_08092D14: + movs r2, #6 + ldrsb r2, [r0, r2] + adds r0, r6, #0 + cmp r5, #0 + beq _08092D20 + ldr r0, _08092D44 @ =gPartnerBodyPSI+0xC+0x28 +_08092D20: + ldrb r0, [r0, #4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r2, r2, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldr r0, [sp, #0xc] + adds r1, r0, r1 + cmp r5, #0 + beq _08092D48 + ldr r0, [r4] + asrs r0, r0, #8 + adds r0, r0, r3 + adds r0, r0, r2 + cmp r0, r1 + bge _08092D56 + b _08092E44_continue + .align 2, 0 +_08092D44: .4byte gPartnerBodyPSI+0xC+0x28 +_08092D48: + ldr r0, [r7] + asrs r0, r0, #8 + adds r0, r0, r3 + adds r0, r0, r2 + cmp r0, r1 + bge _08092D56 + b _08092E44_continue +_08092D56: + adds r0, r6, #0 + cmp r5, #0 + beq _08092D5E + ldr r0, _08092D7C @ =gPartnerBodyPSI+0xC+0x28 +_08092D5E: + movs r3, #5 + ldrsb r3, [r0, r3] + mov r1, sb + adds r1, #0x35 + movs r2, #0 + ldrsb r2, [r1, r2] + add r2, r8 + cmp r5, #0 + beq _08092D80 + ldr r0, [r4, #4] + asrs r0, r0, #8 + adds r0, r0, r3 + cmp r2, r0 + ble _08092D8A + b _08092DB6 + .align 2, 0 +_08092D7C: .4byte gPartnerBodyPSI+0xC+0x28 +_08092D80: + ldr r0, [r7, #4] + asrs r0, r0, #8 + adds r0, r0, r3 + cmp r2, r0 + bgt _08092DB6 +_08092D8A: + adds r0, r6, #0 + cmp r5, #0 + beq _08092D92 + ldr r0, _08092DA8 @ =gPartnerBodyPSI+0xC+0x28 +_08092D92: + movs r3, #5 + ldrsb r3, [r0, r3] + mov r0, sb + adds r0, #0x37 + movs r2, #0 + ldrsb r2, [r0, r2] + add r2, r8 + cmp r5, #0 + beq _08092DAC + ldr r0, [r4, #4] + b _08092DAE + .align 2, 0 +_08092DA8: .4byte gPartnerBodyPSI+0xC+0x28 +_08092DAC: + ldr r0, [r7, #4] +_08092DAE: + asrs r0, r0, #8 + adds r0, r0, r3 + cmp r2, r0 + bge _08092E38 +_08092DB6: + adds r0, r6, #0 + cmp r5, #0 + beq _08092DBE + ldr r0, _08092DD8 @ =gPartnerBodyPSI+0xC+0x28 +_08092DBE: + movs r2, #5 + ldrsb r2, [r0, r2] + movs r3, #0 + ldrsb r3, [r1, r3] + add r3, r8 + cmp r5, #0 + beq _08092DDC + ldr r0, [r4, #4] + asrs r0, r0, #8 + adds r0, r0, r2 + cmp r3, r0 + bge _08092DE6 + b _08092E44_continue + .align 2, 0 +_08092DD8: .4byte gPartnerBodyPSI+0xC+0x28 +_08092DDC: + ldr r0, [r7, #4] + asrs r0, r0, #8 + adds r0, r0, r2 + cmp r3, r0 + blt _08092E44_continue +_08092DE6: + adds r0, r6, #0 + cmp r5, #0 + beq _08092DEE + ldr r0, _08092E28 @ =gPartnerBodyPSI+0xC+0x28 +_08092DEE: + movs r3, #5 + ldrsb r3, [r0, r3] + adds r0, r6, #0 + cmp r5, #0 + beq _08092DFA + ldr r0, _08092E28 @ =gPartnerBodyPSI+0xC+0x28 +_08092DFA: + movs r2, #7 + ldrsb r2, [r0, r2] + adds r0, r6, #0 + cmp r5, #0 + beq _08092E06 + ldr r0, _08092E28 @ =gPartnerBodyPSI+0xC+0x28 +_08092E06: + ldrb r0, [r0, #5] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r2, r2, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + add r1, r8 + cmp r5, #0 + beq _08092E2C + ldr r0, [r4, #4] + asrs r0, r0, #8 + adds r0, r0, r3 + adds r0, r0, r2 + cmp r0, r1 + bge _08092E38 + b _08092E44_continue + .align 2, 0 +_08092E28: .4byte gPartnerBodyPSI+0xC+0x28 +_08092E2C: + ldr r0, [r7, #4] + asrs r0, r0, #8 + adds r0, r0, r3 + adds r0, r0, r2 + cmp r0, r1 + blt _08092E44_continue +_08092E38: + ldr r0, _08092E5C @ =gPlayer + cmp r5, #0 + beq _08092E40 + ldr r0, _08092E60 @ =gPartner +_08092E40: + bl Coll_DamagePlayer +_08092E44_continue: + adds r5, #1 + ldr r0, _08092E64 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bge _08092E54 + b _08092C42_loop +_08092E54: + mov r0, sb + bl UpdateSpriteAnimation + b _08092E92 + .align 2, 0 +_08092E5C: .4byte gPlayer +_08092E60: .4byte gPartner +_08092E64: .4byte gNumSingleplayerCharacters +_08092E68: + cmp r1, #0x2f + bgt _08092E92 + mov r0, sb + bl UpdateSpriteAnimation + cmp r0, #0 + bne _08092E8C + mov r1, sb + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + movs r1, #0 + ldr r0, _08092EC4 @ =0x00000231 + mov r2, sb + strh r0, [r2, #0xa] + mov r0, sb + adds r0, #0x20 + strb r1, [r0] +_08092E8C: + mov r0, sb + bl UpdateSpriteAnimation +_08092E92: + mov r3, sl + ldr r0, [r3, #0x7c] + cmp r0, #0 + blt _08092EE6 + mov r1, sl + adds r1, #0x80 + ldr r0, [r1] + subs r0, #1 + str r0, [r1] + cmp r0, #0 + beq _08092EC8 + ldr r0, [r3, #0x78] + lsls r0, r0, #1 + movs r1, #5 + bl Div + rsbs r0, r0, #0 + mov r5, sl + str r0, [r5, #0x78] + movs r0, #0 + ldr r1, [sp, #0x10] @ r1 = &platform->unk74 + strb r0, [r1] + str r0, [r5, #0x7c] + b _08092EE6 + .align 2, 0 +_08092EC4: .4byte 0x00000231 +_08092EC8: + mov r1, sb + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + movs r1, #0 + ldr r0, _08092F08 @ =0x00000231 + mov r2, sb + strh r0, [r2, #0xa] + mov r0, sb + adds r0, #0x20 + strb r1, [r0] + ldr r0, _08092F0C @ =gCurTask + ldr r1, [r0] + ldr r0, _08092F10 @ =Task_UnderwaterLavaPlatform + str r0, [r1, #8] +_08092EE6: + mov r0, sb + bl DisplaySprite + ldr r0, [sp, #8] + bl UpdateSpriteAnimation + ldr r0, [sp, #8] + bl DisplaySprite + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08092F08: .4byte 0x00000231 +_08092F0C: .4byte gCurTask +_08092F10: .4byte Task_UnderwaterLavaPlatform + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc b/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc new file mode 100644 index 0000000000..7e50f832b8 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc @@ -0,0 +1,869 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r0, _080822D4 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + mov sl, r1 + ldr r0, [r1] + str r0, [sp, #0x10] + ldrb r1, [r1, #8] + lsls r1, r1, #3 + mov r2, sl + ldrh r0, [r2, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r3, [sp, #0x10] + ldrb r2, [r3, #1] + lsls r2, r2, #3 + mov r4, sl + ldrh r0, [r4, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldr r3, _080822D8 @ =gCamera + ldrh r0, [r3] + lsrs r5, r1, #0x10 + str r5, [sp] + asrs r1, r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #8] + ldrh r0, [r3, #2] + lsrs r1, r2, #0x10 + str r1, [sp, #4] + asrs r2, r2, #0x10 + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0xc] + movs r7, #0 + ldr r3, _080822DC @ =gPartner + ldr r2, _080822E0 @ =gPlayer + mov sb, r2 + movs r4, #0 + str r4, [sp, #0x1c] +_080822C2: + cmp r7, #0 + beq _080822E4 + ldr r1, [r3, #0x10] + movs r0, #0x80 + ands r1, r0 + mov r5, sl + adds r5, #0x68 + str r5, [sp, #0x14] + b _080822F2 + .align 2, 0 +_080822D4: .4byte gCurTask +_080822D8: .4byte gCamera +_080822DC: .4byte gPartner +_080822E0: .4byte gPlayer +_080822E4: + mov r0, sb + ldr r1, [r0, #0x10] + movs r0, #0x80 + ands r1, r0 + mov r2, sl + adds r2, #0x68 + str r2, [sp, #0x14] +_080822F2: + cmp r1, #0 + beq _080822F8 + b _0808280A +_080822F8: + mov r1, sl + adds r1, #0x68 + ldrb r2, [r1] + adds r0, r2, #0 + asrs r0, r7 + movs r4, #1 + ands r0, r4 + str r1, [sp, #0x14] + cmp r0, #0 + bne _0808230E + b _080825E0 +_0808230E: + ldr r0, _08082370 @ =gPlayer + 0x6D + cmp r7, #0 + beq _08082316 + ldr r0, _08082374 @ =gPartner + 0x6D +_08082316: + movs r1, #0 + ldrsb r1, [r0, r1] + mov r0, sl + adds r0, #0x3c + str r0, [sp, #0x18] + ldrb r5, [r0] + cmp r1, r5 + beq _08082328 + b _080825D4 +_08082328: + movs r0, #0x3e + add r0, sl + mov r8, r0 + adds r4, r0, r7 + ldrb r1, [r4] + mov r2, sl + ldr r0, [r2, #0x50] + muls r0, r1, r0 + mov r5, sl + adds r5, #0x3d + ldrb r1, [r5] + str r3, [sp, #0x20] + bl Div + adds r6, r0, #0 + ldrb r1, [r4] + mov r4, sl + ldr r0, [r4, #0x54] + muls r0, r1, r0 + ldrb r1, [r5] + bl Div + adds r1, r0, #0 + mov r0, sl + adds r0, #0x40 + ldr r2, [sp, #0x1c] + adds r0, r0, r2 + ldr r0, [r0] + adds r0, r0, r6 + lsls r0, r0, #8 + mov r4, r8 + ldr r3, [sp, #0x20] + cmp r7, #0 + beq _08082378 + str r0, [r3] + b _0808237C + .align 2, 0 +_08082370: .4byte gPlayer + 0x6D +_08082374: .4byte gPartner + 0x6D +_08082378: + mov r2, sb + str r0, [r2] +_0808237C: + mov r0, sl + adds r0, #0x48 + ldr r2, [sp, #0x1c] + adds r0, r0, r2 + ldr r0, [r0] + adds r0, r0, r1 + lsls r0, r0, #8 + cmp r7, #0 + beq _08082392 + str r0, [r3, #4] + b _08082396 +_08082392: + mov r1, sb + str r0, [r1, #4] +_08082396: + mov r1, sl + adds r1, #0x58 + ldr r2, [sp, #0x1c] + adds r0, r1, r2 + ldr r2, [r0] + mov r8, r1 + cmp r7, #0 + beq _080823AA + ldr r0, [r3] + b _080823AE +_080823AA: + mov r1, sb + ldr r0, [r1] +_080823AE: + subs r0, r0, r2 + cmp r7, #0 + beq _080823B8 + strh r0, [r3, #8] + b _080823BC +_080823B8: + mov r2, sb + strh r0, [r2, #8] +_080823BC: + mov r1, sl + adds r1, #0x60 + ldr r2, [sp, #0x1c] + adds r0, r1, r2 + ldr r2, [r0] + adds r6, r1, #0 + cmp r7, #0 + beq _080823D0 + ldr r0, [r3, #4] + b _080823D4 +_080823D0: + mov r1, sb + ldr r0, [r1, #4] +_080823D4: + subs r0, r0, r2 + cmp r7, #0 + beq _080823DE + strh r0, [r3, #0xa] + b _080823E2 +_080823DE: + mov r2, sb + strh r0, [r2, #0xa] +_080823E2: + adds r1, r4, r7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08082430 @ =gPlayer + 0x6D + ldrb r5, [r5] + cmp r0, r5 + bhs _0808240C + adds r0, r2, #0 + cmp r7, #0 + beq _080823FE + ldr r0, _08082434 @ =gPartner + 0x6D +_080823FE: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r4, [sp, #0x18] + ldrb r4, [r4] + cmp r0, r4 + ble _080824EA +_0808240C: + adds r0, r2, #0 + cmp r7, #0 + beq _08082414 + ldr r0, _08082434 @ =gPartner + 0x6D +_08082414: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r5, [sp, #0x18] + ldrb r5, [r5] + cmp r0, r5 + bne _080824DC + cmp r7, #0 + beq _0808243C + ldr r0, [r3, #0x10] + ldr r1, _08082438 @ =0xFFDFFFFF + ands r0, r1 + str r0, [r3, #0x10] + b _08082448 + .align 2, 0 +_08082430: .4byte gPlayer + 0x6D +_08082434: .4byte gPartner + 0x6D +_08082438: .4byte 0xFFDFFFFF +_0808243C: + mov r1, sb + ldr r0, [r1, #0x10] + ldr r1, _0808245C @ =0xFFDFFFFF + ands r0, r1 + mov r2, sb + str r0, [r2, #0x10] +_08082448: + ldr r0, _08082460 @ =gPlayerControls + ldrh r1, [r0] + ldrh r0, [r0, #2] + orrs r1, r0 + cmp r7, #0 + beq _08082464 + ldrh r0, [r3, #0x38] + orrs r1, r0 + strh r1, [r3, #0x38] + b _0808246C + .align 2, 0 +_0808245C: .4byte 0xFFDFFFFF +_08082460: .4byte gPlayerControls +_08082464: + mov r4, sb + ldrh r0, [r4, #0x38] + orrs r1, r0 + strh r1, [r4, #0x38] +_0808246C: + cmp r7, #0 + beq _08082480 + ldr r0, [r3, #0x10] + ldr r1, _0808247C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r3, #0x10] + b _0808248A + .align 2, 0 +_0808247C: .4byte 0xFFBFFFFF +_08082480: + mov r5, sb + ldr r0, [r5, #0x10] + ldr r1, _0808249C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] +_0808248A: + cmp r7, #0 + beq _080824A4 + ldr r0, _080824A0 @ =gPartner + 0x26 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + ldr r1, _080824A0 @ =gPartner + 0x26 + strb r0, [r1] + b _080824AE + .align 2, 0 +_0808249C: .4byte 0xFFBFFFFF +_080824A0: .4byte gPartner + 0x26 +_080824A4: + ldr r2, _080824B8 @ =gPlayer + 0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080824AE: + cmp r7, #0 + beq _080824BC + movs r4, #0 + strh r4, [r3, #0xa] + b _080824C0 + .align 2, 0 +_080824B8: .4byte gPlayer + 0x26 +_080824BC: + mov r5, sb + strh r7, [r5, #0xa] +_080824C0: + cmp r7, #0 + beq _080824CA + movs r0, #0 + strh r0, [r3, #8] + b _080824CE +_080824CA: + mov r1, sb + strh r7, [r1, #8] +_080824CE: + cmp r7, #0 + beq _080824D8 + movs r2, #0 + strh r2, [r3, #0xc] + b _080824DC +_080824D8: + mov r4, sb + strh r7, [r4, #0xc] +_080824DC: + movs r1, #1 + lsls r1, r7 + ldr r5, [sp, #0x14] + ldrb r0, [r5] + bics r0, r1 + strb r0, [r5] + b _080825A4 +_080824EA: + cmp r7, #0 + beq _080824FA + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r3, #0x10] + b _08082508 +_080824FA: + mov r1, sb + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + mov r4, sb + str r0, [r4, #0x10] +_08082508: + subs r2, #0x6d + ldr r0, _08082520 @ =gPlayerControls + ldrh r1, [r0] + ldrh r0, [r0, #2] + orrs r1, r0 + cmp r7, #0 + beq _08082524 + ldrh r0, [r3, #0x38] + orrs r1, r0 + strh r1, [r3, #0x38] + b _0808252C + .align 2, 0 +_08082520: .4byte gPlayerControls +_08082524: + mov r5, sb + ldrh r0, [r5, #0x38] + orrs r1, r0 + strh r1, [r5, #0x38] +_0808252C: + cmp r7, #0 + beq _0808253C + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r3, #0x10] + b _0808254A +_0808253C: + mov r1, sb + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + mov r4, sb + str r0, [r4, #0x10] +_0808254A: + cmp r7, #0 + beq _08082554 + movs r5, #0 + strh r5, [r3, #0xc] + b _08082556 +_08082554: + strh r7, [r2, #0xc] +_08082556: + cmp r7, #0 + beq _08082560 + movs r0, #0 + strh r0, [r3, #0x38] + b _08082562 +_08082560: + strh r7, [r2, #0x38] +_08082562: + cmp r7, #0 + beq _0808256C + movs r1, #0 + strh r1, [r3, #0x3a] + b _0808256E +_0808256C: + strh r7, [r2, #0x3a] +_0808256E: + ldr r0, _080825B0 @ =gPlayer + cmp r7, #0 + beq _08082576 + ldr r0, _080825B4 @ =gPartner +_08082576: + movs r1, #0xe + str r3, [sp, #0x20] + bl Player_HandleSpriteYOffsetChange + ldr r1, _080825B0 @ =gPlayer + ldr r3, [sp, #0x20] + cmp r7, #0 + beq _08082588 + ldr r1, _080825B4 @ =gPartner +_08082588: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _080825B0 @ =gPlayer + cmp r7, #0 + beq _08082594 + ldr r1, _080825B4 @ =gPartner +_08082594: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #1 + lsls r0, r7 + ldr r2, [sp, #0x14] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_080825A4: + ldr r1, [sp, #0x1c] + add r1, r8 + cmp r7, #0 + beq _080825B8 + ldr r0, [r3] + b _080825BC + .align 2, 0 +_080825B0: .4byte gPlayer +_080825B4: .4byte gPartner +_080825B8: + mov r4, sb + ldr r0, [r4] +_080825BC: + str r0, [r1] + ldr r5, [sp, #0x1c] + adds r1, r6, r5 + cmp r7, #0 + beq _080825CC + ldr r0, [r3, #4] + str r0, [r1] + b _0808280A +_080825CC: + mov r2, sb + ldr r0, [r2, #4] + str r0, [r1] + b _0808280A +_080825D4: + adds r0, r4, #0 + lsls r0, r7 + bics r2, r0 + ldr r4, [sp, #0x14] + strb r2, [r4] + b _0808280A +_080825E0: + cmp r7, #0 + beq _080825F8 + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0808260C + mov r5, sl + adds r5, #0x3c + str r5, [sp, #0x18] + b _08082624 +_080825F8: + mov r0, sb + ldr r1, [r0, #0x10] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r1, r0 + mov r2, sl + adds r2, #0x3c + str r2, [sp, #0x18] + cmp r1, #0 + beq _08082624 +_0808260C: + ldr r0, _08082648 @ =gPlayer + 0x6D + cmp r7, #0 + beq _08082614 + ldr r0, _0808264C @ =gPartner + 0x6D +_08082614: + movs r1, #0 + ldrsb r1, [r0, r1] + mov r0, sl + adds r0, #0x3c + str r0, [sp, #0x18] + ldrb r4, [r0] + cmp r1, r4 + blt _0808262E +_08082624: + ldr r5, [sp, #0x18] + ldrb r0, [r5] + cmp r0, #0 + beq _0808262E + b _0808280A +_0808262E: + ldr r0, [sp] + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #8 + cmp r7, #0 + beq _08082650 + ldr r0, [r3] + asrs r0, r0, #8 + cmp r2, r0 + ble _0808265C + b _0808280A + .align 2, 0 +_08082648: .4byte gPlayer + 0x6D +_0808264C: .4byte gPartner + 0x6D +_08082650: + mov r4, sb + ldr r0, [r4] + asrs r0, r0, #8 + cmp r2, r0 + ble _0808265C + b _0808280A +_0808265C: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #8 + cmp r7, #0 + beq _08082670 + ldr r0, [r3] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808267C + b _0808280A +_08082670: + mov r5, sb + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808267C + b _0808280A +_0808267C: + ldr r0, [sp, #4] + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #0xa + cmp r7, #0 + beq _08082694 + ldr r0, [r3, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _080826A0 + b _0808280A +_08082694: + mov r4, sb + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _080826A0 + b _0808280A +_080826A0: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0xa + cmp r7, #0 + beq _080826B4 + ldr r0, [r3, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _080826C0 + b _0808280A +_080826B4: + mov r5, sb + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _080826C0 + b _0808280A +_080826C0: + mov r0, sl + adds r0, #0x3e + adds r0, r0, r7 + movs r1, #0 + strb r1, [r0] + cmp r7, #0 + beq _080826D8 + ldr r0, [r3, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r3, #0x10] + b _080826E2 +_080826D8: + mov r2, sb + ldr r0, [r2, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r2, #0x10] +_080826E2: + ldr r2, _080826F4 @ =gPlayer + cmp r7, #0 + beq _080826F8 + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r3, #0x10] + b _08082704 + .align 2, 0 +_080826F4: .4byte gPlayer +_080826F8: + mov r4, sb + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r4, #0x10] +_08082704: + cmp r7, #0 + beq _08082714 + ldr r0, [r3, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r3, #0x10] + b _08082720 +_08082714: + mov r5, sb + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5, #0x10] +_08082720: + mov r0, sl + adds r0, #0x40 + ldr r4, [sp, #0x1c] + adds r1, r0, r4 + cmp r7, #0 + beq _08082730 + ldr r0, [r3] + b _08082732 +_08082730: + ldr r0, [r2] +_08082732: + asrs r0, r0, #8 + str r0, [r1] + mov r0, sl + adds r0, #0x48 + ldr r5, [sp, #0x1c] + adds r1, r0, r5 + cmp r7, #0 + beq _08082746 + ldr r0, [r3, #4] + b _08082748 +_08082746: + ldr r0, [r2, #4] +_08082748: + asrs r0, r0, #8 + str r0, [r1] + cmp r7, #0 + beq _08082756 + movs r0, #0 + strh r0, [r3, #0xa] + b _08082758 +_08082756: + strh r7, [r2, #0xa] +_08082758: + cmp r7, #0 + beq _08082762 + movs r1, #0 + strh r1, [r3, #8] + b _08082764 +_08082762: + strh r7, [r2, #8] +_08082764: + cmp r7, #0 + beq _0808276E + movs r4, #0 + strh r4, [r3, #0xc] + b _08082770 +_0808276E: + strh r7, [r2, #0xc] +_08082770: + cmp r7, #0 + beq _0808277A + movs r5, #0 + strh r5, [r3, #0x38] + b _0808277C +_0808277A: + strh r7, [r2, #0x38] +_0808277C: + cmp r7, #0 + beq _08082786 + movs r0, #0 + strh r0, [r3, #0x3a] + b _08082788 +_08082786: + strh r7, [r2, #0x3a] +_08082788: + ldr r0, _080827EC @ =gPlayer + cmp r7, #0 + beq _08082790 + ldr r0, _080827F0 @ =gPartner +_08082790: + movs r1, #0xe + str r3, [sp, #0x20] + bl Player_HandleSpriteYOffsetChange + ldr r1, _080827EC @ =gPlayer + ldr r3, [sp, #0x20] + cmp r7, #0 + beq _080827A2 + ldr r1, _080827F0 @ =gPartner +_080827A2: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _080827EC @ =gPlayer + cmp r7, #0 + beq _080827AE + ldr r1, _080827F0 @ =gPartner +_080827AE: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #0xaa + str r3, [sp, #0x20] + bl m4aSongNumStart + movs r1, #1 + lsls r1, r7 + ldr r2, [sp, #0x14] + ldrb r0, [r2] + orrs r1, r0 + movs r2, #0 + ldr r4, [sp, #0x14] + strb r1, [r4] + ldr r1, _080827F4 @ =gPlayer + 0x6D + ldr r3, [sp, #0x20] + cmp r7, #0 + beq _080827D4 + ldr r1, _080827F8 @ =gPartner + 0x6D +_080827D4: + ldr r5, [sp, #0x18] + ldrb r0, [r5] + strb r0, [r1] + cmp r7, #0 + beq _08082800 + ldr r1, _080827FC @ =gPartner + 0x26 + ldrb r0, [r1] + movs r1, #0x80 + orrs r0, r1 + ldr r2, _080827FC @ =gPartner + 0x26 + strb r0, [r2] + b _0808280A + .align 2, 0 +_080827EC: .4byte gPlayer +_080827F0: .4byte gPartner +_080827F4: .4byte gPlayer + 0x6D +_080827F8: .4byte gPartner + 0x6D +_080827FC: .4byte gPartner + 0x26 +_08082800: + ldr r4, _08082874 @ =gPlayer + 0x26 + ldrb r0, [r4] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4] +_0808280A: + ldr r5, [sp, #0x1c] + adds r5, #4 + str r5, [sp, #0x1c] + adds r7, #1 + ldr r0, _08082878 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r7, r0 + bge _08082820 + b _080822C2 +_08082820: + ldr r0, [sp, #0x14] + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08082864 + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + movs r2, #0x80 + lsls r2, r2, #0x10 + adds r0, r0, r2 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08082854 + ldr r3, [sp, #0xc] + lsls r0, r3, #0x10 + asrs r2, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08082854 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r2, r0 + ble _08082864 +_08082854: + mov r4, sl + ldrb r0, [r4, #8] + ldr r5, [sp, #0x10] + strb r0, [r5] + ldr r0, _0808287C @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08082864: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08082874: .4byte gPlayer + 0x26 +_08082878: .4byte gNumSingleplayerCharacters +_0808287C: .4byte gCurTask + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc b/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc new file mode 100644 index 0000000000..43dd9a2e15 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc @@ -0,0 +1,887 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _0808387C @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 @ r7 = exit + adds r0, #0xc + adds r0, r4, r0 + str r0, [sp, #0x10] @ sp10 = s + ldr r1, [r7] + str r1, [sp, #0x14] @ sp14 = me + ldrb r2, [r7, #8] + lsls r2, r2, #3 + ldrh r0, [r7, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldrb r1, [r1, #1] + lsls r1, r1, #3 + ldrh r0, [r7, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r3, _08083880 @ =gCamera + ldrh r0, [r3] + lsrs r5, r2, #0x10 + str r5, [sp] @ sp00 = worldX + asrs r2, r2, #0x10 + subs r2, r2, r0 + lsls r0, r2, #0x10 + lsrs r5, r0, #0x10 @ r5 = screenX + ldrh r0, [r3, #2] + lsrs r6, r1, #0x10 + str r6, [sp, #4] @ sp04 = worldY + asrs r1, r1, #0x10 + subs r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] @ sp08 = screenY + ldr r0, [sp, #0x10] + strh r2, [r0, #0x16] @ s->x = screenX; + ldrh r0, [r3, #2] + subs r1, r1, r0 + ldr r2, [sp, #0x10] + strh r1, [r2, #0x18] @ s->y = screenY; + ldr r3, _08083884 @ =0x03000041 + adds r4, r4, r3 + ldrb r0, [r4] + movs r6, #0 + str r6, [sp, #0xc] + cmp r0, #0 + beq _08083868 + ldr r0, _08083888 @ =0x0000FFE8 + str r0, [sp, #0xc] +_08083868: + movs r6, #0 + lsls r5, r5, #0x10 + str r5, [sp, #0x18] + ldr r4, _0808388C @ =gPartner + ldr r5, _08083890 @ =gPlayer + mov sl, r6 @ sl = i * 4 +_08083874_loop: + cmp r6, #0 + beq _08083894 + ldr r0, [r4, #0x10] + b _08083896 + .align 2, 0 +_0808387C: .4byte gCurTask +_08083880: .4byte gCamera +_08083884: .4byte 0x03000041 +_08083888: .4byte 0x0000FFE8 +_0808388C: .4byte gPartner +_08083890: .4byte gPlayer +_08083894: + ldr r0, [r5, #0x10] +_08083896: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080838A0 + b _08083D6A_continue +_080838A0: + adds r2, r7, #0 + adds r2, #0x40 + ldrb r1, [r2] + asrs r1, r6 + movs r0, #1 + ands r1, r0 + mov r8, r2 @ r8 = r2 = &exit->unk40 + cmp r1, #0 + bne _080838B4 + b _08083ADC +_080838B4: + cmp r6, #0 + beq _080838C0 + ldrh r0, [r4, #0xa] + adds r0, #0x2a + strh r0, [r4, #0xa] + b _080838C6 +_080838C0: + ldrh r0, [r5, #0xa] + adds r0, #0x2a + strh r0, [r5, #0xa] +_080838C6: + adds r0, r7, #0 + adds r0, #0x4c + mov r2, sl @ r2 = sl = i * 4 + adds r1, r0, r2 + ldr r2, [r1] @ r2 = exit->unk4C[i] + mov sb, r0 + cmp r6, #0 + beq _080838DC + movs r3, #0xa + ldrsh r0, [r4, r3] + b _080838E0 +_080838DC: + movs r3, #0xa + ldrsh r0, [r5, r3] +_080838E0: + adds r0, r2, r0 + str r0, [r1] + mov r0, sb + add r0, sl @ r0 = &exit->unk4C[i] + ldr r0, [r0] + cmp r6, #0 + beq _080838F2 + str r0, [r4, #4] + b _080838F4 +_080838F2: + str r0, [r5, #4] +_080838F4: + adds r0, r7, #0 + adds r0, #0x44 + add r0, sl + ldr r0, [r0] + cmp r6, #0 + beq _08083904 + str r0, [r4] + b _08083906 +_08083904: + str r0, [r5] +_08083906: + cmp r6, #0 + beq _08083918 + ldr r1, _08083914 @ =gPartner + 0x54 + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + b _08083920 + .align 2, 0 +_08083914: .4byte gPartner + 0x54 +_08083918: + ldr r2, _08083930 @ =gPlayer + 0x54 + ldrh r0, [r2] + subs r0, #4 + strh r0, [r2] +_08083920: + cmp r6, #0 + beq _08083938 + ldr r3, _08083934 @ =gPartner + 0x54 + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #0xaf + ble _08083942 + b _0808395E + .align 2, 0 +_08083930: .4byte gPlayer + 0x54 +_08083934: .4byte gPartner + 0x54 +_08083938: + ldr r2, _08083950 @ =gPlayer + 0x54 + movs r3, #0 + ldrsh r0, [r2, r3] + cmp r0, #0xaf + bgt _0808395E +_08083942: + cmp r6, #0 + beq _08083958 + movs r0, #0xb0 + ldr r1, _08083954 @ =gPartner + 0x54 + strh r0, [r1] + b _0808395E + .align 2, 0 +_08083950: .4byte gPlayer + 0x54 +_08083954: .4byte gPartner + 0x54 +_08083958: + movs r0, #0xb0 + ldr r2, _0808396C @ =gPlayer + 0x54 + strh r0, [r2] +_0808395E: + cmp r6, #0 + beq _08083974 + ldr r3, _08083970 @ =gPartner + 0x54 + movs r1, #0 + ldrsh r0, [r3, r1] + b _0808397A + .align 2, 0 +_0808396C: .4byte gPlayer + 0x54 +_08083970: .4byte gPartner + 0x54 +_08083974: + ldr r2, _08083984 @ =gPlayer + 0x54 + movs r3, #0 + ldrsh r0, [r2, r3] +_0808397A: + cmp r6, #0 + beq _0808398C + ldr r1, _08083988 @ =gPartner + 0x56 + strh r0, [r1] + b _08083990 + .align 2, 0 +_08083984: .4byte gPlayer + 0x54 +_08083988: .4byte gPartner + 0x56 +_0808398C: + ldr r2, _080839A0 @ =gPlayer + 0x56 + strh r0, [r2] +_08083990: + cmp r6, #0 + beq _080839A4 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r4, #0x10] + b _080839AE + .align 2, 0 +_080839A0: .4byte gPlayer + 0x56 +_080839A4: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r5, #0x10] +_080839AE: + cmp r6, #0 + beq _080839BE + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + b _080839C8 +_080839BE: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5, #0x10] +_080839C8: + cmp r6, #0 + beq _080839D6 + movs r3, #0xa + ldrsh r0, [r4, r3] + cmp r0, #0 + bgt _080839E0 + b _08083D6A_continue +_080839D6: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bgt _080839E0 + b _08083D6A_continue +_080839E0: + ldr r0, _080839F8 @ =gPlayer + cmp r6, #0 + beq _080839E8 + ldr r0, _080839FC @ =gPartner +_080839E8: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _08083A04 + movs r0, #5 + ldr r2, _08083A00 @ =gPartner + 0x40 + strb r0, [r2] + b _08083A0A + .align 2, 0 +_080839F8: .4byte gPlayer +_080839FC: .4byte gPartner +_08083A00: .4byte gPartner + 0x40 +_08083A04: + movs r0, #5 + ldr r3, _08083A18 @ =gPlayer + 0x40 + strb r0, [r3] +_08083A0A: + cmp r6, #0 + beq _08083A20 + ldr r0, [r4, #0x10] + ldr r1, _08083A1C @ =0xFFDFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08083A28 + .align 2, 0 +_08083A18: .4byte gPlayer + 0x40 +_08083A1C: .4byte 0xFFDFFFFF +_08083A20: + ldr r0, [r5, #0x10] + ldr r1, _08083A3C @ =0xFFDFFFFF + ands r0, r1 + str r0, [r5, #0x10] +_08083A28: + ldr r0, _08083A40 @ =gPlayerControls + ldrh r1, [r0] + ldrh r0, [r0, #2] + orrs r1, r0 + cmp r6, #0 + beq _08083A44 + ldrh r0, [r4, #0x38] + orrs r1, r0 + strh r1, [r4, #0x38] + b _08083A4A + .align 2, 0 +_08083A3C: .4byte 0xFFDFFFFF +_08083A40: .4byte gPlayerControls +_08083A44: + ldrh r0, [r5, #0x38] + orrs r1, r0 + strh r1, [r5, #0x38] +_08083A4A: + cmp r6, #0 + beq _08083A5C + ldr r0, [r4, #0x10] + ldr r1, _08083A58 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + b _08083A64 + .align 2, 0 +_08083A58: .4byte 0xFFBFFFFF +_08083A5C: + ldr r0, [r5, #0x10] + ldr r1, _08083A80 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] +_08083A64: + movs r1, #1 + lsls r1, r6 + mov r2, r8 @ r2 = r8 = &exit->unk40 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + cmp r6, #0 + beq _08083A88 + movs r0, #0x80 + lsls r0, r0, #1 + ldr r3, _08083A84 @ =gPartner + 0x54 + strh r0, [r3] + b _08083A90 + .align 2, 0 +_08083A80: .4byte 0xFFBFFFFF +_08083A84: .4byte gPartner + 0x54 +_08083A88: + movs r0, #0x80 + lsls r0, r0, #1 + ldr r1, _08083AA0 @ =gPlayer + 0x54 + strh r0, [r1] +_08083A90: + cmp r6, #0 + beq _08083AA8 + movs r0, #0x80 + lsls r0, r0, #1 + ldr r2, _08083AA4 @ =gPartner + 0x56 + strh r0, [r2] + b _08083AB0 + .align 2, 0 +_08083AA0: .4byte gPlayer + 0x54 +_08083AA4: .4byte gPartner + 0x56 +_08083AA8: + movs r0, #0x80 + lsls r0, r0, #1 + ldr r3, _08083AC4 @ =gPlayer + 0x56 + strh r0, [r3] +_08083AB0: + cmp r6, #0 + beq _08083ACC + ldr r0, _08083AC8 @ =gPartner + 0x26 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + ldr r1, _08083AC8 @ =gPartner + 0x26 + strb r0, [r1] + b _08083D6A_continue + .align 2, 0 +_08083AC4: .4byte gPlayer + 0x56 +_08083AC8: .4byte gPartner + 0x26 +_08083ACC: + ldr r2, _08083AD8 @ =gPlayer + 0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + b _08083D6A_continue + .align 2, 0 +_08083AD8: .4byte gPlayer + 0x26 +_08083ADC: + ldr r0, _08083B0C @ =gPlayer + 0x6D + cmp r6, #0 + beq _08083AE4 + ldr r0, _08083B10 @ =gPartner + 0x6D +_08083AE4: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x7f + bne _08083AF0 + b _08083D26 +_08083AF0: + ldr r0, [sp] @ r0 = sp00 = worldX + lsls r3, r0, #0x10 + asrs r2, r3, #0x10 @ r2 = sp00 = worldX + ldr r0, [sp, #0xc] @ sp0C = sp0C + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + adds r2, r2, r0 + cmp r6, #0 + beq _08083B14 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08083B1E + b _08083D26 + .align 2, 0 +_08083B0C: .4byte gPlayer + 0x6D +_08083B10: .4byte gPartner + 0x6D +_08083B14: + ldr r0, [r5] + asrs r0, r0, #8 + cmp r2, r0 + ble _08083B1E + b _08083D26 +_08083B1E: + asrs r0, r3, #0x10 @ r0 = worldX + asrs r1, r1, #0x10 @ r1 = sp0C + adds r0, r0, r1 + adds r1, r0, #0 + adds r1, #0x18 + cmp r6, #0 + beq _08083B36 + ldr r0, [r4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08083B40 + b _08083D26 +_08083B36: + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + bge _08083B40 + b _08083D26 +_08083B40: + ldr r2, [sp, #4] + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #0x18 + cmp r6, #0 + beq _08083B58 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08083B62 + b _08083D26 +_08083B58: + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08083B62 + b _08083D26 +_08083B62: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0x18 + cmp r6, #0 + beq _08083B76 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08083B80 + b _08083D26 +_08083B76: + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08083B80 + b _08083D26 +_08083B80: + mov r3, r8 @ r3 = r8 = &exit->unk40 + ldrb r1, [r3] + asrs r1, r6 + movs r0, #1 + ands r1, r0 + ldr r3, _08083BA0 @ =gPlayer + cmp r1, #0 + bne _08083BBC + adds r0, r7, #0 + adds r0, #0x44 + mov r2, sl + adds r1, r0, r2 + cmp r6, #0 + beq _08083BA4 + ldr r0, [r4] + b _08083BA6 + .align 2, 0 +_08083BA0: .4byte gPlayer +_08083BA4: + ldr r0, [r5] +_08083BA6: + str r0, [r1] + adds r0, r7, #0 + adds r0, #0x4c + mov r2, sl + adds r1, r0, r2 + cmp r6, #0 + beq _08083BB8 + ldr r0, [r4, #4] + b _08083BBA +_08083BB8: + ldr r0, [r3, #4] +_08083BBA: + str r0, [r1] +_08083BBC: + ldr r0, _08083BD8 @ =gPlayer + cmp r6, #0 + beq _08083BC4 + ldr r0, _08083BDC @ =gPartner +_08083BC4: + bl Player_TransitionCancelFlyingAndBoost + cmp r6, #0 + beq _08083BE4 + ldr r0, [r4, #0x10] + ldr r1, _08083BE0 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + b _08083BEC + .align 2, 0 +_08083BD8: .4byte gPlayer +_08083BDC: .4byte gPartner +_08083BE0: .4byte 0xFFFFFEFF +_08083BE4: + ldr r0, [r5, #0x10] + ldr r1, _08083BFC @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] +_08083BEC: + ldr r3, _08083C00 @ =gPlayer + cmp r6, #0 + beq _08083C04 + ldr r0, [r4, #0x10] + movs r1, #0x10 + orrs r0, r1 + str r0, [r4, #0x10] + b _08083C0C + .align 2, 0 +_08083BFC: .4byte 0xFFFFFEFF +_08083C00: .4byte gPlayer +_08083C04: + ldr r0, [r5, #0x10] + movs r1, #0x10 + orrs r0, r1 + str r0, [r5, #0x10] +_08083C0C: + cmp r6, #0 + beq _08083C1A + ldr r0, [r4, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r4, #0x10] + b _08083C22 +_08083C1A: + ldr r0, [r5, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r5, #0x10] +_08083C22: + cmp r6, #0 + beq _08083C30 + ldr r0, [r4, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #0x10] + b _08083C38 +_08083C30: + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] +_08083C38: + cmp r6, #0 + beq _08083C48 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r4, #0x10] + b _08083C52 +_08083C48: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r5, #0x10] +_08083C52: + cmp r6, #0 + beq _08083C62 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + b _08083C6C +_08083C62: + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5, #0x10] +_08083C6C: + cmp r6, #0 + beq _08083C78 + movs r0, #0xfb + lsls r0, r0, #8 + strh r0, [r4, #0xa] + b _08083C7E +_08083C78: + movs r0, #0xfb + lsls r0, r0, #8 + strh r0, [r3, #0xa] +_08083C7E: + cmp r6, #0 + beq _08083C88 + movs r0, #0 + strh r0, [r4, #8] + b _08083C8A +_08083C88: + strh r6, [r3, #8] +_08083C8A: + cmp r6, #0 + beq _08083C94 + movs r0, #0 + strh r0, [r4, #0xc] + b _08083C96 +_08083C94: + strh r6, [r3, #0xc] +_08083C96: + cmp r6, #0 + beq _08083CA0 + movs r0, #0 + strh r0, [r4, #0x38] + b _08083CA2 +_08083CA0: + strh r6, [r3, #0x38] +_08083CA2: + cmp r6, #0 + beq _08083CAC + movs r0, #0 + strh r0, [r4, #0x3a] + b _08083CAE +_08083CAC: + strh r6, [r3, #0x3a] +_08083CAE: + ldr r0, _08083D08 @ =gPlayer + cmp r6, #0 + beq _08083CB6 + ldr r0, _08083D0C @ =gPartner +_08083CB6: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08083D08 @ =gPlayer + cmp r6, #0 + beq _08083CC4 + ldr r1, _08083D0C @ =gPartner +_08083CC4: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08083D08 @ =gPlayer + cmp r6, #0 + beq _08083CD0 + ldr r1, _08083D0C @ =gPartner +_08083CD0: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #0xaa + bl m4aSongNumStart + ldr r1, _08083D10 @ =gPlayer + 0x6D + cmp r6, #0 + beq _08083CE2 + ldr r1, _08083D14 @ =gPartner + 0x6D +_08083CE2: + movs r0, #0x7f + strb r0, [r1] + movs r1, #1 + lsls r1, r6 + mov r3, r8 + ldrb r0, [r3] + orrs r1, r0 + movs r0, #0 + strb r1, [r3] + cmp r6, #0 + beq _08083D1C + ldr r1, _08083D18 @ =gPartner + 0x26 + ldrb r0, [r1] + movs r1, #0x80 + orrs r0, r1 + ldr r2, _08083D18 @ =gPartner + 0x26 + strb r0, [r2] + b _08083D26 + .align 2, 0 +_08083D08: .4byte gPlayer +_08083D0C: .4byte gPartner +_08083D10: .4byte gPlayer + 0x6D +_08083D14: .4byte gPartner + 0x6D +_08083D18: .4byte gPartner + 0x26 +_08083D1C: + ldr r3, _08083D3C @ =gPlayer + 0x26 + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] +_08083D26: + cmp r6, #0 + beq _08083D44 + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _08083D6A_continue + ldr r3, _08083D40 @ =gPlayer + b _08083D52 + .align 2, 0 +_08083D3C: .4byte gPlayer + 0x26 +_08083D40: .4byte gPlayer +_08083D44: + ldr r1, [r5, #0x10] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r1, r0 + ldr r3, _08083DD8 @ =gPlayer + cmp r1, #0 + bne _08083D6A_continue +_08083D52: + ldr r1, [sp] + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + ldr r2, [sp, #4] + lsls r0, r2, #0x10 + asrs r2, r0, #0x10 + cmp r6, #0 + beq _08083D64 + ldr r3, _08083DDC @ =gPartner +_08083D64: + ldr r0, [sp, #0x10] + bl Coll_Player_Platform +_08083D6A_continue: + movs r3, #4 + add sl, r3 + adds r6, #1 + ldr r0, _08083DE0 @ =gNumSingleplayerCharacters + movs r1, #0 + ldrsb r1, [r0, r1] + mov sb, r0 + cmp r6, r1 + bge _08083D7E + b _08083874_loop +_08083D7E: + ldr r5, [sp, #0x18] + movs r6, #0x80 + lsls r6, r6, #0x10 + adds r1, r5, r6 + movs r0, #0xf8 + lsls r0, r0, #0x11 + cmp r1, r0 + bhi _08083DA4 + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08083DA4 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08083E42 +_08083DA4: + movs r2, #0 + ldr r3, _08083DE4 @ =gCurTask + mov sl, r3 + movs r5, #0x40 + adds r5, r5, r7 + mov r8, r5 + ldr r4, _08083DDC @ =gPartner + ldr r6, _08083DE8 @ =0xFFDFFFFF + mov ip, r6 + ldr r3, _08083DD8 @ =gPlayer + ldr r6, _08083DEC @ =0xFFBFFFFF + ldr r5, _08083DF0 @ =gPlayerControls +_08083DBC_loop: + mov r1, r8 + ldrb r0, [r1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08083E26_continue + cmp r2, #0 + beq _08083DF4 + ldr r0, [r4, #0x10] + mov r1, ip + ands r0, r1 + str r0, [r4, #0x10] + b _08083DFC + .align 2, 0 +_08083DD8: .4byte gPlayer +_08083DDC: .4byte gPartner +_08083DE0: .4byte gNumSingleplayerCharacters +_08083DE4: .4byte gCurTask +_08083DE8: .4byte 0xFFDFFFFF +_08083DEC: .4byte 0xFFBFFFFF +_08083DF0: .4byte gPlayerControls +_08083DF4: + ldr r0, [r3, #0x10] + mov r1, ip + ands r0, r1 + str r0, [r3, #0x10] +_08083DFC: + ldrh r1, [r5] + ldrh r0, [r5, #2] + orrs r1, r0 + cmp r2, #0 + beq _08083E0E + ldrh r0, [r4, #0x38] + orrs r1, r0 + strh r1, [r4, #0x38] + b _08083E14 +_08083E0E: + ldrh r0, [r3, #0x38] + orrs r1, r0 + strh r1, [r3, #0x38] +_08083E14: + cmp r2, #0 + beq _08083E20 + ldr r0, [r4, #0x10] + ands r0, r6 + str r0, [r4, #0x10] + b _08083E26_continue +_08083E20: + ldr r0, [r3, #0x10] + ands r0, r6 + str r0, [r3, #0x10] +_08083E26_continue: + adds r2, #1 + mov r1, sb + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r2, r0 + blt _08083DBC_loop + ldrb r0, [r7, #8] + ldr r2, [sp, #0x14] + strb r0, [r2] + mov r3, sl + ldr r0, [r3] + bl TaskDestroy + b _08083E4E +_08083E42: + ldr r0, [sp, #0x10] + bl UpdateSpriteAnimation + ldr r0, [sp, #0x10] + bl DisplaySprite +_08083E4E: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc b/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc new file mode 100644 index 0000000000..82e4c726cc --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc @@ -0,0 +1,776 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _080829BC @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + mov r8, r1 + ldr r0, [r1] + str r0, [sp, #0x10] + ldrb r1, [r1, #8] + lsls r1, r1, #3 + mov r2, r8 + ldrh r0, [r2, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 + ldr r3, [sp, #0x10] + ldrb r2, [r3, #1] + lsls r2, r2, #3 + mov r4, r8 + ldrh r0, [r4, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + lsls r2, r2, #0x10 + ldr r3, _080829C0 @ =gCamera + ldrh r0, [r3] + lsrs r4, r1, #0x10 + str r4, [sp] + asrs r1, r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0xc] + ldrh r0, [r3, #2] + lsrs r1, r2, #0x10 + str r1, [sp, #4] + asrs r2, r2, #0x10 + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #8] + movs r4, #0 + ldr r5, _080829C4 @ =gPartner + ldr r7, _080829C8 @ =gPlayer + movs r2, #0 + str r2, [sp, #0x14] + mov sl, r2 +_080829B2: + cmp r4, #0 + beq _080829CC + ldr r0, [r5, #0x10] + b _080829CE + .align 2, 0 +_080829BC: .4byte gCurTask +_080829C0: .4byte gCamera +_080829C4: .4byte gPartner +_080829C8: .4byte gPlayer +_080829CC: + ldr r0, [r7, #0x10] +_080829CE: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080829D8 + b _08082DC8 +_080829D8: + mov r2, r8 + adds r2, #0x4c + ldrb r1, [r2] + asrs r1, r4 + movs r0, #1 + ands r1, r0 + mov sb, r2 + cmp r1, #0 + bne _080829EC + b _08082C08 +_080829EC: + cmp r4, #0 + beq _080829F8 + ldrh r0, [r5, #0xa] + adds r0, #0x2a + strh r0, [r5, #0xa] + b _080829FE +_080829F8: + ldrh r0, [r7, #0xa] + adds r0, #0x2a + strh r0, [r7, #0xa] +_080829FE: + cmp r4, #0 + beq _08082A08 + movs r3, #0xa + ldrsh r1, [r5, r3] + b _08082A0C +_08082A08: + movs r0, #0xa + ldrsh r1, [r7, r0] +_08082A0C: + cmp r4, #0 + beq _08082A18 + ldr r0, [r5, #4] + adds r0, r0, r1 + str r0, [r5, #4] + b _08082A1E +_08082A18: + ldr r0, [r7, #4] + adds r0, r0, r1 + str r0, [r7, #4] +_08082A1E: + mov r0, r8 + adds r0, #0x3c + ldr r2, [sp, #0x14] + adds r1, r0, r2 + ldr r2, [r1] + mov ip, r0 + cmp r4, #0 + beq _08082A34 + movs r3, #0xa + ldrsh r0, [r5, r3] + b _08082A38 +_08082A34: + movs r3, #0xa + ldrsh r0, [r7, r3] +_08082A38: + adds r0, r2, r0 + str r0, [r1] + ldr r0, _08082A64 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + asrs r0, r0, #0x19 + cmp r0, #1 + beq _08082A4E + cmp r1, #0xf + bne _08082ACE +_08082A4E: + ldr r1, [sp] + lsls r0, r1, #0x10 + asrs r2, r0, #8 + adds r1, r0, #0 + cmp r4, #0 + beq _08082A68 + ldr r0, [r5] + cmp r0, r2 + blt _08082A6E + b _08082A9C + .align 2, 0 +_08082A64: .4byte gCurrentLevel +_08082A68: + ldr r0, [r7] + cmp r0, r2 + bge _08082A9C +_08082A6E: + cmp r4, #0 + beq _08082A7A + ldr r0, [r5] + adds r0, #0x80 + str r0, [r5] + b _08082A80 +_08082A7A: + ldr r0, [r7] + adds r0, #0x80 + str r0, [r7] +_08082A80: + asrs r2, r1, #8 + cmp r4, #0 + beq _08082A8E + ldr r0, [r5] + cmp r0, r2 + bgt _08082A94 + b _08082ACE +_08082A8E: + ldr r0, [r7] + cmp r0, r2 + ble _08082ACE +_08082A94: + asrs r0, r1, #8 + cmp r4, #0 + bne _08082AC8 + b _08082ACC +_08082A9C: + cmp r4, #0 + beq _08082AA8 + ldr r0, [r5] + subs r0, #0x80 + str r0, [r5] + b _08082AAE +_08082AA8: + ldr r0, [r7] + subs r0, #0x80 + str r0, [r7] +_08082AAE: + asrs r2, r1, #8 + cmp r4, #0 + beq _08082ABC + ldr r0, [r5] + cmp r0, r2 + blt _08082AC2 + b _08082ACE +_08082ABC: + ldr r0, [r7] + cmp r0, r2 + bge _08082ACE +_08082AC2: + asrs r0, r1, #8 + cmp r4, #0 + beq _08082ACC +_08082AC8: + str r0, [r5] + b _08082ACE +_08082ACC: + str r0, [r7] +_08082ACE: + ldr r3, _08082B48 @ =gPlayer + 0x6D + adds r0, r3, #0 + cmp r4, #0 + beq _08082AD8 + ldr r0, _08082B4C @ =gPartner + 0x6D +_08082AD8: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r1, r8 + adds r1, #0x4d + adds r6, r1, #0 + ldrb r2, [r6] + cmp r0, r2 + bgt _08082B18 + lsls r0, r4, #1 + subs r1, #9 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + mov r1, r8 + adds r1, #0x48 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + cmp r0, r1 + bhs _08082B18 + ldr r0, [sp, #0x14] + add r0, ip + ldr r1, [r0] + asrs r1, r1, #8 + mov r0, r8 + adds r0, #0x4a + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _08082B94 +_08082B18: + adds r0, r3, #0 + cmp r4, #0 + beq _08082B20 + ldr r0, _08082B4C @ =gPartner + 0x6D +_08082B20: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r6, [r6] + cmp r0, r6 + bne _08082B80 + adds r1, r3, #0 + cmp r4, #0 + beq _08082B34 + ldr r1, _08082B4C @ =gPartner + 0x6D +_08082B34: + movs r0, #0x7f + strb r0, [r1] + cmp r4, #0 + beq _08082B54 + ldr r0, [r5, #0x10] + ldr r1, _08082B50 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] + b _08082B5C + .align 2, 0 +_08082B48: .4byte gPlayer + 0x6D +_08082B4C: .4byte gPartner + 0x6D +_08082B50: .4byte 0xFFBFFFFF +_08082B54: + ldr r0, [r7, #0x10] + ldr r1, _08082B6C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r7, #0x10] +_08082B5C: + cmp r4, #0 + beq _08082B74 + ldr r3, _08082B70 @ =gPartner + 0x26 + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3] + b _08082B80 + .align 2, 0 +_08082B6C: .4byte 0xFFBFFFFF +_08082B70: .4byte gPartner + 0x26 +_08082B74: + ldr r0, _08082B90 @ =gPlayer + 0x26 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + ldr r1, _08082B90 @ =gPlayer + 0x26 + strb r0, [r1] +_08082B80: + movs r1, #1 + lsls r1, r4 + mov r2, sb + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + b _08082E00 + .align 2, 0 +_08082B90: .4byte gPlayer + 0x26 +_08082B94: + cmp r4, #0 + beq _08082BA4 + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5, #0x10] + b _08082BAE +_08082BA4: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r7, #0x10] +_08082BAE: + adds r2, r3, #0 + subs r2, #0x6d + cmp r4, #0 + beq _08082BBC + mov r3, sl + strh r3, [r5, #8] + b _08082BBE +_08082BBC: + strh r4, [r2, #8] +_08082BBE: + cmp r4, #0 + beq _08082BC8 + mov r0, sl + strh r0, [r5, #0xc] + b _08082BCA +_08082BC8: + strh r4, [r2, #0xc] +_08082BCA: + ldr r0, _08082C00 @ =gPlayer + cmp r4, #0 + beq _08082BD2 + ldr r0, _08082C04 @ =gPartner +_08082BD2: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08082C00 @ =gPlayer + cmp r4, #0 + beq _08082BE0 + ldr r1, _08082C04 @ =gPartner +_08082BE0: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08082C00 @ =gPlayer + cmp r4, #0 + beq _08082BEC + ldr r1, _08082C04 @ =gPartner +_08082BEC: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #1 + lsls r0, r4 + mov r2, sb + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _08082E00 + .align 2, 0 +_08082C00: .4byte gPlayer +_08082C04: .4byte gPartner +_08082C08: + cmp r4, #0 + beq _08082C1E + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08082C2E + mov r6, r8 + adds r6, #0x4d + b _08082C48 +_08082C1E: + ldr r1, [r7, #0x10] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r1, r0 + mov r6, r8 + adds r6, #0x4d + cmp r1, #0 + beq _08082C48 +_08082C2E: + ldr r0, _08082C68 @ =gPlayer + 0x6D + cmp r4, #0 + beq _08082C36 + ldr r0, _08082C6C @ =gPartner + 0x6D +_08082C36: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r1, r8 + adds r1, #0x4d + adds r6, r1, #0 + ldrb r3, [r6] + cmp r0, r3 + blt _08082C50 +_08082C48: + ldrb r0, [r6] + cmp r0, #0 + beq _08082C50 + b _08082E00 +_08082C50: + ldr r0, [sp] + lsls r1, r0, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #0xc + cmp r4, #0 + beq _08082C70 + ldr r0, [r5] + asrs r0, r0, #8 + cmp r2, r0 + ble _08082C7A + b _08082E00 + .align 2, 0 +_08082C68: .4byte gPlayer + 0x6D +_08082C6C: .4byte gPartner + 0x6D +_08082C70: + ldr r0, [r7] + asrs r0, r0, #8 + cmp r2, r0 + ble _08082C7A + b _08082E00 +_08082C7A: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0xc + cmp r4, #0 + beq _08082C8E + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + bge _08082C98 + b _08082E00 +_08082C8E: + ldr r0, [r7] + asrs r0, r0, #8 + cmp r1, r0 + bge _08082C98 + b _08082E00 +_08082C98: + ldr r2, [sp, #4] + lsls r1, r2, #0x10 + asrs r0, r1, #0x10 + adds r2, r0, #0 + subs r2, #0xc + cmp r4, #0 + beq _08082CB0 + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08082CBA + b _08082E00 +_08082CB0: + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08082CBA + b _08082E00 +_08082CBA: + asrs r0, r1, #0x10 + adds r1, r0, #0 + adds r1, #0xc + cmp r4, #0 + beq _08082CCE + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08082CD8 + b _08082E00 +_08082CCE: + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08082CD8 + b _08082E00 +_08082CD8: + lsls r0, r4, #1 + mov r1, r8 + adds r1, #0x44 + adds r1, r1, r0 + mov r3, sl + strh r3, [r1] + mov r0, r8 + adds r0, #0x3c + ldr r1, [sp, #0x14] + adds r0, r0, r1 + mov r2, sl + str r2, [r0] + cmp r4, #0 + beq _08082CFE + ldr r0, [r5, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r5, #0x10] + b _08082D06 +_08082CFE: + ldr r0, [r7, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r7, #0x10] +_08082D06: + ldr r2, _08082D18 @ =gPlayer + cmp r4, #0 + beq _08082D1C + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5, #0x10] + b _08082D26 + .align 2, 0 +_08082D18: .4byte gPlayer +_08082D1C: + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r7, #0x10] +_08082D26: + cmp r4, #0 + beq _08082D30 + mov r3, sl + strh r3, [r5, #0xa] + b _08082D32 +_08082D30: + strh r4, [r2, #0xa] +_08082D32: + cmp r4, #0 + beq _08082D3C + mov r0, sl + strh r0, [r5, #8] + b _08082D3E +_08082D3C: + strh r4, [r2, #8] +_08082D3E: + cmp r4, #0 + beq _08082D48 + mov r1, sl + strh r1, [r5, #0xc] + b _08082D4A +_08082D48: + strh r4, [r2, #0xc] +_08082D4A: + ldr r0, _08082DA4 @ =gPlayer + cmp r4, #0 + beq _08082D52 + ldr r0, _08082DA8 @ =gPartner +_08082D52: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08082DA4 @ =gPlayer + cmp r4, #0 + beq _08082D60 + ldr r1, _08082DA8 @ =gPartner +_08082D60: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08082DA4 @ =gPlayer + cmp r4, #0 + beq _08082D6C + ldr r1, _08082DA8 @ =gPartner +_08082D6C: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #0xaa + bl m4aSongNumStart + movs r1, #1 + lsls r1, r4 + mov r2, sb + ldrb r0, [r2] + orrs r1, r0 + movs r2, #0 + mov r3, sb + strb r1, [r3] + ldr r1, _08082DAC @ =gPlayer + 0x6D + cmp r4, #0 + beq _08082D8E + ldr r1, _08082DB0 @ =gPartner + 0x6D +_08082D8E: + ldrb r0, [r6] + strb r0, [r1] + cmp r4, #0 + beq _08082DB8 + ldr r1, _08082DB4 @ =gPartner + 0x26 + ldrb r0, [r1] + movs r1, #0x80 + orrs r0, r1 + ldr r2, _08082DB4 @ =gPartner + 0x26 + strb r0, [r2] + b _08082E00 + .align 2, 0 +_08082DA4: .4byte gPlayer +_08082DA8: .4byte gPartner +_08082DAC: .4byte gPlayer + 0x6D +_08082DB0: .4byte gPartner + 0x6D +_08082DB4: .4byte gPartner + 0x26 +_08082DB8: + ldr r3, _08082DC4 @ =gPlayer + 0x26 + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + b _08082E00 + .align 2, 0 +_08082DC4: .4byte gPlayer + 0x26 +_08082DC8: + mov r1, r8 + adds r1, #0x4c + ldrb r3, [r1] + adds r0, r3, #0 + asrs r0, r4 + movs r2, #1 + ands r0, r2 + mov sb, r1 + cmp r0, #0 + beq _08082E00 + adds r0, r2, #0 + lsls r0, r4 + bics r3, r0 + strb r3, [r1] + cmp r4, #0 + beq _08082DF8 + ldr r0, [r5, #0x10] + ldr r1, _08082DF4 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] + b _08082E00 + .align 2, 0 +_08082DF4: .4byte 0xFFBFFFFF +_08082DF8: + ldr r0, [r7, #0x10] + ldr r1, _08082E8C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r7, #0x10] +_08082E00: + ldr r0, [sp, #0x14] + adds r0, #4 + str r0, [sp, #0x14] + adds r4, #1 + ldr r0, _08082E90 @ =gNumSingleplayerCharacters + movs r1, #0 + ldrsb r1, [r0, r1] + mov ip, r0 + cmp r4, r1 + bge _08082E16 + b _080829B2 +_08082E16: + mov r2, sb + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08082EC6 + ldr r3, [sp, #0xc] + lsls r0, r3, #0x10 + movs r4, #0x80 + lsls r4, r4, #0x10 + adds r0, r0, r4 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08082E4A + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + asrs r2, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08082E4A + movs r0, #0x90 + lsls r0, r0, #1 + cmp r2, r0 + ble _08082EC6 +_08082E4A: + movs r2, #0 + ldr r3, _08082E94 @ =gCurTask + mov sl, r3 + ldr r3, _08082E98 @ =gPlayer + 0x6D + mov r6, r8 + adds r6, #0x4d + ldr r7, _08082E9C @ =gPartner + ldr r5, _08082E8C @ =0xFFBFFFFF + adds r4, r3, #0 + subs r4, #0x6d +_08082E5E: + adds r0, r3, #0 + cmp r2, #0 + beq _08082E66 + ldr r0, _08082EA0 @ =gPartner + 0x6D +_08082E66: + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r1, [r6] + cmp r0, r1 + bne _08082EAA + mov r1, sb + ldrb r0, [r1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08082EAA + cmp r2, #0 + beq _08082EA4 + ldr r0, [r7, #0x10] + ands r0, r5 + str r0, [r7, #0x10] + b _08082EAA + .align 2, 0 +_08082E8C: .4byte 0xFFBFFFFF +_08082E90: .4byte gNumSingleplayerCharacters +_08082E94: .4byte gCurTask +_08082E98: .4byte gPlayer + 0x6D +_08082E9C: .4byte gPartner +_08082EA0: .4byte gPartner + 0x6D +_08082EA4: + ldr r0, [r4, #0x10] + ands r0, r5 + str r0, [r4, #0x10] +_08082EAA: + adds r2, #1 + mov r1, ip + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r2, r0 + blt _08082E5E + mov r2, r8 + ldrb r0, [r2, #8] + ldr r3, [sp, #0x10] + strb r0, [r3] + mov r4, sl + ldr r0, [r4] + bl TaskDestroy +_08082EC6: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc b/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc new file mode 100644 index 0000000000..1fecb2f26a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc @@ -0,0 +1,316 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _08095FD4 @ =gCurTask + ldr r0, [r1] + mov ip, r0 + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r4 + mov r8, r0 + ldr r2, [r0] + mov sl, r2 + ldr r3, _08095FD8 @ =0x0300000C + adds r3, r4, r3 + str r3, [sp] + ldr r2, _08095FDC @ =0x0300003C + adds r0, r4, r2 + ldrb r0, [r0] + ldr r7, _08095FE0 @ =gPlayer + cmp r0, #0 + beq _08095EC4 + ldr r7, _08095FE4 @ =gPartner +_08095EC4: + mov r3, r8 + ldrb r2, [r3, #8] + lsls r2, r2, #3 + ldrh r0, [r3, #4] + lsls r0, r0, #8 + adds r2, r2, r0 + mov r0, sl + ldrb r1, [r0, #1] + lsls r1, r1, #3 + ldrh r0, [r3, #6] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r3, _08095FE8 @ =gCamera + ldrh r0, [r3] + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + subs r2, r2, r0 + lsls r0, r2, #0x10 + lsrs r5, r0, #0x10 + ldrh r0, [r3, #2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + subs r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [sp] + strh r2, [r0, #0x16] + ldrh r0, [r3, #2] + subs r1, r1, r0 + ldr r2, [sp] + strh r1, [r2, #0x18] + ldr r3, _08095FEC @ =0x03000058 + adds r3, r3, r4 + mov sb, r3 + ldrb r0, [r3] + cmp r0, #0 + bne _08095F10 + b _08096054 +_08095F10: + ldr r0, [r7, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08095F1C + b _08096040 +_08095F1C: + adds r0, r7, #0 + adds r0, #0x6d + str r0, [sp, #4] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, _08095FF0 @ =0x0300003D + adds r1, r1, r4 + mov sl, r1 + ldrb r2, [r1] + cmp r0, r2 + beq _08095F36 + b _08096038 +_08095F36: + ldr r3, _08095FF4 @ =0x0300003F + adds r5, r4, r3 + ldrb r1, [r5] + mov r2, r8 + ldr r0, [r2, #0x48] + muls r0, r1, r0 + subs r3, #1 + adds r4, r4, r3 + ldrb r1, [r4] + bl Div + adds r6, r0, #0 + ldrb r1, [r5] + mov r2, r8 + ldr r0, [r2, #0x4c] + muls r0, r1, r0 + ldrb r1, [r4] + bl Div + mov r3, r8 + ldr r2, [r3, #0x40] + adds r2, r2, r6 + lsls r2, r2, #8 + str r2, [r7] + ldr r1, [r3, #0x44] + adds r1, r1, r0 + lsls r1, r1, #8 + str r1, [r7, #4] + ldr r0, [r3, #0x54] + subs r1, r1, r0 + strh r1, [r7, #0xa] + ldr r0, [r3, #0x50] + subs r2, r2, r0 + strh r2, [r7, #0xc] + strh r2, [r7, #8] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r2, [r7] + asrs r2, r2, #8 + ldr r0, [r3, #0x40] + ldr r1, [r3, #0x48] + adds r0, r0, r1 + cmp r2, r0 + bne _08095FFC + ldr r0, [r7, #4] + asrs r0, r0, #8 + ldr r1, [r3, #0x44] + ldr r2, [r3, #0x4c] + adds r1, r1, r2 + cmp r0, r1 + bne _08095FFC + ldr r1, [sp, #4] + movs r0, #0 + ldrsb r0, [r1, r0] + mov r2, sl + ldrb r2, [r2] + cmp r0, r2 + bne _08095FC0 + ldr r0, [r7, #0x10] + ldr r1, _08095FF8 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r7, #0x10] + ldr r2, _08095FE0 @ =gPlayer + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_08095FC0: + movs r0, #0 + mov r3, sb + strb r0, [r3] + adds r2, r7, #0 + adds r2, #0x26 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] + b _0809602C + .align 2, 0 +_08095FD4: .4byte gCurTask +_08095FD8: .4byte 0x0300000C +_08095FDC: .4byte 0x0300003C +_08095FE0: .4byte gPlayer +_08095FE4: .4byte gPartner +_08095FE8: .4byte gCamera +_08095FEC: .4byte 0x03000058 +_08095FF0: .4byte 0x0300003D +_08095FF4: .4byte 0x0300003F +_08095FF8: .4byte 0xFFBFFFFF +_08095FFC: + adds r0, r7, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r7, #0x10] + adds r1, r7, #0 + adds r1, #0x40 + movs r0, #5 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r7, #0xe] + movs r0, #0xe + strb r0, [r7, #0xf] + mov r1, r8 + adds r1, #0x58 + movs r0, #1 + strb r0, [r1] +_0809602C: + ldr r0, [r7] + mov r1, r8 + str r0, [r1, #0x50] + ldr r0, [r7, #4] + str r0, [r1, #0x54] + b _080960DC +_08096038: + movs r3, #0 + mov r2, sb + strb r3, [r2] + b _080960DC +_08096040: + movs r1, #0 + mov r0, sb + strb r1, [r0] + ldr r0, [r7, #0x10] + ldr r1, _08096050 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r7, #0x10] + b _080960DC + .align 2, 0 +_08096050: .4byte 0xFFBFFFFF +_08096054: + ldr r0, _080960CC @ =Task_PipeEntrance + mov r2, ip + str r0, [r2, #8] + lsls r0, r5, #0x10 + movs r3, #0x80 + lsls r3, r3, #0x10 + adds r0, r0, r3 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0809607E + lsls r0, r6, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _0809607E + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _080960DC +_0809607E: + mov r0, r8 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _080960B0 + adds r0, r7, #0 + adds r0, #0x6d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r1, r8 + adds r1, #0x3d + ldrb r1, [r1] + cmp r0, r1 + bne _080960B0 + ldr r0, [r7, #0x10] + ldr r1, _080960D0 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r7, #0x10] + ldr r2, _080960D4 @ =gPlayer + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080960B0: + mov r0, r8 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _080960C2 + mov r1, r8 + ldrb r0, [r1, #8] + mov r2, sl + strb r0, [r2] +_080960C2: + ldr r3, _080960D8 @ =gCurTask + ldr r0, [r3] + bl TaskDestroy + b _080960F2 + .align 2, 0 +_080960CC: .4byte Task_PipeEntrance +_080960D0: .4byte 0xFFBFFFFF +_080960D4: .4byte gPlayer +_080960D8: .4byte gCurTask +_080960DC: + ldr r0, [sp] + bl UpdateSpriteAnimation + mov r0, r8 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _080960F2 + ldr r0, [sp] + bl DisplaySprite +_080960F2: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc b/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc new file mode 100644 index 0000000000..643d1f65ed --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc @@ -0,0 +1,228 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _080964B8 @ =gCurTask + ldr r0, [r1] + ldrh r0, [r0, #6] + mov r8, r0 + movs r0, #0xc0 + lsls r0, r0, #0x12 + add r0, r8 + str r0, [sp] + ldr r2, [r0] + str r2, [sp, #4] + ldr r6, _080964BC @ =0x0300000C + add r6, r8 + ldr r0, _080964C0 @ =0x0300003C + add r0, r8 + ldrb r0, [r0] + ldr r4, _080964C4 @ =gPlayer + cmp r0, #0 + beq _080963D2 + ldr r4, _080964C8 @ =gPartner +_080963D2: + ldr r3, [sp] + ldrb r1, [r3, #8] + lsls r1, r1, #3 + ldrh r0, [r3, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, [sp, #4] + ldrb r2, [r0, #1] + lsls r2, r2, #3 + ldrh r0, [r3, #6] + lsls r0, r0, #8 + adds r2, r2, r0 + ldr r3, _080964CC @ =gCamera + ldrh r0, [r3] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov sl, r1 + subs r0, r1, r0 + strh r0, [r6, #0x16] + ldrh r0, [r3, #2] + lsls r2, r2, #0x10 + asrs r7, r2, #0x10 + subs r0, r7, r0 + strh r0, [r6, #0x18] + ldr r0, [r4, #0x10] + movs r1, #0x80 + mov sb, r1 + adds r5, r0, #0 + ands r5, r1 + cmp r5, #0 + bne _080964EA + movs r2, #0x80 + lsls r2, r2, #0xf + ands r0, r2 + cmp r0, #0 + beq _080964DC + movs r3, #0x6d + adds r3, r3, r4 + mov sb, r3 + movs r1, #0 + ldrsb r1, [r3, r1] + ldr r0, _080964D0 @ =0x0300003D + add r0, r8 + ldrb r0, [r0] + cmp r1, r0 + bge _08096500 + adds r0, r6, #0 + mov r1, sl + adds r2, r7, #0 + adds r3, r4, #0 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + beq _08096500 + ldr r1, _080964D4 @ =0x0300003E + add r1, r8 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + adds r1, #6 + ands r0, r1 + subs r1, #0xfe + ands r0, r1 + adds r1, #0xf0 + ands r0, r1 + subs r1, #0x10 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #5 + strb r0, [r1] + lsls r0, r7, #8 + str r0, [r4, #4] + mov r2, sl + lsls r0, r2, #8 + str r0, [r4] + strh r5, [r4, #0xa] + strh r5, [r4, #8] + strh r5, [r4, #0xc] + strh r5, [r4, #0x38] + strh r5, [r4, #0x3a] + movs r0, #0x7f + mov r3, sb + strb r0, [r3] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + ldr r0, _080964B8 @ =gCurTask + ldr r1, [r0] + ldr r0, _080964D8 @ =Task_809656C + str r0, [r1, #8] + adds r2, r4, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + b _08096500 + .align 2, 0 +_080964B8: .4byte gCurTask +_080964BC: .4byte 0x0300000C +_080964C0: .4byte 0x0300003C +_080964C4: .4byte gPlayer +_080964C8: .4byte gPartner +_080964CC: .4byte gCamera +_080964D0: .4byte 0x0300003D +_080964D4: .4byte 0x0300003E +_080964D8: .4byte Task_809656C +_080964DC: + adds r0, r6, #0 + mov r1, sl + adds r2, r7, #0 + adds r3, r4, #0 + bl Coll_Player_Platform + b _08096500 +_080964EA: + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r0, [r4, #0x10] + mov r1, sb + orrs r0, r1 + str r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #1 + strb r0, [r1] +_08096500: + ldrh r0, [r6, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08096524 + movs r2, #0x18 + ldrsh r0, [r6, r2] + adds r0, #0x80 + cmp r0, #0 + blt _08096524 + movs r3, #0x18 + ldrsh r1, [r6, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08096544 +_08096524: + ldr r0, [sp] + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08096536 + ldr r1, [sp] + ldrb r0, [r1, #8] + ldr r2, [sp, #4] + strb r0, [r2] +_08096536: + ldr r0, _08096540 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0809655A + .align 2, 0 +_08096540: .4byte gCurTask +_08096544: + adds r0, r6, #0 + bl UpdateSpriteAnimation + ldr r0, [sp] + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _0809655A + adds r0, r6, #0 + bl DisplaySprite +_0809655A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc b/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc new file mode 100644 index 0000000000..af87973bb4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc @@ -0,0 +1,185 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #8 + mov ip, r0 @ ip = s + adds r7, r1, #0 @ r7 = worldX + mov r8, r2 @ r8 = worldY + adds r5, r3, #0 @ r5 = rect + ldr r4, [sp, #0x20] @ r4 = p + adds r0, #0x2c + movs r3, #0 + ldrsb r3, [r0, r3] + adds r2, r7, r3 + ldr r0, [r4] + asrs r0, r0, #8 + movs r6, #0 + ldrsb r6, [r5, r6] + adds r1, r0, r6 + cmp r2, r1 + bgt _08080608 + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _08080616 + cmp r2, r1 + bge _08080608 + b _0808070C +_08080608: + movs r0, #2 + ldrsb r0, [r5, r0] + subs r0, r0, r6 + adds r0, r1, r0 + cmp r0, r2 + bge _08080616 + b _0808070C +_08080616: + mov r0, ip + adds r0, #0x2d + movs r3, #0 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r2, r0, r3 + ldr r0, [r4, #4] + asrs r0, r0, #8 + movs r6, #1 + ldrsb r6, [r5, r6] + adds r1, r0, r6 + cmp r2, r1 + bgt _08080646 + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _08080652 + cmp r2, r1 + blt _0808070C +_08080646: + movs r0, #3 + ldrsb r0, [r5, r0] + subs r0, r0, r6 + adds r0, r1, r0 + cmp r0, r2 + blt _0808070C +_08080652: + mov r0, ip + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r7, r0 + movs r1, #2 + ldrsb r1, [r5, r1] + subs r1, r0, r1 + adds r2, r1, #0 + adds r2, #8 + ldr r0, [r4] + asrs r3, r0, #8 + cmp r3, r2 + bgt _0808067E + lsls r0, r1, #8 + str r0, [r4] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _080806AA + b _080806A4 +_0808067E: + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r7, r0 + movs r1, #0 + ldrsb r1, [r5, r1] + subs r0, r0, r1 + adds r2, r0, #0 + subs r2, #8 + cmp r3, r2 + blt _0808070C + lsls r0, r0, #8 + str r0, [r4] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080806AA +_080806A4: + movs r0, #0 + strh r0, [r4, #0xc] + strh r0, [r4, #8] +_080806AA: + ldr r0, [r4, #4] + asrs r0, r0, #8 + adds r0, #9 + ldr r1, [r4] + asrs r1, r1, #8 + adds r5, r4, #0 + adds r5, #0x27 + ldrb r2, [r5] + movs r7, #0 + str r7, [sp] + ldr r6, _08080708 @ =sa2__sub_801EE64 + str r6, [sp, #4] + movs r3, #8 + bl sa2__sub_801E4E4 + cmp r0, #0 + bge _080806D4 + lsls r1, r0, #8 + ldr r0, [r4, #4] + adds r0, r0, r1 + str r0, [r4, #4] +_080806D4: + ldr r0, [r4, #4] + asrs r0, r0, #8 + ldr r1, [r4] + asrs r1, r1, #8 + ldrb r2, [r5] + movs r3, #8 + rsbs r3, r3, #0 + str r7, [sp] + str r6, [sp, #4] + bl sa2__sub_801E4E4 + cmp r0, #0 + bge _080806F6 + lsls r1, r0, #8 + ldr r0, [r4, #4] + adds r0, r0, r1 + str r0, [r4, #4] +_080806F6: + ldr r0, [r4, #0x10] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + adds r1, #0x18 + ands r0, r1 + str r0, [r4, #0x10] + movs r0, #1 + b _0808070E + .align 2, 0 +_08080708: .4byte sa2__sub_801EE64 +_0808070C: + movs r0, #0 +_0808070E: + add sp, #8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc b/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc new file mode 100644 index 0000000000..186c9a4f89 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc @@ -0,0 +1,620 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _0807E4E0 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r1 + mov r8, r0 @ r8 = platform + ldr r0, _0807E4E4 @ =0x0300000C + adds r0, r0, r1 + mov sl, r0 @ sl = s + mov r1, r8 + ldr r1, [r1] + str r1, [sp, #8] @ sp08 = me + mov r2, r8 + ldrb r0, [r2, #8] + lsls r0, r0, #3 + ldrh r1, [r2, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 @ r3 = worldX + ldr r4, [sp, #8] + ldrb r0, [r4, #1] + lsls r0, r0, #3 + ldrh r1, [r2, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 @ r4 = worldY + ldr r0, [r2, #0x44] + cmp r0, #0 + beq _0807E4F0 + cmp r0, #0 + bge _0807E4E8 + ldr r0, [r2, #0x3c] + adds r0, #0x30 + str r0, [r2, #0x3c] + b _0807E4F0 + .align 2, 0 +_0807E4E0: .4byte gCurTask +_0807E4E4: .4byte 0x0300000C +_0807E4E8: + mov r1, r8 + ldr r0, [r1, #0x3c] + subs r0, #0x30 + str r0, [r1, #0x3c] +_0807E4F0: + ldr r2, _0807E534 @ =gCamera + ldrh r1, [r2] + lsls r3, r3, #0x10 @ r3 = worldX << 16 + asrs r0, r3, #0x10 + subs r0, r0, r1 + mov r1, sl + strh r0, [r1, #0x16] + ldrh r0, [r2, #2] + lsls r2, r4, #0x10 @ r2 = worldY << 16 + asrs r1, r2, #0x10 + subs r1, r1, r0 + mov r4, r8 + ldr r0, [r4, #0x44] + asrs r0, r0, #8 + adds r1, r1, r0 + mov r0, sl + strh r1, [r0, #0x18] + movs r4, #0 + str r3, [sp, #0xc] @ r3 = worldX << 16 + str r2, [sp, #0x10] @ r2 = worldY << 16 + ldr r6, _0807E538 @ =gPartner + ldr r7, _0807E53C @ =gPlayer + movs r1, #0 + str r1, [sp, #0x14] @ r1 = sp14 = i * 4 + movs r2, #9 + rsbs r2, r2, #0 + mov sb, r2 @ sb = ~MOVESTATE_STOOD_ON_OBJ +_0807E526_loop: + ldr r1, [sp, #0x14] @ r1 = sp14 = i * 4 + add r1, sp + cmp r4, #0 + beq _0807E540 + movs r3, #0xa + ldrsh r0, [r6, r3] + b _0807E544 + .align 2, 0 +_0807E534: .4byte gCamera +_0807E538: .4byte gPartner +_0807E53C: .4byte gPlayer +_0807E540: + movs r2, #0xa + ldrsh r0, [r7, r2] +_0807E544: + str r0, [r1] + cmp r4, #0 + beq _0807E55C + ldr r0, [r6, #0x10] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0807E56A + ldr r3, _0807E558 @ =gPlayer + b _0807E7D4 + .align 2, 0 +_0807E558: .4byte gPlayer +_0807E55C: + ldr r1, [r7, #0x10] + movs r0, #8 + ands r1, r0 + ldr r3, _0807E578 @ =gPlayer + cmp r1, #0 + bne _0807E56A + b _0807E7D4 +_0807E56A: + cmp r4, #0 + beq _0807E57C + ldr r0, [r6, #0x28] + cmp r0, sl + beq _0807E586 + ldr r3, _0807E578 @ =gPlayer + b _0807E7D4 + .align 2, 0 +_0807E578: .4byte gPlayer +_0807E57C: + ldr r0, [r7, #0x28] + ldr r3, _0807E590 @ =gPlayer + cmp r0, sl + beq _0807E586 + b _0807E7D4 +_0807E586: + cmp r4, #0 + beq _0807E594 + movs r0, #0 + strh r0, [r6, #0xa] + b _0807E596 + .align 2, 0 +_0807E590: .4byte gPlayer +_0807E594: + strh r4, [r7, #0xa] +_0807E596: + mov r3, r8 + ldr r1, [r3, #0x3c] + cmp r4, #0 + beq _0807E5A6 + ldr r0, [r6, #4] + adds r0, r0, r1 + str r0, [r6, #4] + b _0807E5AC +_0807E5A6: + ldr r0, [r7, #4] + adds r0, r0, r1 + str r0, [r7, #4] +_0807E5AC: + ldr r0, _0807E5C0 @ =gPlayerControls + ldrh r1, [r0, #2] + adds r2, r0, #0 + cmp r4, #0 + beq _0807E5C4 + ldrh r0, [r6, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _0807E5CC + b _0807E638 + .align 2, 0 +_0807E5C0: .4byte gPlayerControls +_0807E5C4: + ldrh r0, [r7, #0x3a] + ands r0, r1 + cmp r0, #0 + beq _0807E638 +_0807E5CC: + cmp r4, #0 + beq _0807E5DC + ldrh r0, [r6, #0x38] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807E5E6 + b _0807E638 +_0807E5DC: + ldrh r0, [r7, #0x38] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807E638 +_0807E5E6: + cmp r4, #0 + beq _0807E5FC + ldr r1, _0807E5F8 @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #3 + beq _0807E608 + b _0807E824_continue + .align 2, 0 +_0807E5F8: .4byte gPartner + 0x59 +_0807E5FC: + ldr r2, _0807E618 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #3 + beq _0807E608 + b _0807E824_continue +_0807E608: + cmp r4, #0 + beq _0807E61C + ldr r0, [r6, #0x10] + mov r3, sb + ands r0, r3 + str r0, [r6, #0x10] + b _0807E624 + .align 2, 0 +_0807E618: .4byte gPlayer + 0x59 +_0807E61C: + ldr r0, [r7, #0x10] + mov r1, sb + ands r0, r1 + str r0, [r7, #0x10] +_0807E624: + cmp r4, #0 + beq _0807E630 + movs r0, #0xfa + lsls r0, r0, #8 + strh r0, [r6, #0xa] + b _0807E824_continue +_0807E630: + movs r0, #0xfa + lsls r0, r0, #8 + strh r0, [r7, #0xa] + b _0807E824_continue +_0807E638: + ldrh r1, [r2] + cmp r4, #0 + beq _0807E648 + ldrh r0, [r6, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _0807E650 + b _0807E6D8 +_0807E648: + ldrh r0, [r7, #0x3a] + ands r0, r1 + cmp r0, #0 + beq _0807E6D8 +_0807E650: + cmp r4, #0 + beq _0807E660 + ldrh r0, [r6, #0x38] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807E66A + b _0807E6D8 +_0807E660: + ldrh r0, [r7, #0x38] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807E6D8 +_0807E66A: + cmp r4, #0 + beq _0807E680 + ldr r2, _0807E67C @ =gPartner + 0x59 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #3 + bne _0807E68A + b _0807E6C0 + .align 2, 0 +_0807E67C: .4byte gPartner + 0x59 +_0807E680: + ldr r3, _0807E6B4 @ =gPlayer + 0x59 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #3 + beq _0807E6C0 +_0807E68A: + ldr r0, _0807E6B8 @ =gPlayer + cmp r4, #0 + beq _0807E692 + ldr r0, _0807E6BC @ =gPartner +_0807E692: + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + ldr r1, _0807E6B8 @ =gPlayer + cmp r4, #0 + beq _0807E6A0 + ldr r1, _0807E6BC @ =gPartner +_0807E6A0: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _0807E6B8 @ =gPlayer + cmp r4, #0 + beq _0807E6AC + ldr r1, _0807E6BC @ =gPartner +_0807E6AC: + movs r0, #9 + strb r0, [r1, #0xf] + b _0807E824_continue + .align 2, 0 +_0807E6B4: .4byte gPlayer + 0x59 +_0807E6B8: .4byte gPlayer +_0807E6BC: .4byte gPartner +_0807E6C0: + cmp r4, #0 + beq _0807E6CE + ldr r0, [r6, #0x10] + mov r1, sb + ands r0, r1 + str r0, [r6, #0x10] + b _0807E824_continue +_0807E6CE: + ldr r0, [r7, #0x10] + mov r2, sb + ands r0, r2 + str r0, [r7, #0x10] + b _0807E824_continue +_0807E6D8: + ldrh r1, [r2] + cmp r4, #0 + beq _0807E6F0 + ldrh r0, [r6, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _0807E6FA + ldr r3, _0807E6EC @ =gPlayer + b _0807E72E + .align 2, 0 +_0807E6EC: .4byte gPlayer +_0807E6F0: + ldrh r0, [r7, #0x3a] + ands r0, r1 + ldr r3, _0807E70C @ =gPlayer + cmp r0, #0 + beq _0807E72E +_0807E6FA: + mov r3, r8 + ldr r0, [r3, #0x3c] + asrs r0, r0, #1 + ldr r1, _0807E710 @ =0xFFFFFC00 + adds r0, r0, r1 + cmp r4, #0 + beq _0807E714 + strh r0, [r6, #0xa] + b _0807E716 + .align 2, 0 +_0807E70C: .4byte gPlayer +_0807E710: .4byte 0xFFFFFC00 +_0807E714: + strh r0, [r7, #0xa] +_0807E716: + cmp r4, #0 + beq _0807E724 + ldr r0, [r6, #0x10] + mov r2, sb + ands r0, r2 + str r0, [r6, #0x10] + b _0807E824_continue +_0807E724: + ldr r0, [r7, #0x10] + mov r3, sb + ands r0, r3 + str r0, [r7, #0x10] + b _0807E824_continue +_0807E72E: + cmp r4, #0 + beq _0807E73E + ldr r0, [r6, #4] + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 + str r0, [r6, #4] + b _0807E748 +_0807E73E: + ldr r0, [r7, #4] + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r0, r2 + str r0, [r7, #4] +_0807E748: + cmp r4, #0 + beq _0807E752 + movs r0, #1 + strh r0, [r6, #0xa] + b _0807E756 +_0807E752: + movs r0, #1 + strh r0, [r3, #0xa] +_0807E756: + mov r0, r8 + ldr r1, [r0, #0x40] + asrs r1, r1, #8 + ldr r2, [sp, #0xc] @ r2 = sp0C = worldX << 16 + asrs r0, r2, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + mov r0, r8 + ldr r1, [r0, #0x44] + asrs r1, r1, #8 + ldr r2, [sp, #0x10] + asrs r0, r2, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r4, #0 + beq _0807E77C + ldr r3, _0807E798 @ =gPartner +_0807E77C: + mov r0, sl + adds r1, r5, #0 + bl Coll_Player_PlatformCrumbling + cmp r0, #0 + bne _0807E7C0 + cmp r4, #0 + beq _0807E79C + ldr r0, [r6, #0x10] + mov r3, sb + ands r0, r3 + str r0, [r6, #0x10] + b _0807E7A4 + .align 2, 0 +_0807E798: .4byte gPartner +_0807E79C: + ldr r0, [r7, #0x10] + mov r1, sb + ands r0, r1 + str r0, [r7, #0x10] +_0807E7A4: + cmp r4, #0 + beq _0807E7B8 + ldr r0, [r6, #4] + ldr r2, _0807E7B4 @ =0xFFFFF800 + adds r0, r0, r2 + str r0, [r6, #4] + b _0807E7C0 + .align 2, 0 +_0807E7B4: .4byte 0xFFFFF800 +_0807E7B8: + ldr r0, [r7, #4] + ldr r3, _0807E7CC @ =0xFFFFF800 + adds r0, r0, r3 + str r0, [r7, #4] +_0807E7C0: + cmp r4, #0 + beq _0807E7D0 + movs r0, #0 + strh r0, [r6, #0xa] + b _0807E824_continue + .align 2, 0 +_0807E7CC: .4byte 0xFFFFF800 +_0807E7D0: + strh r4, [r7, #0xa] + b _0807E824_continue +_0807E7D4: + mov r0, r8 + ldr r1, [r0, #0x40] + asrs r1, r1, #8 + ldr r2, [sp, #0xc] @ r2 = sp0C = worldX << 16 + asrs r0, r2, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r5, r0, #0x10 + mov r0, r8 + ldr r1, [r0, #0x44] + asrs r1, r1, #8 + ldr r2, [sp, #0x10] + asrs r0, r2, #0x10 + adds r0, r0, r1 + lsls r0, r0, #0x10 + asrs r2, r0, #0x10 + cmp r4, #0 + beq _0807E7FA + ldr r3, _0807E8DC @ =gPartner +_0807E7FA: + mov r0, sl + adds r1, r5, #0 + bl Coll_Player_PlatformCrumbling + movs r1, #8 + ands r1, r0 + cmp r1, #0 + beq _0807E824_continue + ldr r0, [sp, #0x14] @ r1 = sp14 = i * 4 + add r0, sp + ldr r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0xa + bl Div + mov r3, r8 + ldr r1, [r3, #0x3c] + adds r1, r1, r0 + str r1, [r3, #0x3c] +_0807E824_continue: + ldr r0, [sp, #0x14] + adds r0, #4 + str r0, [sp, #0x14] @ r1 = sp14 = i * 4 + adds r4, #1 + ldr r0, _0807E8E0 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r4, r0 + bge _0807E83A + b _0807E526_loop +_0807E83A: + mov r2, r8 + ldr r1, [r2, #0x3c] + ldr r0, _0807E8E4 @ =0x000026AC @ 9.900 + muls r0, r1, r0 + ldr r1, _0807E8E8 @ =0x00002710 @ 10.000 + bl Div + mov r3, r8 + str r0, [r3, #0x3c] + adds r0, #0x2f + cmp r0, #0x5e + bhi _0807E864 + ldr r1, [r3, #0x44] + ldr r0, _0807E8EC @ =0xFFFFFD00 + cmp r1, r0 + ble _0807E864 + ldr r0, _0807E8F0 @ =0x000002FF + cmp r1, r0 + bgt _0807E864 + movs r0, #0 + str r0, [r3, #0x3c] +_0807E864: + mov r4, r8 + ldr r0, [r4, #0x44] + ldr r1, [r4, #0x3c] + adds r0, r0, r1 + str r0, [r4, #0x44] + ldr r0, [sp, #0xc] + asrs r3, r0, #0x10 + ldr r4, _0807E8F4 @ =gCamera + movs r2, #0 + ldrsh r1, [r4, r2] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r1, r2 + cmp r3, r0 + bgt _0807E8A4 + adds r0, r1, #0 + subs r0, #0x80 + cmp r3, r0 + blt _0807E8A4 + ldr r3, [sp, #0x10] + asrs r2, r3, #0x10 + movs r0, #2 + ldrsh r1, [r4, r0] + movs r3, #0x90 + lsls r3, r3, #1 + adds r0, r1, r3 + cmp r2, r0 + bgt _0807E8A4 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + bge _0807E8FC +_0807E8A4: + mov r4, sl + ldrh r0, [r4, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0807E8CA + movs r1, #0x18 + ldrsh r0, [r4, r1] + adds r0, #0x80 + cmp r0, #0 + blt _0807E8CA + movs r2, #0x18 + ldrsh r1, [r4, r2] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0807E8FC +_0807E8CA: + mov r3, r8 + ldrb r0, [r3, #8] + ldr r4, [sp, #8] @ r4 = me + strb r0, [r4] + ldr r0, _0807E8F8 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0807E902 + .align 2, 0 +_0807E8DC: .4byte gPartner +_0807E8E0: .4byte gNumSingleplayerCharacters +_0807E8E4: .4byte 0x000026AC +_0807E8E8: .4byte 0x00002710 +_0807E8EC: .4byte 0xFFFFFD00 +_0807E8F0: .4byte 0x000002FF +_0807E8F4: .4byte gCamera +_0807E8F8: .4byte gCurTask +_0807E8FC: + mov r0, sl + bl DisplaySprite +_0807E902: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc b/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc new file mode 100644 index 0000000000..794546088e --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc @@ -0,0 +1,188 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov ip, r0 @ ip = r0 = s + mov sb, r1 @ sb = r1 = worldX + mov sl, r2 @ sl = r2 = worldY + adds r6, r3, #0 @ r6 = r3 = unk08 + ldr r4, [sp, #0x2c] @ r4 = sp2C = p + adds r0, #0x2c + movs r3, #0 + ldrsb r3, [r0, r3] + adds r2, r1, r3 @ r2 = worldX + s->hitboxes[0].left + ldr r0, [r4] + asrs r0, r0, #8 + movs r5, #0 + ldrsb r5, [r6, r5] + adds r1, r0, r5 + cmp r2, r1 + bgt _0807E958 + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0807E966 + cmp r2, r1 + bge _0807E958 + b _0807EA5C_return_0 +_0807E958: + movs r0, #2 + ldrsb r0, [r6, r0] + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r2 + bge _0807E966 + b _0807EA5C_return_0 +_0807E966: + mov r2, ip + adds r2, #0x2d + movs r0, #0 + ldrsb r0, [r2, r0] + str r0, [sp, #8] + adds r5, r0, #0 + add r5, sl + ldr r1, [r4, #4] + asrs r0, r1, #8 + movs r3, #1 + ldrsb r3, [r6, r3] + mov r8, r3 + adds r3, r0, r3 + cmp r5, r3 + bgt _0807E99C + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r7, [sp, #8] + subs r0, r0, r7 + adds r0, r5, r0 + cmp r0, r3 + bge _0807E9AA + cmp r5, r3 + blt _0807EA5C_return_0 +_0807E99C: + movs r0, #3 + ldrsb r0, [r6, r0] + mov r7, r8 + subs r0, r0, r7 + adds r0, r3, r0 + cmp r0, r5 + blt _0807EA5C_return_0 +_0807E9AA: + asrs r5, r1, #8 @ r5 = I(p->qWorldY) + movs r0, #0 + ldrsb r0, [r2, r0] + add r0, sl + movs r1, #3 + ldrsb r1, [r6, r1] + subs r0, r0, r1 + adds r0, #2 + cmp r5, r0 + ble _0807EA5C_return_0 + mov r0, ip + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + movs r1, #2 + ldrsb r1, [r6, r1] + subs r2, r0, r1 + adds r1, r2, #0 + adds r1, #8 + ldr r0, [r4] + asrs r3, r0, #8 + cmp r3, r1 + bgt _0807E9E0 + lsls r1, r2, #8 + b _0807E9FC +_0807E9E0: + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + movs r1, #0 + ldrsb r1, [r6, r1] + subs r0, r0, r1 + subs r1, r0, #7 + cmp r3, r1 + blt _0807EA5C_return_0 + adds r1, r0, #1 + lsls r1, r1, #8 +_0807E9FC: + str r1, [r4] + adds r0, r5, #0 + adds r0, #9 + asrs r1, r1, #8 + adds r5, r4, #0 + adds r5, #0x27 + ldrb r2, [r5] + movs r7, #0 + str r7, [sp] + ldr r6, _0807EA58 @ =sa2__sub_801EE64 + str r6, [sp, #4] + movs r3, #8 + bl sa2__sub_801E4E4 + cmp r0, #0 + bge _0807EA24 + lsls r1, r0, #8 + ldr r0, [r4, #4] + adds r0, r0, r1 + str r0, [r4, #4] +_0807EA24: + ldr r0, [r4, #4] + asrs r0, r0, #8 + ldr r1, [r4] + asrs r1, r1, #8 + ldrb r2, [r5] + movs r3, #8 + rsbs r3, r3, #0 + str r7, [sp] + str r6, [sp, #4] + bl sa2__sub_801E4E4 + cmp r0, #0 + bge _0807EA46 + lsls r1, r0, #8 + ldr r0, [r4, #4] + adds r0, r0, r1 + str r0, [r4, #4] +_0807EA46: + ldr r0, [r4, #0x10] + movs r1, #0x21 + rsbs r1, r1, #0 + ands r0, r1 + adds r1, #0x18 + ands r0, r1 + str r0, [r4, #0x10] + movs r0, #1 + b _0807EA5E + .align 2, 0 +_0807EA58: .4byte sa2__sub_801EE64 +_0807EA5C_return_0: + movs r0, #0 +_0807EA5E: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc b/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc new file mode 100644 index 0000000000..5e81e3e276 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc @@ -0,0 +1,139 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r7, r0, #0 @ r7 = pole + adds r5, r1, #0 @ r5 = s + str r2, [sp] @ sp00 = r2 = worldX + str r3, [sp, #4] @ sp04 = r3 = worldY + movs r0, #0 + mov sl, r0 @ sl = 0 + mov sb, r0 @ sb = 0 + adds r0, r2, #0 + adds r0, #0xf + lsls r0, r0, #8 + str r0, [sp, #8] @ sp08 = qWorldX = Q(worldX + 15) + ldr r1, _08078014 @ =gPlayer + 0x26 + mov r8, r1 @ r8 =r1 = &gPlayer->itemEffect + adds r0, r5, #0 + adds r0, #0x21 + str r0, [sp, #0xc] @ sp0C = &s->prevVariant +_08077FD0_loop: + ldr r4, _08078018 @ =gPlayer + mov r1, sb + cmp r1, #0 + beq _08077FDA + ldr r4, _0807801C @ =gPartner +_08077FDA: + ldr r0, [sp] + lsls r1, r0, #0x10 + ldr r0, [sp, #4] + lsls r2, r0, #0x10 + adds r0, r5, #0 + asrs r1, r1, #0x10 + asrs r2, r2, #0x10 + adds r3, r4, #0 + bl Coll_Player_Entity_Intersection + movs r1, #0x80 + lsls r1, r1, #0xc + ands r1, r0 + cmp r1, #0 + beq _0807808A_continue + ldr r2, [r4, #0x10] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0807808A_continue + movs r0, #4 + ands r0, r2 + cmp r0, #0 + bne _08078024 + movs r0, #0xc + ldrsh r1, [r4, r0] + ldr r0, _08078020 @ =0xFFFFFD00 + b _0807802A + .align 2, 0 +_08078014: .4byte gPlayer + 0x26 +_08078018: .4byte gPlayer +_0807801C: .4byte gPartner +_08078020: .4byte 0xFFFFFD00 +_08078024: + movs r0, #0xc + ldrsh r1, [r4, r0] + ldr r0, _080780AC @ =0xFFFFFAC0 +_0807802A: + cmp r1, r0 + bge _0807808A_continue + movs r6, #1 + ands r2, r6 + cmp r2, #0 + beq _0807808A_continue + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0xaf + bl m4aSongNumStart + ldr r1, [sp, #8] + str r1, [r4] + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + mov r0, r8 + ldrb r1, [r0] + movs r0, #0x80 + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + movs r0, #0xff + ldr r1, [sp, #0xc] + strb r0, [r1] + adds r0, #0xd6 + strh r0, [r5, #0xa] + adds r0, r5, #0 + adds r0, #0x20 + strb r6, [r0] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r1, r7, #0 + adds r1, #0x3f + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r0, [r1] + adds r2, r7, #0 + adds r2, #0x3e + strb r0, [r2] + movs r0, #0x1e + strb r0, [r1] + mov sl, r6 +_0807808A_continue: + movs r0, #1 + add sb, r0 + ldr r0, _080780B0 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp sb, r0 + blt _08077FD0_loop + mov r0, sl + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080780AC: .4byte 0xFFFFFAC0 +_080780B0: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc b/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc new file mode 100644 index 0000000000..f748005538 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc @@ -0,0 +1,155 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + mov r8, r0 + adds r5, r1, #0 + str r2, [sp] + str r3, [sp, #4] + movs r0, #0 + str r0, [sp, #8] + movs r6, #0 + adds r0, r2, #0 + subs r0, #0xf + lsls r0, r0, #8 + str r0, [sp, #0xc] + ldr r1, _080780E4 @ =gPlayer + 0x26 + mov sl, r1 + adds r2, r5, #0 + adds r2, #0x21 + str r2, [sp, #0x10] + b _08078122 + .align 2, 0 +_080780E4: .4byte gPlayer + 0x26 +_080780E8: + movs r3, #0xc + ldrsh r1, [r4, r3] + movs r0, #0xa8 + lsls r0, r0, #3 + cmp r1, r0 + ble _0807810E + movs r7, #1 + ands r2, r7 + cmp r2, #0 + bne _0807810E + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0xaf + bl m4aSongNumStart + ldr r0, [sp, #0xc] + str r0, [r4] + b _08078180 +_0807810E: + adds r6, #1 + ldr r0, _080781D8 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r6, r0 + bge _080781C4 + ldr r4, _080781DC @ =gPartner + cmp r6, #0 + bne _08078130 +_08078122: + ldr r4, _080781E0 @ =gPlayer + ldr r1, [sp] + lsls r1, r1, #0x10 + str r1, [sp, #0x14] + ldr r2, [sp, #4] + lsls r2, r2, #0x10 + mov sb, r2 +_08078130: + adds r0, r5, #0 + ldr r3, [sp, #0x14] + asrs r1, r3, #0x10 + mov r3, sb + asrs r2, r3, #0x10 + adds r3, r4, #0 + bl Coll_Player_Entity_Intersection + movs r1, #0x80 + lsls r1, r1, #0xc + ands r1, r0 + cmp r1, #0 + beq _0807810E + ldr r2, [r4, #0x10] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0807810E + movs r0, #4 + ands r0, r2 + cmp r0, #0 + bne _080780E8 + movs r0, #0xc + ldrsh r1, [r4, r0] + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + ble _0807810E + movs r7, #1 + ands r2, r7 + cmp r2, #0 + bne _0807810E + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0xaf + bl m4aSongNumStart + ldr r1, [sp, #0xc] + str r1, [r4] +_08078180: + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + mov r2, sl + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xff + ldr r3, [sp, #0x10] + strb r0, [r3] + adds r0, #0xd6 + strh r0, [r5, #0xa] + adds r0, r5, #0 + adds r0, #0x20 + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + mov r1, r8 + adds r1, #0x3f + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x40 + ldrb r1, [r2] + mov r0, r8 + adds r0, #0x3e + strb r1, [r0] + movs r0, #0x1e + strb r0, [r2] + movs r0, #1 + str r0, [sp, #8] +_080781C4: + ldr r0, [sp, #8] + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080781D8: .4byte gNumSingleplayerCharacters +_080781DC: .4byte gPartner +_080781E0: .4byte gPlayer + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc b/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc new file mode 100644 index 0000000000..8f20f11607 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc @@ -0,0 +1,178 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sl, r0 + adds r5, r1, #0 + adds r7, r2, #0 + mov r8, r3 + movs r0, #0 + str r0, [sp] + movs r6, #0 + ldr r0, _08078214 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x19 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + ldr r1, _08078218 @ =gPlayer + 0x26 + mov sb, r1 + b _0807822C + .align 2, 0 +_08078214: .4byte gCurrentLevel +_08078218: .4byte gPlayer + 0x26 +_0807821C: + adds r6, #1 + ldr r0, _080782B8 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r6, r0 + blt _0807822C + b _08078326 +_0807822C: + ldr r4, _080782BC @ =gPlayer + cmp r6, #0 + beq _08078234 + ldr r4, _080782C0 @ =gPartner +_08078234: + lsls r1, r7, #0x10 + mov r0, r8 + lsls r2, r0, #0x10 + adds r0, r5, #0 + asrs r1, r1, #0x10 + asrs r2, r2, #0x10 + adds r3, r4, #0 + bl Coll_Player_Entity_Intersection + movs r1, #0x80 + lsls r1, r1, #0xc + ands r1, r0 + cmp r1, #0 + beq _0807821C + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0807826E + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0807821C +_0807826E: + adds r0, r4, #0 + bl Player_TransitionCancelFlyingAndBoost + movs r0, #0xaf + bl m4aSongNumStart + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + mov r0, sb + ldrb r1, [r0] + movs r0, #0x80 + orrs r0, r1 + mov r1, sb + strb r0, [r1] + mov r0, r8 + adds r0, #0x10 + lsls r0, r0, #8 + str r0, [r4, #4] + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080782C4 + adds r0, r7, #0 + subs r0, #8 + lsls r0, r0, #8 + str r0, [r4] + ldr r0, [r4, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + b _080782D2 + .align 2, 0 +_080782B8: .4byte gNumSingleplayerCharacters +_080782BC: .4byte gPlayer +_080782C0: .4byte gPartner +_080782C4: + adds r0, r7, #0 + adds r0, #8 + lsls r0, r0, #8 + str r0, [r4] + ldr r0, [r4, #0x10] + movs r1, #1 + orrs r0, r1 +_080782D2: + str r0, [r4, #0x10] + adds r1, r5, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + ldr r0, [sp, #4] + cmp r0, #0 + beq _080782EE + ldr r0, _080782F4 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xe + bne _080782F8 +_080782EE: + movs r0, #0xea + lsls r0, r0, #1 + b _080782FC + .align 2, 0 +_080782F4: .4byte gCurrentLevel +_080782F8: + movs r0, #0xeb + lsls r0, r0, #1 +_080782FC: + strh r0, [r5, #0xa] + adds r0, r5, #0 + adds r0, #0x20 + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + mov r1, sl + adds r1, #0x3f + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x40 + ldrb r1, [r2] + mov r0, sl + adds r0, #0x3e + strb r1, [r0] + movs r0, #0x1f + strb r0, [r2] + movs r0, #1 + str r0, [sp] +_08078326: + ldr r0, [sp] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc b/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc new file mode 100644 index 0000000000..4b315e81f0 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc @@ -0,0 +1,553 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + mov sl, r0 + str r1, [sp] + str r2, [sp, #4] + str r3, [sp, #8] + ldr r7, [sp, #0x2c] + adds r0, r7, #0 + adds r0, #0x40 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xf + bne _0808ECAA + b _0808F084 +_0808ECAA: + ldr r0, [r7, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808ECB6 + b _0808F084 +_0808ECB6: + bl sub_80549FC + adds r3, r0, #0 + cmp r3, #0 + beq _0808ED4C + movs r0, #0x4e + add r0, sl + mov sb, r0 + ldrb r0, [r0] + lsls r0, r0, #7 + ldr r1, _0808ED40 @ =0x000003FF + mov r8, r1 + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + ldr r3, _0808ED44 @ =gSineTable + adds r0, r0, r3 + movs r4, #0 + ldrsh r0, [r0, r4] + ldr r5, _0808ED48 @ =0x00001770 + adds r1, r5, #0 + bl Div + adds r4, r0, #0 + mov r6, sl + ldr r0, [r6, #0x40] + movs r6, #0xc8 + lsls r6, r6, #4 + adds r1, r6, #0 + bl Div + muls r4, r0, r4 + ldr r0, [sp, #4] + adds r4, r0, r4 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r1, sb + ldrb r0, [r1] + lsls r0, r0, #7 + mov r2, r8 + ands r0, r2 + lsls r0, r0, #1 + ldr r3, _0808ED44 @ =gSineTable + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r5, #0 + bl Div + adds r5, r0, #0 + mov r2, sl + ldr r0, [r2, #0x40] + adds r1, r6, #0 + bl Div + adds r2, r5, #0 + muls r2, r0, r2 + ldr r3, [sp, #8] + adds r2, r3, r2 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, [sp] + adds r1, r4, #0 + adds r3, r7, #0 + bl Coll_Player_Platform + b _0808F0A0 + .align 2, 0 +_0808ED40: .4byte 0x000003FF +_0808ED44: .4byte gSineTable +_0808ED48: .4byte 0x00001770 +_0808ED4C: + ldr r2, [r7, #0x10] + movs r5, #8 + adds r0, r2, #0 + ands r0, r5 + cmp r0, #0 + bne _0808ED5A + b _0808F0A0 +_0808ED5A: + ldr r0, [r7, #0x28] + ldr r4, [sp] + cmp r0, r4 + beq _0808ED64 + b _0808F0A0 +_0808ED64: + movs r6, #0x18 + ldrsh r0, [r4, r6] + ldr r4, _0808EDE4 @ =gCamera + movs r6, #2 + ldrsh r1, [r4, r6] + adds r0, r0, r1 + ldr r1, [sp] + adds r1, #0x2d + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r1, #0xf + ldrsb r1, [r7, r1] + subs r0, r0, r1 + lsls r0, r0, #8 + str r0, [r7, #4] + movs r1, #2 + ands r1, r2 + cmp r1, #0 + bne _0808ED9C + adds r0, r7, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808EE5C +_0808ED9C: + mov r0, sl + adds r0, #0x4c + strh r3, [r0] + cmp r1, #0 + beq _0808EDFE + str r3, [r7, #0x28] + movs r1, #9 + rsbs r1, r1, #0 + ands r1, r2 + str r1, [r7, #0x10] + adds r0, r7, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + bne _0808EDC8 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + bne _0808EDEC +_0808EDC8: + ldrh r1, [r7, #8] + movs r0, #8 + ldrsh r2, [r7, r0] + ldr r0, _0808EDE8 @ =0xFFFFFEE0 + cmp r2, r0 + blt _0808EDE0 + adds r0, r1, #0 + movs r1, #0x90 + lsls r1, r1, #1 + cmp r2, r1 + ble _0808EDE0 + adds r0, r1, #0 +_0808EDE0: + strh r0, [r7, #8] + b _0808EDF0 + .align 2, 0 +_0808EDE4: .4byte gCamera +_0808EDE8: .4byte 0xFFFFFEE0 +_0808EDEC: + mov r1, sl + str r3, [r1, #0x44] +_0808EDF0: + adds r2, r7, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + b _0808EE9C +_0808EDFE: + ldrh r1, [r4] + ldr r2, [sp] + ldrh r2, [r2, #0x16] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r4, #2] + ldr r3, [sp] + ldrh r3, [r3, #0x18] + adds r2, r2, r3 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r0, [sp] + adds r3, r7, #0 + bl Coll_Player_Platform + ands r0, r5 + cmp r0, #0 + beq _0808EE9C + ldr r0, [r7, #0x10] + orrs r0, r5 + str r0, [r7, #0x10] + ldr r4, [sp] + str r4, [r7, #0x28] + ldrh r1, [r7, #0xc] + movs r6, #0xc + ldrsh r2, [r7, r6] + ldr r0, _0808EE58 @ =0xFFFFFDC0 + cmp r2, r0 + blt _0808EE46 + adds r0, r1, #0 + movs r1, #0x90 + lsls r1, r1, #2 + cmp r2, r1 + ble _0808EE46 + adds r0, r1, #0 +_0808EE46: + strh r0, [r7, #0xc] + adds r2, r7, #0 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + b _0808EE9C + .align 2, 0 +_0808EE58: .4byte 0xFFFFFDC0 +_0808EE5C: + ldr r2, _0808EEC8 @ =gSineTable + mov r0, sl + adds r0, #0x4e + ldrb r0, [r0] + lsls r0, r0, #7 + ldr r1, _0808EECC @ =0x000003FF + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r1, _0808EED0 @ =0x00001770 + bl Div + adds r4, r0, #0 + mov r3, sl + ldr r0, [r3, #0x40] + movs r1, #0xc8 + lsls r1, r1, #4 + bl Div + muls r0, r4, r0 + ldr r4, [sp, #4] + adds r0, r4, r0 + lsls r0, r0, #8 + movs r6, #8 + ldrsh r1, [r7, r6] + subs r0, r0, r1 + str r0, [r7] +_0808EE9C: + adds r0, r7, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808EEAC + b _0808F076 +_0808EEAC: + mov r1, sl + ldr r0, [r1, #0x44] + movs r1, #0x1c + bl Div + cmp r0, #0 + bge _0808EED4 + mov r2, sl + ldr r0, [r2, #0x44] + movs r1, #0x1c + bl Div + rsbs r0, r0, #0 + b _0808EEDE + .align 2, 0 +_0808EEC8: .4byte gSineTable +_0808EECC: .4byte 0x000003FF +_0808EED0: .4byte 0x00001770 +_0808EED4: + mov r3, sl + ldr r0, [r3, #0x44] + movs r1, #0x1c + bl Div +_0808EEDE: + ldr r1, [sp] + adds r1, #0x22 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x59 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r3, r0, #0 + cmp r1, #3 + bne _0808EEFE + subs r0, #0x19 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + beq _0808EF0A +_0808EEFE: + movs r4, #0xc + ldrsh r0, [r7, r4] + subs r0, #0x10 + mov r6, sl + str r0, [r6, #0x44] + b _0808EF12 +_0808EF0A: + movs r1, #0xc + ldrsh r0, [r7, r1] + mov r2, sl + str r0, [r2, #0x44] +_0808EF12: + mov r4, sl + ldr r0, [r4, #0x44] + cmp r0, #0 + ble _0808EF1E + lsls r0, r0, #1 + str r0, [r4, #0x44] +_0808EF1E: + mov r6, sl + ldr r0, [r6, #0x44] + movs r1, #0xb2 + lsls r1, r1, #4 + cmp r0, r1 + ble _0808EF2C + str r1, [r6, #0x44] +_0808EF2C: + mov r1, sl + ldr r0, [r1, #0x40] + ldr r2, [r1, #0x44] + adds r0, r0, r2 + str r0, [r1, #0x40] + ldr r1, [r1, #0x3c] + cmp r0, r1 + ble _0808EF48 + mov r4, sl + str r1, [r4, #0x40] + cmp r2, #0 + bge _0808EF76 + movs r0, #0 + str r0, [r4, #0x44] +_0808EF48: + mov r6, sl + ldr r0, [r6, #0x44] + cmp r0, #0 + bge _0808EF76 + ldrh r1, [r7, #0xc] + movs r2, #0xc + ldrsh r0, [r7, r2] + cmp r0, #0 + bgt _0808EF76 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + bne _0808EF70 + adds r0, r7, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + beq _0808EF76 +_0808EF70: + adds r0, r1, #0 + subs r0, #0x40 + strh r0, [r7, #0xc] +_0808EF76: + ldrh r1, [r7, #0xc] + movs r3, #0xc + ldrsh r2, [r7, r3] + ldr r0, _0808EFE0 @ =0xFFFFF700 + cmp r2, r0 + blt _0808EF8A + movs r0, #0x90 + lsls r0, r0, #3 + cmp r2, r0 + ble _0808EF8C +_0808EF8A: + adds r1, r0, #0 +_0808EF8C: + movs r2, #0 + strh r1, [r7, #0xc] + mov r4, sl + ldr r0, [r4, #0x40] + cmp r0, #0 + bge _0808EFC0 + str r2, [r4, #0x40] + str r2, [r4, #0x44] + adds r0, r7, #0 + adds r0, #0x3e + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + bne _0808EFB0 + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0808EFB0 + strh r2, [r7, #0xc] +_0808EFB0: + ldr r1, [sp] + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + ldr r1, [sp] + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] +_0808EFC0: + mov r6, sl + ldr r0, [r6, #0x44] + cmp r0, #0 + blt _0808EFE4 + ldr r0, [r6, #0x48] + cmp r0, #0 + bgt _0808EFFC + ldr r1, [sp] + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + ldr r1, [sp] + adds r1, #0x20 + movs r0, #1 + b _0808EFFA + .align 2, 0 +_0808EFE0: .4byte 0xFFFFF700 +_0808EFE4: + mov r1, sl + ldr r0, [r1, #0x48] + cmp r0, #0 + blt _0808EFFC + ldr r1, [sp] + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + ldr r1, [sp] + adds r1, #0x20 + movs r0, #0 +_0808EFFA: + strb r0, [r1] +_0808EFFC: + mov r3, sl + adds r3, #0x4c + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + mov r4, sl + ldr r2, [r4, #0x44] + ldr r6, _0808F02C @ =0x000004FF + adds r1, r2, r6 + ldr r0, _0808F030 @ =0x000009FE + cmp r1, r0 + bhi _0808F034 + cmp r2, #0 + beq _0808F06E + ldrh r0, [r3] + movs r1, #0x19 + bl Mod + cmp r0, #0 + bne _0808F06E + movs r0, #0xd4 + bl m4aSongNumStart + b _0808F06E + .align 2, 0 +_0808F02C: .4byte 0x000004FF +_0808F030: .4byte 0x000009FE +_0808F034: + ldr r0, _0808F054 @ =0x0000081F + adds r1, r2, r0 + ldr r0, _0808F058 @ =0x0000103E + cmp r1, r0 + bhi _0808F05C + ldrh r0, [r3] + movs r1, #0x10 + bl Mod + cmp r0, #0 + bne _0808F06E + movs r0, #0xd5 + bl m4aSongNumStart + b _0808F06E + .align 2, 0 +_0808F054: .4byte 0x0000081F +_0808F058: .4byte 0x0000103E +_0808F05C: + ldrh r0, [r3] + movs r1, #8 + bl Mod + cmp r0, #0 + bne _0808F06E + movs r0, #0xd6 + bl m4aSongNumStart +_0808F06E: + mov r1, sl + ldr r0, [r1, #0x44] + str r0, [r1, #0x48] + b _0808F0A0 +_0808F076: + mov r2, sl + ldr r0, [r2, #0x44] + cmp r0, #0 + ble _0808F080 + asrs r0, r0, #1 +_0808F080: + strh r0, [r7, #0xc] + b _0808F0A0 +_0808F084: + ldr r1, [r7, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0808F0A0 + ldr r0, [r7, #0x28] + ldr r3, [sp] + cmp r0, r3 + bne _0808F0A0 + movs r0, #0 + str r0, [r7, #0x28] + subs r0, #9 + ands r1, r0 + str r1, [r7, #0x10] +_0808F0A0: + movs r0, #1 + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc b/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc new file mode 100644 index 0000000000..37e079e94c --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc @@ -0,0 +1,582 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + movs r0, #0 + str r0, [sp, #0x10] @ sp10 = 0 + ldr r0, _080909D8 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 @ r7 = barrel + ldr r2, _080909DC @ =0x0300000C + adds r2, r2, r1 + mov sb, r2 @ sb = s + ldr r3, [r7] @ r3 = me + str r3, [sp, #8] @ sp08 = r3 = me + ldr r4, _080909E0 @ =0x03000050 + adds r2, r1, r4 @ r2 = unk50 + movs r6, #0 + ldrsh r0, [r2, r6] + cmp r0, #0 + beq _080909F4 + ldr r0, [r7, #0x48] + mov r8, r0 @ r8 = barrel->unk48 + ldrb r3, [r3, #5] + lsls r3, r3, #0xb + ldr r5, _080909E4 @ =gSineTable + movs r6, #0 + ldrsh r4, [r2, r6] @ r4 = barrel->unk50 + ldr r2, _080909E8 @ =gStageTime + ldr r6, _080909EC @ =0x03000044 + adds r0, r1, r6 + ldrh r1, [r0] + ldr r0, [r2] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + muls r0, r4, r0 + ldr r1, _080909F0 @ =0x000003FF + ands r0, r1 @ theta = CLAMP_SIN_PERIOD(barrel->unk50 * ((gStageTime + barrel->unk44) & 0xFF)); + lsls r0, r0, #1 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r3, r0 + asrs r0, r0, #0xe + str r0, [r7, #0x48] + mov r2, r8 + subs r2, r0, r2 + str r2, [sp, #0xc] + b _080909FC + .align 2, 0 +_080909D8: .4byte gCurTask +_080909DC: .4byte 0x0300000C +_080909E0: .4byte 0x03000050 +_080909E4: .4byte gSineTable +_080909E8: .4byte gStageTime +_080909EC: .4byte 0x03000044 +_080909F0: .4byte 0x000003FF +_080909F4: + movs r3, #0 + str r3, [sp, #0xc] + ldr r4, [sp, #0x10] + str r4, [r7, #0x48] +_080909FC: + adds r1, r7, #0 + adds r1, #0x52 + movs r6, #0 + ldrsh r0, [r1, r6] + cmp r0, #0 + beq _08090A4C + ldr r6, [r7, #0x4c] + ldr r0, [sp, #8] + ldrb r3, [r0, #6] + lsls r3, r3, #0xb + ldr r5, _08090A40 @ =gSineTable + movs r2, #0 + ldrsh r4, [r1, r2] + ldr r2, _08090A44 @ =gStageTime + adds r0, r7, #0 + adds r0, #0x44 + ldrh r1, [r0] + ldr r0, [r2] + adds r0, r0, r1 + movs r1, #0xff + ands r0, r1 + muls r0, r4, r0 + ldr r1, _08090A48 @ =0x000003FF + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r4, #0 + ldrsh r0, [r0, r4] + muls r0, r3, r0 + asrs r0, r0, #0xe + str r0, [r7, #0x4c] + subs r6, r0, r6 + str r6, [sp, #0x10] + b _08090A52 + .align 2, 0 +_08090A40: .4byte gSineTable +_08090A44: .4byte gStageTime +_08090A48: .4byte 0x000003FF +_08090A4C: + movs r6, #0 + str r6, [sp, #0x10] + str r6, [r7, #0x4c] +_08090A52: + ldrb r0, [r7, #8] + lsls r0, r0, #3 + ldrh r1, [r7, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] @ sp00 = worldX + ldr r1, [sp, #8] + ldrb r0, [r1, #1] + lsls r0, r0, #3 + ldrh r1, [r7, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] @ sp04 = worldY + ldr r0, [r7, #0x48] + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl Div + ldr r4, _08090D08 @ =gCamera + ldrh r2, [r4] + ldr r3, [sp] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r2 + adds r1, r1, r0 + mov r6, sb + strh r1, [r6, #0x16] + ldr r0, [r7, #0x4c] + adds r1, r5, #0 + bl Div + ldrh r2, [r4, #2] + ldr r3, [sp, #4] + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r2 + adds r1, r1, r0 + strh r1, [r6, #0x18] + movs r4, #0 + str r4, [sp, #0x14] @ sp14 = i; + adds r6, r7, #0 + adds r6, #0x56 + str r6, [sp, #0x20] @ sp20 = barrel->unk56 +_08090AB2_loop: + ldr r6, _08090D0C @ =gPlayer + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _08090ABC + ldr r6, _08090D10 @ =gPartner +_08090ABC: + ldr r0, [r6, #0x10] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08090AE2 + ldr r0, [r6, #0x28] + cmp r0, sb + bne _08090AE2 + ldr r0, [r6] + ldr r1, [sp, #0xc] @ r1 = qSp0C + adds r0, r0, r1 + str r0, [r6] + ldr r0, [r6, #4] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + ldr r3, [sp, #0x10] @ r3 = sp10 + adds r0, r0, r3 + str r0, [r6, #4] +_08090AE2: + ldr r1, [r7, #0x48] + asrs r1, r1, #8 + ldr r4, [sp] @ r4 = sp00 = worldX + lsls r5, r4, #0x10 + asrs r0, r5, #0x10 + mov r8, r0 @ r8 = worldX + add r1, r8 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, [r7, #0x4c] + asrs r0, r0, #8 + ldr r2, [sp, #4] + lsls r4, r2, #0x10 + asrs r2, r4, #0x10 + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r0, sb + adds r3, r6, #0 + bl Coll_Player_PlatformCrumbling + ldr r3, [sp, #0x20] @ barrel->unk56 + ldrb r0, [r3] + str r5, [sp, #0x18] @ sp18 = worldX << 16 + str r4, [sp, #0x1c] @ sp1C = worldY << 16 + cmp r0, #0 + beq _08090B1E + cmp r0, #2 + beq _08090B1E + b _08090C88 +_08090B1E: + mov r4, sb + ldr r1, [r4, #0x30] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08090B2C + b _08090C88 +_08090B2C: + ldr r0, [r7, #0x48] + movs r1, #0x80 + lsls r1, r1, #1 + mov sl, r1 @ sl = 0x100 + bl Div + add r0, r8 + mov r5, sb + adds r5, #0x34 + movs r1, #0 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + ldr r2, [r6] + asrs r2, r2, #8 + ldr r1, [r6, #0x64] + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r2, r1 + cmp r0, r2 + bgt _08090B80 + ldr r0, [r7, #0x48] + mov r1, sl + bl Div + add r0, r8 + mov r1, sb + adds r1, #0x36 + movs r2, #0 + ldrsb r2, [r1, r2] + adds r2, r2, r0 + ldr r1, [r6] + asrs r1, r1, #8 + ldr r0, [r6, #0x64] + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + cmp r2, r1 + bge _08090BC6 +_08090B80: + ldr r0, [r7, #0x48] + mov r1, sl + bl Div + add r0, r8 + movs r1, #0 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + ldr r2, [r6] + asrs r2, r2, #8 + ldr r3, [r6, #0x64] + adds r1, r3, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r2, r1 + cmp r0, r2 + blt _08090C88 + adds r0, r3, #0 + adds r0, #0x3a + movs r4, #0 + ldrsb r4, [r0, r4] + subs r4, r4, r1 + adds r4, r2, r4 + ldr r0, [r7, #0x48] + mov r1, sl + bl Div + add r0, r8 + movs r1, #0 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + cmp r4, r0 + blt _08090C88 +_08090BC6: + ldr r0, [r7, #0x4c] + movs r2, #0x80 + lsls r2, r2, #1 + mov sl, r2 + mov r1, sl + bl Div + ldr r3, [sp, #0x1c] + asrs r5, r3, #0x10 + adds r0, r5, r0 + movs r4, #0x35 + add r4, sb + mov r8, r4 + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r0, r1 + ldr r2, [r6, #4] + asrs r2, r2, #8 + ldr r1, [r6, #0x64] + adds r1, #0x39 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r2, r1 + cmp r0, r2 + bgt _08090C22 + ldr r0, [r7, #0x4c] + mov r1, sl + bl Div + adds r0, r5, r0 + mov r1, sb + adds r1, #0x37 + movs r2, #0 + ldrsb r2, [r1, r2] + adds r2, r2, r0 + ldr r1, [r6, #4] + asrs r1, r1, #8 + ldr r0, [r6, #0x64] + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + cmp r2, r1 + bge _08090C6C +_08090C22: + ldr r0, [r7, #0x4c] + mov r1, sl + bl Div + adds r0, r5, r0 + mov r2, r8 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r1, [r6, #4] + asrs r1, r1, #8 + ldr r3, [r6, #0x64] + adds r2, r3, #0 + adds r2, #0x39 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + cmp r0, r1 + blt _08090C88 + adds r0, r3, #0 + adds r0, #0x3b + movs r4, #0 + ldrsb r4, [r0, r4] + subs r4, r4, r2 + adds r4, r1, r4 + ldr r0, [r7, #0x4c] + mov r1, sl + bl Div + adds r0, r5, r0 + mov r3, r8 + movs r1, #0 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + cmp r4, r0 + blt _08090C88 +_08090C6C: + ldr r0, _08090D0C @ =gPlayer + ldr r0, [r0, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08090C88 + adds r0, r6, #0 + bl Coll_DamagePlayer + cmp r0, #0 + beq _08090C88 + movs r0, #0xab + bl m4aSongNumStart +_08090C88: + ldr r4, [sp, #0x14] + adds r4, #1 + str r4, [sp, #0x14] + ldr r0, _08090D14 @ =gNumSingleplayerCharacters + movs r1, #0 + ldrsb r1, [r0, r1] + adds r3, r0, #0 + cmp r4, r1 + bge _08090C9C + b _08090AB2_loop +_08090C9C: + ldr r6, [sp, #0x18] + asrs r5, r6, #0x10 @ r5 = worldX + ldr r2, _08090D08 @ =gCamera + movs r0, #0 + ldrsh r1, [r2, r0] + movs r4, #0xb8 + lsls r4, r4, #1 + adds r0, r1, r4 + cmp r5, r0 + bgt _08090CD2 + adds r0, r1, #0 + subs r0, #0x80 + cmp r5, r0 + blt _08090CD2 + ldr r6, [sp, #0x1c] + asrs r4, r6, #0x10 @r4 = worldY + movs r0, #2 + ldrsh r1, [r2, r0] + movs r2, #0x90 + lsls r2, r2, #1 + adds r0, r1, r2 + cmp r4, r0 + bgt _08090CD2 + adds r0, r1, #0 + subs r0, #0x80 + cmp r4, r0 + bge _08090D1C +_08090CD2: + mov r4, sb + ldrh r0, [r4, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _08090CF8 + movs r6, #0x18 + ldrsh r0, [r4, r6] + adds r0, #0x80 + cmp r0, #0 + blt _08090CF8 + movs r0, #0x18 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08090D1C +_08090CF8: + ldrb r0, [r7, #8] + ldr r1, [sp, #8] + strb r0, [r1] + ldr r0, _08090D18 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _08090DE0_return + .align 2, 0 +_08090D08: .4byte gCamera +_08090D0C: .4byte gPlayer +_08090D10: .4byte gPartner +_08090D14: .4byte gNumSingleplayerCharacters +_08090D18: .4byte gCurTask +_08090D1C: + ldr r1, _08090D5C @ =gPlayer + ldr r0, [r1, #0x10] + movs r2, #8 + ands r0, r2 + cmp r0, #0 + beq _08090D2E + ldr r0, [r1, #0x28] + cmp r0, sb + beq _08090D46 +_08090D2E: + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #2 + bne _08090D64 + ldr r1, _08090D60 @ =gPartner + ldr r0, [r1, #0x10] + ands r0, r2 + cmp r0, #0 + beq _08090D64 + ldr r0, [r1, #0x28] + cmp r0, sb + bne _08090D64 +_08090D46: + adds r0, r7, #0 + adds r0, #0x54 + ldrh r3, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r0, #0 + cmp r3, r1 + beq _08090D76 + adds r0, r3, #0 + adds r0, #0x10 + b _08090D74 + .align 2, 0 +_08090D5C: .4byte gPlayer +_08090D60: .4byte gPartner +_08090D64: + adds r0, r7, #0 + adds r0, #0x54 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + beq _08090D76 + adds r0, r1, #0 + subs r0, #0x10 +_08090D74: + strh r0, [r2] +_08090D76: + ldr r1, _08090DB0 @ =gSineTable + ldrh r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x1c + mov r2, sb + ldrh r2, [r2, #0x18] + adds r0, r0, r2 + mov r3, sb + strh r0, [r3, #0x18] + adds r1, r7, #0 + adds r1, #0x57 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08090DD4 + ldr r4, [sp, #0x20] + ldrb r0, [r4] + cmp r0, #0 + beq _08090DAA + cmp r0, #2 + bne _08090DB4 +_08090DAA: + movs r0, #0x30 + b _08090DB6 + .align 2, 0 +_08090DB0: .4byte gSineTable +_08090DB4: + movs r0, #0x10 +_08090DB6: + strb r0, [r1] + ldr r6, [sp, #0x20] + ldrb r0, [r6] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r6] + mov r1, sb + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + ldrb r1, [r6] + mov r0, sb + adds r0, #0x20 + strb r1, [r0] +_08090DD4: + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + bl DisplaySprite +_08090DE0_return: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc b/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc new file mode 100644 index 0000000000..c94a151ad1 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc @@ -0,0 +1,329 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov sb, r1 @ sb = s + str r2, [sp] @ sp00 = worldX + str r3, [sp, #4]@ sp04 = worldY + movs r1, #0 + mov sl, r1 @ sl = result = FALSE + ldr r0, [r0] + str r0, [sp, #8]@ sp08 = me + movs r2, #0 + str r2, [sp, #0xc] + movs r5, #0 + ldr r7, _08095254 @ =gPartner + ldr r0, _08095258 @ =gPlayer + mov r8, r0 +_0809524A_loop: + cmp r5, #0 + beq _0809525C + ldr r0, [r7, #0x10] + b _08095260 + .align 2, 0 +_08095254: .4byte gPartner +_08095258: .4byte gPlayer +_0809525C: + mov r1, r8 + ldr r0, [r1, #0x10] +_08095260: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809526A + b _08095456_continue +_0809526A: + cmp r5, #0 + beq _08095272 + ldr r0, [r7, #0x10] + b _08095276 +_08095272: + mov r2, r8 + ldr r0, [r2, #0x10] +_08095276: + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08095282 + b _08095456_continue +_08095282: @ (!(PLAYER(i).moveState & MOVESTATE_IA_OVERRIDE)) + ldr r1, [sp] @ r1 = worldX + lsls r0, r1, #0x10 + asrs r6, r0, #0x10 + ldr r2, [sp, #4] @ r2 = worldY + lsls r0, r2, #0x10 + asrs r4, r0, #0x10 + ldr r3, _080952DC @ =gPlayer + cmp r5, #0 + beq _08095296 + ldr r3, _080952E0 @ =gPartner +_08095296: + mov r0, sb + adds r1, r6, #0 + adds r2, r4, #0 + bl Coll_Player_Entity_Intersection + cmp r0, #0 + bne _080952BE + ldr r3, _080952DC @ =gPlayer + cmp r5, #0 + beq _080952AC + ldr r3, _080952E0 @ =gPartner +_080952AC: + mov r0, sb + adds r1, r6, #0 + adds r2, r4, #0 + bl Coll_AmyHammer_Spring + str r0, [sp, #0xc] @ sp0C = Coll_AmyHammer_Spring() + cmp r0, #0 + bne _080952BE + b _08095456_continue +_080952BE: + ldr r0, _080952DC @ =gPlayer + cmp r5, #0 + beq _080952C6 + ldr r0, _080952E0 @ =gPartner +_080952C6: + bl sa2__sub_8021BE0 + cmp r5, #0 + beq _080952E4 + ldr r0, [r7, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r7, #0x10] + b _080952F2 + .align 2, 0 +_080952DC: .4byte gPlayer +_080952E0: .4byte gPartner +_080952E4: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + mov r2, r8 + str r0, [r2, #0x10] +_080952F2: + ldr r2, _08095304 @ =gPlayer + cmp r5, #0 + beq _08095308 + ldr r0, [r7, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r7, #0x10] + b _08095314 + .align 2, 0 +_08095304: .4byte gPlayer +_08095308: + mov r1, r8 + ldr r0, [r1, #0x10] + movs r1, #2 + orrs r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_08095314: + cmp r5, #0 + beq _08095328 + ldr r0, [r7, #0x10] + ldr r1, _08095324 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r7, #0x10] + b _08095334 + .align 2, 0 +_08095324: .4byte 0xFFFFFEFF +_08095328: + mov r1, r8 + ldr r0, [r1, #0x10] + ldr r1, _08095340 @ =0xFFFFFEFF + ands r0, r1 + mov r1, r8 + str r0, [r1, #0x10] +_08095334: + cmp r5, #0 + beq _08095348 + movs r0, #0 + ldr r1, _08095344 @ =gPartner + 0x3D + strb r0, [r1] + b _0809534E + .align 2, 0 +_08095340: .4byte 0xFFFFFEFF +_08095344: .4byte gPartner + 0x3D +_08095348: + adds r0, r2, #0 + adds r0, #0x3d + strb r5, [r0] +_0809534E: + ldr r1, [sp, #8] @ r1 = sp08 = me + ldrb r0, [r1, #4] + lsls r0, r0, #6 + rsbs r0, r0, #0 + cmp r5, #0 + beq _0809535E + strh r0, [r7, #0xa] + b _08095360 +_0809535E: + strh r0, [r2, #0xa] +_08095360: + ldr r0, [sp, #0xc] @ r0 = sp0C = + cmp r0, #0 + beq _08095390 + cmp r5, #0 + beq _08095370 + movs r1, #0xa + ldrsh r0, [r7, r1] + b _08095374 +_08095370: + movs r1, #0xa + ldrsh r0, [r2, r1] +_08095374: + lsls r0, r0, #0xf + lsrs r0, r0, #0x10 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r5, #0 + beq _08095388 + ldrh r0, [r7, #0xa] + adds r0, r0, r1 + strh r0, [r7, #0xa] + b _08095390 +_08095388: + mov r2, r8 + ldrh r0, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r2, #0xa] +_08095390: + ldr r0, [sp, #8] + ldrb r1, [r0, #3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080953D0 + ldr r0, _080953B4 @ =gPlayer + cmp r5, #0 + beq _080953A4 + ldr r0, _080953B8 @ =gPartner +_080953A4: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _080953C0 + movs r0, #0x15 + ldr r1, _080953BC @ =gPartner + 0x40 + strb r0, [r1] + b _080953C6 + .align 2, 0 +_080953B4: .4byte gPlayer +_080953B8: .4byte gPartner +_080953BC: .4byte gPartner + 0x40 +_080953C0: + movs r0, #0x15 + ldr r2, _080953CC @ =gPlayer + 0x40 + strb r0, [r2] +_080953C6: + cmp r5, #0 + bne _080953FE + b _08095410 + .align 2, 0 +_080953CC: .4byte gPlayer + 0x40 +_080953D0: + ldr r0, _080953E8 @ =gPlayer + cmp r5, #0 + beq _080953D8 + ldr r0, _080953EC @ =gPartner +_080953D8: + bl Player_TransitionCancelFlyingAndBoost + cmp r5, #0 + beq _080953F4 + movs r0, #0x11 + ldr r1, _080953F0 @ =gPartner + 0x40 + strb r0, [r1] + b _080953FA + .align 2, 0 +_080953E8: .4byte gPlayer +_080953EC: .4byte gPartner +_080953F0: .4byte gPartner + 0x40 +_080953F4: + movs r0, #0x11 + ldr r2, _08095408 @ =gPlayer + 0x40 + strb r0, [r2] +_080953FA: + cmp r5, #0 + beq _08095410 +_080953FE: + movs r0, #0xff + ldr r1, _0809540C @ =gPartnerBodyPSI+0xC+0x21 + strb r0, [r1] + b _08095416 + .align 2, 0 +_08095408: .4byte gPlayer + 0x40 +_0809540C: .4byte gPartnerBodyPSI+0xC+0x21 +_08095410: + movs r0, #0xff + ldr r2, _08095478 @ =gPlayerBodyPSI+0xC+0x21 + strb r0, [r2] +_08095416: + mov r0, sb + adds r0, #0x20 + movs r1, #1 + strb r1, [r0] + mov r1, sb + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0809547C @ =gPlayer + cmp r5, #0 + beq _0809542E + ldr r0, _08095480 @ =gPartner +_0809542E: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _0809547C @ =gPlayer + cmp r5, #0 + beq _0809543C + ldr r1, _08095480 @ =gPartner +_0809543C: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _0809547C @ =gPlayer + cmp r5, #0 + beq _08095448 + ldr r1, _08095480 @ =gPartner +_08095448: + movs r0, #0xe + strb r0, [r1, #0xf] + movs r0, #0xaa + bl m4aSongNumStart + movs r0, #1 + mov sl, r0 +_08095456_continue: + adds r5, #1 + ldr r0, _08095484 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bge _08095466 + b _0809524A_loop +_08095466: + mov r0, sl + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08095478: .4byte gPlayerBodyPSI+0xC+0x21 +_0809547C: .4byte gPlayer +_08095480: .4byte gPartner +_08095484: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc b/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc new file mode 100644 index 0000000000..9f249945ca --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc @@ -0,0 +1,500 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _0801F360 @ =gGameMode + ldrb r1, [r0] + cmp r1, #1 + bls _0801F2C6 + ldr r1, _0801F364 @ =gMultiplayerPlayerTasks + ldr r0, _0801F368 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + mov sl, r1 @ sl = mpp +_0801F2C6: + ldr r4, _0801F36C @ =gCurTask + ldr r0, [r4] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r1 + mov sb, r0 @ sb = goal + ldr r0, _0801F370 @ =0x0300000C + adds r0, r0, r1 + mov r8, r0 @ r8 = s + mov r1, sb + ldr r1, [r1] + str r1, [sp, #4] @ sp04 = me + mov r2, sb + ldrb r1, [r2, #8] + lsls r1, r1, #3 + ldrh r0, [r2, #4] + lsls r0, r0, #8 + adds r1, r1, r0 + lsls r1, r1, #0x10 @ r1 = worldX << 16 + ldr r3, [sp, #4] + ldrb r2, [r3, #1] + lsls r2, r2, #3 + mov r5, sb + ldrh r0, [r5, #6] + lsls r0, r0, #8 + adds r2, r2, r0 @ r2 = worldY + ldr r3, _0801F374 @ =gCamera + ldrh r0, [r3] + lsrs r5, r1, #0x10 + str r5, [sp] @ sp00 = worldX + asrs r5, r1, #0x10 @ r5 = worldX + subs r0, r5, r0 + mov r1, r8 + strh r0, [r1, #0x16] + ldrh r0, [r3, #2] + lsls r2, r2, #0x10 + asrs r6, r2, #0x10 @ r6 = worldY + subs r0, r6, r0 + strh r0, [r1, #0x18] @ s->y = worldY - gCamera.y; + ldr r2, _0801F360 @ =gGameMode + ldrb r7, [r2] + cmp r7, #3 + beq _0801F324 + cmp r7, #5 + beq _0801F324 + b _0801F4D8 +_0801F324: + movs r3, #1 + str r3, [sp, #8] + ldr r1, _0801F378 @ =gPlayer + ldr r0, [r1] + asrs r3, r0, #8 @ r3 = playerWorldX + adds r4, r1, #0 @ r4 = r1 = gPlayer + cmp r3, r5 + bgt _0801F336 + b _0801F4B8 +_0801F336: + ldr r0, _0801F37C @ =gCurrentLevel + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #7 + bne _0801F34C + ldr r0, [r4, #4] + asrs r0, r0, #8 + adds r1, r6, #0 + subs r1, #0x50 @ r1 = worldY - 80 + cmp r0, r1 + bgt _0801F3D2 +_0801F34C: + cmp r7, #1 + bls _0801F380 + cmp r2, #0xa + bne _0801F3C4 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r0, r6 + blt _0801F3D2 + b _0801F3C4 + .align 2, 0 +_0801F360: .4byte gGameMode +_0801F364: .4byte gMultiplayerPlayerTasks +_0801F368: .4byte 0x04000128 +_0801F36C: .4byte gCurTask +_0801F370: .4byte 0x0300000C +_0801F374: .4byte gCamera +_0801F378: .4byte gPlayer +_0801F37C: .4byte gCurrentLevel +_0801F380: + cmp r2, #0xa + bne _0801F3C4 + ldr r1, [r4, #0x64] + adds r0, r1, #0 + adds r0, #0x38 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r3, r3, r2 + cmp r3, r5 + bgt _0801F3C4 + adds r0, #2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r3, r0 + cmp r0, r5 + blt _0801F3C4 + ldr r0, [r4, #4] + asrs r0, r0, #8 + movs r5, #0x39 + ldrsb r2, [r5, r1] + adds r3, r0, r2 + cmp r3, r6 + bgt _0801F3C4 + adds r0, r1, #0 + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r3, r0 + cmp r0, r6 + bge _0801F3D2 +_0801F3C4: + ldr r1, _0801F494 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #7 + beq _0801F4B8 + cmp r0, #0xa + beq _0801F4B8 +_0801F3D2: + mov r2, sl @ r2 = sl = mpp + ldr r0, [r2, #0x5c] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x5c] + ldr r3, [sp] @ r3 = *sp00 = worldX + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + adds r0, #0x78 + ldr r5, _0801F498 @ =gCamera + strh r0, [r5, #0x1a] + movs r4, #0 + ldr r1, _0801F49C @ =gMultiplayerPlayerTasks + ldr r0, [r1] + cmp r0, #0 + beq _0801F460 + ldr r6, _0801F4A0 @ =0x04000128 + adds r7, r1, #0 + movs r0, #0x10 + mov ip, r0 + ldr r1, _0801F4A4 @ =gMultiplayerConnections + mov sl, r1 @ sl = gMultiplayerConnections +_0801F3FE: + ldr r0, [r6] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r4, r0 + beq _0801F44C + lsls r0, r4, #2 + adds r0, r0, r7 + ldr r0, [r0] + ldrh r5, [r0, #6] + mov r2, sl @ r2 = sl = gMultiplayerConnections + ldrb r3, [r2] + mov r2, ip + lsls r2, r4 + ands r2, r3 + adds r0, r4, #4 + asrs r2, r0 + ldr r1, [r6] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + mov r0, ip + lsls r0, r1 + ands r3, r0 + ldr r0, [r6] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, #4 + asrs r3, r0 + cmp r2, r3 + bne _0801F44C + ldr r3, _0801F4A8 @ =0x03000054 + adds r0, r5, r3 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801F44C + movs r5, #0 + str r5, [sp, #8] +_0801F44C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bhi _0801F460 + lsls r0, r4, #2 + adds r0, r0, r7 + ldr r0, [r0] + cmp r0, #0 + bne _0801F3FE +_0801F460: + ldr r0, [sp, #8] + cmp r0, #0 + bne _0801F468 + b _0801F620 +_0801F468: + ldr r1, _0801F4AC @ =gMultiplayerRanks + ldr r0, _0801F4A0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801F482 + b _0801F5DA +_0801F482: + mov r1, r8 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + ldr r2, _0801F4B0 @ =gCurTask + ldr r1, [r2] + ldr r0, _0801F4B4 @ =Task_StageGoal3 + b _0801F606_callTaskMain + .align 2, 0 +_0801F494: .4byte gCurrentLevel +_0801F498: .4byte gCamera +_0801F49C: .4byte gMultiplayerPlayerTasks +_0801F4A0: .4byte 0x04000128 +_0801F4A4: .4byte gMultiplayerConnections +_0801F4A8: .4byte 0x03000054 +_0801F4AC: .4byte gMultiplayerRanks +_0801F4B0: .4byte gCurTask +_0801F4B4: .4byte Task_StageGoal3 +_0801F4B8: + ldr r0, _0801F4D0 @ =gRefCollision + ldr r0, [r0] + ldrh r0, [r0, #0x1c] + ldr r1, _0801F4D4 @ =gCamera + strh r0, [r1, #0x1a] + mov r2, sl @ r2 = sl = mpp + ldr r0, [r2, #0x5c] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x5c] + b _0801F620 + .align 2, 0 +_0801F4D0: .4byte gRefCollision +_0801F4D4: .4byte gCamera +_0801F4D8: + ldr r1, _0801F510 @ =gPlayer + ldr r0, [r1] + asrs r2, r0, #8 + adds r4, r1, #0 + cmp r2, r5 + bgt _0801F4E6 + b _0801F620 +_0801F4E6: + ldr r0, _0801F514 @ =gCurrentLevel + movs r3, #0 + ldrsb r3, [r0, r3] + cmp r3, #7 + bne _0801F4FC + ldr r0, [r4, #4] + asrs r0, r0, #8 + adds r1, r6, #0 + subs r1, #0x50 + cmp r0, r1 + bgt _0801F572 +_0801F4FC: + cmp r7, #1 + bls _0801F518 + cmp r3, #0xa + bne _0801F564 + ldr r0, [r4, #4] + asrs r0, r0, #8 + cmp r0, r6 + blt _0801F572 + b _0801F564 + .align 2, 0 +_0801F510: .4byte gPlayer +_0801F514: .4byte gCurrentLevel +_0801F518: + cmp r3, #0xa + bne _0801F564 + ldr r3, [r4, #0x64] + mov ip, r3 + mov r0, ip + adds r0, #0x38 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r3, r2, r1 + cmp r3, r5 + bgt _0801F564 + adds r0, #2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r1 + adds r0, r3, r0 + cmp r0, r5 + blt _0801F564 + ldr r0, [r4, #4] + asrs r0, r0, #8 + mov r3, ip + adds r3, #0x39 + ldrb r3, [r3] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r1, r0, r3 + cmp r1, r6 + bgt _0801F564 + mov r0, ip + adds r0, #0x3b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r6 + bge _0801F572 +_0801F564: + ldr r5, _0801F594 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #7 + beq _0801F620 + cmp r0, #0xa + beq _0801F620 +_0801F572: + ldr r1, _0801F598 @ =gGameMode + ldrb r0, [r1] + cmp r0, #1 + bls _0801F5A4 + ldr r1, _0801F59C @ =gMultiplayerRanks + ldr r0, _0801F5A0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801F5B2 + b _0801F5DA + .align 2, 0 +_0801F594: .4byte gCurrentLevel +_0801F598: .4byte gGameMode +_0801F59C: .4byte gMultiplayerRanks +_0801F5A0: .4byte 0x04000128 +_0801F5A4: + ldr r0, _0801F5C4 @ =gMultiplayerRanks + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0801F5D0 +_0801F5B2: + mov r1, r8 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + ldr r2, _0801F5C8 @ =gCurTask + ldr r1, [r2] + ldr r0, _0801F5CC @ =Task_StageGoal3 + b _0801F606_callTaskMain + .align 2, 0 +_0801F5C4: .4byte gMultiplayerRanks +_0801F5C8: .4byte gCurTask +_0801F5CC: .4byte Task_StageGoal3 +_0801F5D0: + ldr r0, _0801F610 @ =gStageFlags + ldrh r1, [r0] + movs r2, #3 + orrs r1, r2 + strh r1, [r0] +_0801F5DA: + ldr r3, _0801F614 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0xa + beq _0801F5EA + movs r0, #0x87 + bl m4aSongNumStart +_0801F5EA: + movs r1, #0 + movs r0, #0 + mov r5, sb @ r5 = sb = goal + strh r0, [r5, #0x3c] + mov r0, sb + adds r0, #0x3e + strb r1, [r0] + mov r1, r8 + adds r1, #0x20 + movs r0, #1 + strb r0, [r1] + ldr r0, _0801F618 @ =gCurTask + ldr r1, [r0] + ldr r0, _0801F61C @ =Task_StageGoal2 +_0801F606_callTaskMain: + str r0, [r1, #8] + bl _call_via_r0 + b _0801F670 + .align 2, 0 +_0801F610: .4byte gStageFlags +_0801F614: .4byte gCurrentLevel +_0801F618: .4byte gCurTask +_0801F61C: .4byte Task_StageGoal2 +_0801F620: + mov r1, r8 + ldrh r0, [r1, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0801F648 + mov r2, r8 + movs r3, #0x18 + ldrsh r0, [r2, r3] + adds r0, #0x80 + cmp r0, #0 + blt _0801F648 + movs r5, #0x18 + ldrsh r1, [r2, r5] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0801F660 +_0801F648: + mov r1, sb + ldrb r0, [r1, #8] + ldr r2, [sp, #4] + strb r0, [r2] + ldr r3, _0801F65C @ =gCurTask + ldr r0, [r3] + bl TaskDestroy + b _0801F670 + .align 2, 0 +_0801F65C: .4byte gCurTask +_0801F660: + ldr r5, [sp, #4] + movs r0, #3 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _0801F670 + mov r0, r8 + bl DisplaySprite +_0801F670: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc b/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc new file mode 100644 index 0000000000..8d5696a57c --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc @@ -0,0 +1,1087 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _08088878 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + mov sb, r1 @ sb = r1 = rope + ldr r0, [r1] @ r0 = me + str r0, [sp, #0xc] @ sp0C = r0 = me + ldrb r0, [r1, #8] + lsls r0, r0, #3 + ldrh r1, [r1, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] @ sp04 = worldX + ldr r1, [sp, #0xc] + ldrb r0, [r1, #1] + lsls r0, r0, #3 + mov r2, sb @ r2 = sb = rope + ldrh r1, [r2, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] @ sp08 = worldY + movs r7, #0 + ldr r5, _0808887C @ =gPartner + ldr r6, _08088880 @ =gPlayer + movs r3, #0 + mov sl, r3 +_08088870_loop: + cmp r7, #0 + beq _08088884 + ldr r0, [r5, #0x10] + b _08088886 + .align 2, 0 +_08088878: .4byte gCurTask +_0808887C: .4byte gPartner +_08088880: .4byte gPlayer +_08088884: + ldr r0, [r6, #0x10] +_08088886: + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08088890 + b _08088F1C_p_is_dead +_08088890: + mov r2, sb @ r2 = sb = rope + adds r2, #0x3c + ldrb r1, [r2] + asrs r1, r7 + movs r0, #1 + ands r1, r0 + str r2, [sp, #0x14] @ sp14 = rope->unk3C + cmp r1, #0 + bne _080888A4 + b _08088CF8 +_080888A4: + mov r0, sb @ r0 = sb = rope + adds r0, #0x40 + mov r2, sl @ r2 = sl = i*4 + adds r1, r0, r2 + ldr r2, [r1] + adds r4, r0, #0 @ r4 = &rope->unk40 + cmp r2, #0xe7 + bgt _080888BA + adds r0, r2, #0 + adds r0, #0x10 + str r0, [r1] +_080888BA: + ldr r0, [r1] + movs r2, #0x90 + lsls r2, r2, #4 + cmp r0, r2 + ble _080888C6 + str r2, [r1] +_080888C6: + mov r2, sb @ r2 = sb = rope + adds r2, #0x48 + add r2, sl @ r2 = sl = i*4 + ldr r0, [r2] + ldr r1, [r1] + adds r0, r0, r1 + str r0, [r2] + ldr r3, [sp, #8] @ r3 = sp08 = worldY + lsls r1, r3, #0x10 + asrs r0, r1, #8 + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + str r1, [sp, #0x10] @ sp10 = worldY << 16 + cmp r7, #0 + beq _080888EA + str r0, [r5, #4] + b _080888EC +_080888EA: + str r0, [r6, #4] +_080888EC: + ldr r0, [sp, #4] @ r0 = sp04 = worldX + lsls r3, r0, #0x10 + asrs r2, r3, #0x10 + ldr r0, [sp, #0xc] @ r0 = sp0C = me + movs r1, #3 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r2, r2, r0 + mov r8, r3 + adds r3, r1, #0 + cmp r7, #0 + beq _0808890E + ldr r0, [r5] + asrs r0, r0, #8 + cmp r2, r0 + ble _08088916 + b _080889FE +_0808890E: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r2, r0 + bgt _080889FE +_08088916: + mov r2, r8 + asrs r1, r2, #0x10 + lsls r0, r3, #3 + adds r1, r1, r0 + ldr r3, [sp, #0xc] @ r3 = sp0C = me + ldrb r0, [r3, #5] + lsls r0, r0, #3 + adds r1, r1, r0 + cmp r7, #0 + beq _08088934 + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + bge _0808893C + b _080889FE +_08088934: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + blt _080889FE +_0808893C: + mov r1, sl @ r1 = sl = i*4 + adds r0, r4, r1 @ r0 = &rope->unk40[i] + ldr r1, [r0] + cmp r7, #0 + beq _0808894E + ldr r0, [r5] + adds r0, r0, r1 + str r0, [r5] + b _08088954 +_0808894E: + ldr r0, [r6] + adds r0, r0, r1 + str r0, [r6] +_08088954: + cmp r7, #0 + beq _08088964 + ldrh r0, [r5, #0x38] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0808896E + b _08088978 +_08088964: + ldrh r0, [r6, #0x38] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08088978 +_0808896E: + mov r2, sl @ r2 = sl = i*4 + adds r1, r4, r2 @ r1 = &rope->unk40[i] + ldr r0, [r1] + adds r0, #0x10 + b _0808899E +_08088978: + cmp r7, #0 + beq _08088988 + ldrh r0, [r5, #0x38] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08088992 + b _080889A0 +_08088988: + ldrh r0, [r6, #0x38] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080889A0 +_08088992: + mov r3, sl @ r3 = sl = i*4 + adds r1, r4, r3 @ r1 = &rope->unk40[i] + ldr r0, [r1] + cmp r0, #0xe8 + ble _080889A0 + subs r0, #0x10 +_0808899E: + str r0, [r1] +_080889A0: + cmp r7, #0 + beq _080889A8 + ldr r0, [r5] + b _080889AA +_080889A8: + ldr r0, [r6] +_080889AA: + asrs r0, r0, #8 + adds r3, r0, #0 + subs r3, #8 + cmp r7, #0 + beq _080889B8 + ldr r0, [r5, #4] + b _080889BA +_080889B8: + ldr r0, [r6, #4] +_080889BA: + asrs r1, r0, #8 + cmp r7, #0 + beq _080889C8 + ldr r0, _080889C4 @ =gPartner + 0x27 + b _080889CA + .align 2, 0 +_080889C4: .4byte gPartner + 0x27 +_080889C8: + ldr r0, _080889F0 @ =gPlayer + 0x27 +_080889CA: + ldrb r2, [r0] + ldr r0, _080889F4 @ =sa2__sub_801EB44 + str r0, [sp] + adds r0, r3, #0 + movs r3, #8 + rsbs r3, r3, #0 + bl sa2__sub_801F100 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080889FE + lsls r1, r0, #8 + cmp r7, #0 + beq _080889F8 + ldr r0, [r5] + subs r0, r0, r1 + str r0, [r5] + b _080889FE + .align 2, 0 +_080889F0: .4byte gPlayer + 0x27 +_080889F4: .4byte sa2__sub_801EB44 +_080889F8: + ldr r0, [r6] + subs r0, r0, r1 + str r0, [r6] +_080889FE: + cmp r7, #0 + beq _08088A08 + movs r1, #0 + strh r1, [r5, #0xa] + b _08088A0A +_08088A08: + strh r7, [r6, #0xa] +_08088A0A: + ldr r0, _08088A1C @ =gPlayerControls + ldrh r1, [r0] + cmp r7, #0 + beq _08088A20 + ldrh r0, [r5, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _08088A2A + b _08088CD6 + .align 2, 0 +_08088A1C: .4byte gPlayerControls +_08088A20: + ldrh r0, [r6, #0x3a] + ands r0, r1 + cmp r0, #0 + bne _08088A2A + b _08088CD6 +_08088A2A: + mov r2, sl @ r2 = sl = i*4 + adds r0, r4, r2 @ r0 = &rope->unk40[i] + ldr r0, [r0] + cmp r0, #0 + bge _08088A5A + mov r3, r8 + asrs r1, r3, #0x10 + ldr r2, [sp, #0xc] @ r2 = sp0C = me + movs r0, #3 + ldrsb r0, [r2, r0] + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, #2 + lsls r1, r1, #8 + cmp r7, #0 + beq _08088A4E + str r1, [r5] + b _08088A50 +_08088A4E: + str r1, [r6] +_08088A50: + mov r3, sl @ r3 = sl = i*4 + adds r0, r4, r3 @ r0 = &rope->unk40[i] + movs r1, #0 + str r1, [r0] + b _08088FC6 +_08088A5A: + ldr r0, _08088A74 @ =gPlayer + cmp r7, #0 + beq _08088A62 + ldr r0, _08088A78 @ =gPartner +_08088A62: + bl Player_TransitionCancelFlyingAndBoost + cmp r7, #0 + beq _08088A80 + ldr r0, [r5, #0x10] + ldr r1, _08088A7C @ =0xFFDFFFFF + ands r0, r1 + str r0, [r5, #0x10] + b _08088A88 + .align 2, 0 +_08088A74: .4byte gPlayer +_08088A78: .4byte gPartner +_08088A7C: .4byte 0xFFDFFFFF +_08088A80: + ldr r0, [r6, #0x10] + ldr r1, _08088A9C @ =0xFFDFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08088A88: + ldr r0, _08088AA0 @ =gPlayerControls + ldrh r1, [r0] + ldrh r0, [r0, #2] + orrs r1, r0 + cmp r7, #0 + beq _08088AA4 + ldrh r0, [r5, #0x38] + orrs r1, r0 + strh r1, [r5, #0x38] + b _08088AAA + .align 2, 0 +_08088A9C: .4byte 0xFFDFFFFF +_08088AA0: .4byte gPlayerControls +_08088AA4: + ldrh r0, [r6, #0x38] + orrs r1, r0 + strh r1, [r6, #0x38] +_08088AAA: + cmp r7, #0 + beq _08088ABC + ldr r0, [r5, #0x10] + ldr r1, _08088AB8 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] + b _08088AC4 + .align 2, 0 +_08088AB8: .4byte 0xFFBFFFFF +_08088ABC: + ldr r0, [r6, #0x10] + ldr r1, _08088AD4 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08088AC4: + cmp r7, #0 + beq _08088AD8 + ldr r0, [r5, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r5, #0x10] + b _08088AE0 + .align 2, 0 +_08088AD4: .4byte 0xFFBFFFFF +_08088AD8: + ldr r0, [r6, #0x10] + movs r1, #4 + orrs r0, r1 + str r0, [r6, #0x10] +_08088AE0: + cmp r7, #0 + beq _08088AEE + ldr r0, [r5, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #0x10] + b _08088AF6 +_08088AEE: + ldr r0, [r6, #0x10] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] +_08088AF6: + cmp r7, #0 + beq _08088B06 + ldr r0, [r5, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _08088B10 +_08088B06: + ldr r0, [r6, #0x10] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08088B10: + cmp r7, #0 + beq _08088B24 + ldr r0, [r5, #0x10] + ldr r1, _08088B20 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] + b _08088B2C + .align 2, 0 +_08088B20: .4byte 0xFFFFFEFF +_08088B24: + ldr r0, [r6, #0x10] + ldr r1, _08088B3C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r6, #0x10] +_08088B2C: + cmp r7, #0 + beq _08088B44 + ldr r2, _08088B40 @ =gPartner + 0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + b _08088B4E + .align 2, 0 +_08088B3C: .4byte 0xFFFFFEFF +_08088B40: .4byte gPartner + 0x26 +_08088B44: + ldr r3, _08088B60 @ =gPlayer + 0x26 + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3] +_08088B4E: + cmp r7, #0 + beq _08088B64 + ldrh r0, [r5, #0x38] + movs r1, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08088B6E + b _08088BC4 + .align 2, 0 +_08088B60: .4byte gPlayer + 0x26 +_08088B64: + ldrh r0, [r6, #0x38] + movs r1, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _08088BC4 +_08088B6E: + cmp r7, #0 + beq _08088B84 + ldrh r1, [r5, #0x38] + movs r0, #0x40 + ands r1, r0 + ldr r3, _08088B80 @ =gPlayer + cmp r1, #0 + bne _08088B90 + b _08088BB0 + .align 2, 0 +_08088B80: .4byte gPlayer +_08088B84: + ldrh r1, [r6, #0x38] + movs r0, #0x40 + ands r1, r0 + ldr r3, _08088B9C @ =gPlayer + cmp r1, #0 + beq _08088BB0 +_08088B90: + cmp r7, #0 + beq _08088BA4 + ldr r0, _08088BA0 @ =0x0000F940 + strh r0, [r5, #0xa] + b _08088BFE + .align 2, 0 +_08088B9C: .4byte gPlayer +_08088BA0: .4byte 0x0000F940 +_08088BA4: + ldr r0, _08088BAC @ =0x0000F940 + strh r0, [r3, #0xa] + b _08088BFE + .align 2, 0 +_08088BAC: .4byte 0x0000F940 +_08088BB0: + cmp r7, #0 + beq _08088BBC + movs r0, #0xd8 + lsls r0, r0, #3 + strh r0, [r5, #0xa] + b _08088BFE +_08088BBC: + movs r0, #0xd8 + lsls r0, r0, #3 + strh r0, [r3, #0xa] + b _08088BFE +_08088BC4: + mov r0, sb @ r0 = sb = rope + adds r0, #0x50 + add r0, sl @ r0 += sl = i*4 + ldr r0, [r0] + movs r1, #0xf + bl Div + cmp r0, #0 + beq _08088BE8 + cmp r7, #0 + beq _08088BE2 + movs r0, #0xd8 + lsls r0, r0, #3 + strh r0, [r5, #0xa] + b _08088BFC +_08088BE2: + movs r0, #0xd8 + lsls r0, r0, #3 + b _08088BFA +_08088BE8: + cmp r7, #0 + beq _08088BF8 + ldr r0, _08088BF4 @ =0x0000F940 + strh r0, [r5, #0xa] + b _08088BFC + .align 2, 0 +_08088BF4: .4byte 0x0000F940 +_08088BF8: + ldr r0, _08088C08 @ =0x0000F940 +_08088BFA: + strh r0, [r6, #0xa] +_08088BFC: + ldr r3, _08088C0C @ =gPlayer +_08088BFE: + cmp r7, #0 + beq _08088C14 + movs r0, #5 + ldr r1, _08088C10 @ =gPartner + 0x40 + b _08088C1A + .align 2, 0 +_08088C08: .4byte 0x0000F940 +_08088C0C: .4byte gPlayer +_08088C10: .4byte gPartner + 0x40 +_08088C14: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #5 +_08088C1A: + strb r0, [r1] + ldr r0, _08088C58 @ =gPlayer + cmp r7, #0 + beq _08088C24 + ldr r0, _08088C5C @ =gPartner +_08088C24: + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + ldr r1, _08088C58 @ =gPlayer + cmp r7, #0 + beq _08088C32 + ldr r1, _08088C5C @ =gPartner +_08088C32: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r3, _08088C58 @ =gPlayer + adds r1, r3, #0 + cmp r7, #0 + beq _08088C40 + ldr r1, _08088C5C @ =gPartner +_08088C40: + movs r0, #9 + strb r0, [r1, #0xf] + ldr r2, [sp, #0x10] @ r2 = sp10 = worldY << 16 + asrs r0, r2, #8 + movs r1, #0x90 + lsls r1, r1, #4 + adds r0, r0, r1 + cmp r7, #0 + beq _08088C60 + str r0, [r5, #4] + b _08088C62 + .align 2, 0 +_08088C58: .4byte gPlayer +_08088C5C: .4byte gPartner +_08088C60: + str r0, [r3, #4] +_08088C62: + cmp r7, #0 + beq _08088C6C + movs r2, #0 + strh r2, [r5, #0xc] + b _08088C6E +_08088C6C: + strh r7, [r3, #0xc] +_08088C6E: + cmp r7, #0 + beq _08088C78 + movs r3, #0 + strh r3, [r5, #8] + b _08088C7A +_08088C78: + strh r7, [r3, #8] +_08088C7A: + movs r1, #1 + lsls r1, r7 + ldr r2, [sp, #0x14] @ r2 = sp14 = rope->unk3C + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + mov r0, sb @ r0 = sb = rope + adds r0, #0x50 + add r0, sl @ r0 += sl = i*4 + movs r3, #0 + str r3, [r0] + mov r0, sb @ r0 = sb = rope + adds r0, #0x3d + adds r0, r0, r7 + movs r1, #0x14 + strb r1, [r0] + ldr r3, _08088CEC @ =gPlayer + 0x64 + adds r0, r3, #0 + cmp r7, #0 + beq _08088CA4 + ldr r0, _08088CF0 @ =gPartner + 0x64 +_08088CA4: + ldr r2, [r0] + adds r0, r3, #0 + cmp r7, #0 + beq _08088CAE + ldr r0, _08088CF0 @ =gPartner + 0x64 +_08088CAE: + ldr r0, [r0] + ldr r0, [r0, #0x1c] + ldr r1, _08088CF4 @ =0xFFFFCFFF + ands r0, r1 + str r0, [r2, #0x1c] + adds r0, r3, #0 + cmp r7, #0 + beq _08088CC0 + ldr r0, _08088CF0 @ =gPartner + 0x64 +_08088CC0: + ldr r2, [r0] + adds r0, r3, #0 + cmp r7, #0 + beq _08088CCA + ldr r0, _08088CF0 @ =gPartner + 0x64 +_08088CCA: + ldr r0, [r0] + ldr r0, [r0, #0x1c] + movs r1, #0x80 + lsls r1, r1, #6 + orrs r0, r1 + str r0, [r2, #0x1c] +_08088CD6: + mov r4, sb @ r4 = sb = rope + adds r4, #0x50 + add r4, sl @ r4 += sl = i*4 + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + movs r1, #0x1e + bl Mod + str r0, [r4] + b _08088F54_continue + .align 2, 0 +_08088CEC: .4byte gPlayer + 0x64 +_08088CF0: .4byte gPartner + 0x64 +_08088CF4: .4byte 0xFFFFCFFF +_08088CF8: + mov r0, sb @ r0 = sb = rope + adds r0, #0x3d + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, #0 + beq _08088D0A + subs r0, #1 + strb r0, [r1] + b _08088F54_continue +_08088D0A: + ldr r0, [sp, #4] @ r0 = sp04 = worldX + lsls r3, r0, #0x10 + asrs r2, r3, #0x10 @ r2 = worldX + ldr r0, [sp, #0xc] @ r0 = sp0C = me + movs r1, #3 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r2, r2, r0 + mov r8, r3 @ r8 = r3 = worldX << 16 + adds r3, r1, #0 + cmp r7, #0 + beq _08088D2C + ldr r0, [r5] + asrs r0, r0, #8 + cmp r2, r0 + ble _08088D36 + b _08088F54_continue +_08088D2C: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r2, r0 + ble _08088D36 + b _08088F54_continue +_08088D36: + mov r2, r8 @ r2 = r8 = worldX << 16 + asrs r1, r2, #0x10 + lsls r0, r3, #3 + adds r1, r1, r0 + ldr r3, [sp, #0xc] @ r3 = sp0C = me + ldrb r0, [r3, #5] + lsls r0, r0, #3 + adds r1, r1, r0 + cmp r7, #0 + beq _08088D54 + ldr r0, [r5] + asrs r0, r0, #8 + cmp r1, r0 + bge _08088D5E + b _08088F54_continue +_08088D54: + ldr r0, [r6] + asrs r0, r0, #8 + cmp r1, r0 + bge _08088D5E + b _08088F54_continue +_08088D5E: + ldr r0, [sp, #8] @ r0 = sp08 = worldY + lsls r3, r0, #0x10 + asrs r2, r3, #0x10 + ldr r0, [sp, #0xc] @ r0 = sp0C = me + movs r1, #4 + ldrsb r1, [r0, r1] + lsls r0, r1, #3 + adds r2, r2, r0 + str r3, [sp, #0x10] @ sp10 = worldY << 16 + adds r3, r1, #0 + cmp r7, #0 + beq _08088D80 + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08088D8A + b _08088F54_continue +_08088D80: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r2, r0 + ble _08088D8A + b _08088F54_continue +_08088D8A: + ldr r2, [sp, #0x10] @ r2 = sp10 = worldY << 16 + asrs r1, r2, #0x10 + lsls r0, r3, #3 + adds r1, r1, r0 + ldr r3, [sp, #0xc] @ r3 = sp0C = me + ldrb r0, [r3, #6] + lsls r0, r0, #3 + adds r1, r1, r0 + cmp r7, #0 + beq _08088DA8 + ldr r0, [r5, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08088DB2 + b _08088F54_continue +_08088DA8: + ldr r0, [r6, #4] + asrs r0, r0, #8 + cmp r1, r0 + bge _08088DB2 + b _08088F54_continue +_08088DB2: + mov r0, sb @ r0 = sb = rope + adds r0, #0x40 + mov r2, sl @ r2 = sl = i*4 + adds r1, r0, r2 @ r1 = &rope->unk40[i] + adds r4, r0, #0 @ r4 = rope->unk40 + cmp r7, #0 + beq _08088DC6 + movs r3, #0xc + ldrsh r0, [r5, r3] + b _08088DCA +_08088DC6: + movs r2, #0xc + ldrsh r0, [r6, r2] +_08088DCA: + asrs r0, r0, #1 + str r0, [r1] + ldr r3, _08088DF0 @ r3 = gPlayer + mov r0, sl @ r0 = sl = i*4 + adds r1, r4, r0 + ldr r0, [r1] + cmp r0, #0 + bge _08088DDE + movs r2, #0 + str r2, [r1] +_08088DDE: + mov r0, r8 @ r0 = r8 = worldX << 16 + asrs r1, r0, #8 @ r1 = Q(worldX) + cmp r7, #0 + beq _08088DF4 + ldr r0, [r5] + cmp r0, r1 + bgt _08088DFA + b _08088E16 + .align 2, 0 +_08088DF0: .4byte gPlayer +_08088DF4: + ldr r0, [r3] + cmp r0, r1 + ble _08088E16 +_08088DFA: + mov r0, sb @ r0 = sb = rope + adds r0, #0x48 + mov r1, sl @ r1 = sl = i*4 + adds r2, r0, r1 @ r2 = &rope->unk48[i] + mov r0, r8 + asrs r1, r0, #8 + cmp r7, #0 + beq _08088E10 + ldr r0, [r5] + subs r0, r0, r1 + b _08088E2E +_08088E10: + ldr r0, [r3] + subs r0, r0, r1 + b _08088E2E +_08088E16: + mov r0, sb @ r0 = sb = rope + adds r0, #0x48 + mov r1, sl @ r1 = sl = i*4 + adds r2, r0, r1 + mov r0, r8 + asrs r1, r0, #8 + cmp r7, #0 + beq _08088E2A + ldr r0, [r5] + b _08088E2C +_08088E2A: + ldr r0, [r3] +_08088E2C: + subs r0, r1, r0 +_08088E2E: + str r0, [r2] + ldr r0, _08088E4C @ =gPlayer + cmp r7, #0 + beq _08088E38 + ldr r0, _08088E50 @ =gPartner +_08088E38: + bl Player_TransitionCancelFlyingAndBoost + cmp r7, #0 + beq _08088E54 + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r5, #0x10] + b _08088E5E + .align 2, 0 +_08088E4C: .4byte gPlayer +_08088E50: .4byte gPartner +_08088E54: + ldr r0, [r6, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r6, #0x10] +_08088E5E: + ldr r3, _08088E70 @ =gPlayer + cmp r7, #0 + beq _08088E74 + ldr r0, [r5, #0x10] + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + b _08088E7E + .align 2, 0 +_08088E70: .4byte gPlayer +_08088E74: + ldr r0, [r6, #0x10] + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x10] +_08088E7E: + cmp r7, #0 + beq _08088E90 + ldr r0, [r5, #0x10] + ldr r1, _08088E8C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] + b _08088E98 + .align 2, 0 +_08088E8C: .4byte 0xFFFFFEFF +_08088E90: + ldr r0, [r6, #0x10] + ldr r1, _08088EB0 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r6, #0x10] +_08088E98: + movs r0, #1 + lsls r0, r7 + ldr r2, [sp, #0x14] @ r2 = sp14 = rope->unk3C + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + cmp r7, #0 + beq _08088EB8 + movs r0, #0x22 + ldr r3, _08088EB4 @ =gPartner + 0x40 + strb r0, [r3] + b _08088EC0 + .align 2, 0 +_08088EB0: .4byte 0xFFFFFEFF +_08088EB4: .4byte gPartner + 0x40 +_08088EB8: + adds r1, r3, #0 + adds r1, #0x40 + movs r0, #0x22 + strb r0, [r1] +_08088EC0: + ldr r0, _08088F00 @ =gPlayer + cmp r7, #0 + beq _08088EC8 + ldr r0, _08088F04 @ =gPartner +_08088EC8: + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + ldr r1, _08088F00 @ =gPlayer + cmp r7, #0 + beq _08088ED6 + ldr r1, _08088F04 @ =gPartner +_08088ED6: + movs r0, #6 + strb r0, [r1, #0xe] + ldr r1, _08088F00 @ =gPlayer + cmp r7, #0 + beq _08088EE2 + ldr r1, _08088F04 @ =gPartner +_08088EE2: + movs r0, #0xe + strb r0, [r1, #0xf] + mov r0, sb @ r0 = sb = rope + adds r0, #0x50 + add r0, sl @ r0 += sl = i*4 + movs r1, #0 + str r1, [r0] + cmp r7, #0 + beq _08088F0C + ldr r2, _08088F08 @ =gPartner + 0x26 + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 + b _08088F52 + .align 2, 0 +_08088F00: .4byte gPlayer +_08088F04: .4byte gPartner +_08088F08: .4byte gPartner + 0x26 +_08088F0C: + ldr r3, _08088F18 @ =gPlayer + 0x26 + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + b _08088F54_continue + .align 2, 0 +_08088F18: .4byte gPlayer + 0x26 +_08088F1C_p_is_dead: + mov r2, sb @ r2 = sb = rope + adds r2, #0x3c + ldrb r1, [r2] + asrs r1, r7 + movs r0, #1 + ands r1, r0 + str r2, [sp, #0x14] @ sp14 = rope->unk3C + cmp r1, #0 + beq _08088F54_continue + cmp r7, #0 + beq _08088F40 + ldr r0, [r5, #0x10] + ldr r1, _08088F3C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r5, #0x10] + b _08088F48 + .align 2, 0 +_08088F3C: .4byte 0xFFBFFFFF +_08088F40: + ldr r0, [r6, #0x10] + ldr r1, _08088FD8 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] +_08088F48: + movs r1, #1 + lsls r1, r7 + ldr r2, [sp, #0x14] @ r2 = sp14 = rope->unk3C + ldrb r0, [r2] + bics r0, r1 +_08088F52: + strb r0, [r2] +_08088F54_continue: + movs r3, #4 + add sl, r3 @ sl += 4 + adds r7, #1 + ldr r0, _08088FDC @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r7, r0 + bge _08088F68 + b _08088870_loop +_08088F68: + ldr r0, [sp, #0x14] @ r0 = sp14 = rope->unk3C + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08088FC6 + ldr r2, _08088FE0 @ =gCamera + ldrh r0, [r2] + ldr r3, [sp, #4] @ r3 = sp04 = worldX + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 + ldrh r2, [r2, #2] + ldr r3, [sp, #8] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x10 + adds r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #0x11 + cmp r1, r0 + bhi _08088FB6 + ldr r1, [sp, #8] + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08088FB6 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08088FC6 +_08088FB6: + mov r2, sb @ r2 = sb = rope + ldrb r0, [r2, #8] + ldr r3, [sp, #0xc] @ r3 = sp0C = me + strb r0, [r3] + ldr r0, _08088FE4 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy +_08088FC6: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08088FD8: .4byte 0xFFBFFFFF +_08088FDC: .4byte gNumSingleplayerCharacters +_08088FE0: .4byte gCamera +_08088FE4: .4byte gCurTask + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc b/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc new file mode 100644 index 0000000000..3246cc338c --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc @@ -0,0 +1,254 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _0809552C @ =gCurTask + ldr r0, [r2] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r3, r0 @ r4 = ia + ldr r7, [r4] @ r7 = me + ldrb r0, [r4, #8] + lsls r0, r0, #3 + ldrh r1, [r4, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 @ r8 = worldX + ldrb r0, [r7, #1] + lsls r0, r0, #3 + ldrh r1, [r4, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 @ ip = worldY + ldr r1, _08095530 @ =gPlayer + ldr r0, [r1, #0x10] + movs r6, #0x80 + ands r0, r6 + mov sb, r2 + adds r5, r1, #0 @ r5 = r1 = gPlayer + cmp r0, #0 + beq _080954E4 + b _08095616 +_080954E4: + ldr r1, _08095534 @ =0x03000041 + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, #2 @ if(ia->unk41 > 2) + bls _0809558C + mov r3, r8 @ r3 = r8 = worldX + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + movs r1, #3 + ldrsb r1, [r7, r1] @ r1 = me->d.sData[0] + lsls r1, r1, #3 + adds r3, r0, r1 + ldr r0, [r5] + asrs r1, r0, #8 + cmp r3, r1 + bgt _08095582 @ (left <= I(p->qWorldX)) + ldrb r0, [r7, #5] + lsls r0, r0, #3 + adds r0, r3, r0 + cmp r0, r1 @ ((left + me->d.uData[2] * TILE_WIDTH) >= I(p->qWorldX)) + blt _08095582 + mov r1, ip @ r1 = ip = worldY + lsls r0, r1, #0x10 + asrs r1, r0, #8 + ldr r0, [r4, #0x3c] @ r0 = ia->qWorld + cmp r0, r1 + ble _08095538 + ldr r0, [r5, #4] + cmp r0, r1 + bge _08095582 + cmp r2, #3 + beq _08095546_case_3 + cmp r2, #4 + beq _08095564_case_4 + b _08095578 + .align 2, 0 +_0809552C: .4byte gCurTask +_08095530: .4byte gPlayer +_08095534: .4byte 0x03000041 +_08095538: + cmp r0, r1 + bge _08095582 + ldr r0, [r5, #4] + cmp r0, r1 + ble _08095582 + cmp r2, #3 + bne _08095560 +_08095546_case_3: + ldr r2, _0809555C @ =gStageFlags + ldrh r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08095568 + movs r0, #0x80 + orrs r0, r1 + strh r0, [r2] + b _08095582 + .align 2, 0 +_0809555C: .4byte gStageFlags +_08095560: + cmp r2, #4 + bne _08095578 +_08095564_case_4: + ldr r2, _08095570 @ =gStageFlags + ldrh r1, [r2] +_08095568: + ldr r0, _08095574 @ =0x0000FF7F + ands r0, r1 + strh r0, [r2] + b _08095582 + .align 2, 0 +_08095570: .4byte gStageFlags +_08095574: .4byte 0x0000FF7F +_08095578: + ldr r0, _08095588 @ =gStageFlags + ldrh r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strh r1, [r0] +_08095582: + ldr r0, [r5, #4] + b _08095614 + .align 2, 0 +_08095588: .4byte gStageFlags +_0809558C: + mov r3, ip @ r3 = ip = worldY + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + movs r1, #4 + ldrsb r1, [r7, r1] + lsls r1, r1, #3 + adds r3, r0, r1 @ top = worldY + me->d.sData[1] * TILE_WIDTH; + ldr r0, [r5, #4] + asrs r1, r0, #8 + cmp r3, r1 + bgt _08095612 + ldrb r0, [r7, #6] + lsls r0, r0, #3 + adds r0, r3, r0 + cmp r0, r1 + blt _08095612 + mov r1, r8 @ r2 = r8 = worldX + lsls r0, r1, #0x10 + asrs r1, r0, #8 + ldr r0, [r4, #0x3c] + cmp r0, r1 + ble _080955C8 + ldr r0, [r5] + cmp r0, r1 + bge _08095612 + cmp r2, #0 + beq _080955D6_case_0 + cmp r2, #1 + beq _080955F4_case_1 + b _08095608 +_080955C8: + cmp r0, r1 + bge _08095612 + ldr r0, [r5] + cmp r0, r1 + ble _08095612 + cmp r2, #0 + bne _080955F0 +_080955D6_case_0: + ldr r2, _080955EC @ =gStageFlags + ldrh r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080955F8 + movs r0, #0x80 + orrs r0, r1 + strh r0, [r2] + b _08095612 + .align 2, 0 +_080955EC: .4byte gStageFlags +_080955F0: + cmp r2, #1 + bne _08095608 +_080955F4_case_1: + ldr r2, _08095600 @ =gStageFlags + ldrh r1, [r2] +_080955F8: + ldr r0, _08095604 @ =0x0000FF7F + ands r0, r1 + strh r0, [r2] + b _08095612 + .align 2, 0 +_08095600: .4byte gStageFlags +_08095604: .4byte 0x0000FF7F +_08095608: + ldr r0, _08095670 @ =gStageFlags + ldrh r1, [r0] + movs r2, #0x80 + orrs r1, r2 + strh r1, [r0] +_08095612: + ldr r0, [r5] +_08095614: + str r0, [r4, #0x3c] +_08095616: + ldr r2, _08095674 @ =gCamera + ldrh r0, [r2] + mov r3, r8 @ r3 = r8 = worldX + lsls r1, r3, #0x10 + asrs r1, r1, #0x10 + subs r1, r1, r0 @ r1 = screenX + ldrh r2, [r2, #2] + mov r3, ip @ r3 = ip = worldY + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 @ ip = screenY + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x10 + adds r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #0x11 + cmp r1, r0 + bhi _08095658 + mov r1, ip + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r0, r1, #0 + adds r0, #0x80 + cmp r0, #0 + blt _08095658 + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _08095664 +_08095658: + ldrb r0, [r4, #8] + strb r0, [r7] + mov r3, sb + ldr r0, [r3] + bl TaskDestroy +_08095664: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08095670: .4byte gStageFlags +_08095674: .4byte gCamera + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc b/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc new file mode 100644 index 0000000000..c470745531 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc @@ -0,0 +1,305 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0804DBFC @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = bridge + movs r0, #0 + mov sl, r0 @ sl = i = 0 +_0804DB92_loop: + ldr r5, _0804DC00 @ =gPlayer + mov r1, sl + cmp r1, #0 + beq _0804DB9C + ldr r5, _0804DC04 @ =gPartner +_0804DB9C: + ldr r0, [r5] + asrs r0, r0, #8 + mov sb, r0 @ sb = playerWorldX + ldr r0, [r5, #4] + asrs r0, r0, #8 + movs r1, #0xf + ldrsb r1, [r5, r1] + adds r7, r0, r1 @ r7 = playerWorldY + ldr r3, _0804DC08 @ =gCamera + movs r0, #0 + ldrsh r2, [r3, r0] + movs r1, #0xb8 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r1, [r6, #4] + cmp r1, r0 + bgt _0804DBDE + adds r0, r2, #0 + subs r0, #0x80 + cmp r1, r0 + blt _0804DBDE + movs r0, #2 + ldrsh r2, [r3, r0] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r1, [r6, #8] + cmp r1, r0 + bgt _0804DBDE + adds r0, r2, #0 + subs r0, #0x80 + cmp r1, r0 + bge _0804DC10 +_0804DBDE: + ldr r1, [r6] + adds r0, r6, #0 + adds r0, #0x55 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [r5, #0x10] + ldr r1, _0804DC0C @ =0xFFFF7FFF + ands r0, r1 + str r0, [r5, #0x10] + ldr r0, _0804DBFC @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0804DDA6_return + .align 2, 0 +_0804DBFC: .4byte gCurTask +_0804DC00: .4byte gPlayer +_0804DC04: .4byte gPartner +_0804DC08: .4byte gCamera +_0804DC0C: .4byte 0xFFFF7FFF +_0804DC10: + ldr r2, [r6, #0xc] + cmp r2, sb + ble _0804DC18 + b _0804DD6C +_0804DC18: + ldr r0, [r6, #0x10] + cmp sb, r0 + blt _0804DC20 + b _0804DD6C +_0804DC20: + ldr r0, [r6, #0x14] + cmp r0, r7 + ble _0804DC28 + b _0804DD6C +_0804DC28: + ldr r4, [r6, #0x18] + cmp r7, r4 + ble _0804DC30 + b _0804DD6C +_0804DC30: + ldr r0, [r5, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804DC3C + b _0804DDA6_return +_0804DC3C: + mov r1, sb @ r1 = sb = playerWorldX + subs r0, r1, r2 + lsls r0, r0, #9 + ldr r1, [r6, #0x1c] + bl __divsi3 + adds r2, r0, #0 @ r2 = theta + cmp r2, #0 + blt _0804DC5C + ldr r1, _0804DC58 @ =0x000001FF + cmp r0, r1 + ble _0804DC5E + adds r0, r1, #0 + b _0804DC5E + .align 2, 0 +_0804DC58: .4byte 0x000001FF +_0804DC5C: + movs r0, #0 +_0804DC5E: + adds r2, r0, #0 @ r2 = theta + ldr r3, _0804DCBC @ =gSineTable + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + ldr r1, [r6, #0x20] + muls r1, r0, r1 + lsls r0, r4, #8 + subs r0, r0, r1 + asrs r0, r0, #8 @ r0 = x = (Q(bridge->bottom) - ((SIN_24_8(theta) * bridge->height))) >> 8; + cmp r7, r0 + blt _0804DD6C + adds r0, #0x20 + cmp r7, r0 + bgt _0804DD6C + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r2, r1 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + mov r8, r0 @ r8 = r8 + ldr r0, [r5, #0x10] + movs r4, #0x80 + lsls r4, r4, #8 + ands r0, r4 + cmp r0, #0 + bne _0804DCAA + movs r0, #0xb1 + bl m4aSongNumStartOrChange + ldr r0, [r5, #0x10] + orrs r0, r4 + str r0, [r5, #0x10] +_0804DCAA: + ldr r0, [r5, #0x10] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0804DCC0 + movs r2, #8 + ldrsh r1, [r5, r2] + b _0804DCC4 + .align 2, 0 +_0804DCBC: .4byte gSineTable +_0804DCC0: + movs r0, #0xc + ldrsh r1, [r5, r0] +_0804DCC4: + adds r1, #0x40 + ldr r0, _0804DD00 @ =0xFFFFF800 + cmp r1, r0 + blt _0804DCD8 + adds r0, r1, #0 + movs r1, #0x80 + lsls r1, r1, #4 + cmp r0, r1 + ble _0804DCD8 + adds r0, r1, #0 +_0804DCD8: + adds r1, r0, #0 + strh r1, [r5, #0xc] + strh r1, [r5, #8] + ldr r0, [r6, #0x20] + rsbs r0, r0, #0 + mov r2, r8 + muls r2, r0, r2 + adds r0, r2, #0 + muls r0, r1, r0 + asrs r0, r0, #0x10 + subs r0, #0x2a + ldr r1, _0804DD00 @ =0xFFFFF800 + cmp r0, r1 + blt _0804DD04 + movs r1, #0x80 + lsls r1, r1, #4 + cmp r0, r1 + ble _0804DD06 + adds r0, r1, #0 + b _0804DD06 + .align 2, 0 +_0804DD00: .4byte 0xFFFFF800 +_0804DD04: + adds r0, r1, #0 +_0804DD06: + strh r0, [r5, #0xa] + adds r0, r5, #0 + bl Player_TransitionCancelFlyingAndBoost + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xf + strb r0, [r1] + ldr r0, [r5, #0x10] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x10] + adds r0, r5, #0 + movs r1, #9 + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #9 + strb r0, [r5, #0xf] + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r5, #0x10] + movs r0, #0 + strh r0, [r5, #0x3a] + strh r0, [r5, #0x38] + adds r4, r6, #0 @ r4 = r6 = bridge + adds r4, #0x24 + ldr r1, _0804DD68 @ =gCamera + ldrh r0, [r1] + mov r2, sb + subs r0, r2, r0 + strh r0, [r4, #0x16] + movs r0, #0xe + ldrsb r0, [r5, r0] + subs r0, r7, r0 + ldrh r1, [r1, #2] + subs r0, r0, r1 + strh r0, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + b _0804DD94_continue + .align 2, 0 +_0804DD68: .4byte gCamera +_0804DD6C: + ldr r1, [r5, #0x10] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _0804DD8C + ldr r0, _0804DDB4 @ =0xFFDFFFFF + ands r1, r0 + str r1, [r5, #0x10] + ldr r0, _0804DDB8 @ =gPlayerControls + ldrh r1, [r0] + ldrh r0, [r0, #2] + orrs r1, r0 + ldrh r0, [r5, #0x38] + orrs r1, r0 + strh r1, [r5, #0x38] +_0804DD8C: + ldr r0, [r5, #0x10] + ldr r1, _0804DDBC @ =0xFFFF7FFF + ands r0, r1 + str r0, [r5, #0x10] +_0804DD94_continue: + movs r0, #1 + add sl, r0 + ldr r0, _0804DDC0 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp sl, r0 + bge _0804DDA6_return + b _0804DB92_loop +_0804DDA6_return: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0804DDB4: .4byte 0xFFDFFFFF +_0804DDB8: .4byte gPlayerControls +_0804DDBC: .4byte 0xFFFF7FFF +_0804DDC0: .4byte gNumSingleplayerCharacters + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc b/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc new file mode 100644 index 0000000000..d46957c1f5 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc @@ -0,0 +1,793 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + str r0, [sp, #0x30] @ sp30 = param0 + ldr r1, _08054E10 @ =gCurrentLevel + ldrb r0, [r1] + movs r2, #1 + ands r2, r0 + str r2, [sp, #0x34] @ sp34 = act = (gCurrentLevel % 2u) + ldr r1, _08054E14 @ =gSelectedCharacter + ldrb r0, [r1] + adds r0, #6 + add r4, sp, #0x2c + strb r0, [r4] + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x38] @ sp38 = &sp00.unk2B + movs r0, #6 + strb r0, [r2] @ sp00.unk2B = 6; + ldr r7, _08054E18 @ =gUiGraphics + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + str r0, [sp, #0x14] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08054E1C @ =gUiGraphics + 0x4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #3 + str r0, [sp, #0x18] + movs r2, #0x20 + str r2, [sp, #0x24] + mov r0, sp + adds r0, #0x28 + str r0, [sp, #0x3c] @ sp3C = &sp00.unk28 + movs r1, #0xf + strb r1, [r0] + ldr r2, [sp, #0x30] @ r2 = sp30 = param0 + ldr r0, [r2, #4] + str r0, [sp, #0xc] + mov r0, sp + adds r0, #0x2a + str r0, [sp, #0x40] @ sp40 = &sp00.unk2A + movs r1, #0xd + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _08054E20 @ =gUiGraphics + 0x8 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp, #4] + mov r2, sp + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08054E24 @ =gUiGraphics + 0xC + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08054E28 @ =gUiGraphics + 0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08054E2C @ =gUiGraphics + 0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r4] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08054E30 @ =gUiGraphics + 0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + mov r0, sp + bl sub_80528AC + movs r0, #0xa + strb r0, [r4] + movs r0, #7 + ldr r2, [sp, #0x38] @ r2 = sp38 = &sp00.unk2B + strb r0, [r2] + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r2, _08054E14 @ =gSelectedCharacter + movs r1, #0 + ldrsb r1, [r2, r1] + lsls r1, r1, #0xb + ldr r0, [r0] + adds r0, r0, r1 + str r0, [sp, #0x14] + movs r1, #0x8e + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #4 + str r0, [sp, #0x18] + movs r2, #0x20 + str r2, [sp, #0x24] + movs r1, #0xf + ldr r0, [sp, #0x3c] + strb r1, [r0] + ldr r0, _08054E34 @ =0x06010800 + str r0, [sp, #0xc] + movs r0, #0xd + ldr r2, [sp, #0x40] + strb r0, [r2] + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r1, sp + movs r2, #0x92 + lsls r2, r2, #1 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #8] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #9] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #0xa] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r0, #0x10 + strb r0, [r4] + movs r0, #8 + ldr r1, [sp, #0x38] @ r1 = sp38 = &sp00.unk2B + strb r0, [r1] + movs r2, #0xe0 + lsls r2, r2, #1 + adds r0, r7, r2 + ldr r0, [r0] + str r0, [sp, #0x14] + movs r1, #0xe2 + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + adds r2, #0x40 + mov sb, r2 + str r2, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r2, #6 + ldr r1, [sp, #0x3c] + strb r2, [r1] + ldr r1, [sp, #0x30] @ r1 = sp30 = param0 + ldr r0, [r1] + str r0, [sp, #0xc] + movs r0, #0xd + ldr r2, [sp, #0x40] + strb r0, [r2] + movs r1, #0xe4 + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r1, sp + movs r2, #0xe6 + lsls r2, r2, #1 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #8] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #9] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #0xa] + adds r2, #4 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + ldr r1, _08054E10 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r1, r0] + mov sl, r4 + cmp r0, #0xd + ble _08054C3A + b _08054E5C +_08054C3A: + movs r2, #0x11 + strb r2, [r4] + movs r0, #9 + movs r1, #0x2b + add r1, sp + strb r0, [r1] + ldr r2, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) + ldr r0, [r2] + movs r1, #0x92 + lsls r1, r1, #4 + adds r0, r0, r1 + str r0, [sp, #0x14] + ldr r2, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) + ldr r0, [r2] + str r0, [sp, #0x20] + ldr r1, _08054E10 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r1, r0] + ldr r2, _08054E40 @ =gUnknown_08688378 + adds r0, r0, r2 + ldrb r0, [r0] + movs r4, #0xc + subs r0, r4, r0 + lsls r0, r0, #5 + str r0, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r1, #6 + add r2, sp, #0x28 + strb r1, [r2] + ldr r1, [sp, #0x30] @ r1 = sp30 = param0 + ldr r0, [r1, #8] + str r0, [sp, #0xc] + movs r2, #0xd + movs r0, #0x2a + add r0, sp + strb r2, [r0] + ldr r1, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #0x11 + mov r0, sl + strb r1, [r0] + movs r2, #9 + movs r0, #0x2b + add r0, sp + strb r2, [r0] + ldr r1, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) + ldr r0, [r1] + movs r7, #0x80 + lsls r7, r7, #1 + adds r0, r0, r7 + str r0, [sp, #0x14] + ldr r2, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) + ldr r0, [r2] + str r0, [sp, #0x20] + movs r0, #0x80 + str r0, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r1, #6 + add r2, sp, #0x28 + strb r1, [r2] + ldr r1, [sp, #0x30] @ r1 = sp30 = param0 + ldr r0, [r1, #8] + movs r2, #0xc0 + lsls r2, r2, #1 + adds r0, r0, r2 + str r0, [sp, #0xc] + movs r0, #0xd + movs r1, #0x2a + add r1, sp + strb r0, [r1] + ldr r2, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) + ldr r0, [r2] + str r0, [sp, #4] + mov r1, sp + ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #0x11 + mov r0, sl + strb r1, [r0] + movs r2, #9 + movs r0, #0x2b + add r0, sp + strb r2, [r0] + ldr r1, _08054E58 @ =gUnknown_08688386 + ldr r2, _08054E10 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #5 + ldr r2, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) + ldr r0, [r2] + adds r0, r0, r1 + str r0, [sp, #0x14] + ldr r1, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) + ldr r0, [r1] + str r0, [sp, #0x20] + ldr r2, _08054E10 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r2, r0] + ldr r1, _08054E40 @ =gUnknown_08688378 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #5 + str r0, [sp, #0x18] + movs r2, #0x20 + str r2, [sp, #0x24] + movs r0, #6 + add r1, sp, #0x28 + strb r0, [r1] + ldr r2, _08054E10 @ =gCurrentLevel + movs r0, #0 + ldrsb r0, [r2, r0] + ldr r1, _08054E40 @ =gUnknown_08688378 + adds r0, r0, r1 + ldrb r0, [r0] + subs r4, r4, r0 + lsls r4, r4, #5 + ldr r2, [sp, #0x30] @ r2 = sp30 = param0 + ldr r0, [r2, #8] + adds r0, r0, r4 + str r0, [sp, #0xc] + movs r0, #0xd + movs r1, #0x2a + add r1, sp + strb r0, [r1] + ldr r2, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) + ldr r0, [r2] + str r0, [sp, #4] + mov r1, sp + ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #0x11 + mov r0, sl + strb r1, [r0] + movs r2, #9 + movs r0, #0x2b + add r0, sp + strb r2, [r0] + ldr r1, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) + ldr r0, [r1] + adds r0, r0, r7 + str r0, [sp, #0x14] + ldr r2, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) + ldr r0, [r2] + str r0, [sp, #0x20] + movs r0, #0x20 + str r0, [sp, #0x18] + str r0, [sp, #0x24] + movs r1, #6 + add r2, sp, #0x28 + strb r1, [r2] + ldr r1, [sp, #0x30] @ r1 = sp30 = param0 + ldr r0, [r1, #8] + str r0, [sp, #0xc] + movs r2, #0xd + movs r0, #0x2a + add r0, sp + strb r2, [r0] + ldr r1, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #4 + str r1, [sp, #4] + mov r0, sp + movs r2, #1 + strb r2, [r0, #8] + strb r2, [r0, #9] + strb r1, [r0, #0xa] + strb r2, [r0, #0xb] + movs r1, #9 + bl sub_80535C8 + b _08054F14 + .align 2, 0 +_08054E10: .4byte gCurrentLevel +_08054E14: .4byte gSelectedCharacter +_08054E18: .4byte gUiGraphics +_08054E1C: .4byte gUiGraphics + 0x4 +_08054E20: .4byte gUiGraphics + 0x8 +_08054E24: .4byte gUiGraphics + 0xC +_08054E28: .4byte gUiGraphics + 0x10 +_08054E2C: .4byte gUiGraphics + 0x14 +_08054E30: .4byte gUiGraphics + 0x18 +_08054E34: .4byte 0x06010800 +_08054E38: .4byte gUiGraphics + ((17 * 0x1C) + 0) +_08054E3C: .4byte gUiGraphics + ((17 * 0x1C) + 0x4) +_08054E40: .4byte gUnknown_08688378 +_08054E44: .4byte gUiGraphics + ((17 * 0x1C) + 0x8) +_08054E48: .4byte gUiGraphics + ((17 * 0x1C) + 0xC) +_08054E4C: .4byte gUiGraphics + ((17 * 0x1C) + 0x10) +_08054E50: .4byte gUiGraphics + ((17 * 0x1C) + 0x14) +_08054E54: .4byte gUiGraphics + ((17 * 0x1C) + 0x18) +_08054E58: .4byte gUnknown_08688386 +_08054E5C: + movs r0, #0x12 + mov r1, sl + strb r0, [r1] + movs r0, #9 + movs r2, #0x2b + add r2, sp + strb r0, [r2] + ldrb r1, [r1] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r2, _080550C4 @ =gCurrentLevel + movs r1, #0 + ldrsb r1, [r2, r1] + subs r1, #0xe + lsls r1, r1, #9 + ldr r0, [r0] + adds r0, r0, r1 + str r0, [sp, #0x14] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080550C8 @ =gUiGraphics + 0x4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + mov r2, sb + str r2, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r1, #6 + add r2, sp, #0x28 + strb r1, [r2] + ldr r1, [sp, #0x30] @ r1 = sp30 = param0 + ldr r0, [r1, #8] + str r0, [sp, #0xc] + movs r2, #0xd + movs r0, #0x2a + add r0, sp + strb r2, [r0] + mov r2, sl + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080550CC @ =gUiGraphics + 0x8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r2, sp + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080550D0 @ =gUiGraphics + 0xC + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080550D4 @ =gUiGraphics + 0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080550D8 @ =gUiGraphics + 0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080550DC @ =gUiGraphics + 0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + mov r0, sp + bl sub_80528AC +_08054F14: + movs r0, #0xf + mov r2, sl + strb r0, [r2] + movs r1, #0xa + movs r2, #0x2b + add r2, sp + strb r1, [r2] + ldr r7, _080550E0 @ =gUiGraphics + movs r0, #0xd2 + lsls r0, r0, #1 + adds r6, r7, r0 + ldr r0, [r6] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r0, r4 + ldr r2, [sp, #0x34] + lsls r1, r2, #7 + adds r0, r0, r1 + str r0, [sp, #0x14] + movs r0, #0x80 + str r0, [sp, #0x18] + ldr r1, [sp, #0x30] @ r1 = sp30 = param0 + ldr r0, [r1, #0x10] + adds r0, r0, r4 + str r0, [sp, #0xc] + movs r0, #9 + movs r2, #0x2a + add r2, sp + strb r0, [r2] + movs r0, #0xd6 + lsls r0, r0, #1 + adds r5, r7, r0 + ldr r0, [r5] + str r0, [sp, #4] + mov r1, sp + ldr r2, _080550E4 @ =gUiGraphics + ((15 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r2, _080550E8 @ =gUiGraphics + ((15 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r2, _080550EC @ =gUiGraphics + ((15 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r2, _080550F0 @ =gUiGraphics + ((15 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #0xf + mov r0, sl + strb r1, [r0] + movs r2, #0xa + movs r0, #0x2b + add r0, sp + strb r2, [r0] + ldr r0, [r6] + str r0, [sp, #0x14] + movs r1, #0xd4 + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + str r4, [sp, #0x18] + ldr r2, [sp, #0x30] @ r2 = sp30 = param0 + ldr r0, [r2, #0x10] + str r0, [sp, #0xc] + movs r0, #0x20 + mov r8, r0 + str r0, [sp, #0x24] + movs r1, #6 + mov sb, r1 + mov r2, sb + add r0, sp, #0x28 + strb r2, [r0] + movs r1, #0xd + movs r2, #0x2a + add r2, sp + strb r1, [r2] + ldr r0, [r5] + str r0, [sp, #4] + mov r1, sp + ldr r2, _080550E4 @ =gUiGraphics + ((15 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r2, _080550E8 @ =gUiGraphics + ((15 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r2, _080550EC @ =gUiGraphics + ((15 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r2, _080550F0 @ =gUiGraphics + ((15 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + ldr r1, _080550F4 @ =gUnknown_08688398 + ldr r0, _080550C4 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, #0x13 + mov r1, sl + strb r0, [r1] + movs r4, #2 + movs r2, #0x2b + add r2, sp + strb r4, [r2] + ldrb r1, [r1] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + str r0, [sp, #0x14] + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0xe0 + lsls r0, r0, #3 + str r0, [sp, #0x18] + mov r2, r8 + str r2, [sp, #0x24] + mov r0, sb + add r1, sp, #0x28 + strb r0, [r1] + ldr r2, [sp, #0x30] @ r2 = sp30 = param0 + ldr r0, [r2, #0xc] + str r0, [sp, #0xc] + movs r0, #0xd + movs r1, #0x2a + add r1, sp + strb r0, [r1] + mov r2, sl + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r2, sp + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + mov r0, sl + ldrb r1, [r0] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + mov r0, sp + bl sub_80528AC + movs r0, #8 + str r0, [sp, #4] + mov r0, sp + strb r4, [r0, #8] + mov r1, sp + movs r0, #1 + strb r0, [r1, #9] + movs r0, #4 + strb r0, [r1, #0xa] + mov r0, sp + strb r4, [r0, #0xb] + movs r1, #2 + bl sub_80535C8 + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080550C4: .4byte gCurrentLevel +_080550C8: .4byte gUiGraphics + 0x4 +_080550CC: .4byte gUiGraphics + 0x8 +_080550D0: .4byte gUiGraphics + 0xC +_080550D4: .4byte gUiGraphics + 0x10 +_080550D8: .4byte gUiGraphics + 0x14 +_080550DC: .4byte gUiGraphics + 0x18 +_080550E0: .4byte gUiGraphics +_080550E4: .4byte gUiGraphics + ((15 * 0x1C) + 0xC) +_080550E8: .4byte gUiGraphics + ((15 * 0x1C) + 0x10) +_080550EC: .4byte gUiGraphics + ((15 * 0x1C) + 0x14) +_080550F0: .4byte gUiGraphics + ((15 * 0x1C) + 0x18) +_080550F4: .4byte gUnknown_08688398 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc b/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc new file mode 100644 index 0000000000..b403aa05b4 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc @@ -0,0 +1,460 @@ +.include "constants/constants.inc" + +.syntax unified + +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _0801B8A0 @ =gCurTask + ldr r0, [r0] + ldrh r3, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r3, r0 + str r0, [sp] + ldr r0, _0801B8A4 @ =gCourseTime + ldr r2, [r0] + ldr r1, _0801B8A8 @ =0x00000E0F + ldr r4, _0801B8AC @ =0x03000030 + adds r4, r4, r3 + mov sl, r4 + adds r4, r0, #0 + cmp r2, r1 + bhi _0801B72E + movs r0, #2 + ands r2, r0 + cmp r2, #0 + beq _0801B72E + ldr r0, _0801B8B0 @ =0x03000240 + adds r0, r0, r3 + mov sl, r0 +_0801B72E: + ldr r0, _0801B8B4 @ =gStageFlags + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801B754 + ldr r1, [r4] + ldr r0, _0801B8B8 @ =0x000004AF + cmp r1, r0 + bhi _0801B754 + adds r0, r1, #0 + movs r1, #0x3c + bl Mod + cmp r0, #0 + bne _0801B754 + movs r0, #0x8b @ SE_TIMER + bl m4aSongNumStart +_0801B754: + movs r7, #0xf0 + lsls r7, r7, #1 + add r7, sl + movs r1, #0x20 + mov r8, r1 + mov r4, r8 + strh r4, [r7, #0x18] + movs r0, #0x18 + strh r0, [r7, #0x16] + adds r0, r7, #0 + bl DisplaySprite + movs r0, #0x30 + strh r0, [r7, #0x16] + adds r0, r7, #0 + bl DisplaySprite + ldr r4, _0801B8A4 @ =gCourseTime + ldr r0, [r4] + movs r1, #0x3c + bl Div + adds r5, r0, #0 + ldr r1, [r4] + lsls r0, r5, #4 + subs r0, r0, r5 + lsls r0, r0, #2 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + ldr r0, _0801B8BC @ =sa2__gUnknown_080E0234 + adds r0, r1, r0 + ldrb r4, [r0] + movs r0, #0xf + mov sb, r0 + lsrs r1, r4, #4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + movs r0, #0x38 + strh r0, [r7, #0x16] + mov r0, r8 + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + movs r6, #0xf + adds r1, r6, #0 + ands r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + movs r0, #0x40 + strh r0, [r7, #0x16] + mov r4, r8 + strh r4, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + adds r0, r5, #0 + movs r1, #0x3c + bl Div + adds r4, r0, #0 + lsls r0, r4, #4 + subs r0, r0, r4 + lsls r0, r0, #2 + subs r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r1, r5, #0x10 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r1, #0 + bl Base10DigitsToHexNibbles + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsrs r0, r0, #0x14 + mov r1, sb + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #4 + mov r0, sl + adds r7, r0, r1 + mov r1, r8 + strh r1, [r7, #0x16] + strh r1, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + adds r1, r6, #0 + ands r1, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + movs r0, #0x28 + strh r0, [r7, #0x16] + mov r0, r8 + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + adds r0, r4, #0 + movs r1, #0x3c + bl Div + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + subs r4, r4, r1 + lsls r4, r4, #0x10 + lsrs r1, r4, #0x10 + adds r0, r1, #0 + bl Base10DigitsToHexNibbles + ands r6, r0 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + movs r0, #0x10 + strh r0, [r7, #0x16] + mov r4, r8 + strh r4, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + movs r5, #0 + ldr r0, _0801B8C0 @ =gMultiplayerConnections + ldrb r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0801B876 + b _0801BA86 +_0801B876: + ldr r2, _0801B8C4 @ =gGameMode + ldr r0, [sp] + adds r0, #0x30 + mov sl, r0 +_0801B87E: + ldr r7, [sp] + lsls r0, r5, #2 + adds r0, r0, r5 + lsls r0, r0, #2 + adds r0, #8 + strh r0, [r7, #0x16] + movs r0, #8 + strh r0, [r7, #0x18] + ldrb r0, [r2] + cmp r0, #6 + bne _0801B8C8 + adds r0, r7, #0 + adds r0, #0x25 + strb r5, [r0] + adds r1, r5, #1 + mov sb, r1 + b _0801B920 + .align 2, 0 +_0801B8A0: .4byte gCurTask +_0801B8A4: .4byte gCourseTime +_0801B8A8: .4byte 0x00000E0F +_0801B8AC: .4byte 0x03000030 +_0801B8B0: .4byte 0x03000240 +_0801B8B4: .4byte gStageFlags +_0801B8B8: .4byte 0x000004AF +_0801B8BC: .4byte sa2__gUnknown_080E0234 +_0801B8C0: .4byte gMultiplayerConnections +_0801B8C4: .4byte gGameMode +_0801B8C8: + cmp r0, #4 + bne _0801B8E4 + ldr r0, _0801B8E0 @ =gMultiplayerCharacters + adds r0, r5, r0 + ldrb r0, [r0] + adds r1, r7, #0 + adds r1, #0x25 + strb r0, [r1] + adds r4, r5, #1 + mov sb, r4 + b _0801B920 + .align 2, 0 +_0801B8E0: .4byte gMultiplayerCharacters +_0801B8E4: + movs r2, #0 + ldr r3, _0801B974 @ =gMultiplayerConnections + ldrb r1, [r3] + movs r0, #0x10 + ands r1, r0 + asrs r1, r1, #4 + ldr r0, _0801B978 @ =gMultiplayerCharacters + mov r8, r0 + adds r4, r7, #0 + adds r4, #0x25 + adds r0, r5, #1 + mov sb, r0 + cmp r5, r1 + beq _0801B918 + movs r6, #0x10 +_0801B902: + adds r2, #1 + cmp r2, #3 + bhi _0801B918 + ldrb r0, [r3] + adds r1, r6, #0 + lsls r1, r2 + ands r0, r1 + adds r1, r2, #4 + asrs r0, r1 + cmp r5, r0 + bne _0801B902 +_0801B918: + mov r1, r8 + adds r0, r2, r1 + ldrb r0, [r0] + strb r0, [r4] +_0801B920: + adds r0, r7, #0 + bl DisplaySprite + ldr r0, _0801B97C @ =gGameMode + ldrb r0, [r0] + cmp r0, #5 + bne _0801B988 + movs r4, #0 + movs r2, #0 + ldr r1, _0801B980 @ =gMultiplayerPlayerTasks + ldr r0, [r1] + cmp r0, #0 + beq _0801B970 + ldr r0, _0801B974 @ =gMultiplayerConnections + ldrb r3, [r0] + mov r8, r1 + ldr r7, _0801B984 @ =gMultiplayerCharRings + movs r6, #0x10 +_0801B944: + adds r0, r6, #0 + lsls r0, r2 + ands r0, r3 + adds r1, r2, #4 + asrs r0, r1 + cmp r5, r0 + bne _0801B95C + adds r0, r2, r7 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_0801B95C: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bhi _0801B970 + lsls r0, r2, #2 + add r0, r8 + ldr r0, [r0] + cmp r0, #0 + bne _0801B944 +_0801B970: + adds r0, r4, #0 + b _0801B98E + .align 2, 0 +_0801B974: .4byte gMultiplayerConnections +_0801B978: .4byte gMultiplayerCharacters +_0801B97C: .4byte gGameMode +_0801B980: .4byte gMultiplayerPlayerTasks +_0801B984: .4byte gMultiplayerCharRings +_0801B988: + ldr r0, _0801B9F4 @ =gMultiplayerCharRings + adds r0, r5, r0 + ldrb r0, [r0] +_0801B98E: + bl Base10DigitsToHexNibbles + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xff + bls _0801B9F8 + lsrs r1, r4, #8 + movs r0, #0xf + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + ldr r1, [sp] + ldrh r0, [r1, #0x16] + adds r0, #3 + strh r0, [r7, #0x16] + movs r0, #0xe + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + lsrs r1, r4, #4 + movs r0, #0xf + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + ldr r1, [sp] + ldrh r0, [r1, #0x16] + adds r0, #0xb + strh r0, [r7, #0x16] + movs r0, #0xe + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + movs r1, #0xf + ands r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + ldr r4, [sp] + ldrh r0, [r4, #0x16] + adds r0, #0x13 + b _0801BA32 + .align 2, 0 +_0801B9F4: .4byte gMultiplayerCharRings +_0801B9F8: + cmp r4, #0xf + bls _0801BA40 + lsrs r1, r4, #4 + movs r0, #0xf + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + ldr r1, [sp] + ldrh r0, [r1, #0x16] + adds r0, #7 + strh r0, [r7, #0x16] + movs r0, #0xe + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + movs r1, #0xf + ands r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + mov r1, sl + adds r7, r1, r0 + ldr r4, [sp] + ldrh r0, [r4, #0x16] + adds r0, #0xf +_0801BA32: + strh r0, [r7, #0x16] + movs r0, #0xe + strh r0, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite + b _0801BA60 +_0801BA40: + movs r0, #0xf + ands r0, r4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #4 + mov r4, sl + adds r7, r4, r1 + ldr r1, [sp] + ldrh r0, [r1, #0x16] + adds r0, #0xb + strh r0, [r7, #0x16] + movs r4, #0xe + strh r4, [r7, #0x18] + adds r0, r7, #0 + bl DisplaySprite +_0801BA60: + mov r5, sb + cmp r5, #3 + bhi _0801BA86 + ldr r0, _0801BA98 @ =gMultiplayerConnections + ldrb r0, [r0] + asrs r0, r5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0801BA86 + ldr r0, _0801BA9C @ =gGameMode + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #5 + beq _0801BA80 + b _0801B87E +_0801BA80: + cmp r5, #2 + beq _0801BA86 + b _0801B87E +_0801BA86: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801BA98: .4byte gMultiplayerConnections +_0801BA9C: .4byte gGameMode + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc b/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc new file mode 100644 index 0000000000..15d87da3cb --- /dev/null +++ b/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc @@ -0,0 +1,150 @@ +.include "constants/constants.inc" + +.syntax unified + +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sb, r0 @ sb = data + movs r0, #0 + mov ip, r0 + ldr r1, _0800FDD4 @ =gLoadedSaveGame + 0x380 + mov sl, r1 @ sl = LOADED_SAVE->multiplayerScores + mov r5, sb + adds r5, #4 + str r5, [sp, #0x10] @ sp10 = + mov r7, sl + mov r8, r0 @ r8 = r0 = i +_0800FDBC_loop: + ldr r4, _0800FDD4 @ =gLoadedSaveGame + 0x380 + add r4, r8 @ r4 = score + movs r6, #1 + movs r3, #0 + mov r2, sb @ r2 = sb = data + ldrb r1, [r2, #4] + ldrb r0, [r4] + cmp r1, r0 + beq _0800FDD8 + movs r6, #0 + b _0800FE38_continue + .align 2, 0 +_0800FDD4: .4byte gLoadedSaveGame + 0x380 +_0800FDD8: + adds r3, #1 + cmp r3, #0xb + bhi _0800FDEC + adds r0, r5, r3 + adds r1, r4, r3 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + beq _0800FDD8 + movs r6, #0 +_0800FDEC: + cmp r6, #0 + beq _0800FE38_continue + mov r0, sp + adds r1, r7, #0 + ldm r1!, {r3, r4, r5} + stm r0!, {r3, r4, r5} + ldr r1, [r1] + str r1, [r0] + mov r2, ip + cmp r2, #0 + beq _0800FE22 + ldr r4, _0800FE30 @ =gLoadedSaveGame + movs r3, #0xe0 + lsls r3, r3, #2 @ 0x380 +_0800FE08: + lsls r1, r2, #4 + adds r1, r1, r4 + subs r2, #1 + lsls r0, r2, #4 + adds r0, r0, r4 + adds r1, r1, r3 + adds r0, r0, r3 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldr r0, [r0] + str r0, [r1] @ LOADED_SAVE->multiplayerScores = + cmp r2, #0 + bne _0800FE08 +_0800FE22: + ldr r0, _0800FE34 @ =gLoadedSaveGame + 0x380 + mov r1, sp + ldm r1!, {r2, r6, r7} + stm r0!, {r2, r6, r7} + ldr r1, [r1] + str r1, [r0] + b _0800FE94 + .align 2, 0 +_0800FE30: .4byte gLoadedSaveGame +_0800FE34: .4byte gLoadedSaveGame + 0x380 +_0800FE38_continue: + adds r7, #0x10 + movs r3, #0x10 + add r8, r3 + movs r4, #1 + add ip, r4 + mov r6, ip + cmp r6, #9 + bls _0800FDBC_loop + movs r2, #9 + ldr r4, _0800FEA4 @ =gLoadedSaveGame + movs r3, #0xe0 + lsls r3, r3, #2 +_0800FE50: + lsls r1, r2, #4 + adds r1, r1, r4 + subs r2, #1 + lsls r0, r2, #4 + adds r0, r0, r4 + adds r1, r1, r3 + adds r0, r0, r3 + ldm r0!, {r5, r6, r7} + stm r1!, {r5, r6, r7} + ldr r0, [r0] + str r0, [r1] + cmp r2, #0 + bne _0800FE50 + ldr r5, [sp, #0x10] + mov r4, sl @ r4 = sl = LOADED_SAVE->multiplayerScores +_0800FE6E: + ldrb r0, [r5] + strb r0, [r4] + adds r5, #1 + adds r4, #1 + adds r2, #1 + cmp r2, #0xb + bls _0800FE6E + ldr r7, _0800FEA4 @ =gLoadedSaveGame + movs r1, #0xe3 + lsls r1, r1, #2 + adds r0, r7, r1 + movs r1, #0 + strb r1, [r0] + ldr r2, _0800FEA8 @ =0x0000038D + adds r0, r7, r2 + strb r1, [r0] + ldr r3, _0800FEAC @ =0x0000038E + adds r0, r7, r3 + strb r1, [r0] +_0800FE94: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800FEA4: .4byte gLoadedSaveGame +_0800FEA8: .4byte 0x0000038D +_0800FEAC: .4byte 0x0000038E + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/results__Task_801874C.inc b/asm/non_matching/game/sa1/stage/results__Task_801874C.inc new file mode 100644 index 0000000000..3ecbb24347 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/results__Task_801874C.inc @@ -0,0 +1,439 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080187BC @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 + ldr r0, _080187C0 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _080187FE + movs r3, #0 + ldr r0, _080187C4 @ =gMultiplayerConnections + ldrb r1, [r0] + movs r2, #1 + ands r1, r2 + adds r7, r0, #0 + cmp r1, #0 + beq _080187FE + movs r5, #1 + ldr r2, _080187C8 @ =gMultiplayerMissingHeartbeats +_0801877E: + ldr r1, _080187CC @ =gMultiSioStatusFlags + adds r0, r5, #0 + lsls r0, r3 + ldr r4, [r1] + ands r4, r0 + cmp r4, #0 + bne _080187E8 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _080187EC + movs r0, #0 + ldr r1, _080187D0 @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _080187D4 @ =gBackgroundsCopyQueueCursor + ldr r0, _080187D8 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080187DC @ =gBgSpritesCount + strb r4, [r0] + ldr r1, _080187E0 @ =gVramGraphicsCopyCursor + ldr r0, _080187E4 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _08018AC2 + .align 2, 0 +_080187BC: .4byte gCurTask +_080187C0: .4byte gGameMode +_080187C4: .4byte gMultiplayerConnections +_080187C8: .4byte gMultiplayerMissingHeartbeats +_080187CC: .4byte gMultiSioStatusFlags +_080187D0: .4byte 0x0000FFFF +_080187D4: .4byte gBackgroundsCopyQueueCursor +_080187D8: .4byte gBackgroundsCopyQueueIndex +_080187DC: .4byte gBgSpritesCount +_080187E0: .4byte gVramGraphicsCopyCursor +_080187E4: .4byte gVramGraphicsCopyQueueIndex +_080187E8: + movs r0, #0 + strb r0, [r2] +_080187EC: + adds r2, #1 + adds r3, #1 + cmp r3, #3 + bhi _080187FE + ldrb r0, [r7] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + bne _0801877E +_080187FE: + ldr r5, _0801882C @ =gMultiSioRecv + ldrh r0, [r5] + cmp r0, #0x30 + bne _08018838 + ldr r0, _08018830 @ =0x00000203 + adds r4, r6, r0 + ldrb r0, [r4] + ldrb r1, [r5, #2] + cmp r0, r1 + beq _080188DC + movs r0, #0x6c + bl m4aSongNumStart + ldr r0, _08018834 @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080188EA + ldrb r0, [r5, #2] + strb r0, [r4] + b _080188DC + .align 2, 0 +_0801882C: .4byte gMultiSioRecv +_08018830: .4byte 0x00000203 +_08018834: .4byte gMultiSioStatusFlags +_08018838: + cmp r0, #0x31 + bne _080188DC + ldr r3, _0801887C @ =0x00000203 + adds r4, r6, r3 + ldrb r0, [r4] + ldrb r1, [r5, #2] + cmp r0, r1 + beq _08018852 + movs r0, #0x6c + bl m4aSongNumStart + ldrb r0, [r5, #2] + strb r0, [r4] +_08018852: + movs r0, #0x6a + bl m4aSongNumStart + ldrb r0, [r4] + cmp r0, #0 + bne _08018894 + ldr r1, _08018880 @ =gGameMode + movs r0, #2 + strb r0, [r1] + ldr r0, _08018884 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r2, _08018888 @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _0801888C @ =0x00196225 + muls r0, r1, r0 + ldr r3, _08018890 @ =0x3C6EF35F + adds r0, r0, r3 + b _080188AE + .align 2, 0 +_0801887C: .4byte 0x00000203 +_08018880: .4byte gGameMode +_08018884: .4byte gCurTask +_08018888: .4byte gPseudoRandom +_0801888C: .4byte 0x00196225 +_08018890: .4byte 0x3C6EF35F +_08018894: + ldr r1, _080188C4 @ =gGameMode + movs r0, #4 + strb r0, [r1] + ldr r0, _080188C8 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r2, _080188CC @ =gPseudoRandom + ldr r1, [r2] + ldr r0, _080188D0 @ =0x00196225 + muls r0, r1, r0 + ldr r1, _080188D4 @ =0x3C6EF35F + adds r0, r0, r1 +_080188AE: + str r0, [r2] + ldr r1, _080188D8 @ =0x04000128 + ldr r1, [r1] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + bl CreateCharacterSelectionScreen + b _08018AC2 + .align 2, 0 +_080188C4: .4byte gGameMode +_080188C8: .4byte gCurTask +_080188CC: .4byte gPseudoRandom +_080188D0: .4byte 0x00196225 +_080188D4: .4byte 0x3C6EF35F +_080188D8: .4byte 0x04000128 +_080188DC: + ldr r0, _08018934 @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080188EA + b _08018A08 +_080188EA: + movs r3, #1 + mov r8, r3 + movs r0, #0x30 + ldr r1, _08018938 @ =gMultiSioSend + strh r0, [r1] + ldr r3, _0801893C @ =0x00000213 + adds r0, r6, r3 + ldrb r5, [r0] + cmp r5, #0 + bne _08018974 + ldr r0, _08018940 @ =gRepeatedKeys + ldrh r1, [r0] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _08018948 + movs r0, #0x6c + bl m4aSongNumStart + ldr r0, _08018944 @ =0x00000203 + adds r1, r6, r0 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0801892A + mov r3, r8 + strb r3, [r1] +_0801892A: + movs r1, #0xfe + lsls r1, r1, #1 + adds r0, r6, r1 + str r5, [r0] + b _08018974 + .align 2, 0 +_08018934: .4byte gMultiSioStatusFlags +_08018938: .4byte gMultiSioSend +_0801893C: .4byte 0x00000213 +_08018940: .4byte gRepeatedKeys +_08018944: .4byte 0x00000203 +_08018948: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08018974 + movs r0, #0x6c + bl m4aSongNumStart + ldr r3, _080189F0 @ =0x00000203 + adds r1, r6, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0801896C + movs r0, #0 + strb r0, [r1] +_0801896C: + movs r1, #0xfe + lsls r1, r1, #1 + adds r0, r6, r1 + str r4, [r0] +_08018974: + ldr r3, _080189F0 @ =0x00000203 + adds r0, r6, r3 + ldrb r0, [r0] + ldr r1, _080189F4 @ =gMultiSioSend + strb r0, [r1, #2] + movs r4, #1 + ldr r1, _080189F8 @ =gMultiplayerConnections + ldrb r0, [r1] + asrs r0, r0, #1 + ands r0, r4 + adds r7, r1, #0 + adds r5, r6, #0 + adds r5, #0x40 + movs r3, #0x60 + adds r3, r3, r6 + mov sb, r3 + movs r1, #0x70 + adds r1, r1, r6 + mov sl, r1 + cmp r0, #0 + beq _080189C4 + ldr r0, _080189FC @ =gMultiSioRecv + adds r1, r7, #0 + adds r2, r0, #0 + adds r2, #0x14 + movs r3, #1 +_080189A8: + ldrh r0, [r2] + cmp r0, #0x30 + beq _080189B2 + movs r0, #0 + mov r8, r0 +_080189B2: + adds r2, #0x14 + adds r4, #1 + cmp r4, #3 + bhi _080189C4 + ldrb r0, [r1] + asrs r0, r4 + ands r0, r3 + cmp r0, #0 + bne _080189A8 +_080189C4: + mov r1, r8 + cmp r1, #0 + beq _080189D6 + ldr r0, _08018A00 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080189E0 +_080189D6: + ldr r3, _08018A04 @ =0x00000213 + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _08018A30 +_080189E0: + ldr r1, _08018A04 @ =0x00000213 + adds r0, r6, r1 + movs r1, #1 + strb r1, [r0] + movs r0, #0x31 + ldr r3, _080189F4 @ =gMultiSioSend + strh r0, [r3] + b _08018A30 + .align 2, 0 +_080189F0: .4byte 0x00000203 +_080189F4: .4byte gMultiSioSend +_080189F8: .4byte gMultiplayerConnections +_080189FC: .4byte gMultiSioRecv +_08018A00: .4byte gPressedKeys +_08018A04: .4byte 0x00000213 +_08018A08: + movs r0, #0x30 + ldr r1, _08018AD0 @ =gMultiSioSend + strh r0, [r1] + movs r3, #0xe0 + lsls r3, r3, #1 + adds r5, r6, r3 + adds r0, r5, #0 + bl UpdateSpriteAnimation + adds r0, r5, #0 + bl DisplaySprite + adds r5, r6, #0 + adds r5, #0x40 + movs r0, #0x60 + adds r0, r0, r6 + mov sb, r0 + movs r1, #0x70 + adds r1, r1, r6 + mov sl, r1 +_08018A30: + ldr r1, _08018AD4 @ =gUnknown_080BB48C + ldr r3, _08018AD8 @ =0x00000203 + adds r2, r6, r3 + ldr r0, _08018ADC @ =gLoadedSaveGame + ldrb r0, [r0, #0x19] + lsls r0, r0, #1 + ldrb r3, [r2] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0xfe + lsls r0, r0, #1 + adds r4, r6, r0 + ldr r0, [r4] + adds r0, #0x80 + str r0, [r4] + lsls r1, r7, #8 + cmp r0, r1 + ble _08018A5A + subs r0, r0, r1 + str r0, [r4] +_08018A5A: + ldrb r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, #0x40 + strh r0, [r5, #0x18] + ldrb r0, [r2] + mov r1, sb + strb r0, [r1] + adds r0, r5, #0 + bl UpdateSpriteAnimation + ldr r0, [r4] + asrs r0, r0, #8 + subs r4, r0, r7 + movs r0, #0xe8 + subs r0, r0, r4 + cmp r0, #0 + ble _08018A9E + movs r3, #0xe8 + mov sb, r3 + movs r0, #0xe8 + mov r8, r0 +_08018A88: + mov r1, sb + subs r0, r1, r4 + strh r0, [r5, #0x16] + adds r0, r5, #0 + bl DisplaySprite + adds r4, r4, r7 + mov r3, r8 + subs r0, r3, r4 + cmp r0, #0 + bgt _08018A88 +_08018A9E: + mov r5, sl + ldr r1, _08018AD8 @ =0x00000203 + adds r0, r6, r1 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, #0x36 + strh r0, [r5, #0x18] + movs r4, #0 +_08018AB2: + lsls r0, r4, #5 + strh r0, [r5, #0x16] + adds r0, r5, #0 + bl DisplaySprite + adds r4, #1 + cmp r4, #7 + bls _08018AB2 +_08018AC2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08018AD0: .4byte gMultiSioSend +_08018AD4: .4byte gUnknown_080BB48C +_08018AD8: .4byte 0x00000203 +_08018ADC: .4byte gLoadedSaveGame + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc b/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc new file mode 100644 index 0000000000..33d6e07499 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc @@ -0,0 +1,561 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08018F3C @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + ldr r0, _08018F40 @ =0x03000234 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, _08018F44 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _08018F7C + movs r3, #0 + ldr r0, _08018F48 @ =gMultiplayerConnections + ldrb r1, [r0] + movs r2, #1 + ands r1, r2 + mov ip, r0 + cmp r1, #0 + beq _08018F7C + movs r5, #1 + ldr r2, _08018F4C @ =gMultiplayerMissingHeartbeats +_08018F08: + ldr r1, _08018F50 @ =gMultiSioStatusFlags + adds r0, r5, #0 + lsls r0, r3 + ldr r4, [r1] + ands r4, r0 + cmp r4, #0 + bne _08018F64 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _08018F68 + movs r0, #0 + ldr r1, _08018F54 @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _08018F58 @ =gBackgroundsCopyQueueCursor + ldr r0, _08018F5C @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08018F60 @ =gBgSpritesCount + strb r4, [r0] + b _080190AC + .align 2, 0 +_08018F3C: .4byte gCurTask +_08018F40: .4byte 0x03000234 +_08018F44: .4byte gGameMode +_08018F48: .4byte gMultiplayerConnections +_08018F4C: .4byte gMultiplayerMissingHeartbeats +_08018F50: .4byte gMultiSioStatusFlags +_08018F54: .4byte 0x0000FFFF +_08018F58: .4byte gBackgroundsCopyQueueCursor +_08018F5C: .4byte gBackgroundsCopyQueueIndex +_08018F60: .4byte gBgSpritesCount +_08018F64: + movs r0, #0 + strb r0, [r2] +_08018F68: + adds r2, #1 + adds r3, #1 + cmp r3, #3 + bhi _08018F7C + mov r1, ip + ldrb r0, [r1] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + bne _08018F08 +_08018F7C: + ldr r6, _08018FAC @ =gMultiSioRecv + ldrh r2, [r6] + cmp r2, #0x34 + bne _08018FB8 + ldr r2, _08018FB0 @ =0x00000246 + adds r4, r7, r2 + ldrb r0, [r4] + ldrb r3, [r6, #2] + cmp r0, r3 + bne _08018F92 + b _080190D4 +_08018F92: + movs r0, #0x6c + bl m4aSongNumStart + ldr r0, _08018FB4 @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08018FA6 + b _080190E0 +_08018FA6: + ldrb r0, [r6, #2] + strb r0, [r4] + b _080190D4 + .align 2, 0 +_08018FAC: .4byte gMultiSioRecv +_08018FB0: .4byte 0x00000246 +_08018FB4: .4byte gMultiSioStatusFlags +_08018FB8: + cmp r2, #0x35 + bne _08019092 + movs r3, #1 + ldr r0, _08018FFC @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019004 + movs r5, #1 + ldr r1, _08019000 @ =gMultiplayerConnections + ldrb r0, [r1] + asrs r0, r0, #1 + ands r0, r5 + cmp r0, #0 + beq _08019008 + adds r2, r6, #0 + adds r2, #0x14 + movs r4, #1 +_08018FDE: + ldrh r0, [r2] + cmp r0, #0x34 + bhi _08018FE6 + movs r3, #0 +_08018FE6: + adds r2, #0x14 + adds r5, #1 + cmp r5, #3 + bgt _08019008 + ldrb r0, [r1] + asrs r0, r5 + ands r0, r4 + cmp r0, #0 + bne _08018FDE + b _08019008 + .align 2, 0 +_08018FFC: .4byte gMultiSioStatusFlags +_08019000: .4byte gMultiplayerConnections +_08019004: + ldr r4, _0801903C @ =gMultiSioSend + strh r2, [r4] +_08019008: + cmp r3, #0 + beq _080190D4 + ldr r0, _08019040 @ =0x00000246 + adds r4, r7, r0 + ldrb r0, [r4] + ldrb r1, [r6, #2] + cmp r0, r1 + beq _08019022 + movs r0, #0x6c + bl m4aSongNumStart + ldrb r0, [r6, #2] + strb r0, [r4] +_08019022: + movs r0, #0x6a + bl m4aSongNumStart + ldrb r0, [r4] + cmp r0, #0 + bne _08019060 + ldr r1, _08019044 @ =gGameMode + ldrb r0, [r1] + cmp r0, #2 + bne _08019048 + movs r0, #3 + b _0801904A + .align 2, 0 +_0801903C: .4byte gMultiSioSend +_08019040: .4byte 0x00000246 +_08019044: .4byte gGameMode +_08019048: + movs r0, #5 +_0801904A: + strb r0, [r1] + ldr r0, _08019058 @ =gCurTask + ldr r1, [r0] + ldr r0, _0801905C @ =Task_8019348 + str r0, [r1, #8] + b _0801933A + .align 2, 0 +_08019058: .4byte gCurTask +_0801905C: .4byte Task_8019348 +_08019060: + ldr r1, _08019084 @ =gGameMode + ldrb r0, [r1] + cmp r0, #2 + beq _0801906A + movs r0, #4 +_0801906A: + strb r0, [r1] + ldr r0, _08019088 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r0, _08019084 @ =gGameMode + ldrb r0, [r0] + cmp r0, #2 + bne _0801908C + movs r0, #0 + bl CreateCourseSelect + b _0801933A + .align 2, 0 +_08019084: .4byte gGameMode +_08019088: .4byte gCurTask +_0801908C: + bl sub_8062F90 + b _0801933A +_08019092: + cmp r2, #0x35 + bls _080190D4 + ldr r1, _080190BC @ =0x0000FFFF + movs r0, #0 + bl TasksDestroyInPriorityRange + ldr r1, _080190C0 @ =gBackgroundsCopyQueueCursor + ldr r0, _080190C4 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _080190C8 @ =gBgSpritesCount + movs r0, #0 + strb r0, [r1] +_080190AC: + ldr r1, _080190CC @ =gVramGraphicsCopyCursor + ldr r0, _080190D0 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _0801933A + .align 2, 0 +_080190BC: .4byte 0x0000FFFF +_080190C0: .4byte gBackgroundsCopyQueueCursor +_080190C4: .4byte gBackgroundsCopyQueueIndex +_080190C8: .4byte gBgSpritesCount +_080190CC: .4byte gVramGraphicsCopyCursor +_080190D0: .4byte gVramGraphicsCopyQueueIndex +_080190D4: + ldr r0, _08019108 @ =gMultiSioStatusFlags + ldr r0, [r0] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080191B8 +_080190E0: + movs r4, #1 + ldr r2, _0801910C @ =gMultiSioSend + mov r8, r2 + movs r0, #0x34 + strh r0, [r2] + ldr r3, _08019110 @ =0x00000247 + adds r0, r7, r3 + ldrb r0, [r0] + cmp r0, #0 + bne _0801912C + ldr r0, _08019114 @ =gInput + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801911C + ldr r1, _08019118 @ =0x00000246 + adds r0, r7, r1 + strb r4, [r0] + b _0801912C + .align 2, 0 +_08019108: .4byte gMultiSioStatusFlags +_0801910C: .4byte gMultiSioSend +_08019110: .4byte 0x00000247 +_08019114: .4byte gInput +_08019118: .4byte 0x00000246 +_0801911C: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0801912C + ldr r2, _080191A4 @ =0x00000246 + adds r1, r7, r2 + movs r0, #0 + strb r0, [r1] +_0801912C: + ldr r3, _080191A4 @ =0x00000246 + adds r0, r7, r3 + ldrb r0, [r0] + mov r1, r8 + strb r0, [r1, #2] + movs r5, #1 + ldr r1, _080191A8 @ =gMultiplayerConnections + ldrb r0, [r1] + asrs r0, r0, #1 + ands r0, r5 + movs r2, #0x80 + adds r2, r2, r7 + mov sb, r2 + movs r3, #0xb0 + adds r3, r3, r7 + mov sl, r3 + cmp r0, #0 + beq _08019172 + ldr r0, _080191AC @ =gMultiSioRecv + adds r2, r0, #0 + adds r2, #0x14 + movs r3, #1 +_08019158: + ldrh r0, [r2] + cmp r0, #0x33 + bhi _08019160 + movs r4, #0 +_08019160: + adds r2, #0x14 + adds r5, #1 + cmp r5, #3 + bgt _08019172 + ldrb r0, [r1] + asrs r0, r5 + ands r0, r3 + cmp r0, #0 + bne _08019158 +_08019172: + cmp r4, #0 + beq _08019182 + ldr r0, _080191B0 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801918C +_08019182: + ldr r4, _080191B4 @ =0x00000247 + adds r0, r7, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _080191DC +_0801918C: + movs r0, #0x35 + mov r1, r8 + strh r0, [r1] + ldr r2, _080191A4 @ =0x00000246 + adds r0, r7, r2 + ldrb r0, [r0] + strb r0, [r1, #2] + ldr r3, _080191B4 @ =0x00000247 + adds r1, r7, r3 + movs r0, #1 + strb r0, [r1] + b _080191DC + .align 2, 0 +_080191A4: .4byte 0x00000246 +_080191A8: .4byte gMultiplayerConnections +_080191AC: .4byte gMultiSioRecv +_080191B0: .4byte gPressedKeys +_080191B4: .4byte 0x00000247 +_080191B8: + ldr r4, _08019220 @ =gMultiSioSend + movs r0, #0x34 + strh r0, [r4] + movs r0, #0x80 + lsls r0, r0, #2 + adds r6, r7, r0 + adds r0, r6, #0 + bl UpdateSpriteAnimation + adds r0, r6, #0 + bl DisplaySprite + movs r1, #0x80 + adds r1, r1, r7 + mov sb, r1 + movs r2, #0xb0 + adds r2, r2, r7 + mov sl, r2 +_080191DC: + movs r3, #0xa0 + lsls r3, r3, #1 + adds r6, r7, r3 + ldr r4, _08019224 @ =0x00000246 + adds r3, r7, r4 + ldrb r0, [r3] + lsls r1, r0, #5 + adds r1, r1, r0 + lsls r1, r1, #2 + subs r1, r1, r0 + adds r1, #0x19 + strh r1, [r6, #0x16] + ldr r0, _08019228 @ =0x00000236 + adds r1, r7, r0 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #3 + cmp r0, r2 + ble _0801920C + strh r2, [r1] +_0801920C: + ldrb r0, [r3] + cmp r0, #0 + bne _0801922C + movs r1, #0x8e + lsls r1, r1, #2 + adds r0, r7, r1 + ldrh r1, [r0] + adds r1, #1 + b _08019236 + .align 2, 0 +_08019220: .4byte gMultiSioSend +_08019224: .4byte 0x00000246 +_08019228: .4byte 0x00000236 +_0801922C: + movs r4, #0x8e + lsls r4, r4, #2 + adds r0, r7, r4 + ldrh r1, [r0] + subs r1, #1 +_08019236: + ldr r3, _080192D8 @ =0x000003FF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0] + ldr r4, _080192DC @ =0x00000236 + adds r1, r7, r4 + movs r0, #0 + ldrsh r3, [r1, r0] + ldr r5, _080192E0 @ =gSineTable + adds r4, #2 + adds r2, r7, r4 + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r3, r0 + asrs r0, r0, #8 + ldr r3, _080192E4 @ =0x0000023A + adds r4, r7, r3 + strh r0, [r4] + movs r0, #0 + ldrsh r1, [r1, r0] + ldrh r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + muls r0, r1, r0 + asrs r0, r0, #8 + movs r1, #0x8f + lsls r1, r1, #2 + adds r3, r7, r1 + strh r0, [r3] + ldr r2, _080192E8 @ =0x0000023E + adds r1, r7, r2 + ldrh r0, [r4] + ldrh r4, [r1] + adds r0, r0, r4 + strh r0, [r1] + movs r0, #0x90 + lsls r0, r0, #2 + adds r2, r7, r0 + ldrh r0, [r3] + ldrh r3, [r2] + adds r0, r0, r3 + strh r0, [r2] + ldr r3, _080192EC @ =gBgScrollRegs + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r3, #4] + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r3, #6] + movs r4, #0x8c + lsls r4, r4, #2 + adds r2, r7, r4 + ldr r3, [r2] + adds r1, r3, #0 + adds r1, #0x80 + str r1, [r2] + movs r0, #0x88 + lsls r0, r0, #8 + cmp r1, r0 + ble _080192CC + ldr r1, _080192F0 @ =0xFFFF7880 + adds r0, r3, r1 + str r0, [r2] +_080192CC: + mov r6, sb + ldr r0, [r2] + rsbs r0, r0, #0 + lsls r0, r0, #8 + lsrs r4, r0, #0x10 + b _08019304 + .align 2, 0 +_080192D8: .4byte 0x000003FF +_080192DC: .4byte 0x00000236 +_080192E0: .4byte gSineTable +_080192E4: .4byte 0x0000023A +_080192E8: .4byte 0x0000023E +_080192EC: .4byte gBgScrollRegs +_080192F0: .4byte 0xFFFF7880 +_080192F4: + strh r4, [r6, #0x16] + movs r2, #0x88 + lsls r2, r2, #0x10 + adds r0, r1, r2 + lsrs r4, r0, #0x10 + adds r0, r6, #0 + bl DisplaySprite +_08019304: + lsls r1, r4, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0xef + ble _080192F4 + adds r4, r7, #0 + adds r4, #0xe0 + movs r5, #2 +_08019312: + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + adds r4, #0x30 + subs r5, #1 + cmp r5, #0 + bge _08019312 + mov r6, sl + movs r5, #0 +_0801932A: + lsls r0, r5, #5 + strh r0, [r6, #0x16] + adds r0, r6, #0 + bl DisplaySprite + adds r5, #1 + cmp r5, #7 + ble _0801932A +_0801933A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc b/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc new file mode 100644 index 0000000000..2a22538448 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc @@ -0,0 +1,636 @@ +.include "constants/constants.inc" + +.syntax unified + +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + movs r0, #1 + str r0, [sp, #0xc] + add r0, sp, #8 + movs r1, #0 + movs r2, #2 + bl memset + ldr r0, _08019758 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r1 + mov r8, r0 + ldr r2, _0801975C @ =0x03000247 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _08019782 + ldr r0, _08019760 @ =gRepeatedKeys + ldrh r2, [r0] + movs r0, #0x10 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0 + beq _08019768 + ldr r3, _08019764 @ =0x03000246 + adds r4, r1, r3 + ldrb r0, [r4] + cmp r0, #0 + bne _0801974E + movs r0, #0x6c + bl m4aSongNumStart +_0801974E: + mov r0, sp + ldrb r0, [r0, #0xc] + strb r0, [r4] + b _08019782 + .align 2, 0 +_08019758: .4byte gCurTask +_0801975C: .4byte 0x03000247 +_08019760: .4byte gRepeatedKeys +_08019764: .4byte 0x03000246 +_08019768: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08019782 + ldr r2, _080197D0 @ =0x03000246 + adds r4, r1, r2 + ldrb r0, [r4] + cmp r0, #1 + bne _08019780 + movs r0, #0x6c + bl m4aSongNumStart +_08019780: + strb r5, [r4] +_08019782: + ldr r0, _080197D4 @ =gGameMode + ldrb r0, [r0] + ldr r7, _080197D8 @ =gMultiplayerConnections + cmp r0, #1 + bls _0801980A + movs r3, #0 + ldrb r0, [r7] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0801980A + movs r5, #1 + ldr r2, _080197DC @ =gMultiplayerMissingHeartbeats +_0801979C: + ldr r1, _080197E0 @ =gMultiSioStatusFlags + adds r0, r5, #0 + lsls r0, r3 + ldr r4, [r1] + ands r4, r0 + cmp r4, #0 + bne _080197F4 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _080197F8 + movs r0, #0 + ldr r1, _080197E4 @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _080197E8 @ =gBackgroundsCopyQueueCursor + ldr r0, _080197EC @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080197F0 @ =gBgSpritesCount + strb r4, [r0] + b _08019B0E + .align 2, 0 +_080197D0: .4byte 0x03000246 +_080197D4: .4byte gGameMode +_080197D8: .4byte gMultiplayerConnections +_080197DC: .4byte gMultiplayerMissingHeartbeats +_080197E0: .4byte gMultiSioStatusFlags +_080197E4: .4byte 0x0000FFFF +_080197E8: .4byte gBackgroundsCopyQueueCursor +_080197EC: .4byte gBackgroundsCopyQueueIndex +_080197F0: .4byte gBgSpritesCount +_080197F4: + movs r0, #0 + strb r0, [r2] +_080197F8: + adds r2, #1 + adds r3, #1 + cmp r3, #3 + bhi _0801980A + ldrb r0, [r7] + asrs r0, r3 + ands r0, r5 + cmp r0, #0 + bne _0801979C +_0801980A: + movs r6, #0 + ldrb r0, [r7] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080198F2 + mov sb, r7 + add r7, sp, #8 + movs r3, #0xe0 + mov sl, r3 + movs r0, #0 + str r0, [sp, #0x10] +_08019822: + ldr r0, _08019880 @ =gMultiSioRecv + ldr r1, [sp, #0x10] + adds r5, r1, r0 + ldrh r1, [r5] + adds r0, r1, #0 + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _080198D0 + cmp r1, #0x41 + beq _080198AE + mov r4, r8 + add r4, sl + ldrb r0, [r5, #2] + lsls r0, r0, #7 + adds r0, #0x2b + strh r0, [r4, #0x16] + adds r0, r4, #0 + bl DisplaySprite + movs r4, #0xd0 + lsls r4, r4, #1 + add r4, r8 + ldr r0, _08019884 @ =gUnknown_080BB484 + adds r0, r6, r0 + ldrb r0, [r0] + strh r0, [r4, #0x18] + ldrb r1, [r5, #2] + movs r0, #0x5e + muls r0, r1, r0 + adds r0, #0x4b + strh r0, [r4, #0x16] + ldrb r0, [r5, #2] + cmp r0, #0 + bne _0801988C + ldr r0, [r4, #0x10] + ldr r1, _08019888 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r4, #0x10] + movs r1, #0x10 + lsls r1, r6 + mov r2, sb + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + b _080198A2 + .align 2, 0 +_08019880: .4byte gMultiSioRecv +_08019884: .4byte gUnknown_080BB484 +_08019888: .4byte 0xFFFFFBFF +_0801988C: + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r4, #0x10] + movs r0, #0x10 + lsls r0, r6 + mov r3, sb + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] +_080198A2: + adds r0, r4, #0 + bl DisplaySprite + movs r0, #0 + str r0, [sp, #0xc] + b _080198D4 +_080198AE: + mov r4, r8 + add r4, sl + adds r0, r4, #0 + bl DisplaySprite + movs r1, #0x16 + ldrsh r0, [r4, r1] + cmp r0, #0x2b + bne _080198C8 + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _080198D4 +_080198C8: + ldrb r0, [r7, #1] + adds r0, #1 + strb r0, [r7, #1] + b _080198D4 +_080198D0: + movs r2, #0 + str r2, [sp, #0xc] +_080198D4: + movs r3, #0x30 + add sl, r3 + ldr r0, [sp, #0x10] + adds r0, #0x14 + str r0, [sp, #0x10] + adds r6, #1 + cmp r6, #3 + bgt _080198F2 + mov r1, sb + ldrb r0, [r1] + asrs r0, r6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08019822 +_080198F2: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + ldr r2, [sp, #0xc] + cmp r2, #0 + beq _08019952 + add r0, sp, #8 + ldrb r0, [r0] + cmp r0, #0 + beq _0801990E + add r0, sp, #8 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0801991C +_0801990E: + ldr r1, _08019918 @ =0x00000247 + add r1, r8 + movs r0, #0 + strb r0, [r1] + b _08019952 + .align 2, 0 +_08019918: .4byte 0x00000247 +_0801991C: + ldr r0, _08019940 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r2, _08019944 @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldr r0, _08019948 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + bne _0801994C + movs r0, #0 + bl CreateCourseSelect + b _08019BEA + .align 2, 0 +_08019940: .4byte gCurTask +_08019944: .4byte gFlags +_08019948: .4byte gGameMode +_0801994C: + bl sub_8062F90 + b _08019BEA +_08019952: + movs r0, #8 + str r0, [sp] + movs r4, #0xf0 + str r4, [sp, #4] + movs r0, #0 + movs r1, #0x74 + movs r2, #0 + movs r3, #0x7c + bl sa2__sub_80064A8 + movs r0, #0x10 + str r0, [sp] + str r4, [sp, #4] + movs r0, #0 + movs r1, #0x7c + movs r2, #8 + movs r3, #0x74 + bl sa2__sub_80064A8 + ldr r2, _08019AC0 @ =0x040000D4 + ldr r0, _08019AC4 @ =gBgOffsetsHBlankPrimary + ldr r4, [r0] + ldr r0, _08019AC8 @ =gHBlankCopySize + ldrb r3, [r0] + lsls r0, r3, #4 + adds r1, r0, r4 + movs r7, #0x84 + lsls r7, r7, #0x18 + adds r5, r0, #0 + movs r6, #0x80 +_0801998E: + str r4, [r2] + str r1, [r2, #4] + lsls r0, r3, #4 + asrs r0, r0, #2 + orrs r0, r7 + str r0, [r2, #8] + ldr r0, [r2, #8] + adds r1, r1, r5 + subs r6, #0x10 + cmp r6, #0 + bge _0801998E + movs r2, #0x8e + lsls r2, r2, #2 + add r2, r8 + ldrh r0, [r2] + adds r0, #1 + ldr r3, _08019ACC @ =0x000003FF + adds r1, r3, #0 + ands r0, r1 + strh r0, [r2] + ldr r0, _08019AD0 @ =0x00000236 + add r0, r8 + movs r1, #0 + ldrsh r4, [r0, r1] + ldr r3, _08019AD4 @ =gSineTable + ldrh r1, [r2] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + adds r2, r4, #0 + muls r2, r0, r2 + lsls r2, r2, #8 + asrs r2, r2, #0x10 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + adds r1, r4, #0 + muls r1, r0, r1 + lsls r1, r1, #8 + asrs r1, r1, #0x10 + ldr r3, _08019AD8 @ =0x0000023E + add r3, r8 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + movs r4, #0x90 + lsls r4, r4, #2 + add r4, r8 + ldrh r0, [r4] + adds r0, r0, r1 + strh r0, [r4] + ldr r5, _08019ADC @ =0x00000242 + add r5, r8 + ldrh r0, [r5] + subs r0, r0, r2 + strh r0, [r5] + movs r2, #0x91 + lsls r2, r2, #2 + add r2, r8 + ldrh r0, [r2] + subs r0, r0, r1 + strh r0, [r2] + ldr r1, _08019AE0 @ =gBgScrollRegs + ldrh r0, [r3] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #4] + ldrh r0, [r4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #6] + ldrh r0, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #8] + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + strh r0, [r1, #0xa] + ldr r4, _08019AE4 @ =gPressedKeys + ldrh r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08019A54 + movs r0, #0x6b + bl m4aSongNumStart + ldr r1, _08019AE8 @ =0x00000247 + add r1, r8 + movs r0, #0 + strb r0, [r1] +_08019A54: + ldr r0, _08019AEC @ =gInput + ldrh r1, [r0] + movs r0, #0x30 + ands r0, r1 + cmp r0, #0 + bne _08019A90 + ldrh r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08019A90 + ldr r0, _08019AF0 @ =0x00000246 + add r0, r8 + ldrb r2, [r0] + cmp r2, #0 + bne _08019A80 + mov r1, sb + subs r1, #1 + add r0, sp, #8 + ldrb r0, [r0] + cmp r1, r0 + bne _08019A9A +_08019A80: + cmp r2, #1 + bne _08019A90 + mov r0, sb + subs r0, #1 + add r1, sp, #8 + ldrb r1, [r1, #1] + cmp r0, r1 + bne _08019A9A +_08019A90: + ldr r0, _08019AE8 @ =0x00000247 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0 + beq _08019B34 +_08019A9A: + ldr r4, _08019AE8 @ =0x00000247 + add r4, r8 + ldrb r0, [r4] + cmp r0, #0 + bne _08019AAA + movs r0, #0x6a + bl m4aSongNumStart +_08019AAA: + ldr r5, _08019AF4 @ =gMultiSioSend + movs r0, #0x41 + strh r0, [r5] + ldr r0, _08019AF0 @ =0x00000246 + add r0, r8 + ldrb r0, [r0] + strb r0, [r5, #2] + movs r0, #1 + strb r0, [r4] + b _08019B42 + .align 2, 0 +_08019AC0: .4byte 0x040000D4 +_08019AC4: .4byte gBgOffsetsHBlankPrimary +_08019AC8: .4byte gHBlankCopySize +_08019ACC: .4byte 0x000003FF +_08019AD0: .4byte 0x00000236 +_08019AD4: .4byte gSineTable +_08019AD8: .4byte 0x0000023E +_08019ADC: .4byte 0x00000242 +_08019AE0: .4byte gBgScrollRegs +_08019AE4: .4byte gPressedKeys +_08019AE8: .4byte 0x00000247 +_08019AEC: .4byte gInput +_08019AF0: .4byte 0x00000246 +_08019AF4: .4byte gMultiSioSend +_08019AF8: + ldr r1, _08019B1C @ =0x0000FFFF + movs r0, #0 + bl TasksDestroyInPriorityRange + ldr r1, _08019B20 @ =gBackgroundsCopyQueueCursor + ldr r0, _08019B24 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08019B28 @ =gBgSpritesCount + movs r0, #0 + strb r0, [r1] +_08019B0E: + ldr r1, _08019B2C @ =gVramGraphicsCopyCursor + ldr r0, _08019B30 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _08019BEA + .align 2, 0 +_08019B1C: .4byte 0x0000FFFF +_08019B20: .4byte gBackgroundsCopyQueueCursor +_08019B24: .4byte gBackgroundsCopyQueueIndex +_08019B28: .4byte gBgSpritesCount +_08019B2C: .4byte gVramGraphicsCopyCursor +_08019B30: .4byte gVramGraphicsCopyQueueIndex +_08019B34: + ldr r5, _08019BFC @ =gMultiSioSend + movs r0, #0x40 + strh r0, [r5] + ldr r0, _08019C00 @ =0x00000246 + add r0, r8 + ldrb r0, [r0] + strb r0, [r5, #2] +_08019B42: + movs r6, #0 + ldr r0, _08019C04 @ =gMultiplayerConnections + ldrb r1, [r0] + movs r2, #1 + ands r1, r2 + adds r7, r0, #0 + cmp r1, #0 + beq _08019B7E + movs r2, #0 +_08019B54: + ldr r0, _08019C08 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r0, r6 + beq _08019B6A + ldr r0, _08019C0C @ =gMultiSioRecv + adds r5, r2, r0 + ldrh r0, [r5] + cmp r0, #0x41 + bhi _08019AF8 +_08019B6A: + adds r2, #0x14 + adds r6, #1 + cmp r6, #3 + bgt _08019B7E + ldrb r0, [r7] + asrs r0, r6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08019B54 +_08019B7E: + mov r4, r8 + adds r4, #0x80 + movs r2, #0x8c + lsls r2, r2, #2 + add r2, r8 + ldr r3, [r2] + adds r1, r3, #0 + adds r1, #0x80 + str r1, [r2] + movs r0, #0xa4 + lsls r0, r0, #8 + cmp r1, r0 + ble _08019B9E + ldr r1, _08019C10 @ =0xFFFF5C80 + adds r0, r3, r1 + str r0, [r2] +_08019B9E: + ldr r0, [r2] + rsbs r0, r0, #0 + lsls r0, r0, #8 + lsrs r5, r0, #0x10 + lsls r1, r5, #0x10 + asrs r0, r1, #0x10 + mov r6, r8 + adds r6, #0xb0 + cmp r0, #0xef + bgt _08019BCA +_08019BB2: + strh r5, [r4, #0x16] + movs r2, #0xa4 + lsls r2, r2, #0x10 + adds r0, r1, r2 + lsrs r5, r0, #0x10 + adds r0, r4, #0 + bl DisplaySprite + lsls r1, r5, #0x10 + asrs r0, r1, #0x10 + cmp r0, #0xef + ble _08019BB2 +_08019BCA: + movs r4, #0xe8 + lsls r4, r4, #1 + add r4, r8 + adds r0, r4, #0 + bl DisplaySprite + adds r4, r6, #0 + movs r6, #0 +_08019BDA: + lsls r0, r6, #5 + strh r0, [r4, #0x16] + adds r0, r4, #0 + bl DisplaySprite + adds r6, #1 + cmp r6, #7 + ble _08019BDA +_08019BEA: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08019BFC: .4byte gMultiSioSend +_08019C00: .4byte 0x00000246 +_08019C04: .4byte gMultiplayerConnections +_08019C08: .4byte 0x04000128 +_08019C0C: .4byte gMultiSioRecv +_08019C10: .4byte 0xFFFF5C80 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc new file mode 100644 index 0000000000..95096aa10b --- /dev/null +++ b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc @@ -0,0 +1,641 @@ +.include "constants/gba_constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r0, _08041644 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 + str r0, [sp, #4] + ldr r0, _08041648 @ =0x03000030 + adds r5, r1, r0 + ldr r2, [sp, #4] + mov sl, r2 + ldr r3, _0804164C @ =0x03000330 + adds r0, r1, r3 + ldr r0, [r0] + str r0, [sp, #8] + ldr r4, _08041650 @ =0x03000334 + adds r1, r1, r4 + ldrh r1, [r1] + str r1, [sp, #0xc] + movs r0, #0 + str r0, [sp, #0x10] + mov r0, sl + bl UpdateSpriteAnimation + movs r1, #0 + str r1, [sp, #0x14] +_08041634: + ldrh r0, [r5, #0xc] + cmp r0, #0 + bne _08041654 + adds r5, #0x10 + ldr r2, [sp, #0x14] + adds r2, #1 + mov sb, r2 + b _08041AAE + .align 2, 0 +_08041644: .4byte gCurTask +_08041648: .4byte 0x03000030 +_0804164C: .4byte 0x03000330 +_08041650: .4byte 0x03000334 +_08041654: + movs r3, #8 + ldrsh r0, [r5, r3] + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + movs r4, #0xa + ldrsh r2, [r5, r4] + ldr r0, [r5, #4] + adds r0, r0, r2 + str r0, [r5, #4] + asrs r7, r1, #8 + asrs r0, r0, #8 + mov r8, r0 + ldr r1, _08041814 @ =gCamera + movs r2, #0 + ldrsh r0, [r1, r2] + subs r0, r7, r0 + str r0, [sp, #0x18] + movs r3, #2 + ldrsh r0, [r1, r3] + mov r4, r8 + subs r4, r4, r0 + str r4, [sp, #0x1c] + ldr r6, _08041818 @ =gPlayer + ldr r2, [r6, #0x64] + ldrh r0, [r5, #0xc] + mov ip, r0 + ldr r1, [sp, #0xc] + cmp ip, r1 + bgt _08041706 + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _080416A4 + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + bne _08041706 +_080416A4: + cmp r1, #0x28 + beq _08041706 + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08041706 + adds r4, r2, #0 + adds r4, #0x38 + adds r2, r7, #0 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _080416D4 + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _080416E0 + cmp r2, r1 + blt _08041706 +_080416D4: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041706 +_080416E0: + mov r2, r8 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _080416FA + cmp r8, r1 + bge _080417A4 + cmp r2, r1 + blt _08041706 +_080416FA: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + bge _080417A4 +_08041706: + ldr r0, _0804181C @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + beq _08041714 + b _08041838 +_08041714: + ldr r6, _08041820 @ =gPartner + ldr r2, [r6, #0x64] + adds r1, r5, #0 + adds r1, #0x10 + str r1, [sp, #0x20] + ldr r3, [sp, #0x14] + adds r3, #1 + mov sb, r3 + ldr r4, [sp, #0xc] + cmp ip, r4 + ble _0804172C + b _08041958 +_0804172C: + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _08041742 + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + beq _08041742 + b _08041838 +_08041742: + cmp r1, #0x28 + beq _08041838 + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08041838 + adds r4, r2, #0 + adds r4, #0x38 + adds r2, r7, #0 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08041772 + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _0804177E + cmp r2, r1 + blt _08041838 +_08041772: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041838 +_0804177E: + mov r2, r8 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08041798 + cmp r8, r1 + bge _080417A4 + cmp r2, r1 + blt _08041838 +_08041798: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041838 +_080417A4: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + mov r4, r8 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + ldr r1, _08041824 @ =gRingCount + ldrh r6, [r1] + adds r0, r6, #1 + strh r0, [r1] + ldr r0, _08041828 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + beq _080417F2 + ldrh r0, [r1] + movs r1, #0x64 + bl Div + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #0x64 + bl Div + cmp r4, r0 + beq _080417F2 + ldr r0, _0804182C @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _080417F2 + ldr r1, _08041830 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08041834 @ =gMusicManagerState + movs r0, #0x10 + strb r0, [r1, #3] +_080417F2: + ldr r0, _0804182C @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _08041806 + ldr r1, _08041824 @ =gRingCount + ldrh r0, [r1] + cmp r0, #0xff + bls _08041806 + movs r0, #0xff + strh r0, [r1] +_08041806: + movs r0, #0 + strh r0, [r5, #0xc] + adds r5, #0x10 + ldr r0, [sp, #0x14] + adds r0, #1 + mov sb, r0 + b _08041AAE + .align 2, 0 +_08041814: .4byte gCamera +_08041818: .4byte gPlayer +_0804181C: .4byte gNumSingleplayerCharacters +_08041820: .4byte gPartner +_08041824: .4byte gRingCount +_08041828: .4byte gCurrentLevel +_0804182C: .4byte gGameMode +_08041830: .4byte gNumLives +_08041834: .4byte gMusicManagerState +_08041838: + adds r1, r5, #0 + adds r1, #0x10 + str r1, [sp, #0x20] + ldr r2, [sp, #0x14] + adds r2, #1 + mov sb, r2 + ldr r3, [sp, #0xc] + cmp ip, r3 + ble _0804184C + b _08041958 +_0804184C: + movs r6, #0 +_0804184E: + ldr r0, _08041880 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r6, r0 + beq _0804194C + ldr r1, _08041884 @ =gMultiplayerPlayerTasks + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0804194C + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r4 + mov ip, r0 + ldr r0, _08041888 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _0804188C + mov r1, ip + ldrb r0, [r1, #0xa] + b _080418AE + .align 2, 0 +_08041880: .4byte 0x04000128 +_08041884: .4byte gMultiplayerPlayerTasks +_08041888: .4byte gGameMode +_0804188C: + mov r2, ip + ldrb r1, [r2, #0xa] + ldr r2, _08041940 @ =gMultiplayerCharacters + ldr r3, _08041944 @ =0x03000056 + adds r0, r4, r3 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldr r4, _08041948 @ =gPlayerCharacterIdleAnims + adds r0, r0, r4 + ldrb r0, [r0] + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 +_080418AE: + cmp r0, #0x13 + beq _080418B6 + cmp r0, #0x15 + bne _080418C4 +_080418B6: + mov r0, ip + adds r0, #0x54 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0804194C +_080418C4: + adds r3, r7, #0 + subs r3, #8 + mov r0, ip + adds r0, #0x50 + movs r2, #0 + ldrsh r1, [r0, r2] + subs r0, #0x24 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r1, r1, r2 + cmp r3, r1 + bgt _080418E8 + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _080418FA + cmp r3, r1 + blt _0804194C +_080418E8: + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r1, r0 + cmp r0, r3 + blt _0804194C +_080418FA: + mov r3, r8 + subs r3, #0x10 + mov r0, ip + adds r0, #0x52 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r1, ip + adds r1, #0x2d + movs r2, #0 + ldrsb r2, [r1, r2] + adds r1, r0, r2 + cmp r3, r1 + bgt _0804191C + cmp r8, r1 + bge _0804192E + cmp r3, r1 + blt _0804194C +_0804191C: + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r1, r0 + cmp r0, r3 + blt _0804194C +_0804192E: + lsls r0, r7, #0x10 + mov r2, r8 + lsls r1, r2, #0x10 + asrs r0, r0, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + movs r0, #0 + b _08041AAA + .align 2, 0 +_08041940: .4byte gMultiplayerCharacters +_08041944: .4byte 0x03000056 +_08041948: .4byte gPlayerCharacterIdleAnims +_0804194C: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bhi _08041958 + b _0804184E +_08041958: + movs r3, #0xa + ldrsh r0, [r5, r3] + cmp r0, #0 + bge _0804198C + mov r0, r8 + subs r0, #0x10 + movs r4, #0xe + ldrsh r2, [r5, r4] + ldr r1, _08041A2C @ =sa2__sub_801EC3C + str r1, [sp] + adds r1, r7, #0 + movs r3, #8 + rsbs r3, r3, #0 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _0804198C + lsls r1, r0, #8 + ldr r0, [r5, #4] + subs r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_0804198C: + ldr r1, [sp, #4] + ldr r2, _08041A30 @ =0x00000336 + adds r0, r1, r2 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080419CC + movs r3, #0xa + ldrsh r0, [r5, r3] + cmp r0, #0 + ble _080419CC + movs r4, #0xe + ldrsh r2, [r5, r4] + ldr r0, _08041A2C @ =sa2__sub_801EC3C + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + movs r3, #8 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _080419CC + lsls r1, r0, #8 + ldr r0, [r5, #4] + adds r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_080419CC: + ldrh r0, [r5, #0xa] + ldr r1, [sp, #8] + subs r0, r0, r1 + strh r0, [r5, #0xa] + ldr r0, [sp, #0x18] + adds r0, #7 + cmp r0, #0xfe + bhi _08041AA6 + movs r0, #8 + rsbs r0, r0, #0 + ldr r2, [sp, #0x1c] + cmp r2, r0 + ble _08041AA6 + cmp r2, #0xa7 + bgt _08041AA6 + ldrh r0, [r5, #0xc] + cmp r0, #0x1f + bhi _080419FC + ldr r0, _08041A34 @ =gStageTime + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08041AA6 +_080419FC: + mov r2, sl + adds r2, #0x23 + ldr r3, [sp, #0x10] + cmp r3, #0 + beq _08041A0E + adds r1, r2, #0 + ldrb r0, [r1] + cmp r0, #0xff + bne _08041A38 +_08041A0E: + movs r0, #0xff + strb r0, [r2] + mov r4, sp + ldrh r0, [r4, #0x18] + mov r4, sl + strh r0, [r4, #0x16] + mov r1, sp + ldrh r1, [r1, #0x1c] + strh r1, [r4, #0x18] + mov r0, sl + bl DisplaySprite + movs r2, #1 + str r2, [sp, #0x10] + b _08041AA6 + .align 2, 0 +_08041A2C: .4byte sa2__sub_801EC3C +_08041A30: .4byte 0x00000336 +_08041A34: .4byte gStageTime +_08041A38: + ldrb r0, [r1] + lsls r0, r0, #3 + ldr r1, _08041AC8 @ =gOamMallocBuffer + adds r4, r0, r1 + mov r3, sl + ldrh r0, [r3, #0x1a] + movs r2, #0xf8 + lsls r2, r2, #3 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #6 + bl OamMalloc + adds r3, r0, #0 + ldr r0, _08041ACC @ =iwram_end + ldr r0, [r0] + cmp r0, r3 + beq _08041AA6 + ldr r1, _08041AD0 @ =0x040000D4 + str r4, [r1] + str r3, [r1, #4] + ldr r0, _08041AD4 @ =0x80000003 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldrh r2, [r3] + movs r4, #0xff + lsls r4, r4, #8 + adds r0, r4, #0 + ands r2, r0 + strh r2, [r3] + mov r1, sl + ldr r0, [r1, #0xc] + ldrh r0, [r0, #0xa] + ldr r4, [sp, #0x1c] + subs r0, r4, r0 + movs r1, #0xff + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3] + ldrh r2, [r3, #2] + movs r1, #0xfe + lsls r1, r1, #8 + adds r0, r1, #0 + ands r2, r0 + strh r2, [r3, #2] + mov r4, sl + ldr r0, [r4, #0xc] + ldrh r0, [r0, #8] + ldr r1, [sp, #0x18] + subs r0, r1, r0 + ldr r4, _08041AD8 @ =0x000001FF + adds r1, r4, #0 + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3, #2] +_08041AA6: + ldrh r0, [r5, #0xc] + subs r0, #1 +_08041AAA: + strh r0, [r5, #0xc] + ldr r5, [sp, #0x20] +_08041AAE: + mov r0, sb + str r0, [sp, #0x14] + cmp r0, #0x2f + bgt _08041AB8 + b _08041634 +_08041AB8: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08041AC8: .4byte gOamMallocBuffer +_08041ACC: .4byte iwram_end +_08041AD0: .4byte 0x040000D4 +_08041AD4: .4byte 0x80000003 +_08041AD8: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc new file mode 100644 index 0000000000..89d15e24b7 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc @@ -0,0 +1,642 @@ +.include "constants/gba_constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + ldr r0, _08041B2C @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 + str r0, [sp, #4] + ldr r0, _08041B30 @ =0x03000030 + adds r5, r1, r0 + ldr r2, [sp, #4] + str r2, [sp, #8] + ldr r3, _08041B34 @ =0x03000330 + adds r0, r1, r3 + ldr r0, [r0] + str r0, [sp, #0xc] + ldr r4, _08041B38 @ =0x03000334 + adds r1, r1, r4 + ldrh r1, [r1] + str r1, [sp, #0x10] + movs r0, #0 + str r0, [sp, #0x14] + adds r0, r2, #0 + bl UpdateSpriteAnimation + movs r1, #0 + str r1, [sp, #0x18] +_08041B1C: + ldrh r0, [r5, #0xc] + cmp r0, #0 + bne _08041B3C + adds r5, #0x10 + ldr r2, [sp, #0x18] + adds r2, #1 + mov sl, r2 + b _08041F9A + .align 2, 0 +_08041B2C: .4byte gCurTask +_08041B30: .4byte 0x03000030 +_08041B34: .4byte 0x03000330 +_08041B38: .4byte 0x03000334 +_08041B3C: + movs r3, #8 + ldrsh r0, [r5, r3] + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + movs r4, #0xa + ldrsh r2, [r5, r4] + ldr r0, [r5, #4] + adds r0, r0, r2 + str r0, [r5, #4] + asrs r1, r1, #8 + mov sb, r1 + mov r8, sb + asrs r7, r0, #8 + ldr r1, _08041D00 @ =gCamera + movs r2, #0 + ldrsh r0, [r1, r2] + mov r3, sb + subs r3, r3, r0 + str r3, [sp, #0x1c] + movs r4, #2 + ldrsh r0, [r1, r4] + subs r0, r7, r0 + str r0, [sp, #0x20] + ldr r6, _08041D04 @ =gPlayer + ldr r2, [r6, #0x64] + ldrh r0, [r5, #0xc] + mov ip, r0 + ldr r1, [sp, #0x10] + cmp ip, r1 + bgt _08041BF0 + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _08041B8E + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + bne _08041BF0 +_08041B8E: + cmp r1, #0x28 + beq _08041BF0 + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08041BF0 + adds r4, r2, #0 + adds r4, #0x38 + mov r2, sb + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08041BBE + mov r0, sb + adds r0, #8 + cmp r0, r1 + bge _08041BCA + cmp r2, r1 + blt _08041BF0 +_08041BBE: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041BF0 +_08041BCA: + adds r2, r7, #0 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08041BE4 + cmp r7, r1 + bge _08041C8E + cmp r2, r1 + blt _08041BF0 +_08041BE4: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + bge _08041C8E +_08041BF0: + ldr r0, _08041D08 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + beq _08041BFE + b _08041D24 +_08041BFE: + ldr r6, _08041D0C @ =gPartner + ldr r2, [r6, #0x64] + adds r1, r5, #0 + adds r1, #0x10 + str r1, [sp, #0x24] + ldr r3, [sp, #0x18] + adds r3, #1 + mov sl, r3 + ldr r4, [sp, #0x10] + cmp ip, r4 + ble _08041C16 + b _08041E44 +_08041C16: + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _08041C2C + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + beq _08041C2C + b _08041D24 +_08041C2C: + cmp r1, #0x28 + beq _08041D24 + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08041D24 + adds r4, r2, #0 + adds r4, #0x38 + mov r2, r8 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08041C5C + mov r0, r8 + adds r0, #8 + cmp r0, r1 + bge _08041C68 + cmp r2, r1 + blt _08041D24 +_08041C5C: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041D24 +_08041C68: + adds r2, r7, #0 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08041C82 + cmp r7, r1 + bge _08041C8E + cmp r2, r1 + blt _08041D24 +_08041C82: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041D24 +_08041C8E: + mov r4, r8 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + ldr r1, _08041D10 @ =gRingCount + ldrh r6, [r1] + adds r0, r6, #1 + strh r0, [r1] + ldr r0, _08041D14 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + beq _08041CDC + ldrh r0, [r1] + movs r1, #0x64 + bl Div + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #0x64 + bl Div + cmp r4, r0 + beq _08041CDC + ldr r0, _08041D18 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08041CDC + ldr r1, _08041D1C @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08041D20 @ =gMusicManagerState + movs r0, #0x10 + strb r0, [r1, #3] +_08041CDC: + ldr r0, _08041D18 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _08041CF0 + ldr r1, _08041D10 @ =gRingCount + ldrh r0, [r1] + cmp r0, #0xff + bls _08041CF0 + movs r0, #0xff + strh r0, [r1] +_08041CF0: + movs r0, #0 + strh r0, [r5, #0xc] + adds r5, #0x10 + ldr r0, [sp, #0x18] + adds r0, #1 + mov sl, r0 + b _08041F9A + .align 2, 0 +_08041D00: .4byte gCamera +_08041D04: .4byte gPlayer +_08041D08: .4byte gNumSingleplayerCharacters +_08041D0C: .4byte gPartner +_08041D10: .4byte gRingCount +_08041D14: .4byte gCurrentLevel +_08041D18: .4byte gGameMode +_08041D1C: .4byte gNumLives +_08041D20: .4byte gMusicManagerState +_08041D24: + adds r1, r5, #0 + adds r1, #0x10 + str r1, [sp, #0x24] + ldr r2, [sp, #0x18] + adds r2, #1 + mov sl, r2 + ldr r3, [sp, #0x10] + cmp ip, r3 + ble _08041D38 + b _08041E44 +_08041D38: + movs r6, #0 +_08041D3A: + ldr r0, _08041D6C @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r6, r0 + beq _08041E38 + ldr r1, _08041D70 @ =gMultiplayerPlayerTasks + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _08041E38 + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r0, r4 + mov ip, r0 + ldr r0, _08041D74 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _08041D78 + mov r1, ip + ldrb r0, [r1, #0xa] + b _08041D9A + .align 2, 0 +_08041D6C: .4byte 0x04000128 +_08041D70: .4byte gMultiplayerPlayerTasks +_08041D74: .4byte gGameMode +_08041D78: + mov r2, ip + ldrb r1, [r2, #0xa] + ldr r2, _08041E2C @ =gMultiplayerCharacters + ldr r3, _08041E30 @ =0x03000056 + adds r0, r4, r3 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + ldr r4, _08041E34 @ =gPlayerCharacterIdleAnims + adds r0, r0, r4 + ldrb r0, [r0] + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r0, r1, #0x18 +_08041D9A: + cmp r0, #0x13 + beq _08041DA2 + cmp r0, #0x15 + bne _08041DB0 +_08041DA2: + mov r0, ip + adds r0, #0x54 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08041E38 +_08041DB0: + mov r3, r8 + subs r3, #8 + mov r0, ip + adds r0, #0x50 + movs r2, #0 + ldrsh r1, [r0, r2] + subs r0, #0x24 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r1, r1, r2 + cmp r3, r1 + bgt _08041DD4 + mov r0, r8 + adds r0, #8 + cmp r0, r1 + bge _08041DE6 + cmp r3, r1 + blt _08041E38 +_08041DD4: + mov r0, ip + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r1, r0 + cmp r0, r3 + blt _08041E38 +_08041DE6: + adds r3, r7, #0 + subs r3, #0x10 + mov r0, ip + adds r0, #0x52 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r1, ip + adds r1, #0x2d + movs r2, #0 + ldrsb r2, [r1, r2] + adds r1, r0, r2 + cmp r3, r1 + bgt _08041E08 + cmp r7, r1 + bge _08041E1A + cmp r3, r1 + blt _08041E38 +_08041E08: + mov r0, ip + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r2 + adds r0, r1, r0 + cmp r0, r3 + blt _08041E38 +_08041E1A: + mov r1, r8 + lsls r0, r1, #0x10 + lsls r1, r7, #0x10 + asrs r0, r0, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + movs r0, #0 + b _08041F96 + .align 2, 0 +_08041E2C: .4byte gMultiplayerCharacters +_08041E30: .4byte 0x03000056 +_08041E34: .4byte gPlayerCharacterIdleAnims +_08041E38: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bhi _08041E44 + b _08041D3A +_08041E44: + movs r2, #0xa + ldrsh r0, [r5, r2] + cmp r0, #0 + ble _08041E74 + movs r3, #0xe + ldrsh r2, [r5, r3] + ldr r0, _08041F18 @ =sa2__sub_801EC3C + str r0, [sp] + adds r0, r7, #0 + mov r1, sb + movs r3, #8 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _08041E74 + lsls r1, r0, #8 + ldr r0, [r5, #4] + adds r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_08041E74: + ldr r4, [sp, #4] + ldr r1, _08041F1C @ =0x00000336 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08041EB8 + movs r2, #0xa + ldrsh r0, [r5, r2] + cmp r0, #0 + bge _08041EB8 + adds r0, r7, #0 + subs r0, #0x10 + movs r3, #0xe + ldrsh r2, [r5, r3] + ldr r1, _08041F18 @ =sa2__sub_801EC3C + str r1, [sp] + mov r1, sb + movs r3, #8 + rsbs r3, r3, #0 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _08041EB8 + lsls r1, r0, #8 + ldr r0, [r5, #4] + subs r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_08041EB8: + ldrh r0, [r5, #0xa] + ldr r4, [sp, #0xc] + adds r0, r0, r4 + strh r0, [r5, #0xa] + ldr r0, [sp, #0x1c] + adds r0, #7 + cmp r0, #0xfe + bhi _08041F92 + movs r0, #8 + rsbs r0, r0, #0 + ldr r1, [sp, #0x20] + cmp r1, r0 + ble _08041F92 + cmp r1, #0xa7 + bgt _08041F92 + ldrh r0, [r5, #0xc] + cmp r0, #0x1f + bhi _08041EE8 + ldr r0, _08041F20 @ =gStageTime + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08041F92 +_08041EE8: + ldr r2, [sp, #8] + adds r2, #0x23 + ldr r3, [sp, #0x14] + cmp r3, #0 + beq _08041EFA + adds r1, r2, #0 + ldrb r0, [r1] + cmp r0, #0xff + bne _08041F24 +_08041EFA: + movs r0, #0xff + strb r0, [r2] + mov r4, sp + ldrh r0, [r4, #0x1c] + ldr r4, [sp, #8] + strh r0, [r4, #0x16] + mov r1, sp + ldrh r1, [r1, #0x20] + strh r1, [r4, #0x18] + ldr r0, [sp, #8] + bl DisplaySprite + movs r2, #1 + str r2, [sp, #0x14] + b _08041F92 + .align 2, 0 +_08041F18: .4byte sa2__sub_801EC3C +_08041F1C: .4byte 0x00000336 +_08041F20: .4byte gStageTime +_08041F24: + ldrb r0, [r1] + lsls r0, r0, #3 + ldr r1, _08041FB4 @ =gOamMallocBuffer + adds r4, r0, r1 + ldr r3, [sp, #8] + ldrh r0, [r3, #0x1a] + movs r2, #0xf8 + lsls r2, r2, #3 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #6 + bl OamMalloc + adds r3, r0, #0 + ldr r0, _08041FB8 @ =iwram_end + ldr r0, [r0] + cmp r0, r3 + beq _08041F92 + ldr r1, _08041FBC @ =0x040000D4 + str r4, [r1] + str r3, [r1, #4] + ldr r0, _08041FC0 @ =0x80000003 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldrh r2, [r3] + movs r4, #0xff + lsls r4, r4, #8 + adds r0, r4, #0 + ands r2, r0 + strh r2, [r3] + ldr r1, [sp, #8] + ldr r0, [r1, #0xc] + ldrh r0, [r0, #0xa] + ldr r4, [sp, #0x20] + subs r0, r4, r0 + movs r1, #0xff + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3] + ldrh r2, [r3, #2] + movs r1, #0xfe + lsls r1, r1, #8 + adds r0, r1, #0 + ands r2, r0 + strh r2, [r3, #2] + ldr r4, [sp, #8] + ldr r0, [r4, #0xc] + ldrh r0, [r0, #8] + ldr r1, [sp, #0x1c] + subs r0, r1, r0 + ldr r4, _08041FC4 @ =0x000001FF + adds r1, r4, #0 + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3, #2] +_08041F92: + ldrh r0, [r5, #0xc] + subs r0, #1 +_08041F96: + strh r0, [r5, #0xc] + ldr r5, [sp, #0x24] +_08041F9A: + mov r0, sl + str r0, [sp, #0x18] + cmp r0, #0x2f + bgt _08041FA4 + b _08041B1C +_08041FA4: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08041FB4: .4byte gOamMallocBuffer +_08041FB8: .4byte iwram_end +_08041FBC: .4byte 0x040000D4 +_08041FC0: .4byte 0x80000003 +_08041FC4: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc new file mode 100644 index 0000000000..298263658a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc @@ -0,0 +1,533 @@ + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _08040EC0 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 + str r0, [sp, #4] + ldr r0, _08040EC4 @ =0x03000030 + adds r5, r1, r0 + ldr r2, [sp, #4] + mov sb, r2 + ldr r3, _08040EC8 @ =0x03000330 + adds r0, r1, r3 + ldr r0, [r0] + str r0, [sp, #8] + ldr r4, _08040ECC @ =0x03000334 + adds r1, r1, r4 + ldrh r1, [r1] + str r1, [sp, #0xc] + movs r0, #0 + str r0, [sp, #0x10] + mov r0, sb + bl UpdateSpriteAnimation + movs r1, #0x2f + str r1, [sp, #0x14] +_08040D9C: + ldrh r0, [r5, #0xc] + cmp r0, #0 + bne _08040DA4 + b _08041154 +_08040DA4: + movs r2, #8 + ldrsh r0, [r5, r2] + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + movs r3, #0xa + ldrsh r2, [r5, r3] + ldr r0, [r5, #4] + adds r0, r0, r2 + str r0, [r5, #4] + asrs r7, r1, #8 + asrs r0, r0, #8 + mov r8, r0 + ldr r4, _08040ED0 @ =gCamera + movs r1, #0 + ldrsh r0, [r4, r1] + subs r0, r7, r0 + str r0, [sp, #0x18] + movs r2, #2 + ldrsh r0, [r4, r2] + mov r3, r8 + subs r3, r3, r0 + mov sl, r3 + ldr r6, _08040ED4 @ =gPlayer + ldr r2, [r6, #0x64] + ldrh r4, [r5, #0xc] + mov ip, r4 + ldr r0, [sp, #0xc] + cmp ip, r0 + ble _08040DE2 + b _08040EEC +_08040DE2: + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _08040DF8 + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + beq _08040DF8 + b _08040EEC +_08040DF8: + cmp r1, #0x28 + beq _08040EEC + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08040EEC + adds r4, r2, #0 + adds r4, #0x38 + adds r2, r7, #0 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08040E28 + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _08040E34 + cmp r2, r1 + blt _08040EEC +_08040E28: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08040EEC +_08040E34: + mov r2, r8 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08040E4E + cmp r8, r1 + bge _08040E5A + cmp r2, r1 + blt _08040EEC +_08040E4E: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08040EEC +_08040E5A: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + mov r4, r8 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + ldr r1, _08040ED8 @ =gRingCount + ldrh r6, [r1] + adds r0, r6, #1 + strh r0, [r1] + ldr r0, _08040EDC @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + beq _08040EA8 + ldrh r0, [r1] + movs r1, #0x64 + bl Div + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #0x64 + bl Div + cmp r4, r0 + beq _08040EA8 + ldr r0, _08040EE0 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08040EA8 + ldr r1, _08040EE4 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08040EE8 @ =gMusicManagerState + movs r0, #0x10 + strb r0, [r1, #3] +_08040EA8: + ldr r0, _08040EE0 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _08040EBC + ldr r1, _08040ED8 @ =gRingCount + ldrh r0, [r1] + cmp r0, #0xff + bls _08040EBC + movs r0, #0xff + strh r0, [r1] +_08040EBC: + movs r0, #0 + b _08041152 + .align 2, 0 +_08040EC0: .4byte gCurTask +_08040EC4: .4byte 0x03000030 +_08040EC8: .4byte 0x03000330 +_08040ECC: .4byte 0x03000334 +_08040ED0: .4byte gCamera +_08040ED4: .4byte gPlayer +_08040ED8: .4byte gRingCount +_08040EDC: .4byte gCurrentLevel +_08040EE0: .4byte gGameMode +_08040EE4: .4byte gNumLives +_08040EE8: .4byte gMusicManagerState +_08040EEC: + ldr r0, _08040FE4 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + beq _08040EFA + b _08041000 +_08040EFA: + ldr r6, _08040FE8 @ =gPartner + ldr r2, [r6, #0x64] + ldr r0, [sp, #0xc] + cmp ip, r0 + ble _08040F06 + b _08041000 +_08040F06: + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _08040F1A + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + bne _08041000 +_08040F1A: + cmp r1, #0x28 + beq _08041000 + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08041000 + adds r4, r2, #0 + adds r4, #0x38 + adds r2, r7, #0 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08040F4A + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _08040F56 + cmp r2, r1 + blt _08041000 +_08040F4A: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041000 +_08040F56: + mov r2, r8 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _08040F70 + cmp r8, r1 + bge _08040F7C + cmp r2, r1 + blt _08041000 +_08040F70: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041000 +_08040F7C: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + mov r4, r8 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + ldr r1, _08040FEC @ =gRingCount + ldrh r6, [r1] + adds r0, r6, #1 + strh r0, [r1] + ldr r0, _08040FF0 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + beq _08040FCA + ldrh r0, [r1] + movs r1, #0x64 + bl Div + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #0x64 + bl Div + cmp r4, r0 + beq _08040FCA + ldr r0, _08040FF4 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08040FCA + ldr r1, _08040FF8 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08040FFC @ =gMusicManagerState + movs r0, #0x10 + strb r0, [r1, #3] +_08040FCA: + ldr r0, _08040FF4 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _08040FDE + ldr r1, _08040FEC @ =gRingCount + ldrh r0, [r1] + cmp r0, #0xff + bls _08040FDE + movs r0, #0xff + strh r0, [r1] +_08040FDE: + movs r0, #0 + b _08041152 + .align 2, 0 +_08040FE4: .4byte gNumSingleplayerCharacters +_08040FE8: .4byte gPartner +_08040FEC: .4byte gRingCount +_08040FF0: .4byte gCurrentLevel +_08040FF4: .4byte gGameMode +_08040FF8: .4byte gNumLives +_08040FFC: .4byte gMusicManagerState +_08041000: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _08041034 + mov r0, r8 + subs r0, #0x10 + movs r3, #0xe + ldrsh r2, [r5, r3] + ldr r1, _080410D4 @ =sa2__sub_801EC3C + str r1, [sp] + adds r1, r7, #0 + movs r3, #8 + rsbs r3, r3, #0 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _08041034 + lsls r1, r0, #8 + ldr r0, [r5, #4] + subs r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_08041034: + ldr r4, [sp, #4] + ldr r1, _080410D8 @ =0x00000336 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08041074 + movs r2, #0xa + ldrsh r0, [r5, r2] + cmp r0, #0 + ble _08041074 + movs r3, #0xe + ldrsh r2, [r5, r3] + ldr r0, _080410D4 @ =sa2__sub_801EC3C + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + movs r3, #8 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _08041074 + lsls r1, r0, #8 + ldr r0, [r5, #4] + adds r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_08041074: + ldrh r0, [r5, #0xa] + ldr r4, [sp, #8] + subs r0, r0, r4 + strh r0, [r5, #0xa] + ldr r0, [sp, #0x18] + adds r0, #7 + cmp r0, #0xfe + bhi _0804114E + movs r0, #8 + rsbs r0, r0, #0 + cmp sl, r0 + ble _0804114E + mov r0, sl + cmp r0, #0xa7 + bgt _0804114E + ldrh r0, [r5, #0xc] + cmp r0, #0x1f + bhi _080410A4 + ldr r0, _080410DC @ =gStageTime + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0804114E +_080410A4: + mov r2, sb + adds r2, #0x23 + ldr r1, [sp, #0x10] + cmp r1, #0 + beq _080410B6 + adds r1, r2, #0 + ldrb r0, [r1] + cmp r0, #0xff + bne _080410E0 +_080410B6: + movs r0, #0xff + strb r0, [r2] + mov r2, sp + ldrh r3, [r2, #0x18] + mov r2, sb + strh r3, [r2, #0x16] + mov r4, sl + strh r4, [r2, #0x18] + mov r0, sb + bl DisplaySprite + movs r0, #1 + str r0, [sp, #0x10] + b _0804114E + .align 2, 0 +_080410D4: .4byte sa2__sub_801EC3C +_080410D8: .4byte 0x00000336 +_080410DC: .4byte gStageTime +_080410E0: + ldrb r0, [r1] + lsls r0, r0, #3 + ldr r1, _08041174 @ =gOamMallocBuffer + adds r4, r0, r1 + mov r1, sb + ldrh r0, [r1, #0x1a] + movs r2, #0xf8 + lsls r2, r2, #3 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #6 + bl OamMalloc + adds r3, r0, #0 + ldr r0, _08041178 @ =iwram_end + ldr r0, [r0] + cmp r0, r3 + beq _0804114E + ldr r1, _0804117C @ =0x040000D4 + str r4, [r1] + str r3, [r1, #4] + ldr r0, _08041180 @ =0x80000003 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldrh r2, [r3] + movs r4, #0xff + lsls r4, r4, #8 + adds r0, r4, #0 + ands r2, r0 + strh r2, [r3] + mov r1, sb + ldr r0, [r1, #0xc] + ldrh r0, [r0, #0xa] + mov r4, sl + subs r0, r4, r0 + movs r1, #0xff + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3] + ldrh r2, [r3, #2] + movs r1, #0xfe + lsls r1, r1, #8 + adds r0, r1, #0 + ands r2, r0 + strh r2, [r3, #2] + mov r4, sb + ldr r0, [r4, #0xc] + ldrh r0, [r0, #8] + ldr r1, [sp, #0x18] + subs r0, r1, r0 + ldr r4, _08041184 @ =0x000001FF + adds r1, r4, #0 + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3, #2] +_0804114E: + ldrh r0, [r5, #0xc] + subs r0, #1 +_08041152: + strh r0, [r5, #0xc] +_08041154: + adds r5, #0x10 + ldr r0, [sp, #0x14] + subs r0, #1 + str r0, [sp, #0x14] + cmp r0, #0 + blt _08041162 + b _08040D9C +_08041162: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08041174: .4byte gOamMallocBuffer +_08041178: .4byte iwram_end +_0804117C: .4byte 0x040000D4 +_08041180: .4byte 0x80000003 +_08041184: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc new file mode 100644 index 0000000000..cf883fc906 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc @@ -0,0 +1,566 @@ + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r0, _08041324 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 + str r0, [sp, #4] + ldr r0, _08041328 @ =0x03000030 + adds r5, r1, r0 + ldr r2, [sp, #4] + mov sl, r2 + ldr r3, _0804132C @ =0x03000330 + adds r0, r1, r3 + ldr r0, [r0] + str r0, [sp, #8] + ldr r4, _08041330 @ =0x03000334 + adds r1, r1, r4 + ldrh r1, [r1] + str r1, [sp, #0xc] + movs r0, #0 + str r0, [sp, #0x10] + mov r0, sl + bl UpdateSpriteAnimation + movs r1, #0x2f + str r1, [sp, #0x14] +_080411C8: + ldrh r0, [r5, #0xc] + cmp r0, #0 + bne _080411D0 + b _080415C0 +_080411D0: + movs r2, #8 + ldrsh r0, [r5, r2] + ldr r1, [r5] + adds r1, r1, r0 + str r1, [r5] + movs r3, #0xa + ldrsh r2, [r5, r3] + ldr r0, [r5, #4] + adds r0, r0, r2 + str r0, [r5, #4] + asrs r1, r1, #8 + mov sb, r1 + mov r7, sb + asrs r0, r0, #8 + mov r8, r0 + ldr r0, _08041334 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + bne _08041220 + ldr r0, _08041338 @ =gStageTime + ldr r0, [r0] + lsls r0, r0, #3 + mov r4, sb + adds r1, r4, r0 + adds r2, r1, #0 + subs r2, #0x48 + ldr r0, _0804133C @ =0x00000A7F + cmp r2, r0 + ble _0804121E + adds r1, r2, #0 + adds r0, r1, #0 + movs r1, #0xa8 + lsls r1, r1, #4 + bl Mod + adds r1, r0, #0 + adds r1, #0x48 +_0804121E: + mov sb, r1 +_08041220: + ldr r1, _08041340 @ =gCamera + movs r2, #0 + ldrsh r0, [r1, r2] + subs r0, r7, r0 + str r0, [sp, #0x18] + movs r3, #2 + ldrsh r0, [r1, r3] + mov r4, r8 + subs r4, r4, r0 + str r4, [sp, #0x1c] + ldr r6, _08041344 @ =gPlayer + ldr r2, [r6, #0x64] + ldrh r0, [r5, #0xc] + mov ip, r0 + ldr r1, [sp, #0xc] + cmp ip, r1 + ble _08041244 + b _08041358 +_08041244: + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _0804125A + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + beq _0804125A + b _08041358 +_0804125A: + cmp r1, #0x28 + bne _08041260 + b _08041358 +_08041260: + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08041358 + adds r4, r2, #0 + adds r4, #0x38 + adds r2, r7, #0 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _0804128C + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _08041298 + cmp r2, r1 + blt _08041358 +_0804128C: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041358 +_08041298: + mov r2, r8 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _080412B2 + cmp r8, r1 + bge _080412BE + cmp r2, r1 + blt _08041358 +_080412B2: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _08041358 +_080412BE: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + mov r4, r8 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + ldr r1, _08041348 @ =gRingCount + ldrh r6, [r1] + adds r0, r6, #1 + strh r0, [r1] + ldr r0, _08041334 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + beq _0804130C + ldrh r0, [r1] + movs r1, #0x64 + bl Div + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #0x64 + bl Div + cmp r4, r0 + beq _0804130C + ldr r0, _0804134C @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _0804130C + ldr r1, _08041350 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08041354 @ =gMusicManagerState + movs r0, #0x10 + strb r0, [r1, #3] +_0804130C: + ldr r0, _0804134C @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _08041320 + ldr r1, _08041348 @ =gRingCount + ldrh r0, [r1] + cmp r0, #0xff + bls _08041320 + movs r0, #0xff + strh r0, [r1] +_08041320: + movs r0, #0 + b _080415BE + .align 2, 0 +_08041324: .4byte gCurTask +_08041328: .4byte 0x03000030 +_0804132C: .4byte 0x03000330 +_08041330: .4byte 0x03000334 +_08041334: .4byte gCurrentLevel +_08041338: .4byte gStageTime +_0804133C: .4byte 0x00000A7F +_08041340: .4byte gCamera +_08041344: .4byte gPlayer +_08041348: .4byte gRingCount +_0804134C: .4byte gGameMode +_08041350: .4byte gNumLives +_08041354: .4byte gMusicManagerState +_08041358: + ldr r0, _08041450 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + beq _08041366 + b _0804146C +_08041366: + ldr r6, _08041454 @ =gPartner + ldr r2, [r6, #0x64] + ldr r0, [sp, #0xc] + cmp ip, r0 + ble _08041372 + b _0804146C +_08041372: + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0xf + bne _08041386 + movs r3, #0x1c + ldrsh r0, [r6, r3] + cmp r0, #0 + bne _0804146C +_08041386: + cmp r1, #0x28 + beq _0804146C + ldr r0, [r6, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804146C + adds r4, r2, #0 + adds r4, #0x38 + adds r2, r7, #0 + subs r2, #8 + ldr r0, [r6] + asrs r0, r0, #8 + movs r3, #0 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _080413B6 + adds r0, r7, #0 + adds r0, #8 + cmp r0, r1 + bge _080413C2 + cmp r2, r1 + blt _0804146C +_080413B6: + movs r0, #2 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _0804146C +_080413C2: + mov r2, r8 + subs r2, #0x10 + ldr r0, [r6, #4] + asrs r0, r0, #8 + movs r3, #1 + ldrsb r3, [r4, r3] + adds r1, r0, r3 + cmp r2, r1 + bgt _080413DC + cmp r8, r1 + bge _080413E8 + cmp r2, r1 + blt _0804146C +_080413DC: + movs r0, #3 + ldrsb r0, [r4, r0] + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _0804146C +_080413E8: + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + mov r4, r8 + lsls r1, r4, #0x10 + asrs r1, r1, #0x10 + bl CreateCollectRingEffect + ldr r1, _08041458 @ =gRingCount + ldrh r6, [r1] + adds r0, r6, #1 + strh r0, [r1] + ldr r0, _0804145C @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + beq _08041436 + ldrh r0, [r1] + movs r1, #0x64 + bl Div + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #0x64 + bl Div + cmp r4, r0 + beq _08041436 + ldr r0, _08041460 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08041436 + ldr r1, _08041464 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08041468 @ =gMusicManagerState + movs r0, #0x10 + strb r0, [r1, #3] +_08041436: + ldr r0, _08041460 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _0804144A + ldr r1, _08041458 @ =gRingCount + ldrh r0, [r1] + cmp r0, #0xff + bls _0804144A + movs r0, #0xff + strh r0, [r1] +_0804144A: + movs r0, #0 + b _080415BE + .align 2, 0 +_08041450: .4byte gNumSingleplayerCharacters +_08041454: .4byte gPartner +_08041458: .4byte gRingCount +_0804145C: .4byte gCurrentLevel +_08041460: .4byte gGameMode +_08041464: .4byte gNumLives +_08041468: .4byte gMusicManagerState +_0804146C: + movs r1, #0xa + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _0804149C + movs r3, #0xe + ldrsh r2, [r5, r3] + ldr r0, _08041540 @ =sa2__sub_801EC3C + str r0, [sp] + mov r0, r8 + mov r1, sb + movs r3, #8 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _0804149C + lsls r1, r0, #8 + ldr r0, [r5, #4] + adds r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_0804149C: + ldr r4, [sp, #4] + ldr r1, _08041544 @ =0x00000336 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080414E0 + movs r2, #0xa + ldrsh r0, [r5, r2] + cmp r0, #0 + bge _080414E0 + mov r0, r8 + subs r0, #0x10 + movs r3, #0xe + ldrsh r2, [r5, r3] + ldr r1, _08041540 @ =sa2__sub_801EC3C + str r1, [sp] + mov r1, sb + movs r3, #8 + rsbs r3, r3, #0 + bl sa2__sub_801F100 + cmp r0, #0 + bgt _080414E0 + lsls r1, r0, #8 + ldr r0, [r5, #4] + subs r0, r0, r1 + str r0, [r5, #4] + ldrh r1, [r5, #0xa] + lsls r0, r1, #0x10 + asrs r0, r0, #0x12 + subs r0, r0, r1 + strh r0, [r5, #0xa] +_080414E0: + ldrh r0, [r5, #0xa] + ldr r4, [sp, #8] + adds r0, r0, r4 + strh r0, [r5, #0xa] + ldr r0, [sp, #0x18] + adds r0, #7 + cmp r0, #0xfe + bhi _080415BA + movs r0, #8 + rsbs r0, r0, #0 + ldr r1, [sp, #0x1c] + cmp r1, r0 + ble _080415BA + cmp r1, #0xa7 + bgt _080415BA + ldrh r0, [r5, #0xc] + cmp r0, #0x1f + bhi _08041510 + ldr r0, _08041548 @ =gStageTime + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _080415BA +_08041510: + mov r2, sl + adds r2, #0x23 + ldr r3, [sp, #0x10] + cmp r3, #0 + beq _08041522 + adds r1, r2, #0 + ldrb r0, [r1] + cmp r0, #0xff + bne _0804154C +_08041522: + movs r0, #0xff + strb r0, [r2] + mov r4, sp + ldrh r0, [r4, #0x18] + mov r4, sl + strh r0, [r4, #0x16] + mov r1, sp + ldrh r1, [r1, #0x1c] + strh r1, [r4, #0x18] + mov r0, sl + bl DisplaySprite + movs r2, #1 + str r2, [sp, #0x10] + b _080415BA + .align 2, 0 +_08041540: .4byte sa2__sub_801EC3C +_08041544: .4byte 0x00000336 +_08041548: .4byte gStageTime +_0804154C: + ldrb r0, [r1] + lsls r0, r0, #3 + ldr r1, _080415E0 @ =gOamMallocBuffer + adds r4, r0, r1 + mov r3, sl + ldrh r0, [r3, #0x1a] + movs r2, #0xf8 + lsls r2, r2, #3 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #6 + bl OamMalloc + adds r3, r0, #0 + ldr r0, _080415E4 @ =iwram_end + ldr r0, [r0] + cmp r0, r3 + beq _080415BA + ldr r1, _080415E8 @ =0x040000D4 + str r4, [r1] + str r3, [r1, #4] + ldr r0, _080415EC @ =0x80000003 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldrh r2, [r3] + movs r4, #0xff + lsls r4, r4, #8 + adds r0, r4, #0 + ands r2, r0 + strh r2, [r3] + mov r1, sl + ldr r0, [r1, #0xc] + ldrh r0, [r0, #0xa] + ldr r4, [sp, #0x1c] + subs r0, r4, r0 + movs r1, #0xff + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3] + ldrh r2, [r3, #2] + movs r1, #0xfe + lsls r1, r1, #8 + adds r0, r1, #0 + ands r2, r0 + strh r2, [r3, #2] + mov r4, sl + ldr r0, [r4, #0xc] + ldrh r0, [r0, #8] + ldr r1, [sp, #0x18] + subs r0, r1, r0 + ldr r4, _080415F0 @ =0x000001FF + adds r1, r4, #0 + ands r0, r1 + adds r2, r2, r0 + strh r2, [r3, #2] +_080415BA: + ldrh r0, [r5, #0xc] + subs r0, #1 +_080415BE: + strh r0, [r5, #0xc] +_080415C0: + adds r5, #0x10 + ldr r0, [sp, #0x14] + subs r0, #1 + str r0, [sp, #0x14] + cmp r0, #0 + blt _080415CE + b _080411C8 +_080415CE: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080415E0: .4byte gOamMallocBuffer +_080415E4: .4byte iwram_end +_080415E8: .4byte 0x040000D4 +_080415EC: .4byte 0x80000003 +_080415F0: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc b/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc new file mode 100644 index 0000000000..5eb2127084 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc @@ -0,0 +1,93 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, _0804D0AC @ =gUnknown_03006170 = data0 + ldr r4, _0804D0B0 @ =gUnknown_030060F0 = data1 + ldrh r0, [r1] + movs r2, #0x30 + ands r2, r0 + adds r1, #2 + cmp r2, #0x20 + bne _0804D0BE + movs r3, #0 + cmp r3, r6 + bge _0804D0F6 + movs r0, #0xd0 + mov ip, r0 @ ip = 0xD0 + movs r7, #0x20 + adds r5, r1, #0 @ r5 = r1 = data0 +_0804D082_loop: + ldrh r0, [r4] + mov r1, ip + ands r1, r0 + cmp r1, #0 + bne _0804D0F6 + ldrh r1, [r5] + adds r0, r7, #0 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r3, #3 + ble _0804D09E + cmp r2, #0 + bne _0804D0B4_return_neg1 +_0804D09E: + adds r5, #2 + adds r4, #2 + adds r3, #1 + cmp r3, r6 + blt _0804D082_loop + b _0804D0F6 + .align 2, 0 +_0804D0AC: .4byte gUnknown_03006170 +_0804D0B0: .4byte gUnknown_030060F0 +_0804D0B4_return_neg1: + movs r0, #1 + rsbs r0, r0, #0 + b _0804D0F8 +_0804D0BA_return_1: + movs r0, #1 + b _0804D0F8 +_0804D0BE: + cmp r2, #0x10 + bne _0804D0F6 + movs r3, #0 + cmp r3, r6 + bge _0804D0F6 + movs r0, #0xe0 + mov ip, r0 + movs r7, #0x10 + adds r5, r1, #0 +_0804D0D0_loop: + ldrh r0, [r4] + mov r1, ip + ands r1, r0 + cmp r1, #0 + bne _0804D0F6 + ldrh r1, [r5] + adds r0, r7, #0 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r3, #3 + ble _0804D0EC + cmp r2, #0 + bne _0804D0BA_return_1 +_0804D0EC: + adds r5, #2 + adds r4, #2 + adds r3, #1 + cmp r3, r6 + blt _0804D0D0_loop +_0804D0F6: + movs r0, #0 +_0804D0F8: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc b/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc new file mode 100644 index 0000000000..84a40fc777 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc @@ -0,0 +1,589 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + adds r4, r1, #0 + movs r1, #0x64 + adds r2, r0, #0 + muls r2, r1, r2 + mov sl, r2 + ldr r3, _08057434 @ =gLoadedSaveGame + movs r6, #0x85 + lsls r6, r6, #3 + adds r2, r3, r6 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r1, [r2] + adds r1, r1, r0 + str r1, [r2] + ldr r2, _08057438 @ =gStageFlags + ldrh r0, [r2] + movs r1, #0x20 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0805743C @ =gCurrentLevel + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0xa + bne _08057420 + ldr r2, _08057440 @ =gCamera + ldrh r1, [r2, #0x26] + movs r6, #0x80 + lsls r6, r6, #6 + adds r0, r6, #0 + orrs r0, r1 + strh r0, [r2, #0x26] +_08057420: + ldr r0, _08057444 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bne _08057448 + adds r0, r4, #0 + bl CreateTimeAttackResult + movs r0, #0 + b _08057844 + .align 2, 0 +_08057434: .4byte gLoadedSaveGame +_08057438: .4byte gStageFlags +_0805743C: .4byte gCurrentLevel +_08057440: .4byte gCamera +_08057444: .4byte gGameMode +_08057448: + movs r2, #0 + ldr r0, _080574E0 @ =gSelectedCharacter + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0805748E + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0xb + ble _0805748E + ldrb r0, [r3, #0x1d] + cmp r0, #0x7f + bne _0805748E + ldrh r1, [r3, #8] + cmp r1, #0xc + bls _0805748E + ldrh r0, [r3, #0xa] + cmp r0, #0xc + bls _0805748E + ldrh r0, [r3, #0xc] + cmp r0, #0xc + bls _0805748E + ldrh r0, [r3, #0xe] + cmp r0, #0xc + bls _0805748E + cmp r1, #0xf + bne _0805748C + ldr r0, _080574E4 @ =gMultiplayerCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xc + beq _0805748E +_0805748C: + movs r2, #1 +_0805748E: + str r2, [sp, #0x1c] + cmp r2, #0 + bne _080574B6 + ldr r0, _080574E8 @ =gPlayer + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + adds r1, r3, #0 + adds r1, #8 + adds r1, r0, r1 + ldrh r2, [r1] + movs r0, #0 + ldrsb r0, [r5, r0] + adds r0, #1 + cmp r0, r2 + bge _080574B4 + adds r0, r2, #0 +_080574B4: + strh r0, [r1] +_080574B6: + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0xa + bne _080574CE + ldr r0, _080574EC @ =gCheckpointTime + ldr r0, [r0] + ldr r1, _080574F0 @ =0x00002A30 + ldr r2, _080574F4 @ =0xFFFFD5D0 + adds r4, r0, r2 + cmp r0, r1 + bhi _080574CE + movs r4, #1 +_080574CE: + ldrb r1, [r5] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0xd + bne _080574F8 + movs r0, #0x24 @ MUS_EXTRA_CLEAR + bl m4aSongNumStart + b _0805751A + .align 2, 0 +_080574E0: .4byte gSelectedCharacter +_080574E4: .4byte gMultiplayerCurrentLevel +_080574E8: .4byte gPlayer +_080574EC: .4byte gCheckpointTime +_080574F0: .4byte 0x00002A30 +_080574F4: .4byte 0xFFFFD5D0 +_080574F8: + cmp r0, #0xc + bne _08057504 + movs r0, #0x23 @ MUS_FINAL_CLEAR + bl m4aSongNumStart + b _0805751A +_08057504: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08057514 + movs r0, #0x22 @ MUS_BOSS_CLEAR + bl m4aSongNumStart + b _0805751A +_08057514: + movs r0, #0x21 @ MUS_ACT_CLEAR + bl m4aSongNumStart +_0805751A: + ldr r0, _0805752C @ =gMusicManagerState + movs r1, #0xff + strb r1, [r0] + ldr r0, _08057530 @ =0x0000545F + cmp r4, r0 + bls _08057534 + movs r6, #0 + b _080575BA + .align 2, 0 +_0805752C: .4byte gMusicManagerState +_08057530: .4byte 0x0000545F +_08057534: + ldr r0, _08057540 @ =0x0000464F + cmp r4, r0 + bls _08057544 + movs r6, #0xfa + lsls r6, r6, #1 + b _080575BA + .align 2, 0 +_08057540: .4byte 0x0000464F +_08057544: + ldr r0, _08057550 @ =0x0000383F + cmp r4, r0 + bls _08057554 + movs r6, #0xfa + lsls r6, r6, #2 + b _080575BA + .align 2, 0 +_08057550: .4byte 0x0000383F +_08057554: + ldr r0, _08057560 @ =0x00002A2F + cmp r4, r0 + bls _08057564 + movs r6, #0xfa + lsls r6, r6, #3 + b _080575BA + .align 2, 0 +_08057560: .4byte 0x00002A2F +_08057564: + ldr r0, _08057570 @ =0x00001C1F + cmp r4, r0 + bls _08057578 + ldr r6, _08057574 @ =0x00000BB8 + b _080575BA + .align 2, 0 +_08057570: .4byte 0x00001C1F +_08057574: .4byte 0x00000BB8 +_08057578: + ldr r0, _08057584 @ =0x00001517 + cmp r4, r0 + bls _08057588 + movs r6, #0xfa + lsls r6, r6, #4 + b _080575BA + .align 2, 0 +_08057584: .4byte 0x00001517 +_08057588: + ldr r0, _08057594 @ =0x00000E0F + cmp r4, r0 + bls _0805759C + ldr r6, _08057598 @ =0x00001388 + b _080575BA + .align 2, 0 +_08057594: .4byte 0x00000E0F +_08057598: .4byte 0x00001388 +_0805759C: + ldr r0, _080575A8 @ =0x00000BB7 + cmp r4, r0 + bls _080575B0 + ldr r6, _080575AC @ =0x00002710 + b _080575BA + .align 2, 0 +_080575A8: .4byte 0x00000BB7 +_080575AC: .4byte 0x00002710 +_080575B0: + ldr r0, _080575C4 @ =0x00000707 + ldr r6, _080575C8 @ =0x00013880 + cmp r4, r0 + bls _080575BA + ldr r6, _080575CC @ =0x0000C350 +_080575BA: + cmp sl, r6 + bls _080575D0 + mov r0, sl + b _080575D2 + .align 2, 0 +_080575C4: .4byte 0x00000707 +_080575C8: .4byte 0x00013880 +_080575CC: .4byte 0x0000C350 +_080575D0: + adds r0, r6, #0 +_080575D2: + movs r1, #0x64 + bl Div + adds r0, #0x4b + str r0, [sp, #0x10] + mov r0, sl + str r0, [sp, #0x18] + str r6, [sp, #0x14] + bl UiGfxStackInit + ldr r0, _08057854 @ =Task_8057B74 + ldr r1, _08057858 @ =0x00002120 + mov r8, r1 + movs r4, #0 + str r4, [sp] + movs r1, #0x34 + mov r2, r8 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0xc] + ldrh r0, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r7, r0, r2 + strh r4, [r7, #0x1c] + ldr r0, [sp, #0x10] + str r0, [r7, #0x30] + strh r4, [r7, #0x1e] + movs r0, #0xf0 + strh r0, [r7, #0xa] + movs r0, #0x7e + strh r0, [r7, #0xc] + movs r0, #8 + strh r0, [r7, #0xe] + strh r0, [r7, #0x10] + movs r1, #6 + strh r1, [r7, #0x12] + movs r5, #1 + strb r5, [r7, #0x16] + movs r0, #0xa + strh r0, [r7, #8] + ldr r0, _0805785C @ =Task_8057C3C + str r4, [sp] + movs r1, #0x34 + mov r2, r8 + movs r3, #0 + bl TaskCreate + str r0, [sp, #4] + ldrh r0, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r7, r0, r2 + strh r4, [r7, #0x1c] + ldr r0, [sp, #0x10] + str r0, [r7, #0x30] + strh r4, [r7, #0x1e] + movs r1, #0x80 + lsls r1, r1, #1 + mov sb, r1 + mov r2, sb + strh r2, [r7, #0xa] + movs r0, #0x80 + strh r0, [r7, #0xc] + movs r0, #9 + strh r0, [r7, #0xe] + movs r0, #2 + strh r0, [r7, #0x10] + movs r0, #0xc + strh r0, [r7, #0x12] + strb r5, [r7, #0x16] + strh r4, [r7, #8] + ldr r0, _08057860 @ =Task_8057D30 + str r4, [sp] + movs r1, #0x34 + mov r2, r8 + movs r3, #0 + bl TaskCreate + str r0, [sp, #8] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + ldr r2, [sp, #0x18] + str r2, [r7, #0x18] + strh r4, [r7, #0x1c] + ldr r0, [sp, #0x10] + str r0, [r7, #0x30] + strh r4, [r7, #0x1e] + mov r2, sb + strh r2, [r7, #0xa] + movs r0, #0x66 + strh r0, [r7, #0xc] + movs r0, #0x10 + strh r0, [r7, #0xe] + movs r0, #4 + strh r0, [r7, #0x10] + movs r0, #6 + strh r0, [r7, #0x12] + strb r5, [r7, #0x16] + strh r4, [r7, #8] + movs r5, #0xf + ldr r2, _08057864 @ =0x03000020 + adds r2, r2, r1 + mov r8, r2 +_080576A8: + mov r0, sl + movs r1, #0xa + bl Div + adds r4, r0, #0 + lsls r2, r5, #0x10 + asrs r2, r2, #0x10 + adds r3, r7, #0 + adds r3, #0x20 + adds r3, r3, r2 + lsls r0, r4, #3 + lsls r1, r4, #1 + adds r0, r0, r1 + mov r1, sl + subs r0, r1, r0 + adds r0, #0x20 + strb r0, [r3] + mov sl, r4 + subs r2, #1 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + cmp r2, #0 + bge _080576A8 + movs r5, #0xb + ldr r7, _08057868 @ =Task_805803C + mov r3, r8 + movs r4, #0x2b +_080576DE: + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, #0x20 + bne _080576F8 + strb r4, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe + ble _080576DE +_080576F8: + movs r5, #0 + mov r3, r8 + ldr r4, _0805786C @ =gUnknown_08688404 +_080576FE: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r2, r3, r0 + adds r1, r0, r4 + ldrb r1, [r1] + strb r1, [r2] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _080576FE + ldr r2, _08057858 @ =0x00002120 + movs r4, #0 + str r4, [sp] + adds r0, r7, #0 + movs r1, #0x34 + movs r3, #0 + bl TaskCreate + mov sb, r0 + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + str r6, [r7, #0x18] + strh r4, [r7, #0x1c] + ldr r2, [sp, #0x10] + str r2, [r7, #0x30] + strh r4, [r7, #0x1e] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r7, #0xa] + movs r0, #0x50 + strh r0, [r7, #0xc] + movs r0, #0x10 + strh r0, [r7, #0xe] + movs r0, #4 + strh r0, [r7, #0x10] + movs r0, #6 + strh r0, [r7, #0x12] + movs r0, #1 + strb r0, [r7, #0x16] + strh r4, [r7, #8] + movs r5, #0xf + ldr r0, _08057864 @ =0x03000020 + adds r0, r0, r1 + mov r8, r0 +_0805775E: + adds r0, r6, #0 + movs r1, #0xa + bl Div + adds r4, r0, #0 + lsls r2, r5, #0x10 + asrs r2, r2, #0x10 + adds r3, r7, #0 + adds r3, #0x20 + adds r3, r3, r2 + lsls r0, r4, #3 + lsls r1, r4, #1 + adds r0, r0, r1 + subs r0, r6, r0 + adds r0, #0x20 + strb r0, [r3] + adds r6, r4, #0 + subs r2, #1 + lsls r2, r2, #0x10 + lsrs r5, r2, #0x10 + cmp r2, #0 + bge _0805775E + movs r5, #0xb + ldr r7, _08057870 @ =Task_8057888 + ldr r6, _08057874 @ =TaskDestructor_8058344 + mov r3, r8 + movs r4, #0x2b +_08057794: + lsls r0, r5, #0x10 + asrs r2, r0, #0x10 + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, #0x20 + bne _080577AE + strb r4, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe + ble _08057794 +_080577AE: + movs r5, #0 + mov r3, r8 + ldr r4, _08057878 @ =gUnknown_0868840F +_080577B4: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + adds r2, r3, r0 + adds r1, r0, r4 + ldrb r1, [r1] + strb r1, [r2] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _080577B4 + movs r2, #0x84 + lsls r2, r2, #6 + str r6, [sp] + adds r0, r7, #0 + movs r1, #0x38 + movs r3, #0 + bl TaskCreate + ldrh r5, [r0, #6] + movs r4, #0xc0 + lsls r4, r4, #0x12 + adds r4, r5, r4 + movs r1, #0 + strh r1, [r4, #0x24] + ldr r2, [sp, #0x18] + str r2, [r4, #0x2c] + ldr r6, [sp, #0x14] + str r6, [r4, #0x30] + movs r0, #0x2d + strh r0, [r4, #0x34] + ldr r0, [sp, #0x10] + str r0, [r4, #0x28] + ldr r2, [sp, #0xc] + str r2, [r4, #0x14] + mov r6, sb + str r6, [r4, #0x18] + ldr r0, [sp, #4] + str r0, [r4, #0x10] + ldr r2, [sp, #8] + str r2, [r4, #0xc] + strh r1, [r4] + strh r1, [r4, #2] + movs r2, #1 + movs r0, #1 + strh r0, [r4, #4] + strh r1, [r4, #6] + adds r0, #0xff + strh r0, [r4, #8] + strb r2, [r4, #0xa] + ldr r6, _0805787C @ =0x03000036 + adds r0, r5, r6 + mov r1, sp + ldrb r1, [r1, #0x1c] + strb r1, [r0] + movs r0, #0x80 + bl VramMalloc + str r0, [r4, #0x1c] + movs r0, #0x1e + bl VramMalloc + str r0, [r4, #0x20] + ldr r2, _08057880 @ =0x0300001C + adds r5, r5, r2 + adds r0, r5, #0 + bl sub_8056FE4 + ldr r6, [sp, #0x10] + ldr r1, _08057884 @ =0x0000011D + adds r0, r6, r1 +_08057844: + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08057854: .4byte Task_8057B74 +_08057858: .4byte 0x00002120 +_0805785C: .4byte Task_8057C3C +_08057860: .4byte Task_8057D30 +_08057864: .4byte 0x03000020 +_08057868: .4byte Task_805803C +_0805786C: .4byte gUnknown_08688404 +_08057870: .4byte Task_8057888 +_08057874: .4byte TaskDestructor_8058344 +_08057878: .4byte gUnknown_0868840F +_0805787C: .4byte 0x03000036 +_08057880: .4byte 0x0300001C +_08057884: .4byte 0x0000011D + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc b/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc new file mode 100644 index 0000000000..df3b48e210 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc @@ -0,0 +1,36 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, lr} + sub sp, #4 + movs r1, #0 + ldr r0, _0805422C @ =Task_SpecialStageUIMain + movs r2, #0x8c + lsls r2, r2, #5 + movs r4, #0 + str r1, [sp] + movs r1, #0x50 + movs r3, #0 + bl TaskCreate + adds r1, r0, #0 + ldrh r0, [r1, #6] + ldr r2, _08054230 @ =0x03000040 + adds r0, r0, r2 + strh r4, [r0] + ldrh r0, [r1, #6] + ldr r1, _08054234 @ =0x0300004C + adds r0, r0, r1 + strh r4, [r0] + bl UiGfxStackInit + bl sub_8054068 + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805422C: .4byte Task_SpecialStageUIMain +_08054230: .4byte 0x03000040 +_08054234: .4byte 0x0300004C + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc b/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc new file mode 100644 index 0000000000..8c13112c7b --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc @@ -0,0 +1,348 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _08055594 @ =gCurTask + ldr r0, [r0] + ldrh r5, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r4, r5, r1 @ r4 = strcMain + ldr r0, [r4, #0xc] + ldrh r0, [r0, #6] + adds r6, r0, r1 @ r6 = strc1 + ldr r0, [r4, #0x10] + ldrh r0, [r0, #6] + adds r7, r0, r1 @ r7 = strc2 + ldr r0, [r4, #0x14] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov r8, r0 @ r8 = strc3 + ldr r0, [r4, #0x18] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sb, r0 @ sb = strc4 + ldr r0, [r4, #0x1c] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sl, r0 @ sl = strc5 + ldr r0, [r4, #0x20] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp] @ sp00 = strc6 + ldr r0, _08055598 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #0xf3 + ands r0, r1 + cmp r0, #0 + beq _080554E8 + ldr r0, _0805559C @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bhi _080554E8 + ldrh r0, [r4, #0x24] + subs r0, #0x24 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb2 + bhi _080554E8 + movs r0, #0xd7 + strh r0, [r4, #0x24] + movs r0, #6 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #6 + subs r0, r0, r1 + movs r1, #0xa + bl Div + strh r0, [r4, #8] + ldr r1, _080555A0 @ =0x03000027 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _080554E8 + adds r0, r4, #0 + bl sub_805423C + ldr r2, _080555A4 @ =0x03000026 + adds r1, r5, r2 + strb r0, [r1] +_080554E8: + ldrh r0, [r4, #0x24] + strh r0, [r6, #0x18] + ldrh r0, [r4, #0x24] + strh r0, [r7, #0x18] + ldrh r0, [r4, #0x24] + mov r1, r8 + strh r0, [r1, #0x18] + ldrh r0, [r4, #0x24] + mov r2, sb + strh r0, [r2, #0x18] + ldrh r0, [r4, #0x24] + mov r1, sl + strh r0, [r1, #0x18] + ldrh r0, [r4, #0x24] + ldr r2, [sp] + strh r0, [r2, #0x18] + adds r5, r4, #0 + adds r5, #0x26 + ldrb r1, [r5] + adds r0, r6, #0 + adds r0, #0x20 + strb r1, [r0] @ strc1->unk20 = strcMain->unk26; + ldrb r1, [r5] + adds r0, r7, #0 + adds r0, #0x20 + strb r1, [r0] + ldrb r1, [r5] + mov r0, r8 + adds r0, #0x20 + strb r1, [r0] + ldrb r1, [r5] + mov r0, sb + adds r0, #0x20 + strb r1, [r0] + ldrb r1, [r5] + mov r0, sl + adds r0, #0x20 + strb r1, [r0] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x20 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x27 + ldrb r2, [r1] + adds r0, r6, #0 + adds r0, #0x21 + strb r2, [r0] + ldrb r2, [r1] + adds r0, r7, #0 + adds r0, #0x21 + strb r2, [r0] + ldrb r2, [r1] + mov r0, r8 + adds r0, #0x21 + strb r2, [r0] + ldrb r2, [r1] + mov r0, sb + adds r0, #0x21 + strb r2, [r0] + ldrb r2, [r1] + mov r0, sl + adds r0, #0x21 + strb r2, [r0] + ldrb r2, [r1] + ldr r0, [sp] + adds r0, #0x21 + strb r2, [r0] + ldrb r0, [r1] + adds r6, r1, #0 + cmp r0, #0 + bne _080555AE + movs r0, #0x24 + ldrsh r1, [r4, r0] + cmp r1, #0x69 + ble _08055586 + ldrb r0, [r5] + cmp r0, #0 + bne _080555AE +_08055586: + cmp r1, #0x14 + ble _080555A8 + adds r0, r4, #0 + bl sub_805423C + strb r0, [r5] + b _080555AE + .align 2, 0 +_08055594: .4byte gCurTask +_08055598: .4byte gPressedKeys +_0805559C: .4byte gGameMode +_080555A0: .4byte 0x03000027 +_080555A4: .4byte 0x03000026 +_080555A8: + adds r0, r4, #0 + bl sub_80543A4 +_080555AE: + ldrh r0, [r4, #0x24] + adds r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xe1 + bgt _080555BE + b _08055708 +_080555BE: + ldrb r3, [r6] + cmp r3, #0 + bne _080555D4 + ldr r2, _080556AC @ =gDispCnt + ldrh r1, [r2] + ldr r0, _080556B0 @ =0x00001FFF + ands r0, r1 + strh r0, [r2] + ldr r0, _080556B4 @ =gBldRegs + strh r3, [r0] + strh r3, [r0, #4] +_080555D4: + ldr r0, _080556B8 @ =gGameMode + ldrb r0, [r0] + ldr r1, _080556BC @ =gPlayer + mov r8, r1 + ldr r2, _080556C0 @ =gStageFlags + mov sb, r2 + ldr r1, _080556C4 @ =gPartner + mov sl, r1 + ldr r2, _080556C8 @ =gFinalBossActive + mov ip, r2 + cmp r0, #1 @ IS_MULTI_PLAYER + bls _08055622 + ldr r1, _080556CC @ =gMultiplayerPlayerTasks + ldr r0, [r1] + cmp r0, #0 + beq _0805561C + movs r7, #0xc0 + lsls r7, r7, #0x12 + movs r6, #3 + rsbs r6, r6, #0 + adds r3, r1, #0 + adds r5, r3, #0 + adds r2, r3, #0 + adds r2, #0xc +_08055604_loop: + ldm r5!, {r0} + ldrh r1, [r0, #6] + adds r1, r1, r7 + ldr r0, [r1, #0x5c] + ands r0, r6 + str r0, [r1, #0x5c] + adds r3, #4 + cmp r5, r2 + bhi _0805561C + ldr r0, [r3] + cmp r0, #0 + bne _08055604_loop +_0805561C: + movs r0, #0x78 + mov r1, r8 + strh r0, [r1, #0x1c] +_08055622: + mov r2, sb @ r2 = sb = gStageFlags + ldrh r1, [r2] + ldr r0, _080556D0 @ =0x0000FFFE + ands r0, r1 + strh r0, [r2] + mov r1, r8 + ldr r0, [r1, #0x10] + ldr r1, _080556D4 @ =0xFFDFFFFF + ands r0, r1 + mov r2, r8 + str r0, [r2, #0x10] + mov r2, sl + ldr r0, [r2, #0x10] + ands r0, r1 + str r0, [r2, #0x10] + ldr r3, _080556D8 @ =gCurrentLevel + ldrb r0, [r3] + mov r1, ip + strb r0, [r1] + mov r2, r8 + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + mov r2, sb + ldrh r1, [r2] + ldr r0, _080556DC @ =0x0000FFDF + ands r0, r1 + strh r0, [r2] + ldrb r0, [r3] + subs r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08055672 + bl LoadPalette423Anim + bl InitWaterPalettes +_08055672: + ldr r0, [r4, #0x20] + bl TaskDestroy + ldr r0, [r4, #0x1c] + bl TaskDestroy + ldr r0, [r4, #0x18] + bl TaskDestroy + ldr r0, [r4, #0x14] + bl TaskDestroy + ldr r0, [r4, #0x10] + bl TaskDestroy + ldr r0, [r4, #0xc] + bl TaskDestroy + ldr r0, _080556E0 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r0, _080556B8 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + bhi _080556E4 + bl CreateStageUI + b _080556E8 + .align 2, 0 +_080556AC: .4byte gDispCnt +_080556B0: .4byte 0x00001FFF +_080556B4: .4byte gBldRegs +_080556B8: .4byte gGameMode +_080556BC: .4byte gPlayer +_080556C0: .4byte gStageFlags +_080556C4: .4byte gPartner +_080556C8: .4byte gFinalBossActive +_080556CC: .4byte gMultiplayerPlayerTasks +_080556D0: .4byte 0x0000FFFE +_080556D4: .4byte 0xFFDFFFFF +_080556D8: .4byte gCurrentLevel +_080556DC: .4byte 0x0000FFDF +_080556E0: .4byte gCurTask +_080556E4: + bl CreateChaoHuntHUD +_080556E8: + ldr r0, _08055704 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0xd + bne _0805571A + movs r0, #0xf0 + lsls r0, r0, #7 + movs r1, #0xa0 + lsls r1, r1, #7 + bl sub_804A5D8 + b _0805571A + .align 2, 0 +_08055704: .4byte gCurrentLevel +_08055708: + ldr r0, _0805572C @ =gCurrentLevel + ldrb r0, [r0] + subs r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0805571A + bl InitWaterPalettes +_0805571A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805572C: .4byte gCurrentLevel + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc b/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc new file mode 100644 index 0000000000..2b74e154dc --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc @@ -0,0 +1,190 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08055804 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r1, r0 @ r4 = strc + ldrh r0, [r4, #0x18] + movs r2, #0x18 + ldrsh r1, [r4, r2] + cmp r1, #0xd7 + ble _08055826 + subs r0, #0xd7 + lsls r0, r0, #7 + movs r1, #0xa + bl Div + movs r5, #0 + lsls r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + mov sb, r1 + asrs r1, r0, #0x10 + rsbs r0, r0, #0 + mov r8, r0 + rsbs r6, r1, #0 + ldr r7, _08055808 @ =gUnknown_08688394 +_080557D6_loop: + strh r6, [r4, #0xc] + mov r2, r8 + asrs r0, r2, #0x10 + cmp r0, sb + blt _08055814 + ldrh r0, [r4, #0x18] + cmp r0, #0x69 + bls _080557FA + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _080557FA + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _0805580C +_080557FA: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_8052F78 + b _08055814 + .align 2, 0 +_08055804: .4byte gCurTask +_08055808: .4byte gUnknown_08688394 +_0805580C: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_80530CC +_08055814: + movs r0, #0x80 + lsls r0, r0, #0xe + add r8, r0 + adds r6, #0x20 + adds r7, #1 + adds r5, #1 + cmp r5, #3 + ble _080557D6_loop + b _080558F0_return +_08055826: + cmp r1, #0x1f + ble _0805586E + movs r5, #0 + ldr r6, _08055858 @ =gUnknown_08688394 +_0805582E_loop: + lsls r0, r5, #5 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0x18] + cmp r0, #0x69 + bls _0805584C + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _0805584C + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _0805585C +_0805584C: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_8052F78 + b _08055864 + .align 2, 0 +_08055858: .4byte gUnknown_08688394 +_0805585C: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_80530CC +_08055864: + adds r6, #1 + adds r5, #1 + cmp r5, #3 + ble _0805582E_loop + b _080558F0_return +_0805586E: + cmp r1, #0x19 + ble _080558F0_return + subs r0, #0xd7 + lsls r0, r0, #7 + movs r1, #6 + bl Div + subs r0, #0xb0 + mov r8, r0 @ r8 = Div((strc->unk18 - 215) << 7, 6) - 176; + ldr r1, _080558CC @ =0x000001FF + adds r0, r1, #0 + movs r5, #0 + mov r2, r8 + ands r2, r0 + mov r8, r2 + ldr r0, _080558D0 @ =0x000001A5 + mov sl, r0 + lsls r7, r2, #0x10 + mov r6, r8 + movs r1, #0x20 + rsbs r1, r1, #0 + mov sb, r1 +_0805589A_loop: + cmp r8, sl + ble _080558E2 + strh r6, [r4, #0xc] + asrs r0, r7, #0x10 + cmp r0, sb + blt _080558E2 + ldrh r0, [r4, #0x18] + cmp r0, #0x69 + bls _080558C0 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _080558C0 + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _080558D8 +_080558C0: + ldr r0, _080558D4 @ =gUnknown_08688394 + adds r0, r5, r0 + adds r1, r4, #0 + bl sub_8052F78 + b _080558E2 + .align 2, 0 +_080558CC: .4byte 0x000001FF +_080558D0: .4byte 0x000001A5 +_080558D4: .4byte gUnknown_08688394 +_080558D8: + ldr r0, _08055900 @ =gUnknown_08688394 + adds r0, r5, r0 + adds r1, r4, #0 + bl sub_80530CC +_080558E2: + movs r2, #0x80 + lsls r2, r2, #0xe + adds r7, r7, r2 + adds r6, #0x20 + adds r5, #1 + cmp r5, #3 + ble _0805589A_loop +_080558F0_return: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08055900: .4byte gUnknown_08688394 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc b/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc new file mode 100644 index 0000000000..1065f14c26 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc @@ -0,0 +1,411 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _08053D64 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + ldr r2, _08053D68 @ =0x03000048 + adds r0, r1, r2 + ldrb r7, [r0] + ldr r4, _08053D6C @ =0x0300004C + adds r1, r1, r4 + movs r2, #0 + ldrsh r0, [r1, r2] + adds r0, #1 + lsls r2, r0, #0x10 + strh r0, [r1] + movs r4, #0x72 + mov sl, r4 @ sl = r4 = 0x72 + lsrs r0, r2, #0x10 + mov sb, r0 @ sb = ui->unk4C++; + asrs r2, r2, #0x10 + adds r1, r2, #0 + subs r1, #0xa + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bhi _08053D70 + lsls r0, r1, #6 + movs r1, #0x14 @ 20 + bl Div + mov r1, sp + subs r0, #0x46 + b _08053D84 + .align 2, 0 +_08053D64: .4byte gCurTask +_08053D68: .4byte 0x03000048 +_08053D6C: .4byte 0x0300004C +_08053D70: + cmp r2, #0x1d + ble _08053D80 + mov r1, sp + ldr r0, _08053D7C @ =0x0000FFFA + b _08053D84 + .align 2, 0 +_08053D7C: .4byte 0x0000FFFA +_08053D80: + mov r1, sp + ldr r0, _08053DDC @ =0x0000FFBA +_08053D84: + strh r0, [r1, #0xc] + mov r1, sp @ r1 = overB + movs r4, #0x5a + lsls r4, r4, #0x10 + asrs r0, r4, #0x10 + adds r0, #4 + strh r0, [r1, #0xa] + movs r2, #1 + movs r0, #1 + strh r0, [r1, #0xe] + movs r0, #0x18 + strh r0, [r1, #8] + movs r0, #3 + strh r0, [r1, #0x10] + movs r0, #0xa + strh r0, [r1, #0x12] + mov r0, sp + strb r2, [r0, #0x16] + ldr r0, _08053DE0 @ =gUnknown_0865F178 + bl sub_80530CC + ldr r0, _08053DE4 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = ui + ldr r2, _08053DE8 @ =gSpecialStageCollectedRings + ldrh r1, [r2] + ldr r0, _08053DEC @ =0x000003E7 + mov r8, r4 @ r8 = r4 = 90 + cmp r1, r0 + bls _08053DF0 + movs r0, #0x29 + strb r0, [r6] + strb r0, [r6, #1] + strb r0, [r6, #2] + mov r1, sb + lsls r1, r1, #0x10 + mov sb, r1 + mov r2, sl + lsls r2, r2, #0x10 + mov sl, r2 + b _08053E24 + .align 2, 0 +_08053DDC: .4byte 0x0000FFBA +_08053DE0: .4byte gUnknown_0865F178 +_08053DE4: .4byte gCurTask +_08053DE8: .4byte gSpecialStageCollectedRings +_08053DEC: .4byte 0x000003E7 +_08053DF0: + ldrh r4, [r2] + movs r5, #0 + mov r0, sb + lsls r0, r0, #0x10 + mov sb, r0 + mov r1, sl + lsls r1, r1, #0x10 + mov sl, r1 +_08053E00: + adds r0, r4, #0 + movs r1, #0xa + bl Div + adds r3, r0, #0 + movs r0, #2 + subs r0, r0, r5 + adds r0, r6, r0 + lsls r1, r3, #3 + lsls r2, r3, #1 + adds r1, r1, r2 + subs r1, r4, r1 + adds r1, #0x20 + strb r1, [r0] + adds r4, r3, #0 + adds r5, #1 + cmp r5, #2 + ble _08053E00 +_08053E24: + ldr r0, _08053E54 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r2, _08053E58 @ =0x03000044 + adds r0, r0, r2 + ldr r1, _08053E5C @ =gSpecialStageCollectedRings + ldrh r1, [r1] + strh r1, [r0] + mov r4, sb + asrs r2, r4, #0x10 + adds r1, r2, #0 + subs r1, #0x14 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bhi _08053E60 + lsls r0, r1, #6 + movs r1, #0x14 + bl Div + mov r1, sp + subs r0, #0x40 + b _08053E6E + .align 2, 0 +_08053E54: .4byte gCurTask +_08053E58: .4byte 0x03000044 +_08053E5C: .4byte gSpecialStageCollectedRings +_08053E60: + cmp r2, #0x27 + ble _08053E6A + mov r1, sp + movs r0, #0 + b _08053E6E +_08053E6A: + mov r1, sp + ldr r0, _08053EC4 @ =0x0000FFC0 +_08053E6E: + strh r0, [r1, #0xc] + mov r1, sp + movs r2, #0 + movs r0, #6 + strh r0, [r1, #0x12] + movs r0, #0x10 + strh r0, [r1, #8] + mov r0, sp + strh r2, [r0, #0x10] + movs r3, #1 + strb r3, [r0, #0x16] + ldr r0, _08053EC8 @ =gSpecialStageCollectedRings + ldrh r2, [r0] + cmp r2, #9 + bhi _08053EE2 + mov r0, sp + mov r4, r8 + asrs r1, r4, #0x10 + adds r1, #0xc + strh r1, [r0, #0xa] + strh r3, [r0, #0xe] + cmp r2, #0 + bne _08053ED8 + adds r0, r7, #0 @ r0 = r7 = r7 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsrs r0, r0, #3 + ldr r1, _08053ECC @ =gUnknown_0865F174 + adds r0, r0, r1 + mov r1, sp + bl sub_80530CC + movs r0, #0x1f + ands r7, r0 + ldr r0, _08053ED0 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r1, _08053ED4 @ =0x03000048 + adds r0, r0, r1 + strh r7, [r0] + b _08053F10 + .align 2, 0 +_08053EC4: .4byte 0x0000FFC0 +_08053EC8: .4byte gSpecialStageCollectedRings +_08053ECC: .4byte gUnknown_0865F174 +_08053ED0: .4byte gCurTask +_08053ED4: .4byte 0x03000048 +_08053ED8: + adds r0, r6, #2 + mov r1, sp + bl sub_80530CC + b _08053F10 +_08053EE2: + cmp r2, #0x63 + bhi _08053EFC + mov r1, sp + mov r2, r8 + asrs r0, r2, #0x10 + adds r0, #8 + strh r0, [r1, #0xa] + movs r0, #2 + strh r0, [r1, #0xe] + adds r0, r6, #1 + bl sub_80530CC + b _08053F10 +_08053EFC: + mov r1, sp + mov r4, r8 + asrs r0, r4, #0x10 + adds r0, #4 + strh r0, [r1, #0xa] + movs r0, #3 + strh r0, [r1, #0xe] + adds r0, r6, #0 + bl sub_80530CC +_08053F10: + ldr r0, _08053F30 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r1, _08053F34 @ =0x03000010 + adds r6, r0, r1 + ldr r2, _08053F38 @ =gSpecialStageTargetRings + ldrh r1, [r2] + ldr r0, _08053F3C @ =0x000003E7 + cmp r1, r0 + bls _08053F40 + movs r0, #0x29 + strb r0, [r6] + strb r0, [r6, #1] + strb r0, [r6, #2] + b _08053F68 + .align 2, 0 +_08053F30: .4byte gCurTask +_08053F34: .4byte 0x03000010 +_08053F38: .4byte gSpecialStageTargetRings +_08053F3C: .4byte 0x000003E7 +_08053F40: + ldrh r4, [r2] + movs r5, #0 +_08053F44: + adds r0, r4, #0 + movs r1, #0xa + bl Div + adds r3, r0, #0 + movs r0, #2 + subs r0, r0, r5 + adds r0, r6, r0 + lsls r1, r3, #3 + lsls r2, r3, #1 + adds r1, r1, r2 + subs r1, r4, r1 + adds r1, #0x20 + strb r1, [r0] + adds r4, r3, #0 + adds r5, #1 + cmp r5, #2 + ble _08053F44 +_08053F68: + ldr r0, _08053F98 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r2, _08053F9C @ =0x03000044 + adds r0, r0, r2 + ldr r1, _08053FA0 @ =gSpecialStageTargetRings + ldrh r1, [r1] + strh r1, [r0] + mov r4, sb + asrs r2, r4, #0x10 + adds r1, r2, #0 + subs r1, #0xf + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bhi _08053FA4 + lsls r0, r1, #6 + movs r1, #0x14 + bl Div + mov r1, sp + subs r0, #0x34 + b _08053FB2 + .align 2, 0 +_08053F98: .4byte gCurTask +_08053F9C: .4byte 0x03000044 +_08053FA0: .4byte gSpecialStageTargetRings +_08053FA4: + cmp r2, #0x22 + ble _08053FAE + mov r1, sp + movs r0, #0xc + b _08053FB2 +_08053FAE: + mov r1, sp + ldr r0, _0805400C @ =0x0000FFCC +_08053FB2: + strh r0, [r1, #0xc] + mov r1, sp + movs r2, #0 + movs r0, #6 + strh r0, [r1, #0x12] + movs r0, #0x10 + strh r0, [r1, #8] + mov r0, sp + strh r2, [r0, #0x10] + movs r3, #1 + strb r3, [r0, #0x16] + ldr r0, _08054010 @ =gSpecialStageTargetRings + ldrh r2, [r0] + cmp r2, #9 + bhi _0805402A + mov r0, sp + mov r4, sl + asrs r1, r4, #0x10 + adds r1, #0xc + strh r1, [r0, #0xa] + strh r3, [r0, #0xe] + cmp r2, #0 + bne _08054020 + adds r0, r7, #0 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + lsrs r0, r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08054014 @ =gUnknown_0865F174 + adds r0, r0, r1 + mov r1, sp + bl sub_80530CC + movs r0, #0x1f + ands r7, r0 + ldr r0, _08054018 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r1, _0805401C @ =0x03000048 + adds r0, r0, r1 + strh r7, [r0] + b _08054058 + .align 2, 0 +_0805400C: .4byte 0x0000FFCC +_08054010: .4byte gSpecialStageTargetRings +_08054014: .4byte gUnknown_0865F174 +_08054018: .4byte gCurTask +_0805401C: .4byte 0x03000048 +_08054020: + adds r0, r6, #2 + mov r1, sp + bl sub_80530CC + b _08054058 +_0805402A: + cmp r2, #0x63 + bhi _08054044 + mov r1, sp + mov r2, sl + asrs r0, r2, #0x10 + adds r0, #8 + strh r0, [r1, #0xa] + movs r0, #2 + strh r0, [r1, #0xe] + adds r0, r6, #1 + bl sub_80530CC + b _08054058 +_08054044: + mov r1, sp + mov r4, sl + asrs r0, r4, #0x10 + adds r0, #4 + strh r0, [r1, #0xa] + movs r0, #3 + strh r0, [r1, #0xe] + adds r0, r6, #0 + bl sub_80530CC +_08054058: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc b/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc new file mode 100644 index 0000000000..39aeb2a8f8 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc @@ -0,0 +1,223 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + sub sp, #0x18 + mov r1, sp + ldr r0, _08053758 @ =0x0000FFFE + strh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xc] + mov r0, sp + movs r2, #1 + movs r5, #1 + strh r5, [r0, #0xe] + movs r0, #0x18 + strh r0, [r1, #8] + movs r0, #3 + strh r0, [r1, #0x10] + movs r0, #6 + strh r0, [r1, #0x12] + mov r0, sp + strb r2, [r0, #0x16] + ldr r4, _0805375C @ =gUnknown_0865F178 + adds r0, r4, #0 + bl sub_80530CC + ldr r0, _08053760 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08053738 + mov r1, sp + movs r0, #0x90 + strh r0, [r1, #0xc] + movs r0, #2 + strh r0, [r1, #0xa] + mov r0, sp + strh r5, [r0, #0x10] + ldr r0, _08053764 @ =gSelectedCharacter + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1, #0x12] + adds r0, r4, #0 + bl sub_80530CC +_08053738: + ldr r0, _08053768 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r1, r0 @ r6 = ui + ldr r2, _0805376C @ =gRingCount + ldrh r1, [r2] + ldr r0, _08053770 @ =0x000003E7 + cmp r1, r0 + bls _08053774 + movs r0, #0x29 + strb r0, [r6] + strb r0, [r6, #1] + strb r0, [r6, #2] + b _0805379C + .align 2, 0 +_08053758: .4byte 0x0000FFFE +_0805375C: .4byte gUnknown_0865F178 +_08053760: .4byte gGameMode +_08053764: .4byte gSelectedCharacter +_08053768: .4byte gCurTask +_0805376C: .4byte gRingCount +_08053770: .4byte 0x000003E7 +_08053774: + ldrh r4, [r2] + movs r5, #0 +_08053778: + adds r0, r4, #0 + movs r1, #0xa + bl Div + adds r3, r0, #0 + movs r0, #2 + subs r0, r0, r5 + adds r0, r6, r0 + lsls r1, r3, #3 + lsls r2, r3, #1 + adds r1, r1, r2 + subs r1, r4, r1 + adds r1, #0x20 + strb r1, [r0] + adds r4, r3, #0 + adds r5, #1 + cmp r5, #2 + ble _08053778 +_0805379C: + ldr r2, _08053800 @ =gCurTask + ldr r0, [r2] + ldrh r0, [r0, #6] + ldr r1, _08053804 @ =0x03000044 + adds r0, r0, r1 + ldr r1, _08053808 @ =gRingCount + ldrh r1, [r1] + strh r1, [r0] @ ui->ringCount = gRingCount; + ldr r0, [r2] + ldrh r0, [r0, #6] + ldr r1, _0805380C @ =0x03000010 + adds r6, r0, r1 + movs r0, #0 + strb r0, [r6, #9] @ ui->unk10[ARRAY_COUNT(ui->unk10) - 1] = 0; + ldr r0, _08053810 @ =gLevelScore + ldr r4, [r0] + movs r5, #8 +_080537BE: + adds r0, r4, #0 + movs r1, #0xa + bl Div + adds r3, r0, #0 + adds r0, r6, r5 + lsls r1, r3, #3 + lsls r2, r3, #1 + adds r1, r1, r2 + subs r1, r4, r1 + adds r1, #0x20 + strb r1, [r0] + adds r4, r3, #0 + subs r5, #1 + cmp r5, #0 + bge _080537BE + ldr r0, _08053814 @ =gCourseTime + ldr r0, [r0] + bl StageUI_DrawTimer + ldr r0, _08053800 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r1, _08053818 @ =0x03000030 + adds r6, r0, r1 @ r6 = + ldr r0, _0805381C @ =gNumLives + ldrb r0, [r0] + adds r1, r0, #0 + cmp r1, #9 + bls _08053820 + movs r0, #0x29 + b _0805382A + .align 2, 0 +_08053800: .4byte gCurTask +_08053804: .4byte 0x03000044 +_08053808: .4byte gRingCount +_0805380C: .4byte 0x03000010 +_08053810: .4byte gLevelScore +_08053814: .4byte gCourseTime +_08053818: .4byte 0x03000030 +_0805381C: .4byte gNumLives +_08053820: + cmp r1, #0 + beq _08053828 + adds r0, #0x1f + b _0805382A +_08053828: + movs r0, #0x20 +_0805382A: + strb r0, [r6] + bl sub_8053BAC + ldr r0, _08053870 @ =gLoadedSaveGame + ldrb r0, [r0, #0x1b] + cmp r0, #1 + bne _08053840 + ldr r0, _08053874 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + beq _080538A8 +_08053840: + ldr r0, _08053878 @ =gStageFlags + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08053884 + ldr r4, _0805387C @ =gCourseTime + ldr r1, [r4] + ldr r0, _08053880 @ =0x000004AF + cmp r1, r0 + bhi _080538A8 + adds r0, r1, #0 + movs r1, #0x3c + bl Mod + cmp r0, #0 + bne _080538A8 + ldr r0, [r4] + cmp r0, #0 + beq _080538A8 + movs r0, #0x8b + bl m4aSongNumStart + b _080538A8 + .align 2, 0 +_08053870: .4byte gLoadedSaveGame +_08053874: .4byte gGameMode +_08053878: .4byte gStageFlags +_0805387C: .4byte gCourseTime +_08053880: .4byte 0x000004AF +_08053884: + ldr r4, _080538B0 @ =gCourseTime + ldr r1, [r4] + ldr r0, _080538B4 @ =0x000087F0 + cmp r1, r0 + bls _080538A8 + adds r0, r1, #0 + movs r1, #0x3c + bl Mod + cmp r0, #0 + bne _080538A8 + ldr r1, [r4] + ldr r0, _080538B8 @ =0x00008C9F + cmp r1, r0 + bhi _080538A8 + movs r0, #0x8b + bl m4aSongNumStart +_080538A8: + add sp, #0x18 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080538B0: .4byte gCourseTime +_080538B4: .4byte 0x000087F0 +_080538B8: .4byte 0x00008C9F + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc b/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc new file mode 100644 index 0000000000..712d8e8186 --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc @@ -0,0 +1,184 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x18 + ldr r0, _08053C24 @ =gCurTask + mov sb, r0 + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r4, r0 @ r5 = ui + ldr r1, _08053C28 @ =0x03000048 + mov r8, r1 @ r8 = 0x03000048 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r6, r0, #0x18 @ r6 = ui->unk48 << 24 + lsrs r7, r6, #0x18 @ r7 = r7 = ui->unk48 + mov r0, sp + movs r2, #0 + movs r1, #5 @ r1 = 5 + mov ip, r1 @ ip = r1 = 5 + mov r1, ip @ r1 = 5 + strh r1, [r0, #0xc] + mov r1, sp + movs r0, #6 + strh r0, [r1, #0x12] + movs r0, #0x10 + strh r0, [r1, #8] + mov r0, sp + strh r2, [r0, #0x10] + movs r3, #1 + strb r3, [r0, #0x16] + ldr r0, _08053C2C @ =gRingCount + ldrh r2, [r0] + cmp r2, #9 + bhi _08053C3C + mov r0, sp + movs r1, #9 + strh r1, [r0, #0xa] + strh r3, [r0, #0xe] + cmp r2, #0 + bne _08053C34 + adds r4, r7, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsrs r0, r6, #0x1b + ldr r1, _08053C30 @ =gUnknown_0865F174 + adds r0, r0, r1 + mov r1, sp + bl sub_80530CC + movs r0, #0x1f + ands r4, r0 + mov r1, sb + ldr r0, [r1] + ldrh r0, [r0, #6] + add r0, r8 + strh r4, [r0] + b _08053C6C + .align 2, 0 +_08053C24: .4byte gCurTask +_08053C28: .4byte 0x03000048 +_08053C2C: .4byte gRingCount +_08053C30: .4byte gUnknown_0865F174 +_08053C34: + ldr r1, _08053C38 @ =0x03000002 + b _08053C4E + .align 2, 0 +_08053C38: .4byte 0x03000002 +_08053C3C: + cmp r2, #0x63 + bhi _08053C5C + mov r0, sp + mov r1, ip @ r1 = ip = 5 + strh r1, [r0, #0xa] + mov r1, sp + movs r0, #2 + strh r0, [r1, #0xe] + ldr r1, _08053C58 @ =0x03000001 +_08053C4E: + adds r0, r4, r1 + mov r1, sp + bl sub_80530CC + b _08053C6C + .align 2, 0 +_08053C58: .4byte 0x03000001 +_08053C5C: + mov r0, sp + strh r3, [r0, #0xa] + mov r1, sp + movs r0, #3 + strh r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_80530CC +_08053C6C: + adds r5, #0x10 + mov r0, sp + ldr r1, _08053CB4 @ =0x0000FFFE + strh r1, [r0, #0xc] + movs r3, #0 + ldrb r0, [r5] + ldr r1, _08053CB8 @ =gLevelScore + cmp r0, #0x20 + bne _08053C90 +_08053C7E: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #9 + bhi _08053C90 + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, #0x20 + beq _08053C7E +_08053C90: + ldr r0, [r1] + cmp r0, #0 + beq _08053CBC + mov r0, sp + movs r1, #9 + subs r1, r1, r3 + strh r1, [r0, #0xe] + mov r2, sp + lsls r1, r1, #3 + movs r0, #0x51 + subs r0, r0, r1 + strh r0, [r2, #0xa] + adds r0, r5, r3 + mov r1, sp + bl sub_80530CC + b _08053CCC + .align 2, 0 +_08053CB4: .4byte 0x0000FFFE +_08053CB8: .4byte gLevelScore +_08053CBC: + mov r1, sp + movs r0, #1 + strh r0, [r1, #0xe] + movs r0, #0x49 + strh r0, [r1, #0xa] + ldr r0, _08053D10 @ =gUnknown_0865F178 + bl sub_80530CC +_08053CCC: + adds r5, #0x10 + mov r1, sp + movs r0, #0x19 + strh r0, [r1, #0xa] + movs r0, #0xc + strh r0, [r1, #0xc] + movs r0, #7 + strh r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_80530CC + ldr r0, _08053D14 @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _08053D00 + adds r5, #0x10 + mov r1, sp + movs r0, #0x16 + strh r0, [r1, #0xa] + movs r0, #0x8f + strh r0, [r1, #0xc] + movs r0, #1 + strh r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_80530CC +_08053D00: + add sp, #0x18 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08053D10: .4byte gUnknown_0865F178 +_08053D14: .4byte gGameMode + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc b/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc new file mode 100644 index 0000000000..bceb2a1d7b --- /dev/null +++ b/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc @@ -0,0 +1,401 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x30 + ldr r2, _0805512C @ =gCurrentLevel + ldrb r1, [r2] + movs r3, #0 + ldrsb r3, [r2, r3] + cmp r3, #0xc + bgt _08055164 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08055164 + ldr r0, _08055130 @ =gFinalBossActive + ldrb r1, [r0] + adds r0, r3, #0 + cmp r1, r0 + beq _08055164 + cmp r3, #0xd + beq _08055164 + movs r4, #0 + ldr r5, _08055134 @ =0x0000042A + b _08055150 + .align 2, 0 +_0805512C: .4byte gCurrentLevel +_08055130: .4byte gFinalBossActive +_08055134: .4byte 0x0000042A +_08055138: + strh r5, [r2] + lsls r0, r4, #5 + ldr r3, _080552A8 @ =0xFFFF8000 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2, #2] + movs r0, #0xc1 + lsls r0, r0, #7 + strh r0, [r2, #4] + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08055150: + cmp r4, #7 + bhi _08055164 + movs r0, #1 + bl OamMalloc + adds r2, r0, #0 + ldr r0, _080552AC @ =iwram_end + ldr r0, [r0] + cmp r0, r2 + bne _08055138 +_08055164: + bl sub_80535FC + bl UiGfxStackInit + ldr r0, _080552B0 @ =Task_8055730 + ldr r1, _080552B4 @ =TaskDestructor_8055C38 + str r1, [sp] + movs r1, #0x24 + ldr r2, _080552B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0x20] @ sp20 = t0 + ldrh r4, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r7, r4, r2 @ r7 = Strc_Ui_24* + movs r5, #0 + strh r5, [r7, #0x18] + ldr r3, _080552BC @ =0x03000020 + adds r0, r4, r3 + movs r1, #1 + strb r1, [r0] + strh r5, [r7, #0x1a] + ldr r0, _080552C0 @ =0x0000FFB0 + strh r0, [r7, #0xa] + strh r5, [r7, #0xc] + movs r0, #3 + strh r0, [r7, #0xe] + movs r0, #0x18 + strh r0, [r7, #8] + movs r2, #6 + strh r2, [r7, #0x10] + movs r3, #0 + strb r3, [r7, #0x16] + movs r0, #0xf + mov sl, r0 + mov r1, sl + strh r1, [r7, #0x12] + movs r0, #5 + strh r0, [r7, #0x14] + movs r0, #0x20 + bl VramMalloc + str r0, [r7, #0x1c] + str r0, [sp, #8] @ sp08 = vram0 + ldr r2, _080552C4 @ =0x03000021 + adds r4, r4, r2 + movs r3, #0 + strb r3, [r4] @ --- 0 + ldr r0, _080552C8 @ =Task_8055798 + str r5, [sp] + movs r1, #0x24 + ldr r2, _080552B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0x24] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + strh r5, [r7, #0x18] + ldr r2, _080552BC @ =0x03000020 + adds r0, r1, r2 + movs r3, #0 + strb r3, [r0] + movs r0, #1 + strh r0, [r7, #0x1a] + movs r0, #0x14 + strh r0, [r7, #0xa] + movs r2, #1 + strh r2, [r7, #0xe] + movs r0, #7 + strh r0, [r7, #0x10] + mov r3, sl + strh r3, [r7, #0x12] + movs r0, #1 + strb r0, [r7, #0x16] + movs r0, #0x10 + strh r0, [r7, #8] + ldr r2, _080552C4 @ =0x03000021 + adds r1, r1, r2 + movs r3, #0 + strb r3, [r1] + ldr r0, _080552CC @ =Task_8055904 + ldr r1, _080552B4 @ =TaskDestructor_8055C38 + str r1, [sp] + movs r1, #0x24 + ldr r2, _080552B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0x18] + ldrh r4, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r7, r4, r2 + strh r5, [r7, #0x18] + ldr r3, _080552BC @ =0x03000020 + adds r0, r4, r3 + movs r1, #1 + strb r1, [r0] + strh r5, [r7, #0x1a] + movs r0, #0xb4 + strh r0, [r7, #0xa] + movs r0, #0xa0 + strh r0, [r7, #0xc] + movs r2, #6 + strh r2, [r7, #0xe] + movs r0, #0xa + strh r0, [r7, #0x10] + strh r2, [r7, #0x12] + strb r1, [r7, #0x16] + strh r5, [r7, #8] + movs r0, #0xc + bl VramMalloc + str r0, [r7, #0x1c] + str r0, [sp, #0x14] + ldr r3, _080552C4 @ =0x03000021 + adds r4, r4, r3 + movs r0, #0 + strb r0, [r4] + ldr r0, _080552D0 @ =Task_8055998 + ldr r1, _080552B4 @ =TaskDestructor_8055C38 + str r1, [sp] + movs r1, #0x24 + ldr r2, _080552B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0x1c] + ldrh r0, [r0, #6] + movs r2, #0xc0 + lsls r2, r2, #0x12 + adds r7, r0, r2 + strh r5, [r7, #0x18] + ldr r3, _080552BC @ =0x03000020 + adds r0, r0, r3 + movs r1, #1 + strb r1, [r0] + strh r5, [r7, #0x1a] + ldr r3, _080552D4 @ =gCurrentLevel + ldrb r2, [r3] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080552E0 + ldr r0, _080552D8 @ =gFinalBossActive + ldrb r1, [r0] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r1, r0 + beq _080552E0 + cmp r2, #0xd + beq _080552E0 + ldr r0, _080552DC @ =0x0000FFF0 + strh r0, [r7, #0xa] + movs r0, #0x2a + b _080552E6 + .align 2, 0 +_080552A8: .4byte 0xFFFF8000 +_080552AC: .4byte iwram_end +_080552B0: .4byte Task_8055730 +_080552B4: .4byte TaskDestructor_8055C38 +_080552B8: .4byte 0x00002120 +_080552BC: .4byte 0x03000020 +_080552C0: .4byte 0x0000FFB0 +_080552C4: .4byte 0x03000021 +_080552C8: .4byte Task_8055798 +_080552CC: .4byte Task_8055904 +_080552D0: .4byte Task_8055998 +_080552D4: .4byte gCurrentLevel +_080552D8: .4byte gFinalBossActive +_080552DC: .4byte 0x0000FFF0 +_080552E0: + movs r0, #0xf0 + strh r0, [r7, #0xa] + movs r0, #0x7e +_080552E6: + strh r0, [r7, #0xc] + movs r0, #8 + strh r0, [r7, #0xe] + strh r0, [r7, #0x10] + movs r1, #6 + strh r1, [r7, #0x12] + movs r2, #1 + strb r2, [r7, #0x16] + strh r0, [r7, #8] + movs r0, #0x10 + bl VramMalloc + str r0, [r7, #0x1c] + str r0, [sp, #4] + adds r0, r7, #0 + adds r0, #0x21 + movs r3, #0 + strb r3, [r0] + ldr r0, _08055430 @ =Task_8055AA0 + ldr r1, _08055434 @ =TaskDestructor_8055C38 + mov sb, r1 + str r1, [sp] + movs r1, #0x24 + ldr r2, _08055438 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0x28] + ldrh r5, [r0, #6] + movs r4, #0xc0 + lsls r4, r4, #0x12 + adds r7, r5, r4 + movs r2, #0 + strh r2, [r7, #0x18] + ldr r3, _0805543C @ =0x03000020 + adds r0, r5, r3 + movs r1, #1 + strb r1, [r0] + strh r2, [r7, #0x1a] + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r7, #0xa] + movs r0, #0x72 + strh r0, [r7, #0xc] + movs r0, #4 + strh r0, [r7, #0xe] + movs r2, #9 + strh r2, [r7, #0x10] + movs r3, #6 + strh r3, [r7, #0x12] + strb r1, [r7, #0x16] + movs r0, #0 + strh r0, [r7, #8] + movs r0, #0x10 + bl VramMalloc + str r0, [r7, #0x1c] + str r0, [sp, #0xc] + ldr r1, _08055440 @ =0x03000021 + adds r5, r5, r1 + movs r2, #0 + strb r2, [r5] + ldr r0, _08055444 @ =Task_8055B18 + mov r3, sb + str r3, [sp] + movs r1, #0x24 + ldr r2, _08055438 @ =0x00002120 + movs r3, #0 + bl TaskCreate + adds r6, r0, #0 + ldrh r5, [r6, #6] + adds r7, r5, r4 + movs r0, #0 + strh r0, [r7, #0x18] + ldr r1, _0805543C @ =0x03000020 + adds r0, r5, r1 + movs r2, #1 + strb r2, [r0] + movs r3, #0 + strh r3, [r7, #0x1a] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r7, #0xa] + movs r0, #0x80 + strh r0, [r7, #0xc] + movs r0, #9 + strh r0, [r7, #0xe] + movs r1, #2 + mov r8, r1 + mov r2, r8 + strh r2, [r7, #0x10] + movs r3, #6 + strh r3, [r7, #0x12] + movs r0, #1 + strb r0, [r7, #0x16] + movs r1, #0 + strh r1, [r7, #8] + movs r0, #0x38 + bl VramMalloc + str r0, [r7, #0x1c] + str r0, [sp, #0x10] + ldr r2, _08055440 @ =0x03000021 + adds r5, r5, r2 + movs r3, #0 + strb r3, [r5] + ldr r0, _08055448 @ =Task_8055458 + movs r2, #0x84 + lsls r2, r2, #6 + ldr r1, _0805544C @ =TaskDestructor_StrcUI28_8055C4C + str r1, [sp] + movs r1, #0x28 @ sizeof(Struct_sub_80550F8) + movs r3, #0 + bl TaskCreate + adds r5, r0, #0 + ldrh r1, [r5, #6] + adds r4, r1, r4 + movs r0, #0 + strh r0, [r4, #0x24] + ldr r2, _08055450 @ =0x03000026 + adds r0, r1, r2 + movs r3, #1 + strb r3, [r0] + ldr r0, [sp, #0x20] @ r0 = t0 + str r0, [r4, #0xc] + ldr r2, [sp, #0x24] + str r2, [r4, #0x10] + ldr r3, [sp, #0x1c] + str r3, [r4, #0x14] + ldr r0, [sp, #0x28] + str r0, [r4, #0x18] + ldr r2, [sp, #0x18] + str r2, [r4, #0x1c] + str r6, [r4, #0x20] + movs r3, #0 + strh r3, [r4] + strh r3, [r4, #2] + mov r0, r8 + strh r0, [r4, #4] + strh r3, [r4, #6] + movs r0, #0x60 + strh r0, [r4, #8] + movs r2, #1 + strb r2, [r4, #0xa] + ldr r3, _08055454 @ =0x03000027 + adds r1, r1, r3 + movs r0, #0 + strb r0, [r1] + add r0, sp, #4 + bl LoadStageIntroGraphics + adds r0, r4, #0 + bl sub_805423C + adds r0, r5, #0 + add sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08055430: .4byte Task_8055AA0 +_08055434: .4byte TaskDestructor_8055C38 +_08055438: .4byte 0x00002120 +_0805543C: .4byte 0x03000020 +_08055440: .4byte 0x03000021 +_08055444: .4byte Task_8055B18 +_08055448: .4byte Task_8055458 +_0805544C: .4byte TaskDestructor_StrcUI28_8055C4C +_08055450: .4byte 0x03000026 +_08055454: .4byte 0x03000027 + +.syntax divided diff --git a/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc b/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc new file mode 100644 index 0000000000..6b1939c74a --- /dev/null +++ b/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc @@ -0,0 +1,177 @@ +.include "constants/constants.inc" + +.syntax unified + +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _0801D228 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + str r1, [sp] + movs r0, #0 + str r0, [sp, #0x18] + ldr r2, _0801D22C @ =gMultiplayerConnections + ldrb r0, [r2] + movs r1, #1 + b _0801D244 + .align 2, 0 +_0801D228: .4byte gCurTask +_0801D22C: .4byte gMultiplayerConnections +_0801D230: + ldr r0, [sp, #0x18] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x18] + cmp r0, #3 + bhi _0801D24A + ldrb r0, [r2] + ldr r3, [sp, #0x18] + asrs r0, r3 +_0801D244: + ands r0, r1 + cmp r0, #0 + bne _0801D230 +_0801D24A: + movs r0, #0x14 + ldr r4, [sp, #0x18] + cmp r4, #3 + beq _0801D25A + movs r0, #0 + cmp r4, #2 + bne _0801D25A + movs r0, #0x28 +_0801D25A: + movs r6, #0 + ldr r7, [sp, #0x18] + cmp r6, r7 + bhs _0801D336 + ldr r1, [sp] + adds r1, #0x60 + str r1, [sp, #0x10] + ldr r3, [sp] + adds r3, #0x62 + str r3, [sp, #0x14] + ldr r4, _0801D2DC @ =gLoadedSaveGame + str r4, [sp, #8] + str r0, [sp, #4] +_0801D274: + movs r5, #0 + lsls r7, r6, #1 + mov sl, r7 + lsls r0, r6, #2 + lsls r1, r6, #0x10 + mov sb, r1 + adds r3, r6, #1 + str r3, [sp, #0xc] + adds r0, r0, r6 + lsls r0, r0, #3 + ldr r4, [sp, #4] + adds r4, r4, r0 + mov r8, r4 +_0801D28E: + mov r7, sl + adds r0, r7, r6 + lsls r0, r0, #3 + ldr r1, [sp] + adds r2, r1, r0 + lsls r0, r5, #3 + ldr r3, [sp, #0x10] + ldrh r3, [r3] + adds r0, r0, r3 + strh r0, [r2, #0xa] + ldr r4, [sp, #0x14] + ldrh r0, [r4] + mov r7, r8 + adds r3, r0, r7 + strh r3, [r2, #0xc] + ldr r0, _0801D2E0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + mov r4, sb + lsrs r1, r4, #0x10 + cmp r0, r1 + bne _0801D2E8 + ldr r7, _0801D2E4 @ =gLoadedSaveGame + 0x10 + adds r1, r5, r7 + ldrb r0, [r1] + subs r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x19 + bhi _0801D2D2 + adds r0, r3, #0 + adds r0, #8 + strh r0, [r2, #0xc] +_0801D2D2: + adds r0, r1, #0 + adds r1, r2, #0 + bl sub_8052F78 + b _0801D320 + .align 2, 0 +_0801D2DC: .4byte gLoadedSaveGame +_0801D2E0: .4byte 0x04000128 +_0801D2E4: .4byte gLoadedSaveGame + 0x10 +_0801D2E8: + ldr r0, _0801D348 @ =gUnknown_03005008 + adds r1, r6, r0 + ldrb r0, [r1] + lsls r0, r0, #4 + adds r0, r0, r5 + mov ip, r0 + ldr r0, [sp, #8] + movs r7, #0xe1 + lsls r7, r7, #2 + adds r4, r0, r7 + mov r7, ip + adds r0, r7, r4 + ldrb r0, [r0] + subs r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x19 + bhi _0801D312 + adds r0, r3, #0 + adds r0, #8 + strh r0, [r2, #0xc] +_0801D312: + ldrb r0, [r1] + lsls r0, r0, #4 + adds r0, r0, r4 + adds r0, r0, r5 + adds r1, r2, #0 + bl sub_8052F78 +_0801D320: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _0801D28E + ldr r1, [sp, #0xc] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + ldr r3, [sp, #0x18] + cmp r6, r3 + blo _0801D274 +_0801D336: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801D348: .4byte gUnknown_03005008 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc b/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc new file mode 100644 index 0000000000..a3a3062ab3 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc @@ -0,0 +1,348 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + movs r5, #0 + ldr r0, _08061EE0 @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r2, r1 + mov sl, r0 + ldr r0, [r0, #0x10] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #0x30] + mov r3, sl + ldr r0, [r3, #0x14] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #0x34] + ldr r0, [r3, #0x18] + ldrh r0, [r0, #6] + adds r6, r0, r1 + ldr r7, [r3, #0x4c] + mov r8, r7 + adds r1, #0x58 + adds r0, r2, r1 + ldrb r0, [r0] + movs r3, #1 + add r8, r3 + mov r7, r8 + cmp r7, #0x3f + bne _08061EE4 + cmp r0, #1 + bne _08061EE4 + subs r1, #6 + adds r0, r2, r1 + strh r5, [r0] + adds r3, r1, #0 + adds r3, r3, r2 + mov sb, r3 + b _08061EEE + .align 2, 0 +_08061EE0: .4byte gCurTask +_08061EE4: + mov r1, sl + adds r1, #0x52 + movs r0, #0x14 + strh r0, [r1] + mov sb, r1 +_08061EEE: + mov r4, sl + adds r4, #0x50 + movs r0, #0x14 + strh r0, [r4] + mov r7, r8 + cmp r7, #0xa + bhi _08061F64 + add r1, sp, #0x2c + movs r0, #0x3e + strb r0, [r1] + subs r1, #1 + movs r0, #0 + strb r0, [r1] + ldr r2, _080620FC @ =gUiGraphics + movs r1, #0xd9 + lsls r1, r1, #3 + adds r0, r2, r1 + ldr r0, [r0] + str r0, [sp, #0x14] + ldr r3, _08062100 @ =0x000006CC + adds r0, r2, r3 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0x20 + str r0, [sp, #0x18] + str r0, [sp, #0x24] + add r1, sp, #0x28 + movs r0, #3 + strb r0, [r1] + ldr r0, _08062104 @ =0x06010020 + str r0, [sp, #0xc] + adds r1, #2 + movs r0, #0xc + strb r0, [r1] + movs r7, #0xda + lsls r7, r7, #3 + adds r0, r2, r7 + ldr r0, [r0] + str r0, [sp, #4] + mov r1, sp + adds r3, #8 + adds r0, r2, r3 + ldr r0, [r0] + strb r0, [r1, #8] + adds r7, #8 + adds r0, r2, r7 + ldr r0, [r0] + strb r0, [r1, #9] + adds r3, #8 + adds r0, r2, r3 + ldr r0, [r0] + strb r0, [r1, #0xa] + adds r7, #8 + adds r2, r2, r7 + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC +_08061F64: + mov r0, r8 + mov r1, sl + str r0, [r1, #0x4c] + movs r0, #0xb4 + lsls r0, r0, #2 + ldr r2, [sp, #0x30] + adds r1, r2, r0 + mov r3, r8 + str r3, [r1] + ldr r7, [sp, #0x34] + adds r0, r7, r0 + str r3, [r0] + str r3, [r6, #0x48] + mov r3, sl + adds r3, #0x55 + ldrb r2, [r3] + ldr r0, _08062108 @ =0x000002D7 + ldr r7, [sp, #0x30] + adds r1, r7, r0 + strb r2, [r1] + ldrb r1, [r3] + ldr r2, [sp, #0x34] + adds r0, r2, r0 + strb r1, [r0] + ldrb r0, [r3] + adds r3, r6, #0 + adds r3, #0x4f + strb r0, [r3] + mov r3, sb + movs r7, #0 + ldrsh r0, [r3, r7] + ldrh r1, [r4] + subs r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0xa + bl Div + ldrh r1, [r4] + adds r1, r1, r0 + strh r1, [r4] + movs r0, #0xb5 + lsls r0, r0, #2 + ldr r3, [sp, #0x30] + adds r2, r3, r0 + strh r1, [r2] + ldrh r1, [r4] + ldr r7, [sp, #0x34] + adds r0, r7, r0 + strh r1, [r0] + ldrh r1, [r4] + adds r0, r6, #0 + adds r0, #0x4c + strh r1, [r0] + mov r0, sl + adds r0, #0x57 + ldrb r1, [r0] + ldr r2, _0806210C @ =0x000002D9 + adds r0, r3, r2 + strb r1, [r0] + mov r0, sl + bl sub_805423C + ldr r1, _08062110 @ =gFlags + ldr r0, [r1] + movs r2, #4 + orrs r0, r2 + str r0, [r1] + ldr r1, _08062114 @ =gHBlankCopyTarget + ldr r0, _08062118 @ =0x04000010 + str r0, [r1] + ldr r0, _0806211C @ =gHBlankCopySize + strb r2, [r0] + ldr r0, _08062120 @ =gBgOffsetsHBlankPrimary + ldr r1, [r0] + movs r2, #0 + movs r4, #0 + movs r3, #0x14 +_08061FFE: + strh r4, [r1] + adds r1, #2 + strh r3, [r1] + adds r1, #2 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r2, #0xb + bls _08061FFE + movs r2, #0 + cmp r5, #0x9f + bhi _080620A4 + movs r0, #0x40 + mov r3, r8 + subs r3, r0, r3 + str r3, [sp, #0x38] +_08062024: + movs r3, #0 + adds r6, r2, #1 + mov sb, r6 + lsls r7, r2, #1 + str r7, [sp, #0x3c] + ldr r0, [sp, #0x38] + cmp r3, r0 + bhs _08062068 + cmp r5, #0x9f + bhi _08062068 + movs r6, #0 + mov ip, r6 + ldr r0, _08062124 @ =0x000001FF + adds r7, r0, #0 + movs r0, #0x40 + mov r6, r8 + subs r4, r0, r6 +_08062046: + mov r0, ip + strh r0, [r1] + adds r1, #2 + rsbs r0, r5, #0 + ands r0, r7 + strh r0, [r1] + adds r1, #2 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, r4 + bhs _08062068 + cmp r5, #0x9f + bls _08062046 +_08062068: + ldr r3, [sp, #0x3c] + adds r0, r3, r2 + lsls r0, r0, #3 + subs r0, r0, r5 + adds r0, #0x20 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + movs r2, #0 + cmp r5, #0x9f + bhi _0806209A + movs r4, #0 +_0806207E: + strh r4, [r1] + adds r1, #2 + strh r3, [r1] + adds r1, #2 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0x17 + bhi _0806209A + cmp r5, #0x9f + bls _0806207E +_0806209A: + mov r6, sb + lsls r0, r6, #0x18 + lsrs r2, r0, #0x18 + cmp r5, #0x9f + bls _08062024 +_080620A4: + mov r7, r8 + cmp r7, #0x3f + beq _080620B6 + ldr r0, _08062128 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080620EC +_080620B6: + ldr r1, _0806212C @ =gBgScrollRegs + movs r0, #0x14 + strh r0, [r1, #2] + movs r2, #0x3f + mov r0, sl + str r2, [r0, #0x4c] + movs r0, #0xb4 + lsls r0, r0, #2 + ldr r3, [sp, #0x30] + adds r1, r3, r0 + str r2, [r1] + ldr r6, [sp, #0x34] + adds r0, r6, r0 + str r2, [r0] + ldr r1, _08062130 @ =gBgCntRegs + ldr r0, _08062134 @ =0x00009D83 + strh r0, [r1] + ldr r2, _08062110 @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + ldr r0, _08062138 @ =gCurTask + ldr r1, [r0] + ldr r0, _0806213C @ =Task_8062140 + str r0, [r1, #8] +_080620EC: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080620FC: .4byte gUiGraphics +_08062100: .4byte 0x000006CC +_08062104: .4byte 0x06010020 +_08062108: .4byte 0x000002D7 +_0806210C: .4byte 0x000002D9 +_08062110: .4byte gFlags +_08062114: .4byte gHBlankCopyTarget +_08062118: .4byte 0x04000010 +_0806211C: .4byte gHBlankCopySize +_08062120: .4byte gBgOffsetsHBlankPrimary +_08062124: .4byte 0x000001FF +_08062128: .4byte gPressedKeys +_0806212C: .4byte gBgScrollRegs +_08062130: .4byte gBgCntRegs +_08062134: .4byte 0x00009D83 +_08062138: .4byte gCurTask +_0806213C: .4byte Task_8062140 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc b/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc new file mode 100644 index 0000000000..cfe9ae04de --- /dev/null +++ b/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc @@ -0,0 +1,131 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + ldr r0, _080665AC @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r4, r2, r1 + ldr r0, [r4, #0xc] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sl, r0 + ldr r0, [r4, #0x24] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp] + ldr r0, [r4, #0x28] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #4] + ldr r0, [r4, #0x2c] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #8] + ldr r0, [r4, #0x18] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sb, r0 + ldr r0, [r4, #0x14] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov r8, r0 + ldr r0, [r4, #0x1c] + ldrh r0, [r0, #6] + adds r7, r0, r1 + ldr r0, [r4, #0x20] + ldrh r0, [r0, #6] + adds r6, r0, r1 + ldr r0, _080665B0 @ =0x03000040 + adds r2, r2, r0 + movs r1, #0 + ldrsh r0, [r2, r1] + adds r5, r0, #1 + movs r0, #0xaf + lsls r0, r0, #2 + cmp r5, r0 + bls _080665CC + ldr r1, _080665B4 @ =0x0000FFFF + movs r0, #0 + bl TasksDestroyInPriorityRange + ldr r1, _080665B8 @ =gBackgroundsCopyQueueCursor + ldr r0, _080665BC @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _080665C0 @ =gBgSpritesCount + movs r0, #0 + strb r0, [r1] + ldr r1, _080665C4 @ =gVramGraphicsCopyCursor + ldr r0, _080665C8 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl CreateStaffCredits + b _08066614 + .align 2, 0 +_080665AC: .4byte gCurTask +_080665B0: .4byte 0x03000040 +_080665B4: .4byte 0x0000FFFF +_080665B8: .4byte gBackgroundsCopyQueueCursor +_080665BC: .4byte gBackgroundsCopyQueueIndex +_080665C0: .4byte gBgSpritesCount +_080665C4: .4byte gVramGraphicsCopyCursor +_080665C8: .4byte gVramGraphicsCopyQueueIndex +_080665CC: + ldr r0, _08066624 @ =0x0000029D + cmp r5, r0 + bls _080665F2 + adds r0, #1 + cmp r5, r0 + bne _080665EC + movs r1, #0 + strh r1, [r4] + movs r2, #1 + movs r0, #1 + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r1, [r4, #6] + movs r0, #0xc0 + strh r0, [r4, #8] + strb r2, [r4, #0xa] +_080665EC: + adds r0, r4, #0 + bl sub_805423C +_080665F2: + adds r0, r4, #0 + adds r0, #0x40 + strh r5, [r0] + mov r0, sl + strh r5, [r0, #0x3c] + ldr r0, [sp] + strh r5, [r0, #0x3c] + ldr r0, [sp, #4] + strh r5, [r0, #0x3c] + ldr r0, [sp, #8] + strh r5, [r0, #0x3c] + mov r1, sb + strh r5, [r1, #0x3c] + mov r0, r8 + strh r5, [r0, #0x3c] + strh r5, [r7, #0x3c] + strh r5, [r6, #0x3c] +_08066614: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08066624: .4byte 0x0000029D + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc b/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc new file mode 100644 index 0000000000..b64f9065f6 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc @@ -0,0 +1,290 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _08067CAC @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + mov sb, r0 + ldr r0, [r0, #0xc] + ldrh r0, [r0, #6] + adds r0, r0, r1 + str r0, [sp, #0x14] + mov r1, sb + ldr r0, [r1, #0x38] + adds r2, r0, #1 + str r2, [sp, #0x10] + subs r0, #0xb3 + cmp r0, #0x80 + bhi _08067D28 + lsrs r7, r0, #4 + movs r0, #2 + mov r8, r0 + movs r1, #0x1f + mov ip, r1 + movs r2, #0xf8 + lsls r2, r2, #7 + mov sl, r2 +_08067C64: + mov r0, r8 + lsls r2, r0, #1 + ldr r1, _08067CB0 @ =gUiPaletteSoundTestBox3 + adds r0, r2, r1 + ldrh r1, [r0] + movs r3, #0x1f + ands r3, r1 + movs r0, #0xf8 + lsls r0, r0, #2 + ands r0, r1 + lsrs r5, r0, #5 + mov r0, sl + ands r0, r1 + lsrs r4, r0, #0xa + ldr r0, _08067CB4 @ =gUiPaletteSoundTestBox4 + adds r2, r2, r0 + ldrh r1, [r2] + movs r2, #0x1f + ands r2, r1 + movs r0, #0xf8 + lsls r0, r0, #2 + ands r0, r1 + lsrs r6, r0, #5 + mov r0, sl + ands r0, r1 + lsrs r1, r0, #0xa + cmp r3, r2 + bls _08067CB8 + subs r0, r3, r2 + muls r0, r7, r0 + lsrs r0, r0, #3 + subs r3, r3, r0 + mov r2, ip + ands r3, r2 + b _08067CC4 + .align 2, 0 +_08067CAC: .4byte gCurTask +_08067CB0: .4byte gUiPaletteSoundTestBox3 +_08067CB4: .4byte gUiPaletteSoundTestBox4 +_08067CB8: + subs r0, r2, r3 + muls r0, r7, r0 + lsrs r0, r0, #3 + adds r3, r3, r0 + mov r0, ip + ands r3, r0 +_08067CC4: + cmp r5, r6 + bls _08067CD2 + subs r0, r5, r6 + muls r0, r7, r0 + lsrs r0, r0, #3 + subs r0, r5, r0 + b _08067CDA +_08067CD2: + subs r0, r6, r5 + muls r0, r7, r0 + lsrs r0, r0, #3 + adds r0, r5, r0 +_08067CDA: + mov r2, ip + ands r0, r2 + lsls r5, r0, #5 + cmp r4, r1 + bls _08067CF2 + subs r0, r4, r1 + muls r0, r7, r0 + lsrs r0, r0, #3 + subs r0, r4, r0 + mov r1, ip + ands r0, r1 + b _08067CFE +_08067CF2: + subs r0, r1, r4 + muls r0, r7, r0 + lsrs r0, r0, #3 + adds r0, r4, r0 + mov r2, ip + ands r0, r2 +_08067CFE: + lsls r4, r0, #0xa + orrs r3, r5 + orrs r4, r3 + mov r0, r8 + adds r0, #0xe0 + lsls r0, r0, #1 + ldr r1, _08067D88 @ =gObjPalette + adds r0, r0, r1 + strh r4, [r0] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #0xf + bls _08067C64 + ldr r2, _08067D8C @ =gFlags + ldr r0, [r2] + movs r1, #2 + orrs r0, r1 + str r0, [r2] +_08067D28: + movs r0, #0xc8 + lsls r0, r0, #1 + ldr r1, [sp, #0x10] + cmp r1, r0 + bhi _08067D34 + b _08067E32 +_08067D34: + movs r2, #0 + str r2, [sp, #0x10] + mov r8, r2 + mov r7, sb + adds r7, #0x2c + movs r4, #0 + ldr r6, _08067D90 @ =0x00000311 +_08067D42: + str r4, [sp] + ldr r0, _08067D94 @ =Task_8066D64 + movs r1, #0xb2 + lsls r1, r1, #1 + ldr r2, _08067D98 @ =0x00002120 + movs r3, #0 + bl TaskCreate + mov r1, r8 + lsls r2, r1, #2 + mov r1, sp + adds r1, r1, r2 + adds r1, #4 + str r0, [r1] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r3, r1, r0 + strh r4, [r3, #0x3c] + movs r0, #0xf + str r0, [r3, #0x4c] + str r4, [r3, #0x48] + mov r0, r8 + str r0, [r3, #0x44] + str r4, [r3, #0x40] + adds r5, r2, #0 + cmp r0, #0 + bne _08067DA4 + ldr r0, _08067D9C @ =0x06016060 + str r0, [r3, #4] + strh r6, [r3, #0xa] + ldr r2, _08067DA0 @ =0x03000020 + adds r0, r1, r2 + strb r4, [r0] + b _08067DD2 + .align 2, 0 +_08067D88: .4byte gObjPalette +_08067D8C: .4byte gFlags +_08067D90: .4byte 0x00000311 +_08067D94: .4byte Task_8066D64 +_08067D98: .4byte 0x00002120 +_08067D9C: .4byte 0x06016060 +_08067DA0: .4byte 0x03000020 +_08067DA4: + mov r0, r8 + cmp r0, #1 + bne _08067DC4 + ldr r0, _08067DBC @ =0x06016920 + str r0, [r3, #4] + strh r6, [r3, #0xa] + ldr r2, _08067DC0 @ =0x03000020 + adds r0, r1, r2 + mov r1, r8 + strb r1, [r0] + b _08067DD2 + .align 2, 0 +_08067DBC: .4byte 0x06016920 +_08067DC0: .4byte 0x03000020 +_08067DC4: + ldr r0, _08067E54 @ =0x06016E20 + str r0, [r3, #4] + strh r6, [r3, #0xa] + ldr r2, _08067E58 @ =0x03000020 + adds r1, r1, r2 + movs r0, #2 + strb r0, [r1] +_08067DD2: + movs r0, #0xb4 + strh r0, [r3, #0x16] + movs r0, #0x50 + strh r0, [r3, #0x18] + strh r4, [r3, #0x1a] + strh r4, [r3, #8] + strh r4, [r3, #0x14] + strh r4, [r3, #0x1c] + adds r1, r3, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + adds r1, #1 + movs r0, #0x10 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x25 + strb r4, [r0] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r3, #0x28] + movs r0, #0x80 + lsls r0, r0, #5 + str r0, [r3, #0x10] + adds r0, r3, #0 + bl UpdateSpriteAnimation + adds r1, r7, r5 + mov r0, sp + adds r0, r0, r5 + adds r0, #4 + ldr r0, [r0] + str r0, [r1] + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r0, #2 + bls _08067D42 + mov r0, sb + ldr r1, [r0, #0xc] + ldr r0, _08067E5C @ =Task_8068004 + str r0, [r1, #8] + ldr r0, _08067E60 @ =gCurTask + ldr r1, [r0] + ldr r0, _08067E64 @ =Task_8067E68 + str r0, [r1, #8] +_08067E32: + mov r0, sb + bl sub_805423C + ldr r1, [sp, #0x10] + mov r2, sb + str r1, [r2, #0x38] + ldr r0, [sp, #0x14] + str r1, [r0, #0x3c] + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08067E54: .4byte 0x06016E20 +_08067E58: .4byte 0x03000020 +_08067E5C: .4byte Task_8068004 +_08067E60: .4byte gCurTask +_08067E64: .4byte Task_8067E68 +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc b/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc new file mode 100644 index 0000000000..99593aa459 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc @@ -0,0 +1,951 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x58 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + movs r1, #100 + bl Div + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0805BCB8 + movs r0, #3 + str r0, [sp, #0x38] + b _0805BCCE +_0805BCB8: + ldr r0, [sp, #0x30] + movs r1, #10 + bl Div + lsls r0, r0, #0x18 + movs r1, #1 + str r1, [sp, #0x38] + cmp r0, #0 + beq _0805BCCE + movs r2, #2 + str r2, [sp, #0x38] +_0805BCCE: + mov r3, sp + adds r3, #0x2c + str r3, [sp, #0x3c] + movs r0, #0x32 + strb r0, [r3] + mov r0, sp + adds r0, #0x2b + str r0, [sp, #0x40] + movs r0, #4 + ldr r1, [sp, #0x40] + strb r0, [r1] + ldr r7, _0805BE00 @ =gUiGraphics + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + str r0, [sp, #0x14] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0xa0 + lsls r0, r0, #4 + str r0, [sp, #0x18] + movs r2, #0x20 + str r2, [sp, #0x24] + add r3, sp, #0x28 + mov sl, r3 + movs r0, #6 + strb r0, [r3] + ldr r0, _0805BE04 @ =0x06015DA0 + str r0, [sp, #0xc] + mov r5, sp + adds r5, #0x2a + movs r1, #0xd + strb r1, [r5] + ldr r2, [sp, #0x3c] + ldrb r1, [r2] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r2, sp + ldr r3, [sp, #0x3c] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + mov r0, sp + bl sub_80528AC + movs r0, #0x10 + ldr r1, [sp, #0x3c] + strb r0, [r1] + movs r0, #8 + ldr r2, [sp, #0x40] + strb r0, [r2] + movs r3, #0xe0 + lsls r3, r3, #1 + adds r0, r7, r3 + ldr r0, [r0] + str r0, [sp, #0x14] + movs r1, #0xe2 + lsls r1, r1, #1 + adds r0, r7, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #0x18] + movs r2, #0x20 + str r2, [sp, #0x24] + movs r0, #6 + mov r3, sl + strb r0, [r3] + ldr r0, _0805BE08 @ =0x060177A0 + str r0, [sp, #0xc] + movs r1, #0xd + strb r1, [r5] + movs r2, #0xe4 + lsls r2, r2, #1 + adds r0, r7, r2 + ldr r0, [r0] + str r0, [sp, #4] + mov r1, sp + movs r3, #0xe6 + lsls r3, r3, #1 + adds r0, r7, r3 + ldr r0, [r0] + strb r0, [r1, #8] + adds r2, #8 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #9] + adds r3, #8 + adds r0, r7, r3 + ldr r0, [r0] + strb r0, [r1, #0xa] + adds r2, #8 + adds r0, r7, r2 + ldr r0, [r0] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + ldr r3, [sp, #0x38] + cmp r3, #1 + bne _0805BE0C + movs r0, #0x2f + b _0805BE1C + .align 2, 0 +_0805BE00: .4byte gUiGraphics +_0805BE04: .4byte 0x06015DA0 +_0805BE08: .4byte 0x060177A0 +_0805BE0C: + ldr r2, [sp, #0x38] + cmp r2, #2 + bne _0805BE1A + movs r0, #0x30 + add r3, sp, #0x2c + strb r0, [r3] + b _0805BE20 +_0805BE1A: + movs r0, #0x31 +_0805BE1C: + add r1, sp, #0x2c + strb r0, [r1] +_0805BE20: + mov r2, sp + adds r2, #0x2b + str r2, [sp, #0x44] + movs r0, #2 + strb r0, [r2] + ldr r7, _0805C160 @ =gUiGraphics + add r6, sp, #0x2c + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + str r0, [sp, #0x14] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x20] + movs r0, #0xe0 + lsls r0, r0, #4 + str r0, [sp, #0x18] + movs r3, #0x20 + str r3, [sp, #0x24] + mov r0, sp + adds r0, #0x28 + str r0, [sp, #0x48] + movs r1, #6 + strb r1, [r0] + ldr r0, _0805C164 @ =0x060167A0 + str r0, [sp, #0xc] + subs r2, #1 + str r2, [sp, #0x4c] + movs r3, #0xd + strb r3, [r2] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r2, sp + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r6] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + mov r0, sp + bl sub_80528AC + ldr r0, [sp, #0x38] + cmp r0, #3 + beq _0805BED6 + b _0805C19C +_0805BED6: + movs r1, #1 + str r1, [sp, #0x34] + ldr r0, [sp, #0x30] + movs r1, #100 + bl Div + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [sp, #0x30] + movs r1, #100 + bl Mod + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + cmp r5, #0 + beq _0805BFB2 + movs r2, #0 + str r2, [sp, #0x34] + movs r3, #0x20 + strb r3, [r6] + add r0, sp, #0x38 + ldrb r1, [r0] + ldr r0, [sp, #0x44] + strb r1, [r0] + lsls r4, r5, #7 + ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r1] + adds r0, r0, r4 + str r0, [sp, #0x14] + ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r2] + str r0, [sp, #0x20] + ldr r0, _0805C170 @ =0x060169E0 + str r0, [sp, #0xc] + movs r3, #0x40 + str r3, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r2, #6 + ldr r1, [sp, #0x48] + strb r2, [r1] + movs r0, #0xd + ldr r3, [sp, #0x4c] + strb r0, [r3] + ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + movs r0, #0xe5 + lsls r0, r0, #2 + adds r5, r7, r0 + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r2, _0805C180 @ =gUiGraphics + ((32 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r3, #0x20 + strb r3, [r6] + add r0, sp, #0x38 + ldrb r1, [r0] + ldr r0, [sp, #0x44] + strb r1, [r0] + ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r1] + adds r0, r0, r4 + adds r0, #0x40 + str r0, [sp, #0x14] + ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r2] + str r0, [sp, #0x20] + ldr r0, _0805C184 @ =0x06016A60 + str r0, [sp, #0xc] + movs r3, #0x40 + str r3, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r2, #6 + ldr r1, [sp, #0x48] + strb r2, [r1] + movs r0, #0xd + ldr r3, [sp, #0x4c] + strb r0, [r3] + ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r2, _0805C180 @ =gUiGraphics + ((32 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC +_0805BFB2: + ldr r0, [sp, #0x30] + movs r1, #10 + bl Div + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [sp, #0x30] + movs r1, #10 + bl Mod + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + cmp r5, #0 + bne _0805BFD6 + ldr r3, [sp, #0x34] + cmp r3, #0 + bne _0805C094 +_0805BFD6: + movs r0, #0 + str r0, [sp, #0x34] + movs r1, #0x20 + strb r1, [r6] + add r2, sp, #0x38 + ldrb r3, [r2] + ldr r2, [sp, #0x44] + strb r3, [r2] + lsls r5, r5, #7 + mov sb, r5 + ldr r3, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r3] + add r0, sb + str r0, [sp, #0x14] + ldr r1, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r1] + str r0, [sp, #0x20] + ldr r0, _0805C188 @ =0x06016BA0 + str r0, [sp, #0xc] + movs r2, #0x40 + str r2, [sp, #0x18] + movs r3, #0x20 + str r3, [sp, #0x24] + movs r1, #6 + ldr r0, [sp, #0x48] + strb r1, [r0] + movs r3, #0xd + ldr r2, [sp, #0x4c] + strb r3, [r2] + ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + movs r0, #0xe5 + lsls r0, r0, #2 + adds r5, r7, r0 + ldr r0, [r5] + strb r0, [r1, #0xa] + movs r2, #0xe6 + lsls r2, r2, #2 + adds r7, r7, r2 + ldr r0, [r7] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r3, #0x20 + strb r3, [r6] + add r0, sp, #0x38 + ldrb r1, [r0] + ldr r0, [sp, #0x44] + strb r1, [r0] + ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r1] + add r0, sb + adds r0, #0x40 + str r0, [sp, #0x14] + ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r2] + str r0, [sp, #0x20] + ldr r0, _0805C18C @ =0x06016C20 + str r0, [sp, #0xc] + movs r3, #0x40 + str r3, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r2, #6 + ldr r1, [sp, #0x48] + strb r2, [r1] + movs r0, #0xd + ldr r3, [sp, #0x4c] + strb r0, [r3] + ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r0, [r7] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC +_0805C094: + ldr r1, [sp, #0x30] + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0805C0A6 + ldr r2, [sp, #0x34] + cmp r2, #0 + beq _0805C0A6 + b _0805C416 +_0805C0A6: + movs r3, #0x20 + add r0, sp, #0x2c + strb r3, [r0] + movs r1, #3 + movs r2, #0x2b + add r2, sp + strb r1, [r2] + ldr r2, _0805C160 @ =gUiGraphics + lsls r7, r5, #7 + ldr r3, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r3] + adds r0, r0, r7 + str r0, [sp, #0x14] + ldr r1, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r1] + str r0, [sp, #0x20] + ldr r0, _0805C190 @ =0x06016BE0 + str r0, [sp, #0xc] + movs r3, #0x40 + str r3, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r1, #6 + add r3, sp, #0x28 + strb r1, [r3] + movs r0, #0xd + movs r1, #0x2a + add r1, sp + strb r0, [r1] + ldr r3, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r3] + str r0, [sp, #4] + mov r1, sp + ldr r3, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r3] + strb r0, [r1, #8] + ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + ldr r3, _0805C194 @ =gUiGraphics + ((32 * 0x1C) + 0x14) + ldr r0, [r3] + strb r0, [r1, #0xa] + movs r0, #0xe6 + lsls r0, r0, #2 + adds r5, r2, r0 + ldr r0, [r5] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #0x20 + add r2, sp, #0x2c + strb r1, [r2] + movs r3, #3 + movs r0, #0x2b + add r0, sp + strb r3, [r0] + ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r1] + adds r0, r0, r7 + adds r0, #0x40 + str r0, [sp, #0x14] + ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r2] + str r0, [sp, #0x20] + ldr r0, _0805C198 @ =0x06016C60 + str r0, [sp, #0xc] + movs r3, #0x40 + str r3, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r1, #6 + add r2, sp, #0x28 + strb r1, [r2] + movs r3, #0xd + movs r0, #0x2a + add r0, sp + strb r3, [r0] + ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + ldr r2, _0805C194 @ =gUiGraphics + ((32 * 0x1C) + 0x14) + ldr r0, [r2] + strb r0, [r1, #0xa] + ldr r0, [r5] + b _0805C318 + .align 2, 0 +_0805C160: .4byte gUiGraphics +_0805C164: .4byte 0x060167A0 +_0805C168: .4byte gUiGraphics + ((32 * 0x1C) + 0) +_0805C16C: .4byte gUiGraphics + ((32 * 0x1C) + 4) +_0805C170: .4byte 0x060169E0 +_0805C174: .4byte gUiGraphics + ((32 * 0x1C) + 8) +_0805C178: .4byte gUiGraphics + ((32 * 0x1C) + 0xC) +_0805C17C: .4byte gUiGraphics + ((32 * 0x1C) + 0x10) +_0805C180: .4byte gUiGraphics + ((32 * 0x1C) + 0x18) +_0805C184: .4byte 0x06016A60 +_0805C188: .4byte 0x06016BA0 +_0805C18C: .4byte 0x06016C20 +_0805C190: .4byte 0x06016BE0 +_0805C194: .4byte gUiGraphics + ((32 * 0x1C) + 0x14) +_0805C198: .4byte 0x06016C60 +_0805C19C: + ldr r3, [sp, #0x38] + cmp r3, #2 + beq _0805C1A4 + b _0805C34C +_0805C1A4: + ldr r0, [sp, #0x30] + movs r1, #10 + bl Div + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + ldr r0, [sp, #0x30] + movs r1, #10 + bl Mod + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + movs r0, #0x20 + strb r0, [r6] + movs r2, #3 + ldr r1, [sp, #0x44] + strb r2, [r1] + lsls r5, r5, #7 + mov r8, r5 + ldr r3, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r3] + add r0, r8 + str r0, [sp, #0x14] + ldr r1, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r1] + str r0, [sp, #0x20] + ldr r0, _0805C32C @ =0x060169E0 + str r0, [sp, #0xc] + movs r2, #0x40 + str r2, [sp, #0x18] + movs r3, #0x20 + str r3, [sp, #0x24] + movs r1, #6 + ldr r0, [sp, #0x48] + strb r1, [r0] + movs r3, #0xd + ldr r2, [sp, #0x4c] + strb r3, [r2] + ldr r1, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + movs r0, #0xe5 + lsls r0, r0, #2 + adds r5, r7, r0 + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r2, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r3, #0x20 + strb r3, [r6] + movs r1, #3 + ldr r0, [sp, #0x44] + strb r1, [r0] + ldr r2, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r2] + add r0, r8 + adds r0, #0x40 + str r0, [sp, #0x14] + ldr r3, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r3] + str r0, [sp, #0x20] + ldr r0, _0805C340 @ =0x06016A60 + str r0, [sp, #0xc] + movs r0, #0x40 + str r0, [sp, #0x18] + movs r1, #0x20 + str r1, [sp, #0x24] + movs r3, #6 + ldr r2, [sp, #0x48] + strb r3, [r2] + movs r1, #0xd + ldr r0, [sp, #0x4c] + strb r1, [r0] + ldr r2, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r2] + str r0, [sp, #4] + mov r1, sp + ldr r3, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r3] + strb r0, [r1, #8] + ldr r2, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r3, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) + ldr r0, [r3] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r0, #0x20 + strb r0, [r6] + movs r2, #3 + ldr r1, [sp, #0x44] + strb r2, [r1] + ldr r3, [sp, #0x30] + lsls r7, r3, #7 + ldr r1, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r1] + adds r0, r0, r7 + str r0, [sp, #0x14] + ldr r2, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r2] + str r0, [sp, #0x20] + ldr r0, _0805C344 @ =0x06016BA0 + str r0, [sp, #0xc] + movs r3, #0x40 + str r3, [sp, #0x18] + movs r0, #0x20 + str r0, [sp, #0x24] + movs r2, #6 + ldr r1, [sp, #0x48] + strb r2, [r1] + movs r0, #0xd + ldr r3, [sp, #0x4c] + strb r0, [r3] + ldr r1, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r1] + str r0, [sp, #4] + mov r1, sp + ldr r2, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r2] + strb r0, [r1, #8] + ldr r3, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r3] + strb r0, [r1, #9] + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r2, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) + ldr r0, [r2] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r3, #0x20 + strb r3, [r6] + movs r1, #3 + ldr r0, [sp, #0x44] + strb r1, [r0] + ldr r2, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r2] + adds r0, r0, r7 + adds r0, #0x40 + str r0, [sp, #0x14] + ldr r3, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r3] + str r0, [sp, #0x20] + ldr r0, _0805C348 @ =0x06016C20 + str r0, [sp, #0xc] + movs r0, #0x40 + str r0, [sp, #0x18] + movs r1, #0x20 + str r1, [sp, #0x24] + movs r3, #6 + ldr r2, [sp, #0x48] + strb r3, [r2] + movs r1, #0xd + ldr r0, [sp, #0x4c] + strb r1, [r0] + ldr r2, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r2] + str r0, [sp, #4] + mov r1, sp + ldr r3, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r3] + strb r0, [r1, #8] + ldr r2, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r0, [r5] + strb r0, [r1, #0xa] + ldr r3, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) + ldr r0, [r3] +_0805C318: + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + b _0805C416 + .align 2, 0 +_0805C324: .4byte gUiGraphics + ((32 * 0x1C) + 0) +_0805C328: .4byte gUiGraphics + ((32 * 0x1C) + 4) +_0805C32C: .4byte 0x060169E0 +_0805C330: .4byte gUiGraphics + ((32 * 0x1C) + 8) +_0805C334: .4byte gUiGraphics + ((32 * 0x1C) + 0xC) +_0805C338: .4byte gUiGraphics + ((32 * 0x1C) + 0x10) +_0805C33C: .4byte gUiGraphics + ((32 * 0x1C) + 0x18) +_0805C340: .4byte 0x06016A60 +_0805C344: .4byte 0x06016BA0 +_0805C348: .4byte 0x06016C20 +_0805C34C: + ldr r0, [sp, #0x30] + lsls r0, r0, #0x18 + str r0, [sp, #0x50] + movs r1, #0x20 + add r2, sp, #0x2c + strb r1, [r2] + movs r3, #3 + movs r0, #0x2b + add r0, sp + strb r3, [r0] + ldr r1, [sp, #0x50] + lsrs r1, r1, #0x11 + str r1, [sp, #0x54] + ldr r2, _0805C428 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r2] + adds r0, r0, r1 + str r0, [sp, #0x14] + ldr r3, _0805C42C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r3] + str r0, [sp, #0x20] + ldr r0, _0805C430 @ =0x060169E0 + str r0, [sp, #0xc] + movs r0, #0x40 + str r0, [sp, #0x18] + movs r1, #0x20 + str r1, [sp, #0x24] + movs r2, #6 + add r3, sp, #0x28 + strb r2, [r3] + movs r0, #0xd + movs r1, #0x2a + add r1, sp + strb r0, [r1] + ldr r2, _0805C434 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r2] + str r0, [sp, #4] + mov r1, sp + ldr r3, _0805C438 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r3] + strb r0, [r1, #8] + ldr r2, _0805C43C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r3, _0805C440 @ =gUiGraphics + ((32 * 0x1C) + 0x14) + ldr r0, [r3] + strb r0, [r1, #0xa] + movs r0, #0xe6 + lsls r0, r0, #2 + adds r5, r7, r0 + ldr r0, [r5] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC + movs r1, #0x20 + add r2, sp, #0x2c + strb r1, [r2] + movs r3, #3 + movs r0, #0x2b + add r0, sp + strb r3, [r0] + ldr r1, _0805C428 @ =gUiGraphics + ((32 * 0x1C) + 0) + ldr r0, [r1] + ldr r2, [sp, #0x54] + adds r0, r0, r2 + adds r0, #0x40 + str r0, [sp, #0x14] + ldr r3, _0805C42C @ =gUiGraphics + ((32 * 0x1C) + 4) + ldr r0, [r3] + str r0, [sp, #0x20] + ldr r0, _0805C444 @ =0x06016A60 + str r0, [sp, #0xc] + movs r0, #0x40 + str r0, [sp, #0x18] + movs r1, #0x20 + str r1, [sp, #0x24] + movs r2, #6 + add r3, sp, #0x28 + strb r2, [r3] + movs r0, #0xd + movs r1, #0x2a + add r1, sp + strb r0, [r1] + ldr r2, _0805C434 @ =gUiGraphics + ((32 * 0x1C) + 8) + ldr r0, [r2] + str r0, [sp, #4] + mov r1, sp + ldr r3, _0805C438 @ =gUiGraphics + ((32 * 0x1C) + 0xC) + ldr r0, [r3] + strb r0, [r1, #8] + ldr r2, _0805C43C @ =gUiGraphics + ((32 * 0x1C) + 0x10) + ldr r0, [r2] + strb r0, [r1, #9] + ldr r3, _0805C440 @ =gUiGraphics + ((32 * 0x1C) + 0x14) + ldr r0, [r3] + strb r0, [r1, #0xa] + ldr r0, [r5] + strb r0, [r1, #0xb] + mov r0, sp + bl sub_80528AC +_0805C416: + add sp, #0x58 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805C428: .4byte gUiGraphics + ((32 * 0x1C) + 0) +_0805C42C: .4byte gUiGraphics + ((32 * 0x1C) + 4) +_0805C430: .4byte 0x060169E0 +_0805C434: .4byte gUiGraphics + ((32 * 0x1C) + 8) +_0805C438: .4byte gUiGraphics + ((32 * 0x1C) + 0xC) +_0805C43C: .4byte gUiGraphics + ((32 * 0x1C) + 0x10) +_0805C440: .4byte gUiGraphics + ((32 * 0x1C) + 0x14) +_0805C444: .4byte 0x06016A60 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc b/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc new file mode 100644 index 0000000000..69d2c33eaf --- /dev/null +++ b/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc @@ -0,0 +1,563 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + bl sub_80535FC + ldr r1, _0805D0B0 @ =gBgScrollRegs + movs r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + strh r0, [r1, #4] + strh r0, [r1, #6] + strh r0, [r1, #8] + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r0, [r1, #0xe] + ldr r0, _0805D0B4 @ =gSpecialStageCollectedRings + ldr r1, _0805D0B8 @ =gSpecialStageTargetRings + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + blo _0805D0DA + movs r0, #0x2f + bl m4aSongNumStart + movs r0, #1 + str r0, [sp, #0x24] + ldr r1, _0805D0BC @ =0x00002710 + str r1, [sp, #0x20] + ldr r3, _0805D0C0 @ =gLoadedSaveGame + ldrb r2, [r3, #0x1d] + ldr r1, _0805D0C4 @ =gUnknown_08487134 + ldr r0, _0805D0C8 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + asrs r0, r1 + ldr r4, [sp, #0x24] + ands r0, r4 + cmp r0, #0 + beq _0805D0CC + movs r0, #1 + mov r8, r0 + b _0805D0EC + .align 2, 0 +_0805D0B0: .4byte gBgScrollRegs +_0805D0B4: .4byte gSpecialStageCollectedRings +_0805D0B8: .4byte gSpecialStageTargetRings +_0805D0BC: .4byte 0x00002710 +_0805D0C0: .4byte gLoadedSaveGame +_0805D0C4: .4byte gUnknown_08487134 +_0805D0C8: .4byte gCurrentLevel +_0805D0CC: + ldr r0, [sp, #0x24] + lsls r0, r1 + orrs r2, r0 + strb r2, [r3, #0x1d] + movs r1, #0 + mov r8, r1 + b _0805D0EC +_0805D0DA: + movs r0, #0x2e + bl m4aSongNumStart + movs r2, #0 + mov r8, r2 + movs r3, #0 + str r3, [sp, #0x24] + movs r4, #0 + str r4, [sp, #0x20] +_0805D0EC: + ldr r0, _0805D164 @ =gLoadedSaveGame + ldrb r0, [r0, #0x1d] + mov sb, r0 + ldr r0, _0805D168 @ =gSpecialStageCollectedRings + ldrh r0, [r0] + mov sl, r0 + ldr r0, _0805D16C @ =gUnknown_0300507C + ldrb r0, [r0] + add r0, r8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + ldr r1, _0805D170 @ =sa2__gUnknown_0300543C + ldrb r0, [r1] + add r0, r8 + strb r0, [r1] + ldr r1, _0805D174 @ =gLevelScore + ldr r6, [r1] + movs r0, #0x64 + mov r2, sl + muls r2, r0, r2 + adds r0, r2, #0 + ldr r3, [sp, #0x20] + adds r0, r3, r0 + adds r0, r6, r0 + str r0, [r1] + ldr r4, _0805D178 @ =0x0000C350 + adds r1, r4, #0 + bl Div + adds r5, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl Div + cmp r5, r0 + beq _0805D146 + ldr r0, _0805D17C @ =gGameMode + ldrb r0, [r0] + cmp r0, #0 + bne _0805D146 + ldr r1, _0805D180 @ =gNumLives + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0805D146: + movs r0, #0x64 + mov r4, sl + muls r4, r0, r4 + adds r0, r4, #0 + ldr r1, [sp, #0x20] + cmp r1, r0 + bls _0805D184 + adds r0, r1, #0 + movs r1, #0x64 + bl Div + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + b _0805D186 + .align 2, 0 +_0805D164: .4byte gLoadedSaveGame +_0805D168: .4byte gSpecialStageCollectedRings +_0805D16C: .4byte gUnknown_0300507C +_0805D170: .4byte sa2__gUnknown_0300543C +_0805D174: .4byte gLevelScore +_0805D178: .4byte 0x0000C350 +_0805D17C: .4byte gGameMode +_0805D180: .4byte gNumLives +_0805D184: + mov r7, sl +_0805D186: + bl UiGfxStackInit + ldr r0, _0805D4B4 @ =Task_805D684 + movs r5, #0 + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0xc] + ldrh r1, [r0, #6] + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r2, r1, r3 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + movs r0, #0xf0 + strh r0, [r2, #0xa] + movs r0, #0x7e + strh r0, [r2, #0xc] + movs r4, #8 + strh r4, [r2, #0xe] + strh r4, [r2, #0x10] + movs r0, #0xe + strh r0, [r2, #0x12] + movs r3, #1 + strb r3, [r2, #0x16] + movs r0, #0xa + strh r0, [r2, #8] + ldr r4, _0805D4BC @ =0x03000028 + adds r0, r1, r4 + add r3, sp, #0x24 + ldrb r3, [r3] + strb r3, [r0] + adds r4, #1 + adds r0, r1, r4 + mov r3, sb + strb r3, [r0] + adds r4, #1 + adds r1, r1, r4 + mov r0, r8 + strb r0, [r1] + mov r1, sl + strh r1, [r2, #0x26] + ldr r3, [sp, #0x20] + str r3, [r2, #0x18] + movs r4, #0 + str r4, [r2, #0x1c] + ldr r0, _0805D4C0 @ =Task_805D720 + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #8] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r2, r1, r0 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + movs r3, #0x80 + lsls r3, r3, #1 + strh r3, [r2, #0xa] + movs r0, #0x80 + strh r0, [r2, #0xc] + movs r0, #9 + strh r0, [r2, #0xe] + movs r4, #2 + strh r4, [r2, #0x10] + movs r0, #0xf + strh r0, [r2, #0x12] + movs r0, #1 + strb r0, [r2, #0x16] + strh r5, [r2, #8] + ldr r3, _0805D4BC @ =0x03000028 + adds r0, r1, r3 + add r4, sp, #0x24 + ldrb r4, [r4] + strb r4, [r0] + adds r3, #1 + adds r0, r1, r3 + mov r4, sb + strb r4, [r0] + ldr r0, _0805D4C4 @ =0x0300002A + adds r1, r1, r0 + mov r3, r8 + strb r3, [r1] + mov r4, sl + strh r4, [r2, #0x26] + ldr r0, [sp, #0x20] + str r0, [r2, #0x18] + movs r1, #0 + str r1, [r2, #0x1c] + ldr r0, _0805D4C8 @ =Task_805D8EC + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + str r0, [sp, #0x10] + ldrh r1, [r0, #6] + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r2, r1, r3 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + movs r4, #0x80 + lsls r4, r4, #1 + strh r4, [r2] + strh r5, [r2, #2] + strh r5, [r2, #4] + strh r5, [r2, #6] + movs r6, #0x39 + strh r6, [r2, #0xa] + movs r0, #0x49 + strh r0, [r2, #0xc] + movs r4, #3 + strh r4, [r2, #0xe] + strh r4, [r2, #0x10] + movs r0, #0xe + strh r0, [r2, #0x12] + movs r3, #1 + strb r3, [r2, #0x16] + movs r0, #0x18 + strh r0, [r2, #8] + ldr r0, _0805D4BC @ =0x03000028 + add r3, sp, #0x24 + ldrb r3, [r3] + strb r3, [r0, r1] + ldr r3, _0805D4CC @ =0x03000029 + adds r0, r1, r3 + mov r3, sb + strb r3, [r0] + ldr r0, _0805D4C4 @ =0x0300002A + adds r1, r1, r0 + mov r3, r8 + strb r3, [r1] + mov r0, sl + strh r0, [r2, #0x26] + ldr r1, [sp, #0x20] + str r1, [r2, #0x18] + movs r3, #0 + str r3, [r2, #0x1c] + ldr r0, _0805D4D0 @ =Task_805DB04 + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + bl TaskCreate + str r0, [sp, #0x14] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r2, r1, r0 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + movs r3, #0x80 + lsls r3, r3, #1 + strh r3, [r2] + strh r5, [r2, #2] + strh r5, [r2, #4] + movs r0, #1 + strh r0, [r2, #6] + strh r6, [r2, #0xa] + strh r6, [r2, #0xc] + strh r4, [r2, #0xe] + strh r4, [r2, #0x10] + movs r3, #0xe + strh r3, [r2, #0x12] + strb r0, [r2, #0x16] + movs r0, #0x10 + strh r0, [r2, #8] + ldr r3, _0805D4BC @ =0x03000028 + add r0, sp, #0x24 + ldrb r0, [r0] + strb r0, [r3, r1] + adds r3, #1 + adds r0, r1, r3 + mov r3, sb + strb r3, [r0] + ldr r0, _0805D4C4 @ =0x0300002A + adds r1, r1, r0 + mov r3, r8 + strb r3, [r1] + mov r0, sl + strh r0, [r2, #0x26] + ldr r1, [sp, #0x20] + str r1, [r2, #0x18] + movs r3, #0 + str r3, [r2, #0x1c] + ldr r0, _0805D4D4 @ =Task_805DD10 + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + bl TaskCreate + str r0, [sp, #0x18] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r2, r1, r0 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + movs r3, #0x80 + lsls r3, r3, #1 + strh r3, [r2] + strh r5, [r2, #2] + strh r5, [r2, #4] + movs r0, #2 + strh r0, [r2, #6] + strh r6, [r2, #0xa] + strh r6, [r2, #0xc] + strh r4, [r2, #0xe] + strh r4, [r2, #0x10] + movs r3, #0xe + strh r3, [r2, #0x12] + movs r0, #1 + strb r0, [r2, #0x16] + movs r3, #8 + strh r3, [r2, #8] + ldr r0, _0805D4BC @ =0x03000028 + add r3, sp, #0x24 + ldrb r3, [r3] + strb r3, [r0, r1] + ldr r3, _0805D4CC @ =0x03000029 + adds r0, r1, r3 + mov r3, sb + strb r3, [r0] + ldr r0, _0805D4C4 @ =0x0300002A + adds r1, r1, r0 + mov r3, r8 + strb r3, [r1] + mov r0, sl + strh r0, [r2, #0x26] + ldr r1, [sp, #0x20] + str r1, [r2, #0x18] + movs r3, #0 + str r3, [r2, #0x1c] + ldr r0, _0805D4D8 @ =Task_805DF2C + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + bl TaskCreate + str r0, [sp, #0x1c] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r2, r1, r0 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + movs r3, #0x80 + lsls r3, r3, #1 + strh r3, [r2] + strh r5, [r2, #2] + strh r5, [r2, #4] + strh r4, [r2, #6] + strh r6, [r2, #0xa] + strh r6, [r2, #0xc] + strh r4, [r2, #0xe] + strh r4, [r2, #0x10] + movs r4, #0xe + strh r4, [r2, #0x12] + movs r0, #1 + strb r0, [r2, #0x16] + strh r5, [r2, #8] + ldr r3, _0805D4BC @ =0x03000028 + adds r0, r1, r3 + add r4, sp, #0x24 + ldrb r4, [r4] + strb r4, [r0] + adds r3, #1 + adds r0, r1, r3 + mov r4, sb + strb r4, [r0] + ldr r0, _0805D4C4 @ =0x0300002A + adds r1, r1, r0 + mov r3, r8 + strb r3, [r1] + mov r4, sl + strh r4, [r2, #0x26] + ldr r0, [sp, #0x20] + str r0, [r2, #0x18] + movs r1, #0 + str r1, [r2, #0x1c] + ldr r0, _0805D4DC @ =sub_805E018 + str r5, [sp] + movs r1, #0x34 + ldr r2, _0805D4B8 @ =0x00002120 + movs r3, #0 + bl TaskCreate + adds r6, r0, #0 + ldrh r1, [r6, #6] + movs r3, #0xc0 + lsls r3, r3, #0x12 + adds r2, r1, r3 + strh r5, [r2, #0x20] + strh r7, [r2, #0x22] + strh r5, [r2, #0x24] + strh r5, [r2, #0xa] + movs r0, #0x29 + strh r0, [r2, #0xc] + movs r4, #1 + strh r4, [r2, #0xe] + movs r0, #4 + strh r0, [r2, #0x10] + movs r0, #0xd + strh r0, [r2, #0x12] + movs r0, #1 + strb r0, [r2, #0x16] + strh r5, [r2, #8] + adds r3, #0x28 + adds r0, r1, r3 + add r4, sp, #0x24 + ldrb r4, [r4] + strb r4, [r0] + adds r3, #1 + adds r0, r1, r3 + mov r4, sb + strb r4, [r0] + ldr r0, _0805D4C4 @ =0x0300002A + adds r1, r1, r0 + mov r3, r8 + strb r3, [r1] + movs r4, #0 + mov r0, sl + strh r0, [r2, #0x26] + ldr r1, [sp, #0x20] + str r1, [r2, #0x18] + movs r3, #0 + str r3, [r2, #0x1c] + ldr r0, _0805D4E0 @ =sub_805D4F0 + movs r2, #0x84 + lsls r2, r2, #6 + ldr r1, _0805D4E4 @ =TaskDestructor_805E1E4 + str r1, [sp] + movs r1, #0x2c + bl TaskCreate + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + strh r5, [r0, #0x28] + strh r7, [r0, #0x2a] + ldr r2, [sp, #0xc] + str r2, [r0, #0x1c] + ldr r3, [sp, #8] + str r3, [r0, #0x18] + ldr r1, [sp, #0x10] + str r1, [r0, #0xc] + ldr r2, [sp, #0x14] + str r2, [r0, #0x24] + ldr r3, [sp, #0x18] + str r3, [r0, #0x10] + ldr r1, [sp, #0x1c] + str r1, [r0, #0x14] + str r6, [r0, #0x20] + ldr r3, _0805D4E8 @ =gBgSprites_Unknown1 + strb r4, [r3] + ldr r0, _0805D4EC @ =gBgSprites_Unknown2 + strb r4, [r0] + strb r4, [r0, #1] + movs r1, #0xff + strb r1, [r0, #2] + movs r2, #0x20 + strb r2, [r0, #3] + strb r4, [r3, #1] + strb r4, [r0, #4] + strb r4, [r0, #5] + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0, #6] + strb r2, [r0, #7] + strb r4, [r3, #2] + strb r4, [r0, #8] + strb r4, [r0, #9] + strb r1, [r0, #0xa] + strb r2, [r0, #0xb] + strb r4, [r3, #3] + strb r4, [r0, #0xc] + strb r4, [r0, #0xd] + strb r1, [r0, #0xe] + strb r2, [r0, #0xf] + ldr r0, [sp, #4] + bl sub_805C994 + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805D4B4: .4byte Task_805D684 +_0805D4B8: .4byte 0x00002120 +_0805D4BC: .4byte 0x03000028 +_0805D4C0: .4byte Task_805D720 +_0805D4C4: .4byte 0x0300002A +_0805D4C8: .4byte Task_805D8EC +_0805D4CC: .4byte 0x03000029 +_0805D4D0: .4byte Task_805DB04 +_0805D4D4: .4byte Task_805DD10 +_0805D4D8: .4byte Task_805DF2C +_0805D4DC: .4byte sub_805E018 +_0805D4E0: .4byte sub_805D4F0 +_0805D4E4: .4byte TaskDestructor_805E1E4 +_0805D4E8: .4byte gBgSprites_Unknown1 +_0805D4EC: .4byte gBgSprites_Unknown2 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc b/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc new file mode 100644 index 0000000000..47cc21348a --- /dev/null +++ b/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc @@ -0,0 +1,197 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + ldr r0, _0805D5FC @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r5, r0, r1 + ldr r0, [r5, #0x1c] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov r8, r0 + ldr r0, [r5, #0x18] + ldrh r3, [r0, #6] + adds r3, r3, r1 + ldr r0, [r5, #0xc] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sb, r0 + ldr r0, [r5, #0x24] + ldrh r0, [r0, #6] + adds r7, r0, r1 + ldr r0, [r5, #0x10] + ldrh r0, [r0, #6] + adds r4, r0, r1 + ldr r0, [r5, #0x14] + ldrh r0, [r0, #6] + adds r6, r0, r1 + ldr r0, [r5, #0x20] + ldrh r2, [r0, #6] + adds r2, r2, r1 + ldrh r0, [r5, #0x28] + mov r1, r8 + strh r0, [r1, #0x20] + ldrh r0, [r5, #0x28] + strh r0, [r3, #0x20] + ldrh r0, [r5, #0x28] + mov r1, sb + strh r0, [r1, #0x20] + ldrh r0, [r5, #0x28] + strh r0, [r7, #0x20] + ldrh r0, [r5, #0x28] + strh r0, [r4, #0x20] + ldrh r0, [r5, #0x28] + strh r0, [r6, #0x20] + ldrh r0, [r5, #0x28] + strh r0, [r2, #0x20] + movs r1, #0x28 + ldrsh r0, [r5, r1] + cmp r0, #0xa9 + ble _0805D586 + ldrh r0, [r6, #0x26] + cmp r0, #0 + beq _0805D576 + subs r0, #1 + strh r0, [r6, #0x26] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0805D570 + strh r0, [r6, #0x26] +_0805D570: + ldr r0, [r7, #0x1c] + adds r0, #0x64 + str r0, [r7, #0x1c] +_0805D576: + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _0805D586 + subs r0, #0x64 + str r0, [r4, #0x18] + ldr r0, [r7, #0x1c] + adds r0, #0x64 + str r0, [r7, #0x1c] +_0805D586: + ldrh r1, [r5, #0x2a] + ldr r0, _0805D600 @ =0x00000267 + adds r1, r1, r0 + ldrh r0, [r5, #0x28] + adds r0, #1 + strh r0, [r5, #0x28] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r5, #0x2a] + cmp r1, r0 + bge _0805D62C + ldr r7, _0805D604 @ =gPlayer + movs r1, #0x48 + adds r1, r1, r7 + mov sb, r1 + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + movs r0, #0x4a + adds r0, r0, r7 + mov r8, r0 + ldrh r0, [r0] + subs r0, #0x10 + mov r1, r8 + strh r0, [r1] + ldr r1, _0805D608 @ =0x0000FFFF + movs r0, #0 + bl TasksDestroyInPriorityRange + ldr r1, _0805D60C @ =gBackgroundsCopyQueueCursor + ldr r0, _0805D610 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _0805D614 @ =gBgSpritesCount + movs r0, #0 + strb r0, [r1] + ldr r1, _0805D618 @ =gVramGraphicsCopyCursor + ldr r0, _0805D61C @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r5, _0805D620 @ =gCourseTime + ldr r6, [r5] + bl CreateGameStage + ldr r0, _0805D624 @ =gSpecialStageReturnX + ldrh r0, [r0] + mov r1, sb + strh r0, [r1] + ldr r0, _0805D628 @ =gSpecialStageReturnY + ldrh r0, [r0] + mov r1, r8 + strh r0, [r1] + adds r1, r7, #0 + adds r1, #0x6e + movs r0, #1 + strb r0, [r1] + str r6, [r5] + b _0805D674 + .align 2, 0 +_0805D5FC: .4byte gCurTask +_0805D600: .4byte 0x00000267 +_0805D604: .4byte gPlayer +_0805D608: .4byte 0x0000FFFF +_0805D60C: .4byte gBackgroundsCopyQueueCursor +_0805D610: .4byte gBackgroundsCopyQueueIndex +_0805D614: .4byte gBgSpritesCount +_0805D618: .4byte gVramGraphicsCopyCursor +_0805D61C: .4byte gVramGraphicsCopyQueueIndex +_0805D620: .4byte gCourseTime +_0805D624: .4byte gSpecialStageReturnX +_0805D628: .4byte gSpecialStageReturnY +_0805D62C: + movs r0, #0x28 + ldrsh r1, [r5, r0] + adds r0, r2, #0 + adds r0, #0xaa + cmp r1, r0 + bne _0805D650 + mov r0, sb + adds r0, #0x2a + ldrb r0, [r0] + cmp r0, #0 + beq _0805D64A + movs r0, #0x9a + bl m4aSongNumStart + b _0805D650 +_0805D64A: + movs r0, #0x8d @ SE_STAGE_RESULT_COUNTER_DONE + bl m4aSongNumStart +_0805D650: + movs r1, #0x28 + ldrsh r0, [r5, r1] + cmp r0, #0xaa + ble _0805D674 + adds r1, r0, #0 + ldrh r0, [r5, #0x2a] + adds r0, #0xaa + cmp r1, r0 + bge _0805D674 + adds r0, r1, #0 + movs r1, #4 + bl Mod + cmp r0, #0 + bne _0805D674 + movs r0, #0x8c @ SE_STAGE_RESULT_COUNTER + bl m4aSongNumStart +_0805D674: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc b/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc new file mode 100644 index 0000000000..476aa23de1 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc @@ -0,0 +1,243 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _080636AC @ =gCurTask + ldr r0, [r2] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + mov ip, r1 + ldr r0, _080636B0 @ =gGameMode + ldrb r0, [r0] + mov sb, r2 + ldr r7, _080636B4 @ =gMultiSioStatusFlags + cmp r0, #1 + bls _080636EE + movs r5, #0 + ldr r2, _080636B8 @ =gMultiplayerConnections + ldrb r1, [r2] + movs r0, #1 + ands r1, r0 + adds r6, r2, #0 + cmp r1, #0 + beq _080636EE + movs r2, #1 + ldr r3, _080636BC @ =gMultiplayerMissingHeartbeats +_0806366E: + adds r0, r2, #0 + lsls r0, r5 + ldr r4, [r7] + ands r4, r0 + cmp r4, #0 + bne _080636D8 + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _080636DC + movs r0, #0 + ldr r1, _080636C0 @ =0x0000FFFF + bl TasksDestroyInPriorityRange + ldr r1, _080636C4 @ =gBackgroundsCopyQueueCursor + ldr r0, _080636C8 @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080636CC @ =gBgSpritesCount + strb r4, [r0] + ldr r1, _080636D0 @ =gVramGraphicsCopyCursor + ldr r0, _080636D4 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + bl LinkCommunicationError + b _08063818 + .align 2, 0 +_080636AC: .4byte gCurTask +_080636B0: .4byte gGameMode +_080636B4: .4byte gMultiSioStatusFlags +_080636B8: .4byte gMultiplayerConnections +_080636BC: .4byte gMultiplayerMissingHeartbeats +_080636C0: .4byte 0x0000FFFF +_080636C4: .4byte gBackgroundsCopyQueueCursor +_080636C8: .4byte gBackgroundsCopyQueueIndex +_080636CC: .4byte gBgSpritesCount +_080636D0: .4byte gVramGraphicsCopyCursor +_080636D4: .4byte gVramGraphicsCopyQueueIndex +_080636D8: + movs r0, #0 + strb r0, [r3] +_080636DC: + adds r3, #1 + adds r5, #1 + cmp r5, #3 + bhi _080636EE + ldrb r0, [r6] + asrs r0, r5 + ands r0, r2 + cmp r0, #0 + bne _0806366E +_080636EE: + ldr r4, _080637BC @ =gMultiSioRecv + ldrh r0, [r4] + adds r5, r4, #0 + ldr r1, _080637C0 @ =gMultiSioSend + mov r8, r1 + movs r1, #0x55 + add ip, r1 + cmp r0, #0x52 + bne _0806371A + mov r0, sb + ldr r1, [r0] + ldr r0, _080637C4 @ =Task_80638B0 + str r0, [r1, #8] + movs r3, #0 + adds r1, r4, #3 + ldr r2, _080637C8 @ =gChaoTasks +_0806370E: + adds r0, r1, r3 + ldrb r0, [r0] + stm r2!, {r0} + adds r3, #1 + cmp r3, #2 + bls _0806370E +_0806371A: + ldr r0, [r7] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806380C + movs r3, #1 + ldr r1, _080637CC @ =gMultiplayerConnections + ldrb r0, [r1] + asrs r0, r0, #1 + ands r0, r3 + adds r6, r1, #0 + cmp r0, #0 + beq _0806373A + ldrh r0, [r5, #0x14] + cmp r0, #0x51 + bne _0806375A +_0806373A: + adds r3, #1 + cmp r3, #3 + bhi _0806375A + ldrb r0, [r6] + asrs r0, r3 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806373A + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r4, r0, r5 + ldrh r0, [r4] + cmp r0, #0x51 + beq _0806373A +_0806375A: + cmp r3, #4 + bne _0806380C + mov r4, r8 + movs r0, #0x52 + strh r0, [r4] + mov r1, ip + ldrb r0, [r1] + strb r0, [r4, #2] + ldr r2, _080637D0 @ =gPseudoRandom + ldr r0, [r2] + ldr r1, _080637D4 @ =0x00196225 + mov ip, r1 + mov r1, ip + muls r1, r0, r1 + adds r0, r1, #0 + ldr r7, _080637D8 @ =0x3C6EF35F + adds r0, r0, r7 + str r0, [r2] + adds r3, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #3] + lsrs r3, r3, #8 + ldrb r1, [r4, #3] + movs r0, #7 + ands r0, r3 + adds r6, r2, #0 + cmp r1, r0 + bne _080637AE + adds r5, r6, #0 + movs r2, #7 +_08063798: + ldr r0, [r5] + mov r1, ip + muls r1, r0, r1 + adds r0, r1, #0 + adds r0, r0, r7 + str r0, [r5] + adds r3, r0, #0 + ldrb r1, [r4, #3] + ands r0, r2 + cmp r1, r0 + beq _08063798 +_080637AE: + movs r0, #7 + adds r1, r3, #0 + ands r1, r0 + strb r1, [r4, #4] + lsrs r3, r3, #8 + b _080637EA + .align 2, 0 +_080637BC: .4byte gMultiSioRecv +_080637C0: .4byte gMultiSioSend +_080637C4: .4byte Task_80638B0 +_080637C8: .4byte gChaoTasks +_080637CC: .4byte gMultiplayerConnections +_080637D0: .4byte gPseudoRandom +_080637D4: .4byte 0x00196225 +_080637D8: .4byte 0x3C6EF35F +_080637DC: + ldr r1, [r6] + ldr r0, _08063804 @ =0x00196225 + muls r0, r1, r0 + ldr r1, _08063808 @ =0x3C6EF35F + adds r0, r0, r1 + str r0, [r6] + adds r3, r0, #0 +_080637EA: + ldrb r0, [r4, #3] + movs r1, #7 + ands r1, r3 + cmp r0, r1 + beq _080637DC + ldrb r0, [r4, #4] + cmp r0, r1 + beq _080637DC + movs r0, #7 + ands r3, r0 + strb r3, [r4, #5] + b _08063818 + .align 2, 0 +_08063804: .4byte 0x00196225 +_08063808: .4byte 0x3C6EF35F +_0806380C: + mov r4, r8 + movs r0, #0x51 + strh r0, [r4] + mov r1, ip + ldrb r0, [r1] + strb r0, [r4, #2] +_08063818: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc b/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc new file mode 100644 index 0000000000..c0541ce204 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc @@ -0,0 +1,585 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + movs r6, #0 + ldr r2, _0805847C @ =gDispCnt + ldr r1, _08058480 @ =gBgCntRegs + movs r4, #0 + ldr r0, _08058484 @ =0x00001C06 + strh r0, [r1, #2] + ldr r0, _08058488 @ =0x00001A09 + strh r0, [r1, #4] + ldr r0, _0805848C @ =gBgScrollRegs + strh r6, [r0, #4] + strh r6, [r0, #6] + strh r6, [r0, #8] + strh r6, [r0, #0xa] + movs r0, #0xd9 + lsls r0, r0, #6 + strh r0, [r2] + ldr r1, _08058490 @ =gBldRegs + movs r0, #0x1f + strh r0, [r1] + ldr r0, _08058494 @ =gWinRegs + movs r1, #1 + mov r8, r1 + movs r5, #1 + strh r5, [r0] + strh r5, [r0, #4] + bl sub_80535FC + ldr r0, _08058498 @ =sub_8058830 + movs r7, #0x80 + lsls r7, r7, #1 + movs r2, #0x80 + lsls r2, r2, #6 + str r6, [sp] + adds r1, r7, #0 + movs r3, #0 + bl TaskCreate + adds r6, r0, #0 + ldrh r0, [r6, #6] + ldr r2, _0805849C @ =0x03000024 + adds r0, r0, r2 + strh r4, [r0] + ldrh r0, [r6, #6] + ldr r3, _080584A0 @ =0x03000028 + adds r0, r0, r3 + strh r4, [r0] + ldrh r0, [r6, #6] + ldr r1, _080584A4 @ =0x0300002C + adds r0, r0, r1 + strh r4, [r0] + ldrh r0, [r6, #6] + adds r2, #0xc + adds r0, r0, r2 + strh r4, [r0] + ldrh r0, [r6, #6] + adds r3, #0x2c + adds r0, r0, r3 + strh r4, [r0] + ldrh r0, [r6, #6] + adds r1, #0xd0 + adds r0, r0, r1 + strh r4, [r0] + ldrh r0, [r6, #6] + subs r1, #0xfc + adds r0, r0, r1 + movs r1, #0x1e + strh r1, [r0, #0xa] + strh r1, [r0, #0xc] + strh r5, [r0, #0xe] + strh r4, [r0, #8] + movs r1, #3 + strh r1, [r0, #0x10] + mov r2, r8 + strb r2, [r0, #0x16] + strh r4, [r0, #0x12] + ldrh r0, [r6, #6] + subs r3, #0x3c + adds r3, r3, r0 + mov sb, r3 + strh r4, [r3] + strh r5, [r3, #2] + movs r0, #2 + strh r0, [r3, #4] + strh r4, [r3, #6] + strh r7, [r3, #8] + strb r2, [r3, #0xa] + movs r0, #0 + mov r8, r0 + add r7, sp, #0x30 + mov r1, sp + adds r1, #0x2f + str r1, [sp, #0x40] + mov r2, sp + adds r2, #0x2c + str r2, [sp, #0x34] + mov r3, sp + adds r3, #0x2d + str r3, [sp, #0x38] + mov r0, sp + adds r0, #0x2e + str r0, [sp, #0x3c] + ldr r1, _080584A8 @ =gLoadedSaveGame + mov sl, r1 + ldr r5, _080584AC @ =gUnknown_08688492 +_0805843C: + ldr r0, _080584A8 @ =gLoadedSaveGame + adds r0, #0x10 + mov r2, r8 + adds r3, r2, r0 + ldrb r0, [r3] + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x69 + bhi _080584BC + ldrh r2, [r6, #6] + adds r2, r4, r2 + ldr r0, _080584B0 @ =0x030000C8 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r3] + subs r0, #0x20 + lsls r0, r0, #1 + adds r0, r0, r5 + ldr r2, _080584B4 @ =0x00001001 + adds r1, r2, #0 + ldrh r0, [r0] + adds r1, r1, r0 + mov r0, ip + strh r1, [r0] + ldrh r2, [r6, #6] + adds r2, r4, r2 + ldr r1, _080584B8 @ =0x030000CA + adds r1, r1, r2 + mov ip, r1 + b _080584DC + .align 2, 0 +_0805847C: .4byte gDispCnt +_08058480: .4byte gBgCntRegs +_08058484: .4byte 0x00001C06 +_08058488: .4byte 0x00001A09 +_0805848C: .4byte gBgScrollRegs +_08058490: .4byte gBldRegs +_08058494: .4byte gWinRegs +_08058498: .4byte sub_8058830 +_0805849C: .4byte 0x03000024 +_080584A0: .4byte 0x03000028 +_080584A4: .4byte 0x0300002C +_080584A8: .4byte gLoadedSaveGame +_080584AC: .4byte gUnknown_08688492 +_080584B0: .4byte 0x030000C8 +_080584B4: .4byte 0x00001001 +_080584B8: .4byte 0x030000CA +_080584BC: + movs r0, #0x20 + strb r0, [r3] + ldrh r1, [r6, #6] + adds r1, r4, r1 + ldr r0, _080587EC @ =0x030000C8 + adds r1, r1, r0 + ldr r2, _080587F0 @ =0x00001001 + adds r0, r2, #0 + ldrh r2, [r5] + adds r0, r0, r2 + strh r0, [r1] + ldrh r2, [r6, #6] + adds r2, r4, r2 + ldr r0, _080587F4 @ =0x030000CA + adds r0, r0, r2 + mov ip, r0 +_080584DC: + ldrb r0, [r3] + subs r0, #0x20 + lsls r0, r0, #1 + adds r0, r0, r5 + ldr r2, _080587F8 @ =0x00001002 + adds r1, r2, #0 + ldrh r0, [r0] + adds r1, r1, r0 + mov r0, ip + strh r1, [r0] + ldrh r2, [r6, #6] + adds r2, r4, r2 + ldr r1, _080587FC @ =0x030000E0 + adds r1, r1, r2 + mov ip, r1 + ldrb r0, [r3] + subs r0, #0x20 + lsls r0, r0, #1 + adds r0, r0, r5 + ldr r2, _08058800 @ =0x00001015 + adds r1, r2, #0 + ldrh r0, [r0] + adds r1, r1, r0 + mov r0, ip + strh r1, [r0] + ldrh r2, [r6, #6] + adds r2, r4, r2 + ldr r1, _08058804 @ =0x030000E2 + adds r2, r2, r1 + ldrb r0, [r3] + subs r0, #0x20 + lsls r0, r0, #1 + adds r0, r0, r5 + ldr r3, _08058808 @ =0x00001016 + adds r1, r3, #0 + ldrh r0, [r0] + adds r1, r1, r0 + strh r1, [r2] + adds r4, #4 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #5 + ble _0805843C + movs r2, #5 + mov r8, r2 + mov r3, sl + ldrb r0, [r3, #0x15] + ldrh r1, [r6, #6] + cmp r0, #0x20 + bne _0805855A + mov r2, sl + adds r2, #0x10 +_08058546: + movs r0, #1 + rsbs r0, r0, #0 + add r8, r0 + mov r3, r8 + cmp r3, #0 + blt _0805855A + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #0x20 + beq _08058546 +_0805855A: + ldr r0, _0805880C @ =0x030000F8 + adds r1, r1, r0 + mov r0, r8 + adds r0, #1 + strh r0, [r1] + bl UiGfxStackInit + movs r0, #0x23 + strb r0, [r7] + movs r2, #0 + ldr r1, [sp, #0x40] + strb r2, [r1] + ldr r3, _08058810 @ =gUiGraphics + mov sl, r3 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + str r0, [sp, #0x18] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058814 @ =gUiGraphics + 0x4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x24] + movs r0, #0xa0 + lsls r0, r0, #7 + str r0, [sp, #0x1c] + movs r2, #0x20 + str r2, [sp, #0x28] + movs r0, #0 + ldr r3, [sp, #0x34] + strb r0, [r3] + movs r2, #2 + ldr r1, [sp, #0x38] + strb r2, [r1] + ldr r0, _08058818 @ =gUnknown_08684D3C + str r0, [sp, #0x14] + movs r0, #0xa0 + lsls r0, r0, #3 + str r0, [sp, #0x20] + movs r0, #0x15 + ldr r3, [sp, #0x3c] + strb r0, [r3] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805881C @ =gUiGraphics + 0x8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058820 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + movs r1, #0x10 + add r1, sl + mov r8, r1 + add r0, r8 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058824 @ =gUiGraphics + 0x14 + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + mov r5, sl + adds r5, #0x18 + adds r0, r0, r5 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r0, #0x24 + strb r0, [r7] + movs r4, #1 + ldr r0, [sp, #0x40] + strb r4, [r0] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + str r0, [sp, #0x18] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058814 @ =gUiGraphics + 0x4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #0x24] + movs r0, #0xa0 + lsls r0, r0, #6 + str r0, [sp, #0x1c] + movs r2, #0x20 + str r2, [sp, #0x28] + movs r0, #0 + ldr r3, [sp, #0x34] + strb r0, [r3] + ldr r1, [sp, #0x38] + strb r4, [r1] + ldr r0, _08058828 @ =gUnknown_08685D3C + str r0, [sp, #0x14] + movs r0, #0x80 + lsls r0, r0, #4 + str r0, [sp, #0x20] + movs r3, #0x15 + ldr r2, [sp, #0x3c] + strb r3, [r2] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805881C @ =gUiGraphics + 0x8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058820 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058824 @ =gUiGraphics + 0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r0, #0x25 + strb r0, [r7] + ldr r2, [sp, #0x40] + strb r4, [r2] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058814 @ =gUiGraphics + 0x4 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [sp, #0x24] + movs r0, #0x20 + str r0, [sp, #0x28] + movs r2, #2 + ldr r1, [sp, #0x34] + strb r2, [r1] + ldr r3, [sp, #0x38] + strb r4, [r3] + movs r0, #4 + ldr r1, [sp, #0x3c] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r2, _0805881C @ =gUiGraphics + 0x8 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058820 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058824 @ =gUiGraphics + 0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + movs r0, #0x26 + strb r0, [r7] + movs r0, #3 + ldr r2, [sp, #0x40] + strb r0, [r2] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + str r0, [sp, #0x18] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058814 @ =gUiGraphics + 0x4 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [sp, #0x24] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp, #0x1c] + movs r0, #0x20 + str r0, [sp, #0x28] + movs r2, #0 + ldr r1, [sp, #0x34] + strb r2, [r1] + ldr r0, _0805882C @ =0x06012000 + str r0, [sp, #0x10] + movs r0, #0xd + ldr r3, [sp, #0x3c] + strb r0, [r3] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805881C @ =gUiGraphics + 0x8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #8] + add r2, sp, #4 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r3, _08058820 @ =gUiGraphics + 0xC + adds r0, r0, r3 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + add r0, r8 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08058824 @ =gUiGraphics + 0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + strb r0, [r2, #0xb] + adds r0, r2, #0 + bl sub_80528AC + mov r0, sb + bl sub_805423C + movs r0, #0x30 @ MUS_PLAYER_DATA + bl m4aSongNumStartOrChange + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080587EC: .4byte 0x030000C8 +_080587F0: .4byte 0x00001001 +_080587F4: .4byte 0x030000CA +_080587F8: .4byte 0x00001002 +_080587FC: .4byte 0x030000E0 +_08058800: .4byte 0x00001015 +_08058804: .4byte 0x030000E2 +_08058808: .4byte 0x00001016 +_0805880C: .4byte 0x030000F8 +_08058810: .4byte gUiGraphics +_08058814: .4byte gUiGraphics + 0x4 +_08058818: .4byte gUnknown_08684D3C +_0805881C: .4byte gUiGraphics + 0x8 +_08058820: .4byte gUiGraphics + 0xC +_08058824: .4byte gUiGraphics + 0x14 +_08058828: .4byte gUnknown_08685D3C +_0805882C: .4byte 0x06012000 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc b/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc new file mode 100644 index 0000000000..3402aab862 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc @@ -0,0 +1,239 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r7, #0 + ldr r4, _08059778 @ =gCurTask + ldr r0, [r4] + ldrh r0, [r0, #6] + ldr r1, _0805977C @ =0x03000018 + adds r0, r0, r1 + bl sub_805423C + ldr r0, [r4] + ldrh r1, [r0, #6] + ldr r2, _08059780 @ =0x030000FC + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, [r4] + ldrh r0, [r0, #6] + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + mov sb, r4 + cmp r0, #0x3c + bgt _08059618 + b _080597CC +_08059618: + movs r6, #0 + ldr r3, _08059784 @ =gLoadedSaveGame + mov r8, r3 + ldr r0, _08059788 @ =gUnknown_08688444 + mov sl, r0 +_08059622: + mov r2, sb + ldr r1, [r2] + lsls r0, r6, #2 + ldrh r1, [r1, #6] + adds r0, r0, r1 + ldr r3, _0805978C @ =0x030000C8 + adds r0, r0, r3 + movs r1, #0 + ldrsh r5, [r0, r1] + ldr r2, _08059790 @ =0xFFFFDFFF + adds r5, r5, r2 + adds r0, r5, #0 + movs r1, #0x28 + bl __udivsi3 + lsls r4, r0, #2 + adds r4, r4, r0 + lsls r4, r4, #1 + adds r0, r5, #0 + movs r1, #0x28 + bl __umodsi3 + lsrs r0, r0, #1 + adds r4, r4, r0 + mov r0, r8 + adds r0, #0x10 + adds r1, r6, r0 + add r4, sl + ldrb r4, [r4] + ldrb r0, [r1] + cmp r0, r4 + beq _08059666 + movs r7, #1 + strb r4, [r1] +_08059666: + adds r6, #1 + cmp r6, #5 + bls _08059622 + cmp r7, #0 + beq _08059740 + ldr r0, _08059794 @ =gFrameCount + ldr r0, [r0] + mov r3, r8 + str r0, [r3, #4] + bl m4aMPlayAllStop + bl m4aSoundVSyncOff + ldr r0, _08059798 @ =gFlags + mov sl, r0 + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + orrs r1, r0 + ldr r2, _0805979C @ =0x04000200 + mov r8, r2 + ldrh r0, [r2] + str r0, [sp] + ldr r6, _080597A0 @ =0x04000208 + ldrh r0, [r6] + adds r7, r0, #0 + ldr r5, _080597A4 @ =0x04000004 + ldrh r3, [r5] + mov sb, r3 + movs r0, #0 + strh r0, [r2] + ldrh r2, [r2] + strh r0, [r6] + ldrh r2, [r6] + strh r0, [r5] + ldrh r0, [r5] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sl + str r1, [r0] + ldr r1, _080597A8 @ =0x040000B0 + ldrh r2, [r1, #0xa] + ldr r4, _080597AC @ =0x0000C5FF + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r3, _080597B0 @ =0x00007FFF + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r2, [r1, #0xa] + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r2, [r1, #0xa] + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r0, _080597B4 @ =0x040000D4 + ldrh r1, [r0, #0xa] + ands r4, r1 + strh r4, [r0, #0xa] + ldrh r1, [r0, #0xa] + ldrh r1, [r0, #0xa] + ands r3, r1 + strh r3, [r0, #0xa] + ldrh r1, [r0, #0xa] + ldrh r0, [r0, #0xa] + bl WriteSaveGame + mov r1, sp + ldrh r2, [r1] + mov r1, r8 + strh r2, [r1] + ldrh r0, [r1] + strh r7, [r6] + ldrh r0, [r6] + mov r3, sb + strh r3, [r5] + ldrh r0, [r5] + bl m4aSoundVSyncOn + mov r1, sl + ldr r0, [r1] + ldr r1, _080597B8 @ =0xFFFF7FFF + ands r0, r1 + mov r2, sl + str r0, [r2] +_08059740: + ldr r0, _08059778 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + ldr r4, _080597BC @ =gBgSprites_Unknown1 + movs r2, #0 + strb r2, [r4, #1] + ldr r0, _080597C0 @ =gBgSprites_Unknown2 + strb r2, [r0, #4] + strb r2, [r0, #5] + movs r1, #0xff + strb r1, [r0, #6] + movs r3, #0x20 + strb r3, [r0, #7] + strb r2, [r4, #2] + strb r2, [r0, #8] + strb r2, [r0, #9] + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r0, #0xa] + strb r3, [r0, #0xb] + ldr r0, _080597C4 @ =gGameMode + ldrb r0, [r0] + cmp r0, #2 + bne _080597C8 + bl CreateMultiplayerModeSelectScreen + b _080597CC + .align 2, 0 +_08059778: .4byte gCurTask +_0805977C: .4byte 0x03000018 +_08059780: .4byte 0x030000FC +_08059784: .4byte gLoadedSaveGame +_08059788: .4byte gUnknown_08688444 +_0805978C: .4byte 0x030000C8 +_08059790: .4byte 0xFFFFDFFF +_08059794: .4byte gFrameCount +_08059798: .4byte gFlags +_0805979C: .4byte 0x04000200 +_080597A0: .4byte 0x04000208 +_080597A4: .4byte 0x04000004 +_080597A8: .4byte 0x040000B0 +_080597AC: .4byte 0x0000C5FF +_080597B0: .4byte 0x00007FFF +_080597B4: .4byte 0x040000D4 +_080597B8: .4byte 0xFFFF7FFF +_080597BC: .4byte gBgSprites_Unknown1 +_080597C0: .4byte gBgSprites_Unknown2 +_080597C4: .4byte gGameMode +_080597C8: + bl CreatePlayerDataMenu +_080597CC: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc b/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc new file mode 100644 index 0000000000..d604908bcb --- /dev/null +++ b/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc @@ -0,0 +1,1687 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x64 + ldr r0, _080588A8 @ =gPressedKeys + ldrh r7, [r0] + ldr r3, _080588AC @ =gCurTask + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r0, _080588B0 @ =0x03000018 + adds r0, r1, r0 + str r0, [sp, #0x30] + ldr r2, _080588B4 @ =0x0300002C + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r1, r0, r2 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0x20 + ble _08058868 + movs r0, #0 + strh r0, [r1] +_08058868: + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r2, _080588B8 @ =0x03000030 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r1, r0, r2 + movs r4, #0 + ldrsh r0, [r1, r4] + cmp r0, #0x2e + ble _08058888 + movs r0, #0 + strh r0, [r1] +_08058888: + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r5, _080588BC @ =0x030000FC + adds r1, r1, r5 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x3b + bgt _080588C0 + ldr r0, [sp, #0x30] + bl sub_805423C + b _080588CC + .align 2, 0 +_080588A8: .4byte gPressedKeys +_080588AC: .4byte gCurTask +_080588B0: .4byte 0x03000018 +_080588B4: .4byte 0x0300002C +_080588B8: .4byte 0x03000030 +_080588BC: .4byte 0x030000FC +_080588C0: + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r1, _080588F0 @ =0x030000FC + adds r0, r0, r1 + movs r1, #0x3c + strh r1, [r0] +_080588CC: + ldr r2, _080588F4 @ =gInput + ldrh r1, [r2] + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + adds r4, r2, #0 + cmp r3, #0 + beq _08058900 + ldr r2, _080588F8 @ =gCurTask + ldr r0, [r2] + ldrh r1, [r0, #6] + ldr r3, _080588FC @ =0x03000058 + adds r1, r1, r3 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0805890C + .align 2, 0 +_080588F0: .4byte 0x030000FC +_080588F4: .4byte gInput +_080588F8: .4byte gCurTask +_080588FC: .4byte 0x03000058 +_08058900: + ldr r1, _0805892C @ =gCurTask + ldr r0, [r1] + ldrh r0, [r0, #6] + ldr r5, _08058930 @ =0x03000058 + adds r0, r0, r5 + strh r3, [r0] +_0805890C: + ldrh r1, [r4] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08058938 + ldr r1, _0805892C @ =gCurTask + ldr r0, [r1] + ldrh r1, [r0, #6] + ldr r2, _08058934 @ =0x0300005C + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _08058944 + .align 2, 0 +_0805892C: .4byte gCurTask +_08058930: .4byte 0x03000058 +_08058934: .4byte 0x0300005C +_08058938: + ldr r3, _08058964 @ =gCurTask + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r5, _08058968 @ =0x0300005C + adds r0, r0, r5 + strh r1, [r0] +_08058944: + ldrh r1, [r4] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08058970 + ldr r1, _08058964 @ =gCurTask + ldr r0, [r1] + ldrh r1, [r0, #6] + ldr r2, _0805896C @ =0x03000064 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0805897C + .align 2, 0 +_08058964: .4byte gCurTask +_08058968: .4byte 0x0300005C +_0805896C: .4byte 0x03000064 +_08058970: + ldr r3, _0805899C @ =gCurTask + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r5, _080589A0 @ =0x03000064 + adds r0, r0, r5 + strh r1, [r0] +_0805897C: + ldrh r1, [r4] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _080589A8 + ldr r1, _0805899C @ =gCurTask + ldr r0, [r1] + ldrh r1, [r0, #6] + ldr r2, _080589A4 @ =0x03000060 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080589B4 + .align 2, 0 +_0805899C: .4byte gCurTask +_080589A0: .4byte 0x03000064 +_080589A4: .4byte 0x03000060 +_080589A8: + ldr r3, _08058A20 @ =gCurTask + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r4, _08058A24 @ =0x03000060 + adds r0, r0, r4 + strh r1, [r0] +_080589B4: + ldr r4, _08058A20 @ =gCurTask + ldr r0, [r4] + ldrh r1, [r0, #6] + ldr r6, _08058A28 @ =0x03000024 + adds r0, r1, r6 + ldrh r0, [r0] + mov sb, r0 + ldr r5, _08058A2C @ =0x03000028 + adds r0, r1, r5 + ldrh r0, [r0] + mov sl, r0 + ldr r2, _08058A30 @ =0x03000054 + adds r0, r1, r2 + ldrh r0, [r0] + mov r8, r0 + ldr r0, _08058A34 @ =gPressedKeys + ldrh r2, [r0] + movs r5, #0x10 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + bne _080589EC + ldr r3, _08058A38 @ =0x03000058 + adds r0, r1, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0xf + ble _08058A3C +_080589EC: + movs r0, #0x6c + bl m4aSongNumStart + ldr r0, [r4] + ldrh r1, [r0, #6] + ldr r0, _08058A38 @ =0x03000058 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #5 + strh r0, [r1] + ldr r0, [r4] + ldrh r1, [r0, #6] + adds r1, r1, r6 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, [r4] + ldrh r0, [r0, #6] + adds r1, r0, r6 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #9 + ble _08058A84 + movs r0, #0 + b _08058A82 + .align 2, 0 +_08058A20: .4byte gCurTask +_08058A24: .4byte 0x03000060 +_08058A28: .4byte 0x03000024 +_08058A2C: .4byte 0x03000028 +_08058A30: .4byte 0x03000054 +_08058A34: .4byte gPressedKeys +_08058A38: .4byte 0x03000058 +_08058A3C: + movs r5, #0x20 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + bne _08058A52 + ldr r3, _08058B10 @ =0x0300005C + adds r0, r1, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _08058A86 +_08058A52: + movs r0, #0x6c + bl m4aSongNumStart + ldr r0, [r4] + ldrh r1, [r0, #6] + ldr r2, _08058B10 @ =0x0300005C + adds r1, r1, r2 + ldrh r0, [r1] + subs r0, #5 + strh r0, [r1] + ldr r0, [r4] + ldrh r1, [r0, #6] + adds r1, r1, r6 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r0, [r4] + ldrh r0, [r0, #6] + adds r1, r0, r6 + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _08058A84 + movs r0, #9 +_08058A82: + strh r0, [r1] +_08058A84: + orrs r7, r5 +_08058A86: + ldr r0, _08058B14 @ =gPressedKeys + ldrh r2, [r0] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + bne _08058AA8 + ldr r1, _08058B18 @ =gCurTask + ldr r0, [r1] + ldrh r3, [r0, #6] + ldr r5, _08058B1C @ =0x03000060 + adds r0, r3, r5 + movs r5, #0 + ldrsh r0, [r0, r5] + cmp r0, #0xf + ble _08058B28 +_08058AA8: + movs r0, #0x6c + bl m4aSongNumStart + ldr r3, _08058B18 @ =gCurTask + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r0, _08058B1C @ =0x03000060 + adds r1, r1, r0 + ldrh r0, [r1] + subs r0, #5 + strh r0, [r1] + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r4, _08058B20 @ =0x03000028 + adds r1, r1, r4 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r1, r0, r4 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #5 + ble _08058B0A + movs r0, #5 + strh r0, [r1] + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r2, _08058B24 @ =0x03000054 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldrh r1, [r0, #6] + adds r2, r1, r2 + movs r5, #0 + ldrsh r0, [r2, r5] + cmp r0, #2 + ble _08058B0A + adds r0, r1, r4 + movs r1, #0 + strh r1, [r0] + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r2, _08058B24 @ =0x03000054 + adds r0, r0, r2 + strh r1, [r0] +_08058B0A: + movs r0, #0x80 + b _08058BA4 + .align 2, 0 +_08058B10: .4byte 0x0300005C +_08058B14: .4byte gPressedKeys +_08058B18: .4byte gCurTask +_08058B1C: .4byte 0x03000060 +_08058B20: .4byte 0x03000028 +_08058B24: .4byte 0x03000054 +_08058B28: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08058B3C + ldr r5, _08058BEC @ =0x03000064 + adds r0, r3, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _08058BA6 +_08058B3C: + movs r0, #0x6c + bl m4aSongNumStart + ldr r2, _08058BF0 @ =gCurTask + ldr r0, [r2] + ldrh r1, [r0, #6] + ldr r3, _08058BEC @ =0x03000064 + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #5 + strh r0, [r1] + ldr r0, [r2] + ldrh r1, [r0, #6] + subs r3, #0x3c + adds r1, r1, r3 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r0, [r2] + ldrh r0, [r0, #6] + adds r1, r0, r3 + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, #0 + bge _08058BA2 + strh r4, [r1] + ldr r0, [r2] + ldrh r1, [r0, #6] + ldr r2, _08058BF4 @ =0x03000054 + adds r1, r1, r2 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r1, _08058BF0 @ =gCurTask + ldr r0, [r1] + ldrh r1, [r0, #6] + adds r2, r1, r2 + movs r4, #0 + ldrsh r0, [r2, r4] + cmp r0, #0 + bge _08058BA2 + adds r1, r1, r3 + movs r0, #5 + strh r0, [r1] + ldr r5, _08058BF0 @ =gCurTask + ldr r0, [r5] + ldrh r0, [r0, #6] + ldr r1, _08058BF4 @ =0x03000054 + adds r0, r0, r1 + movs r1, #2 + strh r1, [r0] +_08058BA2: + movs r0, #0x40 +_08058BA4: + orrs r7, r0 +_08058BA6: + ldr r2, _08058BF0 @ =gCurTask + ldr r3, [r2] + ldrh r0, [r3, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r4, r0, r1 + ldr r5, _08058BF8 @ =0x0300002C + adds r1, r0, r5 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0xf + bgt _08058BFC + adds r1, r0, #0 + movs r2, #0x10 + subs r1, r2, r1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + adds r0, r0, r1 + strh r0, [r4] + ldrh r0, [r3, #6] + ldr r3, _08058BF8 @ =0x0300002C + adds r0, r0, r3 + movs r5, #0 + ldrsh r0, [r0, r5] + subs r2, r2, r0 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + b _08058C26 + .align 2, 0 +_08058BEC: .4byte 0x03000064 +_08058BF0: .4byte gCurTask +_08058BF4: .4byte 0x03000054 +_08058BF8: .4byte 0x0300002C +_08058BFC: + movs r0, #0 + ldrsh r1, [r1, r0] + subs r1, #0xf + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r1, #0 + adds r0, r0, r2 + strh r0, [r4] + ldrh r0, [r3, #6] + ldr r3, _08058E94 @ =0x0300002C + adds r0, r0, r3 + movs r5, #0 + ldrsh r1, [r0, r5] + subs r1, #0xf + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 +_08058C26: + strh r0, [r4, #2] + ldr r0, _08058E98 @ =gCurTask + ldr r1, [r0] + ldrh r0, [r1, #6] + ldr r2, _08058E9C @ =0x03000024 + adds r0, r0, r2 + ldrh r2, [r0] + lsls r2, r2, #4 + adds r2, #0x20 + movs r3, #0 + strh r2, [r4, #0xa] + ldrh r0, [r1, #6] + ldr r5, _08058EA0 @ =0x03000028 + adds r0, r0, r5 + ldrh r1, [r0] + lsls r1, r1, #4 + adds r1, #0x28 + ldrh r0, [r4] + subs r0, #0xf0 + asrs r0, r0, #7 + subs r2, r2, r0 + strh r2, [r4, #0xa] + ldrh r0, [r4, #2] + subs r0, #0xf0 + asrs r0, r0, #7 + subs r1, r1, r0 + strh r1, [r4, #0xc] + strh r3, [r4, #4] + movs r0, #2 + strh r0, [r4, #6] + ldr r0, _08058EA4 @ =gUnknown_08688568 + adds r1, r4, #0 + bl sub_8052D64 + ldr r0, _08058EA8 @ =gPrevInput + ldrh r0, [r0] + orrs r0, r7 + movs r1, #0xf9 + ands r0, r1 + mov r7, r8 + lsls r7, r7, #0x10 + str r7, [sp, #0x60] + cmp r0, #0 + beq _08058D32 + ldr r0, _08058E98 @ =gCurTask + ldr r0, [r0] + str r0, [sp, #0x34] + ldrh r0, [r0, #6] + ldr r1, _08058EAC @ =0x03000080 + adds r7, r0, r1 + mov r3, sb + lsls r2, r3, #0x10 + asrs r2, r2, #0xe + adds r1, r2, #0 + adds r1, #0xa + mov r4, sl + lsls r4, r4, #0x10 + asrs r5, r4, #0x10 + ldr r3, [sp, #0x60] + asrs r0, r3, #0x10 + adds r0, r5, r0 + lsls r4, r0, #7 + str r4, [sp, #0x44] + adds r1, r1, r4 + ldr r5, _08058EB0 @ =0x000007FF + ands r1, r5 + str r1, [r7, #4] + adds r0, r1, #0 + ldr r3, _08058EB4 @ =0x000003FF + ands r0, r3 + ldr r4, _08058EB8 @ =gUnknown_08685D3C + adds r0, r0, r4 + str r0, [r7] + movs r5, #0xc0 + lsls r5, r5, #0x13 + mov sl, r5 + add r1, sl + ldr r0, _08058EBC @ =gBgCntRegs + mov sb, r0 + ldrh r4, [r0, #2] + movs r3, #0xf8 + lsls r3, r3, #5 + adds r0, r3, #0 + ands r0, r4 + lsls r0, r0, #3 + adds r1, r1, r0 + str r1, [r7, #4] + movs r1, #4 + strh r1, [r7, #8] + ldr r4, _08058EC0 @ =gVramGraphicsCopyQueue + mov r8, r4 + ldr r1, _08058EC4 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r1] + lsls r0, r0, #2 + add r0, r8 + str r7, [r0] + ldrb r0, [r1] + adds r0, #1 + movs r4, #0x1f + ands r0, r4 + strb r0, [r1] + ldr r5, [sp, #0x34] + ldrh r0, [r5, #6] + ldr r5, _08058EC8 @ =0x0300008C + adds r7, r0, r5 + adds r2, #0x4a + ldr r0, [sp, #0x44] + adds r2, r2, r0 + ldr r5, _08058EB0 @ =0x000007FF + ands r2, r5 + str r2, [r7, #4] + adds r0, r2, #0 + ldr r5, _08058EB4 @ =0x000003FF + ands r0, r5 + ldr r5, _08058EB8 @ =gUnknown_08685D3C + adds r0, r0, r5 + str r0, [r7] + add r2, sl + mov r5, sb + ldrh r0, [r5, #2] + ands r3, r0 + lsls r3, r3, #3 + adds r2, r2, r3 + str r2, [r7, #4] + movs r0, #4 + strh r0, [r7, #8] + ldrb r0, [r1] + lsls r0, r0, #2 + add r0, r8 + str r7, [r0] + ldrb r0, [r1] + adds r0, #1 + ands r0, r4 + strb r0, [r1] +_08058D32: + ldr r1, _08058E98 @ =gCurTask + ldr r1, [r1] + mov ip, r1 + ldrh r3, [r1, #6] + ldr r4, _08058EA0 @ =0x03000028 + adds r2, r3, r4 + ldr r5, _08058ECC @ =0x03000054 + adds r0, r3, r5 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + lsrs r6, r0, #0x10 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #0x12 + ldr r7, _08058E9C @ =0x03000024 + adds r1, r3, r7 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x11 + lsrs r6, r0, #0x10 + ldr r0, _08058ED0 @ =gPressedKeys + ldrh r1, [r0] + cmp r1, #0 + bne _08058E62 + ldr r1, _08058ED4 @ =0x030000F8 + adds r0, r3, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #5 + bgt _08058E62 + adds r4, #0x40 + adds r7, r3, r4 + movs r0, #0xa + str r0, [r7, #4] + mov r5, ip + ldrh r0, [r5, #6] + subs r1, #0xd4 + adds r0, r0, r1 + movs r3, #0 + ldrsh r2, [r0, r3] + lsls r2, r2, #2 + adds r2, #0xa + str r2, [r7, #4] + ldrh r0, [r5, #6] + subs r4, #0x40 + adds r1, r0, r4 + movs r5, #0 + ldrsh r1, [r1, r5] + ldr r3, _08058ECC @ =0x03000054 + adds r0, r0, r3 + movs r4, #0 + ldrsh r0, [r0, r4] + adds r1, r1, r0 + lsls r1, r1, #7 + adds r2, r2, r1 + ldr r5, _08058EB0 @ =0x000007FF + ands r2, r5 + str r2, [r7, #4] + adds r0, r2, #0 + ldr r1, _08058EB4 @ =0x000003FF + ands r0, r1 + ldr r3, _08058ED8 @ =gUnknown_0868653C + adds r0, r0, r3 + str r0, [r7] + movs r4, #0xc0 + lsls r4, r4, #0x13 + mov sl, r4 + add r2, sl + ldr r5, _08058EBC @ =gBgCntRegs + mov sb, r5 + ldrh r1, [r5, #2] + movs r3, #0xf8 + lsls r3, r3, #5 + adds r0, r3, #0 + ands r0, r1 + lsls r0, r0, #3 + adds r2, r2, r0 + str r2, [r7, #4] + movs r0, #4 + strh r0, [r7, #8] + ldr r1, _08058EC0 @ =gVramGraphicsCopyQueue + mov r8, r1 + ldr r4, _08058EC4 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r4] + lsls r0, r0, #2 + add r0, r8 + str r7, [r0] + ldrb r0, [r4] + adds r0, #1 + movs r2, #0x1f + ands r0, r2 + strb r0, [r4] + mov r5, ip + ldrh r0, [r5, #6] + ldr r1, _08058EDC @ =0x03000074 + adds r7, r0, r1 + movs r0, #0x4a + str r0, [r7, #4] + ldrh r0, [r5, #6] + ldr r2, _08058E9C @ =0x03000024 + adds r0, r0, r2 + movs r5, #0 + ldrsh r1, [r0, r5] + lsls r1, r1, #2 + adds r1, #0x4a + str r1, [r7, #4] + mov r2, ip + ldrh r0, [r2, #6] + ldr r5, _08058EA0 @ =0x03000028 + adds r2, r0, r5 + movs r5, #0 + ldrsh r2, [r2, r5] + ldr r5, _08058ECC @ =0x03000054 + adds r0, r0, r5 + movs r5, #0 + ldrsh r0, [r0, r5] + adds r2, r2, r0 + lsls r2, r2, #7 + adds r1, r1, r2 + ldr r0, _08058EB0 @ =0x000007FF + ands r1, r0 + str r1, [r7, #4] + adds r0, r1, #0 + ldr r2, _08058EB4 @ =0x000003FF + ands r0, r2 + ldr r5, _08058ED8 @ =gUnknown_0868653C + adds r0, r0, r5 + str r0, [r7] + add r1, sl + mov r2, sb + ldrh r0, [r2, #2] + ands r3, r0 + lsls r3, r3, #3 + adds r1, r1, r3 + str r1, [r7, #4] + movs r3, #4 + strh r3, [r7, #8] + ldrb r0, [r4] + lsls r0, r0, #2 + add r0, r8 + str r7, [r0] + ldrb r0, [r4] + adds r0, #1 + movs r5, #0x1f + ands r0, r5 + strb r0, [r4] +_08058E62: + ldr r7, _08058ED0 @ =gPressedKeys + ldrh r1, [r7] + movs r0, #0xc0 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08058EF8 + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08058EE0 + ldr r0, _08058E98 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r2, _08058ED4 @ =0x030000F8 + adds r1, r0, r2 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + beq _08058EF8 + subs r0, r2, #1 + b _08058EF6 + .align 2, 0 +_08058E94: .4byte 0x0300002C +_08058E98: .4byte gCurTask +_08058E9C: .4byte 0x03000024 +_08058EA0: .4byte 0x03000028 +_08058EA4: .4byte gUnknown_08688568 +_08058EA8: .4byte gPrevInput +_08058EAC: .4byte 0x03000080 +_08058EB0: .4byte 0x000007FF +_08058EB4: .4byte 0x000003FF +_08058EB8: .4byte gUnknown_08685D3C +_08058EBC: .4byte gBgCntRegs +_08058EC0: .4byte gVramGraphicsCopyQueue +_08058EC4: .4byte gVramGraphicsCopyQueueIndex +_08058EC8: .4byte 0x0300008C +_08058ECC: .4byte 0x03000054 +_08058ED0: .4byte gPressedKeys +_08058ED4: .4byte 0x030000F8 +_08058ED8: .4byte gUnknown_0868653C +_08058EDC: .4byte 0x03000074 +_08058EE0: + ldr r0, _08058F50 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r4, _08058F54 @ =0x030000F8 + adds r1, r0, r4 + ldrh r2, [r1] + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, #4 + bgt _08058EF8 + adds r0, r2, #1 +_08058EF6: + strh r0, [r1] +_08058EF8: + ldr r7, _08058F58 @ =gPressedKeys + ldrh r1, [r7] + movs r0, #1 + ands r0, r1 + add r2, sp, #0x2c + mov r8, r2 + movs r3, #0x2b + add r3, sp + mov sb, r3 + add r4, sp, #0x28 + mov sl, r4 + mov r5, sp + adds r5, #0x29 + str r5, [sp, #0x58] + mov r7, sp + adds r7, #0x2a + str r7, [sp, #0x5c] + cmp r0, #0 + bne _08058F20 + b _0805905C +_08058F20: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08058F2A + b _0805905C +_08058F2A: + movs r0, #0x93 + lsls r0, r0, #1 + cmp r6, r0 + bne _08058F5C + ldr r0, _08058F50 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r2, _08058F54 @ =0x030000F8 + adds r1, r0, r2 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bne _08058F48 + b _08059056 +_08058F48: + subs r0, r2, #1 + strh r0, [r1] + b _08059056 + .align 2, 0 +_08058F50: .4byte gCurTask +_08058F54: .4byte 0x030000F8 +_08058F58: .4byte gPressedKeys +_08058F5C: + movs r0, #0x94 + lsls r0, r0, #1 + cmp r6, r0 + bne _08058F88 + ldr r0, _08058F80 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r4, _08058F84 @ =0x030000F8 + adds r1, r0, r4 + ldrh r2, [r1] + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, #5 + bgt _08059056 + adds r0, r2, #1 + strh r0, [r1] + b _08059056 + .align 2, 0 +_08058F80: .4byte gCurTask +_08058F84: .4byte 0x030000F8 +_08058F88: + movs r0, #0x95 + lsls r0, r0, #1 + cmp r6, r0 + bne _08058FFC + movs r1, #0 + movs r6, #0 + ldr r7, _08058FE4 @ =gCurTask + ldr r0, [r7] + ldrh r2, [r0, #6] + ldr r5, _08058FE8 @ =0x030000C8 + ldr r4, _08058FEC @ =0xFFFFF000 + ldr r3, _08058FF0 @ =0x000010DB +_08058FA0: + lsls r0, r6, #2 + adds r0, r0, r2 + adds r0, r0, r5 + movs r7, #0 + ldrsh r0, [r0, r7] + adds r0, r0, r4 + cmp r0, r3 + beq _08058FB4 + movs r0, #1 + orrs r1, r0 +_08058FB4: + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #5 + bls _08058FA0 + cmp r1, #0 + beq _08059056 + movs r1, #0 + ldr r0, [sp, #0x30] + strh r1, [r0, #6] + movs r0, #1 + ldr r2, [sp, #0x30] + strh r0, [r2, #4] + ldr r3, _08058FE4 @ =gCurTask + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r4, _08058FF4 @ =0x030000FC + adds r0, r0, r4 + strh r1, [r0] + ldr r1, [r3] + ldr r0, _08058FF8 @ =Task_80595DC + str r0, [r1, #8] + b _08059056 + .align 2, 0 +_08058FE4: .4byte gCurTask +_08058FE8: .4byte 0x030000C8 +_08058FEC: .4byte 0xFFFFF000 +_08058FF0: .4byte 0x000010DB +_08058FF4: .4byte 0x030000FC +_08058FF8: .4byte Task_80595DC +_08058FFC: + ldr r3, _080590B4 @ =gCurTask + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r5, _080590B8 @ =0x030000F8 + adds r1, r0, r5 + movs r7, #0 + ldrsh r0, [r1, r7] + cmp r0, #5 + bgt _08059056 + ldrh r2, [r1] + adds r0, r2, #1 + strh r0, [r1] + ldr r0, [r3] + ldrh r0, [r0, #6] + lsls r2, r2, #2 + adds r0, r2, r0 + ldr r1, _080590BC @ =0x030000C8 + adds r0, r0, r1 + ldr r4, _080590C0 @ =0x00002001 + adds r1, r6, r4 + strh r1, [r0] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r0, r2, r0 + subs r5, #0x2e + adds r0, r0, r5 + ldr r7, _080590C4 @ =0x00002002 + adds r1, r6, r7 + strh r1, [r0] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r0, r2, r0 + ldr r1, _080590C8 @ =0x030000E0 + adds r0, r0, r1 + adds r4, #0x14 + adds r1, r6, r4 + strh r1, [r0] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r2, r2, r0 + adds r5, #0x18 + adds r2, r2, r5 + adds r7, #0x14 + adds r0, r6, r7 + strh r0, [r2] +_08059056: + movs r0, #0x6a + bl m4aSongNumStart +_0805905C: + ldr r1, _080590CC @ =gPressedKeys + ldrh r2, [r1] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + bne _08059082 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080590F2 + ldr r0, _080590B4 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r1, _080590B8 @ =0x030000F8 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #6 + bne _080590F2 +_08059082: + ldr r3, _080590B4 @ =gCurTask + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r4, _080590D0 @ =0x03000054 + adds r2, r1, r4 + ldrh r0, [r2] + movs r6, #7 + ands r6, r0 + cmp r6, #1 + bhi _080590DC + movs r0, #2 + strh r0, [r2] + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r5, _080590D4 @ =0x03000024 + adds r0, r0, r5 + movs r1, #9 + strh r1, [r0] + ldr r0, [r3] + ldrh r0, [r0, #6] + ldr r7, _080590D8 @ =0x03000028 + adds r0, r0, r7 + movs r1, #5 + strh r1, [r0] + b _080590F2 + .align 2, 0 +_080590B4: .4byte gCurTask +_080590B8: .4byte 0x030000F8 +_080590BC: .4byte 0x030000C8 +_080590C0: .4byte 0x00002001 +_080590C4: .4byte 0x00002002 +_080590C8: .4byte 0x030000E0 +_080590CC: .4byte gPressedKeys +_080590D0: .4byte 0x03000054 +_080590D4: .4byte 0x03000024 +_080590D8: .4byte 0x03000028 +_080590DC: + ldr r0, _080591E8 @ =0x03000024 + adds r1, r1, r0 + movs r0, #9 + strh r0, [r1] + ldr r0, [r3] + ldrh r1, [r0, #6] + ldr r2, _080591EC @ =0x03000028 + adds r1, r1, r2 + movs r0, #7 + subs r0, r0, r6 + strh r0, [r1] +_080590F2: + ldr r3, _080591F0 @ =gPressedKeys + ldrh r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _080591C8 + ldr r1, _080591F4 @ =gCurTask + ldr r0, [r1] + ldrh r0, [r0, #6] + ldr r4, _080591F8 @ =0x030000F8 + adds r3, r0, r4 + ldrh r4, [r3] + movs r5, #0 + ldrsh r0, [r3, r5] + cmp r0, #0 + ble _080591C8 + subs r0, r4, #1 + strh r0, [r3] + adds r7, r1, #0 + ldr r0, [r7] + ldrh r0, [r0, #6] + ldr r1, _080591F8 @ =0x030000F8 + adds r0, r0, r1 + ldrh r6, [r0] + cmp r6, #4 + bhi _0805917C + adds r3, r7, #0 +_08059128: + ldr r0, [r3] + ldrh r0, [r0, #6] + lsls r1, r6, #2 + adds r0, r1, r0 + ldr r4, _080591FC @ =0x030000C8 + adds r2, r0, r4 + ldr r5, _08059200 @ =0x030000CC + adds r0, r0, r5 + ldrh r0, [r0] + strh r0, [r2] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r0, r1, r0 + ldr r7, _08059204 @ =0x030000CA + adds r2, r0, r7 + adds r4, #6 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r2] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r0, r1, r0 + adds r5, #0x14 + adds r2, r0, r5 + adds r7, #0x1a + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r2] + ldr r0, [r3] + ldrh r0, [r0, #6] + adds r1, r1, r0 + ldr r0, _08059208 @ =0x030000E2 + adds r2, r1, r0 + adds r4, #0x18 + adds r1, r1, r4 + ldrh r0, [r1] + strh r0, [r2] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #4 + bls _08059128 +_0805917C: + ldr r5, _080591F4 @ =gCurTask + ldr r0, [r5] + ldrh r0, [r0, #6] + lsls r2, r6, #2 + adds r0, r2, r0 + ldr r7, _080591FC @ =0x030000C8 + adds r0, r0, r7 + ldr r3, _0805920C @ =0x000020DB + adds r1, r3, #0 + strh r1, [r0] + ldr r0, [r5] + ldrh r0, [r0, #6] + adds r0, r2, r0 + ldr r4, _08059204 @ =0x030000CA + adds r0, r0, r4 + ldr r5, _08059210 @ =0x000020DC + adds r1, r5, #0 + strh r1, [r0] + ldr r7, _080591F4 @ =gCurTask + ldr r0, [r7] + ldrh r0, [r0, #6] + adds r0, r2, r0 + ldr r1, _08059214 @ =0x030000E0 + adds r0, r0, r1 + adds r3, #0x14 + adds r1, r3, #0 + strh r1, [r0] + ldr r0, [r7] + ldrh r0, [r0, #6] + adds r2, r2, r0 + adds r4, #0x18 + adds r2, r2, r4 + adds r5, #0x14 + adds r0, r5, #0 + strh r0, [r2] + movs r0, #0x6b + bl m4aSongNumStart +_080591C8: + bl UiGfxStackInit + ldr r0, _080591F4 @ =gCurTask + ldr r0, [r0] + ldrh r0, [r0, #6] + ldr r7, _08059218 @ =0x03000030 + adds r1, r0, r7 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0x16 + bgt _0805921C + adds r1, r0, #0 + movs r0, #0x17 + subs r0, r0, r1 + b _08059222 + .align 2, 0 +_080591E8: .4byte 0x03000024 +_080591EC: .4byte 0x03000028 +_080591F0: .4byte gPressedKeys +_080591F4: .4byte gCurTask +_080591F8: .4byte 0x030000F8 +_080591FC: .4byte 0x030000C8 +_08059200: .4byte 0x030000CC +_08059204: .4byte 0x030000CA +_08059208: .4byte 0x030000E2 +_0805920C: .4byte 0x000020DB +_08059210: .4byte 0x000020DC +_08059214: .4byte 0x030000E0 +_08059218: .4byte 0x03000030 +_0805921C: + movs r4, #0 + ldrsh r0, [r1, r4] + subs r0, #0x17 +_08059222: + lsls r0, r0, #5 + movs r1, #0x17 + bl __divsi3 + adds r7, r0, #0 + ldr r4, _080593B8 @ =gSineTable + lsls r0, r7, #5 + movs r1, #0x3c + bl __udivsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x17 + movs r1, #0x1f + subs r7, r1, r0 + cmp r7, #0x1f + bls _0805924A + movs r7, #0x1f +_0805924A: + movs r6, #0 +_0805924C: + lsls r5, r6, #1 + str r5, [sp, #0x48] + ldr r1, _080593BC @ =gUiGraphics + ((37 * 0x1C) + 0x4) + ldr r0, [r1] + adds r0, r0, r5 + ldrh r0, [r0] + movs r2, #0xf8 + lsls r2, r2, #7 + adds r1, r2, #0 + ands r0, r1 + lsrs r0, r0, #0xa + muls r0, r7, r0 + movs r1, #0x20 + bl Div + adds r4, r0, #0 + ldr r3, _080593BC @ =gUiGraphics + ((37 * 0x1C) + 0x4) + ldr r0, [r3] + adds r0, r0, r5 + ldrh r0, [r0] + movs r5, #0xf8 + lsls r5, r5, #2 + adds r1, r5, #0 + ands r0, r1 + lsrs r0, r0, #5 + muls r0, r7, r0 + movs r1, #0x20 + bl Div + adds r5, r0, #0 + ldr r1, _080593BC @ =gUiGraphics + ((37 * 0x1C) + 0x4) + ldr r0, [r1] + ldr r2, [sp, #0x48] + adds r0, r0, r2 + ldrh r1, [r0] + movs r0, #0x1f + ands r0, r1 + muls r0, r7, r0 + movs r1, #0x20 + bl Div + ldr r3, _080593C0 @ =gCurTask + ldr r1, [r3] + ldrh r1, [r1, #6] + ldr r2, [sp, #0x48] + adds r1, r2, r1 + ldr r3, _080593C4 @ =0x03000034 + adds r3, r1, r3 + lsls r4, r4, #0xa + lsls r5, r5, #5 + adds r4, r4, r5 + adds r4, r4, r0 + strh r4, [r3] + adds r0, r6, #1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0xf + bls _0805924C + movs r0, #0x25 + mov r4, r8 + strb r0, [r4] + movs r1, #1 + mov r5, sb + strb r1, [r5] + ldr r7, _080593C0 @ =gCurTask + ldr r0, [r7] + ldrh r0, [r0, #6] + ldr r2, _080593C4 @ =0x03000034 + adds r0, r0, r2 + str r0, [sp, #0x20] + movs r0, #0x20 + str r0, [sp, #0x24] + mov r3, sl + strb r1, [r3] + ldr r4, [sp, #0x58] + strb r1, [r4] + movs r0, #4 + ldr r5, [sp, #0x5c] + strb r0, [r5] + ldr r3, _080593C8 @ =gUiGraphics + mov r7, r8 + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [sp, #4] + mov r2, sp + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #8] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #9] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x14 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xa] + ldrb r1, [r7] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x18 + adds r0, r0, r1 + ldr r0, [r0] + strb r0, [r2, #0xb] + mov r0, sp + bl sub_80528AC + ldr r0, _080593C0 @ =gCurTask + ldr r5, [r0] + ldrh r3, [r5, #6] + ldr r1, _080593CC @ =0x030000F8 + adds r0, r3, r1 + ldrh r7, [r0] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r0, #5 + bgt _080593F2 + ldr r4, _080593D0 @ =0x03000028 + adds r2, r3, r4 + subs r1, #0xa4 + adds r0, r3, r1 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + movs r0, #0xe0 + lsls r0, r0, #0xb + ands r0, r1 + lsrs r6, r0, #0x10 + lsls r0, r6, #2 + adds r0, r0, r6 + lsls r0, r0, #0x12 + ldr r2, _080593D4 @ =0x03000024 + adds r1, r3, r2 + lsrs r0, r0, #0x10 + ldrh r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #0x11 + movs r1, #0x95 + lsls r1, r1, #0x11 + cmp r0, r1 + beq _080593F2 + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r3, r0 + lsls r0, r7, #4 + adds r0, #0x78 + strh r0, [r4, #0xa] + ldrh r0, [r5, #6] + ldr r3, _080593D8 @ =0x0300002C + adds r1, r0, r3 + movs r5, #0 + ldrsh r0, [r1, r5] + cmp r0, #0x10 + ble _080593DC + movs r1, #0x10 + subs r1, r1, r0 + b _080593E2 + .align 2, 0 +_080593B8: .4byte gSineTable +_080593BC: .4byte gUiGraphics + ((37 * 0x1C) + 0x4) +_080593C0: .4byte gCurTask +_080593C4: .4byte 0x03000034 +_080593C8: .4byte gUiGraphics +_080593CC: .4byte 0x030000F8 +_080593D0: .4byte 0x03000028 +_080593D4: .4byte 0x03000024 +_080593D8: .4byte 0x0300002C +_080593DC: + movs r0, #0 + ldrsh r1, [r1, r0] + subs r1, #0x10 +_080593E2: + asrs r1, r1, #2 + movs r0, #0xd + subs r0, r0, r1 + strh r0, [r4, #0xc] + ldr r0, _08059520 @ =gUnknown_0868856C + adds r1, r4, #0 + bl sub_805321C +_080593F2: + ldr r1, _08059524 @ =gCurTask + ldr r2, [r1] + mov sl, r2 + ldrh r0, [r2, #6] + ldr r3, _08059528 @ =0x03000098 + adds r7, r0, r3 + ldr r4, _0805952C @ =0x030000C8 + adds r0, r0, r4 + str r0, [r7] + movs r0, #0x1e + str r0, [r7, #4] + ldrh r0, [r2, #6] + subs r4, #0x74 + adds r0, r0, r4 + movs r5, #0 + ldrsh r1, [r0, r5] + subs r1, #2 + lsls r1, r1, #7 + adds r1, #0x1e + ldr r0, _08059530 @ =0x000007FF + ands r1, r0 + str r1, [r7, #4] + movs r2, #0xc0 + lsls r2, r2, #0x13 + mov r8, r2 + add r1, r8 + ldr r3, _08059534 @ =gBgCntRegs + ldrh r2, [r3, #2] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + str r1, [r7, #4] + movs r5, #0x18 + strh r5, [r7, #8] + ldr r0, _08059538 @ =gVramGraphicsCopyQueue + mov ip, r0 + ldr r3, _0805953C @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r3] + lsls r0, r0, #2 + add r0, ip + str r7, [r0] + ldrb r0, [r3] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r3] + mov r2, sl + ldrh r0, [r2, #6] + ldr r5, _08059540 @ =0x030000A4 + adds r7, r0, r5 + ldr r1, _08059544 @ =0x030000E0 + adds r0, r0, r1 + str r0, [r7] + movs r0, #0x5e + str r0, [r7, #4] + ldrh r0, [r2, #6] + adds r0, r0, r4 + movs r2, #0 + ldrsh r1, [r0, r2] + subs r1, #2 + lsls r1, r1, #7 + adds r1, #0x5e + ldr r5, _08059530 @ =0x000007FF + ands r1, r5 + str r1, [r7, #4] + add r1, r8 + ldr r0, _08059534 @ =gBgCntRegs + ldrh r2, [r0, #2] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + str r1, [r7, #4] + movs r1, #0x18 + strh r1, [r7, #8] + ldrb r0, [r3] + lsls r0, r0, #2 + add r0, ip + str r7, [r0] + ldrb r0, [r3] + adds r0, #1 + movs r2, #0x1f + ands r0, r2 + strb r0, [r3] + mov r5, sl + ldrh r2, [r5, #6] + adds r4, r2, r4 + ldr r7, [sp, #0x60] + asrs r1, r7, #0x10 + movs r5, #0 + ldrsh r0, [r4, r5] + ldr r7, _08059534 @ =gBgCntRegs + mov r8, r7 + mov sb, ip + adds r5, r3, #0 + cmp r1, r0 + beq _0805959E + ldr r0, _08059548 @ =0x030000B0 + adds r7, r2, r0 + adds r0, r1, #6 + lsls r6, r0, #7 + adds r0, r6, #0 + ldr r2, _08059530 @ =0x000007FF + ands r0, r2 + ldr r3, _0805954C @ =gUnknown_08685D3C + 0x1E + adds r0, r0, r3 + str r0, [r7] + subs r0, r1, #2 + lsls r4, r0, #7 + adds r1, r4, #0 + adds r1, #0x1e + ands r1, r2 + str r1, [r7, #4] + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r1, r0 + mov r0, r8 + ldrh r2, [r0, #2] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + str r1, [r7, #4] + movs r1, #0x18 + strh r1, [r7, #8] + ldrb r0, [r5] + lsls r0, r0, #2 + add r0, sb + str r7, [r0] + ldrb r0, [r5] + adds r0, #1 + movs r2, #0x1f + ands r0, r2 + strb r0, [r5] + mov r7, sl + ldrh r0, [r7, #6] + ldr r1, _08059550 @ =0x030000BC + adds r7, r0, r1 + ldr r2, _08059554 @ =0x03000028 + adds r0, r0, r2 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08059558 + adds r0, r4, #0 + b _0805955A + .align 2, 0 +_08059520: .4byte gUnknown_0868856C +_08059524: .4byte gCurTask +_08059528: .4byte 0x03000098 +_0805952C: .4byte 0x030000C8 +_08059530: .4byte 0x000007FF +_08059534: .4byte gBgCntRegs +_08059538: .4byte gVramGraphicsCopyQueue +_0805953C: .4byte gVramGraphicsCopyQueueIndex +_08059540: .4byte 0x030000A4 +_08059544: .4byte 0x030000E0 +_08059548: .4byte 0x030000B0 +_0805954C: .4byte gUnknown_08685D3C + 0x1E +_08059550: .4byte 0x030000BC +_08059554: .4byte 0x03000028 +_08059558: + adds r0, r6, #0 +_0805955A: + adds r0, #0x40 + str r0, [r7] + ldr r0, [r7] + ldr r2, _080595C8 @ =0x000007FF + ands r0, r2 + adds r0, r0, r3 + str r0, [r7] + ldr r3, [sp, #0x60] + asrs r1, r3, #9 + subs r1, #0xa2 + ands r1, r2 + str r1, [r7, #4] + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r1, r0 + mov r4, r8 + ldrh r2, [r4, #2] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r2 + lsls r0, r0, #3 + adds r1, r1, r0 + str r1, [r7, #4] + movs r0, #0x18 + strh r0, [r7, #8] + ldrb r0, [r5] + lsls r0, r0, #2 + add r0, sb + str r7, [r0] + ldrb r0, [r5] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5] +_0805959E: + ldr r2, _080595CC @ =gBgScrollRegs + ldr r5, _080595D0 @ =gCurTask + ldr r0, [r5] + ldrh r0, [r0, #6] + ldr r7, _080595D4 @ =0x03000054 + adds r0, r0, r7 + ldrh r0, [r0] + lsls r0, r0, #4 + subs r0, #0x30 + ldr r3, _080595D8 @ =0x000001FF + adds r1, r3, #0 + ands r0, r1 + strh r0, [r2, #6] + add sp, #0x64 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080595C8: .4byte 0x000007FF +_080595CC: .4byte gBgScrollRegs +_080595D0: .4byte gCurTask +_080595D4: .4byte 0x03000054 +_080595D8: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc b/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc new file mode 100644 index 0000000000..f5a8d0e179 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc @@ -0,0 +1,189 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + ldr r0, _0805F9A0 @ =gCurTask + ldr r0, [r0] + ldrh r5, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r5, r0 + ldr r1, _0805F9A4 @ =0x03000108 + adds r0, r5, r1 + ldr r6, [r0] + ldr r2, _0805F9A8 @ =0x0300010D + adds r3, r5, r2 + ldrb r0, [r3] + cmp r0, #0 + beq _0805F972 + cmp r6, #0x77 + bhi _0805F9B8 +_0805F972: + movs r7, #0 + movs r0, #0xb4 + strh r0, [r4, #0x16] + movs r0, #0x78 + strh r0, [r4, #0x18] + ldr r0, _0805F9AC @ =0x00000355 + strh r0, [r4, #0xa] + ldr r0, _0805F9B0 @ =0x03000020 + adds r2, r5, r0 + strb r7, [r2] + cmp r6, #0x77 + beq _0805F98C + b _0805FAA8 +_0805F98C: + adds r0, #1 + adds r1, r5, r0 + movs r0, #0xff + strb r0, [r1] + movs r0, #1 + strb r0, [r3] + ldr r0, _0805F9B4 @ =0x00000356 + strh r0, [r4, #0xa] + strb r7, [r2] + b _0805FAA8 + .align 2, 0 +_0805F9A0: .4byte gCurTask +_0805F9A4: .4byte 0x03000108 +_0805F9A8: .4byte 0x0300010D +_0805F9AC: .4byte 0x00000355 +_0805F9B0: .4byte 0x03000020 +_0805F9B4: .4byte 0x00000356 +_0805F9B8: + cmp r0, #1 + bne _0805F9DC + movs r1, #0 + movs r0, #0xb4 + strh r0, [r4, #0x16] + movs r0, #0x78 + strh r0, [r4, #0x18] + ldr r0, _0805F9D4 @ =0x00000356 +_0805F9C8: + strh r0, [r4, #0xa] + ldr r2, _0805F9D8 @ =0x03000020 + adds r0, r5, r2 + strb r1, [r0] + b _0805FAA8 + .align 2, 0 +_0805F9D4: .4byte 0x00000356 +_0805F9D8: .4byte 0x03000020 +_0805F9DC: + cmp r0, #2 + bne _0805FA6C + adds r0, r6, #0 + movs r1, #0xfa + bl Mod + cmp r0, #0x77 + bgt _0805FA00 + movs r1, #0 + movs r0, #0xa4 + strh r0, [r4, #0x16] + movs r0, #0x78 + strh r0, [r4, #0x18] + ldr r0, _0805F9FC @ =0x00000357 + b _0805F9C8 + .align 2, 0 +_0805F9FC: .4byte 0x00000357 +_0805FA00: + adds r0, r6, #0 + movs r1, #0xfa + bl Mod + cmp r0, #0x7c + ble _0805FA40 + adds r0, r6, #0 + movs r1, #0xfa + bl Mod + cmp r0, #0xf4 + bgt _0805FA40 + movs r1, #0 + movs r0, #0xc4 + strh r0, [r4, #0x16] + movs r0, #0x78 + strh r0, [r4, #0x18] + ldr r0, _0805FA38 @ =0x00000357 + strh r0, [r4, #0xa] + ldr r2, _0805FA3C @ =0x03000020 + adds r0, r5, r2 + strb r1, [r0] + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + b _0805FAAE + .align 2, 0 +_0805FA38: .4byte 0x00000357 +_0805FA3C: .4byte 0x03000020 +_0805FA40: + movs r0, #0xb4 + strh r0, [r4, #0x16] + movs r0, #0x78 + strh r0, [r4, #0x18] + ldr r0, _0805FA60 @ =0x00000357 + strh r0, [r4, #0xa] + ldr r0, _0805FA64 @ =0x03000020 + adds r1, r5, r0 + movs r0, #1 + strb r0, [r1] + ldr r2, _0805FA68 @ =0x0300010E + adds r1, r5, r2 + movs r0, #5 + strh r0, [r1] + b _0805FAB0 + .align 2, 0 +_0805FA60: .4byte 0x00000357 +_0805FA64: .4byte 0x03000020 +_0805FA68: .4byte 0x0300010E +_0805FA6C: + cmp r0, #3 + bne _0805FAB0 + movs r6, #0 + movs r0, #0xb4 + strh r0, [r4, #0x16] + movs r0, #0x78 + strh r0, [r4, #0x18] + movs r0, #0xd6 + lsls r0, r0, #2 + strh r0, [r4, #0xa] + ldr r0, _0805FAC4 @ =0x03000020 + adds r2, r5, r0 + strb r6, [r2] + adds r0, #0xee + adds r1, r5, r0 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805FAA8 + ldr r0, _0805FAC8 @ =0x03000021 + adds r1, r5, r0 + movs r0, #0xff + strb r0, [r1] + movs r0, #1 + strb r0, [r3] + ldr r0, _0805FACC @ =0x00000356 + strh r0, [r4, #0xa] + strb r6, [r2] +_0805FAA8: + ldr r0, [r4, #0x10] + ldr r1, _0805FAD0 @ =0xFFFFFBFF + ands r0, r1 +_0805FAAE: + str r0, [r4, #0x10] +_0805FAB0: + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0805FAC4: .4byte 0x03000020 +_0805FAC8: .4byte 0x03000021 +_0805FACC: .4byte 0x00000356 +_0805FAD0: .4byte 0xFFFFFBFF + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc b/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc new file mode 100644 index 0000000000..f81f91ef6a --- /dev/null +++ b/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc @@ -0,0 +1,155 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0805E954 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r1, r0 + adds r0, #0x30 + adds r0, r0, r1 + mov sb, r0 + ldr r5, [r4, #0x78] + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0805E8BC + ldr r0, _0805E958 @ =0x00143000 + ldr r1, _0805E95C @ =0x0000201C + bl Div + adds r0, #1 + muls r0, r5, r0 + str r0, [r4, #0x7c] +_0805E8BC: + ldr r0, [r4, #0x7c] + lsrs r2, r0, #8 + adds r0, r2, #0 + subs r0, #0xc + cmp r0, #0x9a + bls _0805E9A2 + subs r0, #0x8a + lsrs r6, r0, #4 + subs r0, #0x10 + movs r1, #0x10 + bl Mod + adds r0, #4 + mov sl, r0 + movs r5, #0xff + movs r3, #0 + ldr r1, _0805E960 @ =gUnknown_086886A0 + mov ip, r1 + mov r7, ip +_0805E8E2: + movs r2, #0 +_0805E8E4: + lsls r0, r2, #2 + adds r0, r0, r7 + adds r1, r6, r3 + ldr r0, [r0] + cmp r0, r1 + bne _0805E8F8 + adds r5, r2, #0 + mov r8, r3 + movs r3, #0xa + movs r2, #5 +_0805E8F8: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _0805E8E4 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #9 + bls _0805E8E2 + mov r2, ip + ldr r0, [r2, #0xc] + subs r0, #3 + cmp r6, r0 + blo _0805E91C + movs r5, #3 + movs r0, #0 + mov r8, r0 +_0805E91C: + cmp r5, #0xff + beq _0805E9A2 + movs r0, #0x18 + mov r1, sl + subs r0, r0, r1 + mov r2, r8 + lsls r1, r2, #4 + adds r0, r0, r1 + strh r0, [r4, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9a + bgt _0805E9A2 + movs r2, #0x78 + strh r2, [r4, #0x16] + cmp r5, #0 + beq _0805E996 + cmp r5, #1 + beq _0805E946 + cmp r5, #2 + bne _0805E964 +_0805E946: + movs r0, #0xb9 + lsls r0, r0, #2 + strh r0, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x20 + strb r5, [r0] + b _0805E996 + .align 2, 0 +_0805E954: .4byte gCurTask +_0805E958: .4byte 0x00143000 +_0805E95C: .4byte 0x0000201C +_0805E960: .4byte gUnknown_086886A0 +_0805E964: + movs r0, #0xb9 + lsls r0, r0, #2 + strh r0, [r4, #0xa] + adds r1, r4, #0 + adds r1, #0x20 + movs r0, #3 + strb r0, [r1] + movs r1, #0x18 + ldrsh r0, [r4, r1] + cmp r0, #0x4f + bgt _0805E97E + movs r0, #0x50 + strh r0, [r4, #0x18] +_0805E97E: + mov r0, sb + strh r2, [r0, #0x16] + ldrh r0, [r4, #0x18] + adds r0, #0x28 + mov r1, sb + strh r0, [r1, #0x18] + mov r0, sb + bl UpdateSpriteAnimation + mov r0, sb + bl DisplaySprite +_0805E996: + adds r0, r4, #0 + bl UpdateSpriteAnimation + adds r0, r4, #0 + bl DisplaySprite +_0805E9A2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc b/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc new file mode 100644 index 0000000000..e65cfb11e5 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc @@ -0,0 +1,308 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r7, #0 + movs r0, #0 + str r0, [sp] + ldr r0, _080611E0 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r6, r4, r1 + ldr r2, _080611E4 @ =0x030000CC + adds r0, r4, r2 + ldr r0, [r0] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov r8, r0 + ldr r3, _080611E8 @ =0x030000D0 + adds r0, r4, r3 + ldr r0, [r0] + ldrh r0, [r0, #6] + adds r0, r0, r1 + mov sl, r0 + ldr r0, _080611EC @ =0x030000D8 + adds r2, r4, r0 + ldr r1, [r2] + adds r3, #4 + adds r0, r4, r3 + ldr r3, [r0] + mov sb, r3 + movs r3, #1 + add sb, r3 + mov r3, sb + str r3, [r0] + mov r0, r8 + str r3, [r0, #0x48] + mov r0, sl + str r3, [r0, #0x48] + str r1, [r2] + mov r2, r8 + str r1, [r2, #0x4c] + str r1, [r0, #0x4c] + ldr r3, _080611F0 @ =0x030000DE + adds r5, r4, r3 + ldrh r0, [r5] + cmp r0, #0 + bne _0806126C + ldr r0, _080611F4 @ =gRepeatedKeys + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08061200 + movs r0, #0x6c + bl m4aSongNumStart + movs r0, #2 + strb r0, [r5] + ldr r0, _080611F8 @ =0x030000DC + adds r2, r4, r0 + ldrb r1, [r2] + ldr r3, _080611FC @ =0x030000DD + adds r0, r4, r3 + strb r1, [r0] + ldrb r0, [r2] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + movs r0, #0x6c + bl m4aSongNumStart + b _0806122E + .align 2, 0 +_080611E0: .4byte gCurTask +_080611E4: .4byte 0x030000CC +_080611E8: .4byte 0x030000D0 +_080611EC: .4byte 0x030000D8 +_080611F0: .4byte 0x030000DE +_080611F4: .4byte gRepeatedKeys +_080611F8: .4byte 0x030000DC +_080611FC: .4byte 0x030000DD +_08061200: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0806122E + movs r0, #0x6c + bl m4aSongNumStart + movs r0, #2 + strb r0, [r5] + ldr r0, _08061260 @ =0x030000DC + adds r2, r4, r0 + ldrb r1, [r2] + ldr r3, _08061264 @ =0x030000DD + adds r0, r4, r3 + strb r1, [r0] + ldrb r0, [r2] + subs r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + movs r0, #0x6c + bl m4aSongNumStart +_0806122E: + ldr r0, _08061268 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + adds r4, r6, #0 + adds r4, #0xdf + cmp r0, #0 + beq _0806127A + movs r0, #0x6b + bl m4aSongNumStart + movs r0, #1 + strb r0, [r4] + strh r0, [r6, #4] + ldrh r1, [r6, #6] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r6, #6] + movs r0, #0x6b + bl m4aSongNumStart + b _0806127A + .align 2, 0 +_08061260: .4byte 0x030000DC +_08061264: .4byte 0x030000DD +_08061268: .4byte gPressedKeys +_0806126C: + ldrb r0, [r5] + ldr r3, _0806131C @ =0x030000DF + adds r4, r4, r3 + cmp r0, #0 + beq _0806127A + subs r0, #1 + strb r0, [r5] +_0806127A: + adds r0, r6, #0 + bl sub_805423C + adds r2, r6, #0 + adds r2, #0xde + ldrb r0, [r2] + mov r1, r8 + adds r1, #0x52 + movs r5, #0 + strb r0, [r1] + ldrb r0, [r2] + mov r1, sl + adds r1, #0x52 + strb r0, [r1] + adds r3, r6, #0 + adds r3, #0xdd + ldrb r0, [r3] + mov r1, r8 + adds r1, #0x51 + strb r0, [r1] + subs r2, #2 + ldrb r1, [r2] + mov r0, r8 + adds r0, #0x50 + strb r1, [r0] + ldrb r0, [r3] + mov r1, sl + adds r1, #0x51 + strb r0, [r1] + ldrb r1, [r2] + mov r0, sl + adds r0, #0x50 + strb r1, [r0] + ldrb r0, [r4] + cmp r0, #0 + beq _08061334 + movs r0, #6 + ldrsh r1, [r6, r0] + movs r0, #0xc0 + lsls r0, r0, #5 + cmp r1, r0 + ble _08061334 + movs r1, #4 + ldrsh r0, [r6, r1] + cmp r0, #1 + bne _08061334 + ldr r2, _08061320 @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + movs r0, #0xa + bl m4aSongNumStop + ldr r2, _08061324 @ =gDispCnt + ldrh r1, [r2] + ldr r0, _08061328 @ =0x00001FFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0806132C @ =gBldRegs + strh r5, [r0] + strh r5, [r0, #4] + adds r0, r6, #0 + adds r0, #0xcc + ldr r0, [r0] + bl TaskDestroy + adds r0, r6, #0 + adds r0, #0xd0 + ldr r0, [r0] + bl TaskDestroy + ldr r0, _08061330 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + movs r0, #1 + bl CreateCourseSelect + b _080613A8 + .align 2, 0 +_0806131C: .4byte 0x030000DF +_08061320: .4byte gFlags +_08061324: .4byte gDispCnt +_08061328: .4byte 0x00001FFF +_0806132C: .4byte gBldRegs +_08061330: .4byte gCurTask +_08061334: + movs r0, #0xff + mov r3, sb + ands r3, r0 + ldr r1, _080613B8 @ =gFlags + ldr r0, [r1] + movs r2, #4 + orrs r0, r2 + str r0, [r1] + ldr r1, _080613BC @ =gHBlankCopyTarget + ldr r0, _080613C0 @ =0x04000010 + str r0, [r1] + ldr r0, _080613C4 @ =gHBlankCopySize + strb r2, [r0] + ldr r0, _080613C8 @ =gBgOffsetsHBlankPrimary + lsls r1, r7, #2 + ldr r0, [r0] + adds r2, r0, r1 + cmp r7, #0xa0 + bhs _080613A4 +_0806135A: + movs r1, #0 + ldr r6, [sp] + lsls r5, r6, #0x18 + lsls r4, r3, #0x10 + cmp r7, #0xa0 + bhs _0806138C + adds r3, #0 + ldr r6, _080613CC @ =0x000001FF + adds r0, r6, #0 + ands r3, r0 +_0806136E: + strh r3, [r2] + adds r2, #2 + movs r0, #0 + strh r0, [r2] + adds r2, #2 + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0x17 + bhi _0806138C + cmp r7, #0xa0 + blo _0806136E +_0806138C: + asrs r1, r5, #0x18 + asrs r0, r4, #0x10 + adds r0, r0, r1 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp] + cmp r7, #0xa0 + blo _0806135A +_080613A4: + bl sub_80613D0 +_080613A8: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080613B8: .4byte gFlags +_080613BC: .4byte gHBlankCopyTarget +_080613C0: .4byte 0x04000010 +_080613C4: .4byte gHBlankCopySize +_080613C8: .4byte gBgOffsetsHBlankPrimary +_080613CC: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc b/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc new file mode 100644 index 0000000000..7df512a112 --- /dev/null +++ b/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc @@ -0,0 +1,449 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x4c + ldr r0, _080614AC @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r1, r0 + str r0, [sp, #0x38] + ldr r2, _080614B0 @ =0x03000052 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #1 + bhi _080614B8 + ldr r3, _080614B4 @ =0x03000050 + adds r0, r1, r3 + b _080614BC + .align 2, 0 +_080614AC: .4byte gCurTask +_080614B0: .4byte 0x03000052 +_080614B4: .4byte 0x03000050 +_080614B8: + ldr r2, _08061554 @ =0x03000051 + adds r0, r1, r2 +_080614BC: + ldrb r0, [r0] + str r0, [sp, #0x3c] + ldr r0, [sp, #0x38] + adds r0, #0x52 + ldrb r1, [r0] + cmp r1, #1 + beq _080614CC + b _08061706 +_080614CC: + str r1, [sp, #0x48] + bl UiGfxStackInit + ldr r0, [sp, #0x38] + adds r0, #0x50 + ldrb r7, [r0] + ldr r1, [sp, #0x48] + cmp r7, #0 + bne _0806156C + add r6, sp, #0x2c + movs r5, #0x80 + strb r5, [r6] + mov r4, sp + adds r4, #0x2b + strb r1, [r4] + ldr r0, _08061558 @ =gUnknown_086972F4 + str r0, [sp, #0x14] + movs r0, #0xc8 + lsls r0, r0, #5 + str r0, [sp, #0x18] + ldr r0, _0806155C @ =gUnknown_08698BF4 + str r0, [sp, #0x10] + movs r3, #0xa0 + lsls r3, r3, #3 + mov r8, r3 + str r3, [sp, #0x1c] + movs r0, #0x29 + add r0, sp + mov sb, r0 + strb r1, [r0] + movs r1, #0x2a + add r1, sp + mov sl, r1 + movs r0, #0x11 + strb r0, [r1] + str r7, [sp, #4] + mov r0, sp + strb r7, [r0, #8] + strb r7, [r0, #9] + strb r7, [r0, #0xa] + strb r7, [r0, #0xb] + bl sub_80528AC + strb r5, [r6] + strb r7, [r4] + ldr r0, _08061560 @ =gCharacterCards_Sonic_Tiles + str r0, [sp, #0x14] + movs r0, #0x9c + lsls r0, r0, #4 + str r0, [sp, #0x18] + ldr r0, _08061564 @ =gCharacterCards_Sonic_Palette + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #0x24] + ldr r0, _08061568 @ =gCharacterCards_Sonic_Layout + str r0, [sp, #0x10] + mov r2, r8 + str r2, [sp, #0x1c] + add r0, sp, #0x28 + strb r7, [r0] + mov r3, sb + strb r7, [r3] + movs r0, #0x15 + mov r1, sl + strb r0, [r1] + b _08061670 + .align 2, 0 +_08061554: .4byte 0x03000051 +_08061558: .4byte gUnknown_086972F4 +_0806155C: .4byte gUnknown_08698BF4 +_08061560: .4byte gCharacterCards_Sonic_Tiles +_08061564: .4byte gCharacterCards_Sonic_Palette +_08061568: .4byte gCharacterCards_Sonic_Layout +_0806156C: + cmp r7, #1 + bne _080615F8 + add r2, sp, #0x2c + mov r8, r2 + movs r4, #0 + movs r6, #0x80 + strb r6, [r2] + mov r5, sp + adds r5, #0x2b + strb r1, [r5] + ldr r0, _080615E4 @ =gUnknown_0869A9B4 + str r0, [sp, #0x14] + movs r0, #0xe2 + lsls r0, r0, #5 + str r0, [sp, #0x18] + ldr r0, _080615E8 @ =gUnknown_0869C5F4 + str r0, [sp, #0x10] + movs r3, #0xa0 + lsls r3, r3, #3 + mov sb, r3 + str r3, [sp, #0x1c] + movs r0, #0x29 + add r0, sp + mov sl, r0 + strb r1, [r0] + mov r7, sp + adds r7, #0x2a + movs r0, #0x11 + strb r0, [r7] + str r4, [sp, #4] + mov r0, sp + strb r4, [r0, #8] + strb r4, [r0, #9] + strb r4, [r0, #0xa] + strb r4, [r0, #0xb] + bl sub_80528AC + mov r1, r8 + strb r6, [r1] + strb r4, [r5] + ldr r0, _080615EC @ =gCharacterCards_Tails_Tiles + str r0, [sp, #0x14] + movs r0, #0xd0 + lsls r0, r0, #3 + str r0, [sp, #0x18] + ldr r0, _080615F0 @ =gCharacterCards_Tails_Palette + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #0x24] + ldr r0, _080615F4 @ =gCharacterCards_Tails_Layout + str r0, [sp, #0x10] + mov r2, sb + str r2, [sp, #0x1c] + add r0, sp, #0x28 + strb r4, [r0] + mov r3, sl + strb r4, [r3] + b _0806166C + .align 2, 0 +_080615E4: .4byte gUnknown_0869A9B4 +_080615E8: .4byte gUnknown_0869C5F4 +_080615EC: .4byte gCharacterCards_Tails_Tiles +_080615F0: .4byte gCharacterCards_Tails_Palette +_080615F4: .4byte gCharacterCards_Tails_Layout +_080615F8: + cmp r7, #2 + bne _0806168C + add r0, sp, #0x2c + mov r8, r0 + movs r4, #0 + movs r6, #0x80 + strb r6, [r0] + mov r5, sp + adds r5, #0x2b + strb r1, [r5] + ldr r0, _08061678 @ =gUnknown_08690574 + str r0, [sp, #0x14] + movs r0, #0xc0 + lsls r0, r0, #5 + str r0, [sp, #0x18] + ldr r0, _0806167C @ =gUnknown_08691D74 + str r0, [sp, #0x10] + movs r2, #0xa0 + lsls r2, r2, #3 + mov sb, r2 + str r2, [sp, #0x1c] + movs r3, #0x29 + add r3, sp + mov sl, r3 + strb r1, [r3] + mov r7, sp + adds r7, #0x2a + movs r0, #0x11 + strb r0, [r7] + str r4, [sp, #4] + mov r0, sp + strb r4, [r0, #8] + strb r4, [r0, #9] + strb r4, [r0, #0xa] + strb r4, [r0, #0xb] + bl sub_80528AC + mov r0, r8 + strb r6, [r0] + strb r4, [r5] + ldr r0, _08061680 @ =gCharacterCards_Knuckles_Tiles + str r0, [sp, #0x14] + movs r0, #0xf8 + lsls r0, r0, #3 + str r0, [sp, #0x18] + ldr r0, _08061684 @ =gCharacterCards_Knuckles_Palette + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #0x24] + ldr r0, _08061688 @ =gCharacterCards_Knuckles_Layout + str r0, [sp, #0x10] + mov r1, sb + str r1, [sp, #0x1c] + add r0, sp, #0x28 + strb r4, [r0] + mov r2, sl + strb r4, [r2] +_0806166C: + movs r0, #0x15 + strb r0, [r7] +_08061670: + mov r0, sp + bl sub_80528AC + b _08061706 + .align 2, 0 +_08061678: .4byte gUnknown_08690574 +_0806167C: .4byte gUnknown_08691D74 +_08061680: .4byte gCharacterCards_Knuckles_Tiles +_08061684: .4byte gCharacterCards_Knuckles_Palette +_08061688: .4byte gCharacterCards_Knuckles_Layout +_0806168C: + add r3, sp, #0x2c + mov r8, r3 + movs r4, #0 + movs r6, #0x80 + strb r6, [r3] + mov r5, sp + adds r5, #0x2b + strb r1, [r5] + ldr r0, _08061780 @ =gUnknown_08693974 + str r0, [sp, #0x14] + movs r0, #0xc4 + lsls r0, r0, #5 + str r0, [sp, #0x18] + ldr r0, _08061784 @ =gUnknown_086951F4 + str r0, [sp, #0x10] + movs r0, #0xa0 + lsls r0, r0, #3 + mov sb, r0 + str r0, [sp, #0x1c] + movs r2, #0x29 + add r2, sp + mov sl, r2 + strb r1, [r2] + mov r7, sp + adds r7, #0x2a + movs r0, #0x11 + strb r0, [r7] + str r4, [sp, #4] + mov r0, sp + strb r4, [r0, #8] + strb r4, [r0, #9] + strb r4, [r0, #0xa] + strb r4, [r0, #0xb] + bl sub_80528AC + mov r3, r8 + strb r6, [r3] + strb r4, [r5] + ldr r0, _08061788 @ =gCharacterCards_Amy_Tiles + str r0, [sp, #0x14] + movs r0, #0x98 + lsls r0, r0, #3 + str r0, [sp, #0x18] + ldr r0, _0806178C @ =gCharacterCards_Amy_Palette + str r0, [sp, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [sp, #0x24] + ldr r0, _08061790 @ =gCharacterCards_Amy_Layout + str r0, [sp, #0x10] + mov r0, sb + str r0, [sp, #0x1c] + add r0, sp, #0x28 + strb r4, [r0] + mov r1, sl + strb r4, [r1] + movs r0, #0x15 + strb r0, [r7] + mov r0, sp + bl sub_80528AC +_08061706: + movs r7, #0 + add r6, sp, #0x30 + ldr r2, [sp, #0x38] + adds r2, #0x30 + mov sb, r2 + ldr r3, [sp, #0x38] + adds r3, #0x54 + str r3, [sp, #0x40] + ldr r0, _08061794 @ =gLoadedSaveGame + adds r0, #0x20 + str r0, [sp, #0x44] + mov r8, r6 + ldr r1, _08061798 @ =gSecondsTable + mov sl, r1 +_08061722: + movs r0, #1 + ldr r2, [sp, #0x38] + strh r0, [r2, #0x3e] + adds r0, r7, #0 + adds r0, #0x21 + mov r3, r8 + strb r0, [r3] + movs r0, #0x2c + strh r0, [r2, #0x3a] + lsls r4, r7, #4 + adds r4, #0x5c + strh r4, [r2, #0x3c] + mov r0, r8 + mov r1, sb + bl sub_805321C + movs r0, #7 + ldr r1, [sp, #0x38] + strh r0, [r1, #0x3e] + movs r0, #0x54 + strh r0, [r1, #0x3a] + strh r4, [r1, #0x3c] + ldr r2, [sp, #0x40] + ldrb r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r7 + lsls r0, r0, #2 + movs r1, #0xd8 + ldr r3, [sp, #0x3c] + muls r1, r3, r1 + adds r0, r0, r1 + ldr r1, [sp, #0x44] + adds r0, r1, r0 + ldr r5, [r0] + ldr r0, _0806179C @ =0x00008C9F + cmp r5, r0 + bls _080617A0 + movs r1, #0x29 + strb r1, [r6, #6] + strb r1, [r6, #5] + strb r1, [r6, #3] + movs r0, #0x25 + strb r0, [r6, #2] + strb r1, [r6] + b _080617F6 + .align 2, 0 +_08061780: .4byte gUnknown_08693974 +_08061784: .4byte gUnknown_086951F4 +_08061788: .4byte gCharacterCards_Amy_Tiles +_0806178C: .4byte gCharacterCards_Amy_Palette +_08061790: .4byte gCharacterCards_Amy_Layout +_08061794: .4byte gLoadedSaveGame +_08061798: .4byte gSecondsTable +_0806179C: .4byte 0x00008C9F +_080617A0: + adds r0, r5, #0 + movs r1, #0x3c + bl Div + adds r4, r0, #0 + movs r1, #0x3c + bl Div + ldr r2, _08061820 @ =sZoneTimeSecondsTable + lsls r0, r0, #1 + adds r1, r0, r2 + movs r3, #0 + ldrsh r1, [r1, r3] + subs r4, r4, r1 + lsls r4, r4, #1 + adds r2, r4, r2 + movs r1, #0 + ldrsh r2, [r2, r1] + subs r2, r5, r2 + ldr r1, _08061824 @ =sZoneTimeMinutesTable + adds r1, r0, r1 + ldrh r1, [r1] + subs r2, r2, r1 + lsls r2, r2, #1 + ldr r3, _08061828 @ =gMillisUnpackTable + adds r1, r2, #1 + adds r1, r1, r3 + ldrb r1, [r1] + strb r1, [r6, #6] + adds r2, r2, r3 + ldrb r1, [r2] + strb r1, [r6, #5] + adds r1, r4, #1 + add r1, sl + ldrb r1, [r1] + strb r1, [r6, #3] + add r4, sl + ldrb r1, [r4] + strb r1, [r6, #2] + adds r0, #1 + add r0, sl + ldrb r0, [r0] + strb r0, [r6] +_080617F6: + movs r0, #0x2a + mov r2, r8 + strb r0, [r2, #1] + strb r0, [r2, #4] + mov r0, r8 + mov r1, sb + bl sub_805321C + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #2 + bls _08061722 + add sp, #0x4c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08061820: .4byte sZoneTimeSecondsTable +_08061824: .4byte sZoneTimeMinutesTable +_08061828: .4byte gMillisUnpackTable + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc b/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc new file mode 100644 index 0000000000..9889f0a04e --- /dev/null +++ b/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc @@ -0,0 +1,171 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + movs r6, #0 + movs r0, #0xa0 + mov ip, r0 + movs r4, #0 + mov sb, r4 + ldr r5, _0806BC30 @ =gCurTask + ldr r0, [r5] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r1, r1, r0 + mov sl, r1 + ldr r1, _0806BC34 @ =0x030000D8 + adds r1, r1, r0 + mov r8, r1 + ldr r2, _0806BC38 @ =0x03000104 + adds r1, r0, r2 + ldr r7, [r1] + adds r7, #1 + ldr r1, _0806BC3C @ =0x03000108 + adds r0, r0, r1 + ldr r2, [r0] + adds r2, #1 + str r2, [r0] + cmp r7, #0xf0 + bls _0806BC50 + ldr r2, _0806BC40 @ =gFlags + ldr r0, [r2] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2] + movs r0, #4 @ MUS_COURSE_SELECTION + bl m4aSongNumStop + ldr r2, _0806BC44 @ =gDispCnt + ldrh r1, [r2] + ldr r0, _0806BC48 @ =0x00001FFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0806BC4C @ =gBldRegs + strh r6, [r0] + strh r6, [r0, #4] + ldr r0, [r5] + bl TaskDestroy + bl ApplyGameStageSettingsAndStart + b _0806BCF6 + .align 2, 0 +_0806BC30: .4byte gCurTask +_0806BC34: .4byte 0x030000D8 +_0806BC38: .4byte 0x03000104 +_0806BC3C: .4byte 0x03000108 +_0806BC40: .4byte gFlags +_0806BC44: .4byte gDispCnt +_0806BC48: .4byte 0x00001FFF +_0806BC4C: .4byte gBldRegs +_0806BC50: + cmp r7, #0xd0 + bne _0806BC5E + movs r0, #1 + mov r5, r8 + strh r0, [r5, #4] + strh r6, [r5, #6] + b _0806BC74 +_0806BC5E: + ldr r0, _0806BD08 @ =gPressedKeys + ldrh r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0806BC74 + cmp r7, #0x20 + bls _0806BC74 + cmp r7, #0xcf + bhi _0806BC74 + movs r7, #0xcf +_0806BC74: + movs r0, #0xff + adds r3, r0, #0 + ands r3, r2 + ldr r1, _0806BD0C @ =gFlags + ldr r0, [r1] + movs r2, #4 + orrs r0, r2 + str r0, [r1] + ldr r1, _0806BD10 @ =gHBlankCopyTarget + ldr r0, _0806BD14 @ =0x04000010 + str r0, [r1] + ldr r0, _0806BD18 @ =gHBlankCopySize + strb r2, [r0] + ldr r0, _0806BD1C @ =gBgOffsetsHBlankPrimary + lsls r1, r6, #2 + ldr r0, [r0] + adds r2, r0, r1 + cmp r6, ip + bhs _0806BCE0 +_0806BC9A: + movs r1, #0 + lsls r4, r4, #0x18 + str r4, [sp] + lsls r4, r3, #0x10 + cmp r6, ip + bhs _0806BCC8 + adds r3, #0 + ldr r5, _0806BD20 @ =0x000001FF + adds r0, r5, #0 + ands r3, r0 +_0806BCAE: + strh r3, [r2] + adds r2, #2 + mov r0, sb + strh r0, [r2] + adds r2, #2 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + adds r1, #1 + cmp r1, #0x17 + bhi _0806BCC8 + cmp r6, ip + blo _0806BCAE +_0806BCC8: + ldr r5, [sp] + asrs r1, r5, #0x18 + asrs r0, r4, #0x10 + adds r0, r0, r1 + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r6, ip + blo _0806BC9A +_0806BCE0: + movs r0, #0x82 + lsls r0, r0, #1 + add r0, sl + str r7, [r0] + mov r0, r8 + bl sub_805423C + bl sub_806BF04 + bl sub_806BD24 +_0806BCF6: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0806BD08: .4byte gPressedKeys +_0806BD0C: .4byte gFlags +_0806BD10: .4byte gHBlankCopyTarget +_0806BD14: .4byte 0x04000010 +_0806BD18: .4byte gHBlankCopySize +_0806BD1C: .4byte gBgOffsetsHBlankPrimary +_0806BD20: .4byte 0x000001FF + +.syntax divided diff --git a/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc b/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc new file mode 100644 index 0000000000..222d8bd59f --- /dev/null +++ b/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc @@ -0,0 +1,523 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x34 + ldr r7, _08060938 @ =gLoadedSaveGame + ldr r0, _0806093C @ =gCurTask + ldr r0, [r0] + ldrh r2, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r0, r2, r0 + str r0, [sp, #8] + ldr r1, _08060940 @ =0x030000EC + adds r0, r2, r1 + ldr r0, [r0] + str r0, [sp, #0xc] + ldr r3, _08060944 @ =gBgScrollRegs + lsrs r0, r0, #8 + subs r0, #0x30 + ldr r4, _08060948 @ =0x000001FF + adds r1, r4, #0 + ands r0, r1 + strh r0, [r3, #6] + ldr r0, _0806094C @ =0x030000AE + adds r1, r2, r0 + movs r0, #1 + strh r0, [r1] + movs r5, #0 + ldr r1, _08060950 @ =0x030000AC + adds r4, r2, r1 + movs r0, #0x10 + adds r0, r0, r7 + mov r8, r0 + subs r1, #2 + adds r1, r2, r1 + str r1, [sp, #0x18] + ldr r0, _08060950 @ =0x030000AC + adds r0, r2, r0 + str r0, [sp, #0x1c] + ldr r1, _08060954 @ =0x030000A0 + adds r1, r2, r1 + str r1, [sp, #0x14] +_080608CC: + lsls r0, r5, #3 + adds r0, #0x1b + ldr r1, [sp, #8] + adds r1, #0xaa + strh r0, [r1] + movs r6, #0x20 + strh r6, [r4] + mov r2, r8 + adds r1, r5, r2 + ldrb r0, [r1] + subs r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x19 + bhi _080608EE + movs r0, #0x28 + strh r0, [r4] +_080608EE: + adds r0, r1, #0 + ldr r1, [sp, #8] + adds r1, #0xa0 + bl sub_805321C + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bls _080608CC + ldr r4, [sp, #0x1c] + strh r6, [r4] + ldr r0, _08060958 @ =0x00000425 + adds r5, r7, r0 + ldrb r0, [r5] + cmp r0, #9 + bls _08060976 + movs r1, #0xa + bl Div + mov r1, sp + adds r0, #0x30 + strb r0, [r1] + ldrb r0, [r5] + movs r1, #0xa + bl Mod + mov r1, sp + adds r0, #0x30 + strb r0, [r1, #1] + ldrb r0, [r7, #0x19] + cmp r0, #0 + beq _0806095C + movs r0, #0x5b + ldr r1, [sp, #0x18] + strh r0, [r1] + b _08060962 + .align 2, 0 +_08060938: .4byte gLoadedSaveGame +_0806093C: .4byte gCurTask +_08060940: .4byte 0x030000EC +_08060944: .4byte gBgScrollRegs +_08060948: .4byte 0x000001FF +_0806094C: .4byte 0x030000AE +_08060950: .4byte 0x030000AC +_08060954: .4byte 0x030000A0 +_08060958: .4byte 0x00000425 +_0806095C: + movs r0, #0x59 + ldr r2, [sp, #0x18] + strh r0, [r2] +_08060962: + ldr r4, [sp, #8] + adds r4, #0xae + movs r0, #2 + strh r0, [r4] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C + str r4, [sp, #0x20] + b _080609DA +_08060976: + ldr r2, [sp, #8] + adds r2, #0xae + movs r0, #1 + strh r0, [r2] + mov r1, sp + ldrb r0, [r5] + adds r0, #0x30 + strb r0, [r1] + ldrb r0, [r7, #0x19] + str r2, [sp, #0x20] + cmp r0, #0 + beq _08060996 + movs r0, #0x63 + ldr r4, [sp, #0x18] + strh r0, [r4] + b _0806099C +_08060996: + movs r0, #0x61 + ldr r1, [sp, #0x18] + strh r0, [r1] +_0806099C: + ldr r2, _080609C8 @ =0x00000425 + adds r0, r7, r2 + ldrb r0, [r0] + cmp r0, #1 + bhi _080609CC + mov r1, sp + movs r0, #0x8a + strb r0, [r1, #1] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C + movs r0, #0x7e + ldr r4, [sp, #0x18] + strh r0, [r4] + mov r0, sp + adds r0, #1 + ldr r1, [sp, #0x14] + bl sub_805321C + b _080609DA + .align 2, 0 +_080609C8: .4byte 0x00000425 +_080609CC: + mov r1, sp + adds r0, #0x30 + strb r0, [r1] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C +_080609DA: + ldr r0, _08060A14 @ =0x00000426 + adds r5, r7, r0 + ldrb r0, [r5] + cmp r0, #9 + bls _08060A22 + movs r0, #2 + ldr r1, [sp, #0x20] + strh r0, [r1] + ldrb r0, [r5] + movs r1, #0xa + bl Div + mov r1, sp + adds r0, #0x30 + strb r0, [r1] + ldrb r0, [r5] + movs r1, #0xa + bl Mod + mov r1, sp + adds r0, #0x30 + strb r0, [r1, #1] + ldrb r0, [r7, #0x19] + cmp r0, #0 + beq _08060A18 + movs r0, #0x88 + ldr r2, [sp, #0x18] + strh r0, [r2] + b _08060A1E + .align 2, 0 +_08060A14: .4byte 0x00000426 +_08060A18: + movs r0, #0x89 + ldr r4, [sp, #0x18] + strh r0, [r4] +_08060A1E: + mov r0, sp + b _08060A84 +_08060A22: + movs r0, #1 + ldr r1, [sp, #0x20] + strh r0, [r1] + ldrb r0, [r7, #0x19] + cmp r0, #0 + beq _08060A36 + movs r0, #0x90 + ldr r2, [sp, #0x18] + strh r0, [r2] + b _08060A3C +_08060A36: + movs r0, #0x91 + ldr r4, [sp, #0x18] + strh r0, [r4] +_08060A3C: + mov r2, sp + ldr r0, _08060A8C @ =0x00000426 + adds r1, r7, r0 + ldrb r0, [r1] + adds r0, #0x30 + strb r0, [r2] + ldrb r0, [r1] + cmp r0, #1 + bhi _08060A94 + ldrb r0, [r7, #0x19] + cmp r0, #0 + beq _08060A94 + ldr r0, [sp, #8] + adds r0, #0xb8 + movs r1, #0x98 + strh r1, [r0, #0x16] + movs r1, #0x20 + strh r1, [r0, #0x18] + ldr r1, [r0, #0x10] + ldr r2, _08060A90 @ =0xFFFFF7FF + ands r1, r2 + str r1, [r0, #0x10] + bl DisplaySprite + mov r1, sp + movs r0, #0x8a + strb r0, [r1, #1] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C + movs r0, #0xb1 + ldr r1, [sp, #0x18] + strh r0, [r1] + mov r0, sp + adds r0, #1 +_08060A84: + ldr r1, [sp, #0x14] + bl sub_805321C + b _08060A9C + .align 2, 0 +_08060A8C: .4byte 0x00000426 +_08060A90: .4byte 0xFFFFF7FF +_08060A94: + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C +_08060A9C: + ldr r2, _08060AD4 @ =0x00000427 + adds r5, r7, r2 + ldrb r0, [r5] + cmp r0, #9 + bls _08060AD8 + movs r0, #2 + ldr r4, [sp, #0x20] + strh r0, [r4] + ldrb r0, [r5] + movs r1, #0xa + bl Div + mov r1, sp + adds r0, #0x30 + strb r0, [r1] + ldrb r0, [r5] + movs r1, #0xa + bl Mod + mov r1, sp + adds r0, #0x30 + strb r0, [r1, #1] + movs r0, #0xb9 + ldr r1, [sp, #0x18] + strh r0, [r1] + mov r0, sp + b _08060B06 + .align 2, 0 +_08060AD4: .4byte 0x00000427 +_08060AD8: + movs r0, #1 + ldr r2, [sp, #0x20] + strh r0, [r2] + movs r0, #0xc1 + ldr r4, [sp, #0x18] + strh r0, [r4] + mov r1, sp + ldrb r0, [r5] + adds r0, #0x30 + strb r0, [r1] + ldrb r0, [r5] + cmp r0, #1 + bhi _08060B0E + movs r0, #0x8a + strb r0, [r1, #1] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C + movs r0, #0xe2 + strh r0, [r4] + mov r0, sp + adds r0, #1 +_08060B06: + ldr r1, [sp, #0x14] + bl sub_805321C + b _08060B16 +_08060B0E: + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805321C +_08060B16: + movs r5, #0 + ldr r0, [sp, #0xc] + lsrs r0, r0, #0xc + str r0, [sp, #0x10] + mov r7, sp +_08060B20: + ldr r1, [sp, #0x10] + adds r0, r5, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r2, r5, #1 + str r2, [sp, #0x28] + cmp r1, #9 + bls _08060B32 + b _08060C68 +_08060B32: + movs r0, #1 + ldr r4, [sp, #0x20] + strh r0, [r4] + movs r4, #0 + ldr r0, [sp, #0xc] + lsrs r6, r0, #8 + lsls r5, r5, #4 + mov sl, r5 + lsls r1, r1, #4 + mov sb, r1 + ldr r1, [sp, #8] + adds r1, #4 + str r1, [sp, #0x24] + movs r1, #0xf + adds r0, r6, #0 + ands r0, r1 + subs r0, #0x38 + subs r5, r5, r0 + movs r2, #8 + adds r2, r2, r5 + mov r8, r2 + mov r3, sb + ldr r2, [sp, #8] + add r2, sb +_08060B62: + lsls r0, r4, #3 + adds r0, #0x3c + ldr r1, [sp, #0x18] + strh r0, [r1] + ldr r0, [sp, #0x1c] + strh r5, [r0] + adds r0, r4, r3 + ldr r1, [sp, #0x24] + adds r0, r1, r0 + ldrb r0, [r0] + subs r0, #0x70 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x19 + bhi _08060B86 + mov r1, r8 + ldr r0, [sp, #0x1c] + strh r1, [r0] +_08060B86: + adds r0, r4, #4 + adds r0, r2, r0 + ldr r1, [sp, #0x14] + str r2, [sp, #0x2c] + str r3, [sp, #0x30] + bl sub_805345C + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + cmp r4, #5 + bls _08060B62 + movs r0, #0xf + ands r6, r0 + adds r0, r6, #0 + subs r0, #0x38 + mov r2, sl + subs r0, r2, r0 + ldr r4, [sp, #0x1c] + strh r0, [r4] + ldr r4, [sp, #8] + add r4, sb + ldrb r0, [r4, #0xc] + cmp r0, #0xff + bne _08060BC4 + movs r0, #0x20 + strb r0, [r7] + movs r0, #0x30 + b _08060BE6 +_08060BC4: + cmp r0, #9 + bls _08060BDE + ldrb r0, [r4, #0xc] + movs r1, #0xa + bl Div + adds r0, #0x30 + strb r0, [r7] + ldrb r0, [r4, #0xc] + movs r1, #0xa + bl Mod + b _08060BE4 +_08060BDE: + movs r1, #0x20 + strb r1, [r7] + ldrb r0, [r4, #0xc] +_08060BE4: + adds r0, #0x30 +_08060BE6: + strb r0, [r7, #1] + movs r0, #0x80 + ldr r2, [sp, #0x18] + strh r0, [r2] + movs r0, #2 + ldr r4, [sp, #0x20] + strh r0, [r4] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805345C + ldr r4, [sp, #8] + add r4, sb + ldrb r0, [r4, #0xd] + cmp r0, #9 + bls _08060C1A + movs r1, #0xa + bl Div + adds r0, #0x30 + strb r0, [r7] + ldrb r0, [r4, #0xd] + movs r1, #0xa + bl Mod + b _08060C20 +_08060C1A: + movs r0, #0x20 + strb r0, [r7] + ldrb r0, [r4, #0xd] +_08060C20: + adds r0, #0x30 + strb r0, [r7, #1] + movs r0, #0xa0 + ldr r1, [sp, #0x18] + strh r0, [r1] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805345C + ldr r4, [sp, #8] + add r4, sb + ldrb r0, [r4, #0xe] + cmp r0, #9 + bls _08060C50 + movs r1, #0xa + bl Div + adds r0, #0x30 + strb r0, [r7] + ldrb r0, [r4, #0xe] + movs r1, #0xa + bl Mod + b _08060C56 +_08060C50: + movs r2, #0x20 + strb r2, [r7] + ldrb r0, [r4, #0xe] +_08060C56: + adds r0, #0x30 + strb r0, [r7, #1] + movs r0, #0xc0 + ldr r4, [sp, #0x18] + strh r0, [r4] + mov r0, sp + ldr r1, [sp, #0x14] + bl sub_805345C +_08060C68: + ldr r1, [sp, #0x28] + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #8 + bhi _08060C74 + b _08060B20 +_08060C74: + add sp, #0x34 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/save__WriteSaveGame.inc b/asm/non_matching/game/save__WriteSaveGame.inc new file mode 100644 index 0000000000..5157c59628 --- /dev/null +++ b/asm/non_matching/game/save__WriteSaveGame.inc @@ -0,0 +1,133 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, lr} + ldr r0, _08012DE0 @ =gFlags + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08012E0E_return_0 + ldr r6, _08012DE4 @ =gUsedSaveSectorID + movs r1, #0 + ldrsb r1, [r6, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08012E1C + movs r4, #0x86 + lsls r4, r4, #3 + adds r0, r4, #0 + bl EwramMalloc + adds r5, r0, #0 @ r5 = sectorBuffer + movs r0, #0 + ldrsb r0, [r6, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0 + adds r2, r5, #0 + adds r3, r4, #0 + bl ReadFlash + movs r4, #1 + movs r2, #0 + ldr r0, _08012DE8 @ =gLoadedSaveGame + ldrb r1, [r5] + b _08012DFC + .align 2, 0 +_08012DE0: .4byte gFlags +_08012DE4: .4byte gUsedSaveSectorID +_08012DE8: .4byte gLoadedSaveGame +_08012DEC_loop: + adds r2, #1 + ldr r0, _08012E14 @ =0x0000042F + cmp r2, r0 + bhi _08012E04 + adds r1, r5, r2 + ldr r0, _08012E18 @ =gLoadedSaveGame + adds r0, r2, r0 + ldrb r1, [r1] +_08012DFC: + ldrb r0, [r0] + cmp r1, r0 + beq _08012DEC_loop + movs r4, #0 +_08012E04: + adds r0, r5, #0 + bl EwramFree + cmp r4, #0 + beq _08012E1C +_08012E0E_return_0: + movs r0, #0 + b _08012E8A_return + .align 2, 0 +_08012E14: .4byte 0x0000042F +_08012E18: .4byte gLoadedSaveGame +_08012E1C: + ldr r0, _08012E34 @ =gUsedSaveSectorID + ldrb r0, [r0] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #9 + bne _08012E3C + ldr r0, _08012E38 @ =EraseFlashSector + ldr r1, [r0] + movs r0, #0 + b _08012E52 + .align 2, 0 +_08012E34: .4byte gUsedSaveSectorID +_08012E38: .4byte EraseFlashSector +_08012E3C: + cmp r0, #9 + ble _08012E42 + movs r5, #0 +_08012E42: + ldr r1, _08012E90 @ =EraseFlashSector + lsls r0, r5, #0x18 + asrs r0, r0, #8 + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + lsrs r0, r0, #0x10 + ldr r1, [r1] +_08012E52: + bl _call_via_r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _08012E8A_return + ldr r4, _08012E94 @ =gLoadedSaveGame + ldr r0, _08012E98 @ =0x4F524950 + str r0, [r4] + adds r0, r4, #0 + bl CalculateChecksum + ldr r2, _08012E9C @ =0x0000042C + adds r1, r4, r2 + str r0, [r1] + ldr r0, _08012EA0 @ =gUsedSaveSectorID + strb r5, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r2, #4 + adds r1, r4, #0 + bl ProgramFlashSectorAndVerifyNBytes + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_08012E8A_return: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08012E90: .4byte EraseFlashSector +_08012E94: .4byte gLoadedSaveGame +_08012E98: .4byte 0x4F524950 +_08012E9C: .4byte 0x0000042C +_08012EA0: .4byte gUsedSaveSectorID + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc b/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc new file mode 100644 index 0000000000..d48269351e --- /dev/null +++ b/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc @@ -0,0 +1,538 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + str r0, [sp, #0xc] + adds r7, r3, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x10] + ldrb r3, [r7, #0xe] + adds r3, #5 + rsbs r0, r3, #0 + add r5, sp, #4 + strb r0, [r5] + ldrb r2, [r7, #0xf] + movs r0, #1 + subs r0, r0, r2 + mov r1, sp + adds r1, #5 + strb r0, [r1] + mov r0, sp + adds r0, #6 + strb r3, [r0] + subs r2, #1 + adds r0, #1 + strb r2, [r0] + mov r0, sp + adds r1, r5, #0 + movs r2, #4 + bl memcpy + ldrb r4, [r7, #0xe] + rsbs r0, r4, #0 + add r1, sp, #8 + strb r0, [r1] + ldrb r3, [r7, #0xf] + rsbs r2, r3, #0 + mov r0, sp + adds r0, #9 + strb r2, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r3, [r0] + adds r0, r5, #0 + movs r2, #4 + bl memcpy + movs r0, #0 + str r0, [sp, #0x14] + ldr r1, [sp, #0xc] + ldr r0, [r1, #0x28] + movs r2, #1 + rsbs r2, r2, #0 + cmp r0, r2 + bne _0800AC68 + b _0800AE68 +_0800AC68: + ldr r1, [r7, #0x10] + movs r0, #0x80 + ands r0, r1 + adds r6, r1, #0 + cmp r0, #0 + beq _0800AC76 + b _0800AE68 +_0800AC76: + ldr r1, [r7, #0x64] + ldr r0, [r1, #0x3c] + adds r5, r1, #0 + cmp r0, r2 + beq _0800AD36 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + ldr r1, [sp, #0xc] + adds r1, #0x2c + movs r3, #0 + ldrsb r3, [r1, r3] + adds r2, r0, r3 + ldr r0, [r7] + asrs r0, r0, #8 + adds r1, r5, #0 + adds r1, #0x40 + movs r4, #0 + ldrsb r4, [r1, r4] + adds r1, r0, r4 + cmp r2, r1 + bgt _0800ACB8 + ldr r0, [sp, #0xc] + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0800ACCA + cmp r2, r1 + blt _0800AD36 +_0800ACB8: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r1, r0 + cmp r0, r2 + blt _0800AD36 +_0800ACCA: + ldr r3, [sp, #0x10] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + ldr r1, [sp, #0xc] + adds r1, #0x2d + movs r4, #0 + ldrsb r4, [r1, r4] + adds r3, r0, r4 + ldr r0, [r7, #4] + asrs r0, r0, #8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r0, r1 + cmp r3, r2 + bgt _0800AD04 + ldr r0, [sp, #0xc] + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r3, r0 + cmp r0, r2 + bge _0800AD16 + cmp r3, r2 + blt _0800AD36 +_0800AD04: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r1 + adds r0, r2, r0 + cmp r0, r3 + blt _0800AD36 +_0800AD16: + movs r0, #0x20 + ldr r5, [sp, #0x14] + orrs r5, r0 + str r5, [sp, #0x14] + movs r0, #2 + ands r0, r6 + cmp r0, #0 + bne _0800AD28 + b _0800AFCA +_0800AD28: + ldrh r1, [r7, #0xa] + movs r2, #0xa + ldrsh r0, [r7, r2] + cmp r0, #0 + ble _0800AD36 + rsbs r0, r1, #0 + strh r0, [r7, #0xa] +_0800AD36: + movs r0, #2 + ands r0, r6 + cmp r0, #0 + bne _0800AD40 + b _0800AFCA +_0800AD40: + mov r3, r8 + lsls r3, r3, #0x10 + str r3, [sp, #0x1c] + asrs r4, r3, #0x10 + ldr r5, [sp, #0xc] + adds r5, #0x2c + mov r8, r5 + movs r6, #0 + ldrsb r6, [r5, r6] + mov ip, r6 + ldr r0, [sp, #0xc] + adds r0, #0x2e + mov sb, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + str r1, [sp, #0x20] + adds r0, r1, #0 + add r0, ip + asrs r0, r0, #1 + adds r0, r4, r0 + str r0, [sp, #0x18] + ldr r2, [sp, #0x10] + lsls r2, r2, #0x10 + str r2, [sp, #0x3c] + asrs r2, r2, #0x10 + ldr r5, [sp, #0xc] + adds r5, #0x2d + movs r0, #0 + ldrsb r0, [r5, r0] + ldr r3, [sp, #0xc] + adds r3, #0x2f + movs r1, #0 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + str r2, [sp, #0x24] + add r4, ip + ldr r1, [r7] + asrs r0, r1, #8 + mov r6, sp + ldrb r6, [r6, #4] + lsls r6, r6, #0x18 + asrs r6, r6, #0x18 + mov sl, r6 + adds r2, r0, r6 + ldr r0, [sp, #0x1c] + str r0, [sp, #0x28] + mov r6, r8 + str r6, [sp, #0x2c] + str r1, [sp, #0x38] + mov r0, sb + str r0, [sp, #0x34] + ldr r1, [sp, #0x3c] + mov r8, r1 + str r5, [sp, #0x30] + mov sb, r3 + cmp r4, r2 + bgt _0800ADC8 + ldr r3, [sp, #0x20] + mov r5, ip + subs r0, r3, r5 + adds r0, r4, r0 + cmp r0, r2 + bge _0800ADDA + cmp r4, r2 + bge _0800ADC8 + b _0800AEF8 +_0800ADC8: + mov r6, sp + movs r0, #6 + ldrsb r0, [r6, r0] + mov r1, sl + subs r0, r0, r1 + adds r0, r2, r0 + cmp r0, r4 + bge _0800ADDA + b _0800AEF8 +_0800ADDA: + mov r2, r8 + asrs r0, r2, #0x10 + ldr r3, [sp, #0x30] + movs r5, #0 + ldrsb r5, [r3, r5] + adds r4, r0, r5 + ldr r1, [r7, #4] + asrs r0, r1, #8 + mov r2, sp + movs r6, #5 + ldrsb r6, [r2, r6] + adds r2, r0, r6 + adds r3, r1, #0 + cmp r4, r2 + bgt _0800AE0C + mov r1, sb + movs r0, #0 + ldrsb r0, [r1, r0] + subs r0, r0, r5 + adds r0, r4, r0 + cmp r0, r2 + bge _0800AE1A + cmp r4, r2 + bge _0800AE0C + b _0800AEF8 +_0800AE0C: + mov r5, sp + movs r0, #7 + ldrsb r0, [r5, r0] + subs r0, r0, r6 + adds r0, r2, r0 + cmp r0, r4 + blt _0800AEF8 +_0800AE1A: + ldr r2, _0800AE30 @ =gStageFlags + ldrh r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0800AE34 + asrs r0, r3, #8 + ldr r6, [sp, #0x24] + cmp r0, r6 + ble _0800AE3C + b _0800AE8C + .align 2, 0 +_0800AE30: .4byte gStageFlags +_0800AE34: + asrs r0, r3, #8 + ldr r1, [sp, #0x24] + cmp r0, r1 + blt _0800AE8C +_0800AE3C: + adds r0, r7, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _0800AE6C + adds r0, r7, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0800AE6C + ldr r2, [sp, #0x28] + asrs r1, r2, #0x10 + mov r3, r8 + asrs r2, r3, #0x10 + ldr r0, [sp, #0xc] + adds r3, r7, #0 + bl Coll_Player_Platform +_0800AE68: + movs r0, #0 + b _0800AFCC +_0800AE6C: + ldrh r2, [r7, #0xa] + movs r5, #0xa + ldrsh r1, [r7, r5] + cmp r1, #0 + bge _0800AE78 + b _0800AFCA +_0800AE78: + movs r0, #8 + ldr r6, [sp, #0x14] + orrs r6, r0 + str r6, [sp, #0x14] + cmp r1, #0 + bgt _0800AE86 + b _0800AFCA +_0800AE86: + rsbs r0, r2, #0 + strh r0, [r7, #0xa] + b _0800AFCA +_0800AE8C: + movs r1, #0xa + ldrsh r0, [r7, r1] + cmp r0, #0 + blt _0800AE96 + b _0800AFCA +_0800AE96: + movs r0, #0 + strh r0, [r7, #0xa] + ldrh r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0800AEC8 + mov r2, r8 + asrs r0, r2, #0x10 + mov r5, sb + movs r1, #0 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + mov r6, sp + movs r1, #5 + ldrsb r1, [r6, r1] + subs r0, r0, r1 + lsls r0, r0, #8 + ldr r1, _0800AEC4 @ =0xFFFFFF00 + bics r3, r1 + adds r0, r3, r0 + str r0, [r7, #4] + b _0800AEE8 + .align 2, 0 +_0800AEC4: .4byte 0xFFFFFF00 +_0800AEC8: + mov r0, r8 + asrs r1, r0, #0x10 + mov r2, sb + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r5, sp + movs r0, #5 + ldrsb r0, [r5, r0] + subs r1, r1, r0 + lsls r1, r1, #8 + ldr r0, _0800AEF4 @ =0xFFFFFF00 + ands r0, r3 + subs r1, r1, r0 + subs r1, r3, r1 + str r1, [r7, #4] +_0800AEE8: + movs r0, #0x80 + lsls r0, r0, #9 + ldr r6, [sp, #0x14] + orrs r6, r0 + str r6, [sp, #0x14] + b _0800AFCA + .align 2, 0 +_0800AEF4: .4byte 0xFFFFFF00 +_0800AEF8: + ldr r1, [sp, #0x28] + asrs r0, r1, #0x10 + ldr r2, [sp, #0x2c] + movs r4, #0 + ldrsb r4, [r2, r4] + adds r2, r0, r4 + ldr r3, [sp, #0x38] + asrs r1, r3, #8 + mov r0, sp + movs r3, #0 + ldrsb r3, [r0, r3] + adds r1, r1, r3 + cmp r2, r1 + bgt _0800AF26 + ldr r5, [sp, #0x34] + movs r0, #0 + ldrsb r0, [r5, r0] + subs r0, r0, r4 + adds r0, r2, r0 + cmp r0, r1 + bge _0800AF36 + cmp r2, r1 + blt _0800AFCA +_0800AF26: + mov r0, sp + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r1, r0 + cmp r0, r2 + blt _0800AFCA +_0800AF36: + mov r6, r8 + asrs r0, r6, #0x10 + ldr r1, [sp, #0x30] + movs r3, #0 + ldrsb r3, [r1, r3] + adds r2, r0, r3 + ldr r0, [r7, #4] + asrs r0, r0, #8 + mov r1, sp + movs r4, #1 + ldrsb r4, [r1, r4] + adds r1, r0, r4 + cmp r2, r1 + bgt _0800AF64 + mov r5, sb + movs r0, #0 + ldrsb r0, [r5, r0] + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0800AF74 + cmp r2, r1 + blt _0800AFCA +_0800AF64: + mov r0, sp + ldrb r0, [r0, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r4 + adds r0, r1, r0 + cmp r0, r2 + blt _0800AFCA +_0800AF74: + ldr r6, [sp, #0x38] + asrs r0, r6, #8 + ldr r1, [sp, #0x18] + cmp r0, r1 + bgt _0800AFA2 + movs r2, #8 + ldrsh r0, [r7, r2] + cmp r0, #0 + ble _0800AFCA + movs r0, #0 + strh r0, [r7, #8] + ldr r3, [sp, #0x28] + asrs r0, r3, #0x10 + ldr r5, [sp, #0x2c] + movs r1, #0 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + mov r1, sp + ldrb r1, [r1, #2] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + b _0800AFC6 +_0800AFA2: + movs r6, #8 + ldrsh r0, [r7, r6] + cmp r0, #0 + bge _0800AFCA + movs r0, #0 + strh r0, [r7, #8] + ldr r1, [sp, #0x28] + asrs r0, r1, #0x10 + ldr r2, [sp, #0x34] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r1, sp + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + adds r0, #1 +_0800AFC6: + lsls r0, r0, #8 + str r0, [r7] +_0800AFCA: + ldr r0, [sp, #0x14] +_0800AFCC: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +.syntax divided diff --git a/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc b/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc new file mode 100644 index 0000000000..f33694157d --- /dev/null +++ b/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc @@ -0,0 +1,1561 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x48 + str r0, [sp, #0x18] + ldr r0, [sp, #0x68] + ldr r4, [sp, #0x6c] + ldr r5, [sp, #0x70] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #0x1c] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + str r2, [sp, #0x20] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sl, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x24] + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + str r4, [sp, #0x28] + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + str r5, [sp, #0x2c] + ldr r7, _08009920 @ =gPlayer + ldrb r3, [r7, #0xe] + adds r3, #5 + rsbs r0, r3, #0 + add r1, sp, #8 + mov sb, r1 + strb r0, [r1] + ldrb r1, [r7, #0xf] + movs r6, #1 + subs r2, r6, r1 + mov r0, sp + adds r0, #9 + strb r2, [r0] + adds r0, #1 + strb r3, [r0] + subs r1, #1 + adds r0, #1 + strb r1, [r0] + add r0, sp, #4 + mov r1, sb + movs r2, #4 + bl memcpy + ldrb r3, [r7, #0xe] + rsbs r0, r3, #0 + add r2, sp, #0xc + mov r8, r2 + strb r0, [r2] + ldrb r2, [r7, #0xf] + rsbs r1, r2, #0 + mov r0, sp + adds r0, #0xd + strb r1, [r0] + adds r0, #1 + strb r3, [r0] + adds r0, #1 + strb r2, [r0] + mov r0, sb + mov r1, r8 + movs r2, #4 + bl memcpy + movs r3, #0 + str r3, [sp, #0x30] + movs r5, #0 + str r5, [sp, #0x34] + ldr r0, _08009924 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x40] + ldr r0, _08009928 @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + ldrb r1, [r7, #0xe] + adds r1, #5 + rsbs r0, r1, #0 + add r5, sp, #0x10 + strb r0, [r5] + ldr r0, _0800992C @ =0x03000058 + adds r4, r4, r0 + ldrb r0, [r4] + subs r6, r6, r0 + mov r0, sp + adds r0, #0x11 + strb r6, [r0] + adds r0, #1 + strb r1, [r0] + ldrb r0, [r4] + subs r0, #1 + mov r1, sp + adds r1, #0x13 + strb r0, [r1] + mov r0, r8 + adds r1, r5, #0 + movs r2, #4 + bl memcpy + ldrb r3, [r7, #0xe] + rsbs r0, r3, #0 + add r1, sp, #0x14 + strb r0, [r1] + ldrb r0, [r4] + rsbs r0, r0, #0 + mov r2, sp + adds r2, #0x15 + strb r0, [r2] + mov r0, sp + adds r0, #0x16 + strb r3, [r0] + ldrb r2, [r4] + adds r0, #1 + strb r2, [r0] + adds r0, r5, #0 + movs r2, #4 + bl memcpy + ldr r2, [sp, #0x18] + ldr r1, [r2, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + mov ip, sb + cmp r1, r0 + beq _08009918 + ldr r0, [r7, #0x10] + movs r3, #0x80 + ands r0, r3 + cmp r0, #0 + bne _08009918 + ldr r6, [sp, #0x1c] + lsls r0, r6, #0x10 + asrs r2, r0, #0x10 + ldr r1, [r7] + asrs r1, r1, #8 + str r0, [sp, #0x44] + cmp r2, r1 + bne _08009930 + ldr r0, [sp, #0x20] + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + ldr r0, [r7, #4] + asrs r0, r0, #8 + cmp r1, r0 + bne _08009930 +_08009918: + movs r0, #0 + bl _0800A392 + .align 2, 0 +_08009920: .4byte gPlayer +_08009924: .4byte gStageFlags +_08009928: .4byte gCurTask +_0800992C: .4byte 0x03000058 +_08009930: + ldr r0, _08009A18 @ =gPlayer + ldr r1, [r0] + str r1, [sp, #0x38] + ldr r2, [r0, #4] + str r2, [sp, #0x3c] + adds r1, r0, #0 + adds r1, #0x27 + adds r4, r0, #0 + ldr r3, [sp, #0x28] + ldrb r1, [r1] + cmp r3, r1 + beq _0800994C + bl _0800A390 +_0800994C: + ldr r1, [r4, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0800996A + ldr r0, [r4, #0x28] + ldr r6, [sp, #0x18] + cmp r0, r6 + bne _0800996A + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x10] + movs r0, #1 + str r0, [sp, #0x34] +_0800996A: + ldr r1, [sp, #0x20] + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + mov sb, r0 + ldr r2, [sp, #0x3c] + asrs r2, r2, #8 + mov r8, r2 + cmp r1, r8 + bne _0800997E + b _08009E70 +_0800997E: + ldr r3, [sp, #0x44] + asrs r0, r3, #0x10 + movs r3, #0 + ldrsb r3, [r5, r3] + adds r2, r0, r3 + ldr r6, [sp, #0x38] + asrs r0, r6, #8 + mov r1, ip + movs r6, #0 + ldrsb r6, [r1, r6] + adds r1, r0, r6 + adds r7, r0, #0 + cmp r2, r1 + bgt _080099AC + movs r0, #2 + ldrsb r0, [r5, r0] + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _080099BC + cmp r2, r1 + bge _080099AC + b _08009E70 +_080099AC: + mov r3, ip + movs r0, #2 + ldrsb r0, [r3, r0] + subs r0, r0, r6 + adds r0, r1, r0 + cmp r0, r2 + bge _080099BC + b _08009E70 +_080099BC: + mov r6, sb + asrs r0, r6, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + adds r2, r0, r3 + mov r0, ip + movs r6, #1 + ldrsb r6, [r0, r6] + mov r0, r8 + adds r1, r0, r6 + cmp r2, r1 + bgt _080099E6 + movs r0, #3 + ldrsb r0, [r5, r0] + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _080099F6 + cmp r2, r1 + bge _080099E6 + b _08009E70 +_080099E6: + mov r3, ip + movs r0, #3 + ldrsb r0, [r3, r0] + subs r0, r0, r6 + adds r0, r1, r0 + cmp r0, r2 + bge _080099F6 + b _08009E70 +_080099F6: + ldr r6, [sp, #0x40] + cmp r6, #0 + bne _08009A1C + mov r1, sb + asrs r0, r1, #0x10 + cmp r8, r0 + ble _08009A06 + b _08009CBE +_08009A06: + movs r2, #0xa + ldrsh r1, [r4, r2] + ldr r3, [sp, #0x24] + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + cmp r1, #0 + bge _08009A38 + b _08009CBE + .align 2, 0 +_08009A18: .4byte gPlayer +_08009A1C: + mov r6, sb + asrs r0, r6, #0x10 + cmp r8, r0 + bgt _08009A26 + b _08009CB8 +_08009A26: + movs r0, #0xa + ldrsh r1, [r4, r0] + ldr r2, [sp, #0x24] + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + cmp r1, #0 + bge _08009A38 + b _08009CB8 +_08009A38: + ldr r3, [sp, #0x40] + cmp r3, #0 + beq _08009A40 + b _08009B78 +_08009A40: + mov r6, sb + asrs r0, r6, #0x10 + movs r1, #1 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + mov r2, ip + movs r1, #3 + ldrsb r1, [r2, r1] + subs r0, r0, r1 + lsls r0, r0, #8 + ldr r6, _08009AF8 @ =gPlayer + ldr r1, [r6, #4] + ldr r2, _08009AFC @ =0xFFFFFF00 + ands r1, r2 + subs r0, r0, r1 + ldr r3, [sp, #0x3c] + adds r3, r3, r0 + str r3, [sp, #0x3c] + asrs r0, r3, #8 + movs r1, #0xf + ldrsb r1, [r6, r1] + subs r0, r0, r1 + movs r3, #8 + rsbs r3, r3, #0 + ldr r1, _08009B00 @ =sa2__sub_801EC3C + str r1, [sp] + adds r1, r7, #0 + ldr r2, [sp, #0x28] + bl sa2__sub_801F100 + adds r7, r0, #0 + cmp r7, #0 + bge _08009B04 + ldr r1, [r6, #0x10] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _08009AAA + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #1 + beq _08009AD6 + cmp r0, #3 + beq _08009AD6 +_08009AAA: + cmp r2, #3 + bne _08009AC8 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _08009AC8 + adds r0, r6, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #0 + bne _08009AD6 +_08009AC8: + ldr r0, _08009AF8 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] + adds r4, r0, #0 +_08009AD6: + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0 + strh r0, [r4, #0xa] + lsls r1, r7, #8 + ldr r0, [r4, #4] + subs r0, r0, r1 + str r0, [r4, #4] + bl _0800A372 + .align 2, 0 +_08009AF8: .4byte gPlayer +_08009AFC: .4byte 0xFFFFFF00 +_08009B00: .4byte sa2__sub_801EC3C +_08009B04: + movs r0, #8 + ldr r5, [sp, #0x30] + orrs r5, r0 + str r5, [sp, #0x30] + ldr r1, [r6, #0x10] + orrs r1, r0 + str r1, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _08009B30 + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #1 + beq _08009B5C + cmp r0, #3 + beq _08009B5C +_08009B30: + cmp r2, #3 + bne _08009B4E + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _08009B4E + adds r0, r6, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #0 + bne _08009B5C +_08009B4E: + ldr r0, _08009B74 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] + adds r4, r0, #0 +_08009B5C: + ldr r6, [sp, #0x18] + str r6, [r4, #0x28] + movs r0, #0 + strh r0, [r4, #0xa] + ldr r0, [sp, #0x3c] + str r0, [r4, #4] + ldr r1, [sp, #0x34] + cmp r1, #0 + beq _08009B72 + bl _0800A378 +_08009B72: + b _08009CA4 + .align 2, 0 +_08009B74: .4byte gPlayer +_08009B78: + mov r2, sb + asrs r0, r2, #0x10 + movs r1, #3 + ldrsb r1, [r5, r1] + adds r0, r0, r1 + mov r3, ip + movs r1, #3 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + lsls r0, r0, #8 + ldr r6, _08009C2C @ =gPlayer + ldr r1, [r6, #4] + ldr r2, _08009C30 @ =0xFFFFFF00 + ands r1, r2 + subs r0, r0, r1 + ldr r5, [sp, #0x3c] + adds r5, r5, r0 + str r5, [sp, #0x3c] + asrs r0, r5, #8 + movs r1, #0xf + ldrsb r1, [r6, r1] + adds r0, r0, r1 + ldr r1, _08009C34 @ =sa2__sub_801EC3C + str r1, [sp] + adds r1, r7, #0 + ldr r2, [sp, #0x28] + movs r3, #8 + bl sa2__sub_801F100 + adds r7, r0, #0 + cmp r7, #0 + bge _08009C38 + ldr r1, [r6, #0x10] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _08009BE0 + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #1 + beq _08009C0C + cmp r0, #3 + beq _08009C0C +_08009BE0: + cmp r2, #3 + bne _08009BFE + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _08009BFE + adds r0, r6, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #0 + bne _08009C0C +_08009BFE: + ldr r0, _08009C2C @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] + adds r4, r0, #0 +_08009C0C: + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0 + strh r0, [r4, #0xa] + lsls r1, r7, #8 + ldr r0, [r4, #4] + adds r0, r0, r1 + str r0, [r4, #4] + b _0800A372 + .align 2, 0 +_08009C2C: .4byte gPlayer +_08009C30: .4byte 0xFFFFFF00 +_08009C34: .4byte sa2__sub_801EC3C +_08009C38: + movs r0, #8 + ldr r1, [sp, #0x30] + orrs r1, r0 + str r1, [sp, #0x30] + ldr r1, [r6, #0x10] + orrs r1, r0 + str r1, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _08009C64 + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #1 + beq _08009C90 + cmp r0, #3 + beq _08009C90 +_08009C64: + cmp r2, #3 + bne _08009C82 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _08009C82 + adds r0, r6, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r6, #0 + cmp r0, #0 + bne _08009C90 +_08009C82: + ldr r0, _08009CB4 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] + adds r4, r0, #0 +_08009C90: + ldr r2, [sp, #0x18] + str r2, [r4, #0x28] + movs r0, #0 + strh r0, [r4, #0xa] + ldr r3, [sp, #0x3c] + str r3, [r4, #4] + ldr r5, [sp, #0x34] + cmp r5, #0 + beq _08009CA4 + b _0800A378 +_08009CA4: + adds r0, r4, #0 + bl sa2__sub_8021BE0 + ldrh r0, [r4, #8] + strh r0, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0x14] + b _0800A372 + .align 2, 0 +_08009CB4: .4byte gPlayer +_08009CB8: + ldr r6, [sp, #0x40] + cmp r6, #0 + bne _08009CE0 +_08009CBE: + mov r1, sb + asrs r0, r1, #0x10 + cmp r8, r0 + ble _08009CD8 + movs r2, #0xa + ldrsh r0, [r4, r2] + ldr r3, [sp, #0x24] + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + subs r0, r0, r1 + adds r5, r2, #0 + cmp r0, #0 + blt _08009CFE +_08009CD8: + ldr r5, [sp, #0x40] + cmp r5, #0 + bne _08009CE0 + b _08009E70 +_08009CE0: + mov r6, sb + asrs r0, r6, #0x10 + cmp r8, r0 + ble _08009CEA + b _08009E70 +_08009CEA: + movs r1, #0xa + ldrsh r0, [r4, r1] + ldr r3, [sp, #0x24] + lsls r2, r3, #0x10 + asrs r1, r2, #0x10 + adds r0, r0, r1 + adds r5, r2, #0 + cmp r0, #0 + blt _08009CFE + b _08009E70 +_08009CFE: + ldr r6, [sp, #0x40] + cmp r6, #0 + bne _08009DB0 + ldr r4, _08009D90 @ =gPlayer + movs r0, #0xf + ldrsb r0, [r4, r0] + add r0, r8 + ldr r1, _08009D94 @ =sa2__sub_801EC3C + str r1, [sp] + adds r1, r7, #0 + ldr r2, [sp, #0x28] + movs r3, #8 + bl sa2__sub_801F100 + adds r7, r0, #0 + cmp r7, #0 + bge _08009D98 + ldr r1, [r4, #0x10] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _08009D46 + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _08009D6E + cmp r0, #3 + beq _08009D6E +_08009D46: + cmp r2, #3 + bne _08009D62 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _08009D62 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08009D6E +_08009D62: + ldr r0, _08009D90 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] +_08009D6E: + ldr r4, _08009D90 @ =gPlayer + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0 + strh r0, [r4, #0xa] + lsls r1, r7, #8 + ldr r0, [r4, #4] + adds r0, r0, r1 + str r0, [r4, #4] + b _08009DA0 + .align 2, 0 +_08009D90: .4byte gPlayer +_08009D94: .4byte sa2__sub_801EC3C +_08009D98: + ldr r0, [sp, #0x38] + str r0, [r4] + ldr r1, [sp, #0x3c] + str r1, [r4, #4] +_08009DA0: + ldr r0, _08009DAC @ =gPlayer + movs r2, #0xa + ldrsh r1, [r0, r2] + asrs r2, r5, #0x10 + subs r1, r1, r2 + b _08009E5A + .align 2, 0 +_08009DAC: .4byte gPlayer +_08009DB0: + ldr r4, _08009E40 @ =gPlayer + movs r0, #0xf + ldrsb r0, [r4, r0] + mov r6, r8 + subs r0, r6, r0 + movs r3, #8 + rsbs r3, r3, #0 + ldr r1, _08009E44 @ =sa2__sub_801EC3C + str r1, [sp] + adds r1, r7, #0 + ldr r2, [sp, #0x28] + bl sa2__sub_801F100 + adds r7, r0, #0 + cmp r7, #0 + bge _08009E48 + ldr r1, [r4, #0x10] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _08009DF6 + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _08009E1E + cmp r0, #3 + beq _08009E1E +_08009DF6: + cmp r2, #3 + bne _08009E12 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _08009E12 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08009E1E +_08009E12: + ldr r0, _08009E40 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] +_08009E1E: + ldr r4, _08009E40 @ =gPlayer + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0 + strh r0, [r4, #0xa] + lsls r1, r7, #8 + ldr r0, [r4, #4] + subs r0, r0, r1 + str r0, [r4, #4] + b _08009E50 + .align 2, 0 +_08009E40: .4byte gPlayer +_08009E44: .4byte sa2__sub_801EC3C +_08009E48: + ldr r0, [sp, #0x38] + str r0, [r4] + ldr r1, [sp, #0x3c] + str r1, [r4, #4] +_08009E50: + ldr r0, _08009E6C @ =gPlayer + movs r2, #0xa + ldrsh r1, [r0, r2] + asrs r2, r5, #0x10 + adds r1, r1, r2 +_08009E5A: + adds r4, r0, #0 + cmp r1, #0 + bgt _08009E70 + movs r0, #0x80 + lsls r0, r0, #9 + ldr r3, [sp, #0x30] + orrs r3, r0 + str r3, [sp, #0x30] + b _0800A372 + .align 2, 0 +_08009E6C: .4byte gPlayer +_08009E70: + ldrb r0, [r4, #0x14] + adds r0, #0x20 + movs r1, #0xc0 + ands r0, r1 + asrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08009E84 + b _0800A372 +_08009E84: + ldr r5, [sp, #0x44] + asrs r0, r5, #0x10 + mov r6, sp + movs r5, #0xc + ldrsb r5, [r6, r5] + adds r3, r0, r5 + ldr r0, [sp, #0x38] + asrs r1, r0, #8 + add r0, sp, #4 + movs r6, #0 + ldrsb r6, [r0, r6] + adds r2, r1, r6 + adds r7, r1, #0 + cmp r3, r2 + bgt _08009EB6 + mov r1, sp + movs r0, #0xe + ldrsb r0, [r1, r0] + subs r0, r0, r5 + adds r0, r3, r0 + cmp r0, r2 + bge _08009EC8 + cmp r3, r2 + bge _08009EB6 + b _0800A372 +_08009EB6: + add r0, sp, #4 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r2, r0 + cmp r0, r3 + bge _08009EC8 + b _0800A372 +_08009EC8: + mov r2, sb + asrs r0, r2, #0x10 + mov r3, sp + movs r2, #0xd + ldrsb r2, [r3, r2] + adds r1, r0, r2 + add r0, sp, #4 + movs r5, #1 + ldrsb r5, [r0, r5] + mov r6, r8 + adds r3, r6, r5 + cmp r1, r3 + bgt _08009EF6 + mov r6, sp + movs r0, #0xf + ldrsb r0, [r6, r0] + subs r0, r0, r2 + adds r0, r1, r0 + cmp r0, r3 + bge _08009F08 + cmp r1, r3 + bge _08009EF6 + b _0800A372 +_08009EF6: + add r0, sp, #4 + ldrb r0, [r0, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r3, r0 + cmp r0, r1 + bge _08009F08 + b _0800A372 +_08009F08: + ldr r0, [sp, #0x44] + asrs r1, r0, #0x10 + cmp r7, r1 + ble _08009F12 + b _0800A132 +_08009F12: + mov sb, r4 + ldr r3, [r4, #0x10] + movs r2, #1 + ands r2, r3 + cmp r2, #0 + beq _08009F20 + b _0800A0B8 +_08009F20: + movs r0, #0x80 + lsls r0, r0, #0xb + ldr r5, [sp, #0x30] + orrs r5, r0 + str r5, [sp, #0x30] + adds r6, r4, #0 + adds r6, #0x3e + movs r5, #0 + ldrsb r5, [r6, r5] + cmp r5, #0 + beq _08009F3A + strh r2, [r4, #8] + b _0800A372 +_08009F3A: + mov r2, sp + movs r0, #0xc + ldrsb r0, [r2, r0] + adds r0, r1, r0 + add r1, sp, #4 + ldrb r1, [r1, #2] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + lsls r0, r0, #8 + str r0, [sp, #0x38] + movs r0, #8 + ldrsh r1, [r4, r0] + cmp r1, #0 + bge _08009F5A + rsbs r1, r1, #0 +_08009F5A: + movs r0, #0x90 + lsls r0, r0, #3 + cmp r1, r0 + ble _08009FCC + movs r0, #0x80 + lsls r0, r0, #0xe + ldr r1, [sp, #0x30] + orrs r1, r0 + str r1, [sp, #0x30] + mov r2, sl + lsls r0, r2, #0x10 + cmp r0, #0 + ble _08009FB4 + ldr r3, [sp, #0x2c] + cmp r3, #0 + beq _08009FA2 + strh r2, [r4, #0xc] + mov r0, sl + strh r0, [r4, #8] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + strb r5, [r0] + strb r5, [r6] + b _0800A358 +_08009FA2: + mov r1, sl + strh r1, [r4, #0xc] + strh r1, [r4, #8] + ldr r0, [r4] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r0, r2 + str r0, [r4] + b _0800A366 +_08009FB4: + movs r0, #2 + orrs r3, r0 + str r3, [r4, #0x10] + ldr r0, _08009FC8 @ =0x0000FE80 + strh r0, [r4, #8] + movs r0, #0xfd + lsls r0, r0, #8 + strh r0, [r4, #0xa] + b _0800A372 + .align 2, 0 +_08009FC8: .4byte 0x0000FE80 +_08009FCC: + movs r3, #8 + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _08009FD6 + b _0800A372 +_08009FD6: + ldr r1, [sp, #0x38] + asrs r0, r1, #8 + movs r1, #0xe + ldrsb r1, [r4, r1] + mov r2, r8 + subs r1, r2, r1 + movs r3, #8 + rsbs r3, r3, #0 + ldr r2, _0800A060 @ =sa2__sub_801EB44 + str r2, [sp] + ldr r2, [sp, #0x28] + bl sa2__sub_801F100 + adds r7, r0, #0 + cmp r7, #0 + bge _0800A068 + ldr r1, [r4, #0x10] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _0800A01C + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _0800A042 + cmp r0, #3 + beq _0800A042 +_0800A01C: + cmp r2, #3 + bne _0800A034 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0800A034 + movs r0, #0 + ldrsb r0, [r6, r0] + mov r4, sb + cmp r0, #0 + bne _0800A042 +_0800A034: + ldr r0, _0800A064 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] + adds r4, r0, #0 +_0800A042: + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0 + strh r0, [r4, #8] + lsls r1, r7, #8 + ldr r0, [r4] + subs r0, r0, r1 + str r0, [r4] + b _0800A372 + .align 2, 0 +_0800A060: .4byte sa2__sub_801EB44 +_0800A064: .4byte gPlayer +_0800A068: + ldr r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0800A09A + movs r0, #0x20 + orrs r1, r0 + ldr r3, [sp, #0x30] + orrs r3, r0 + subs r0, #0x25 + ands r1, r0 + str r1, [r4, #0x10] + ands r3, r0 + str r3, [sp, #0x30] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x40 + strb r0, [r1] +_0800A09A: + ldr r0, [r4, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x10] + ldr r6, [sp, #0x30] + ands r6, r1 + str r6, [sp, #0x30] + strh r5, [r4, #0xc] + strh r5, [r4, #8] + ldr r0, [sp, #0x38] + str r0, [r4] + ldr r1, [sp, #0x3c] + str r1, [r4, #4] + b _0800A372 +_0800A0B8: + movs r0, #0x80 + lsls r0, r0, #0xb + ldr r2, [sp, #0x30] + orrs r2, r0 + str r2, [sp, #0x30] + adds r6, r4, #0 + adds r6, #0x3e + movs r5, #0 + ldrsb r5, [r6, r5] + cmp r5, #0 + beq _0800A0D4 + movs r0, #0 + strh r0, [r4, #8] + b _0800A372 +_0800A0D4: + mov r3, sl + lsls r0, r3, #0x10 + asrs r1, r0, #0x10 + adds r2, r1, #0 + cmp r1, #0 + bge _0800A0E2 + rsbs r2, r1, #0 +_0800A0E2: + movs r0, #0x90 + lsls r0, r0, #3 + cmp r2, r0 + bgt _0800A0EC + b _0800A372 +_0800A0EC: + movs r0, #0x80 + lsls r0, r0, #0xe + ldr r2, [sp, #0x30] + orrs r2, r0 + str r2, [sp, #0x30] + cmp r1, #0 + bge _0800A12C + ldr r3, [sp, #0x2c] + cmp r3, #0 + beq _0800A128 + mov r0, sl + strh r0, [r4, #0xc] + strh r0, [r4, #8] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + strb r5, [r0] + strb r5, [r6] + b _0800A358 +_0800A128: + adds r0, r4, #0 + b _0800A362 +_0800A12C: + strh r5, [r4, #0xc] + strh r5, [r4, #8] + b _0800A372 +_0800A132: + adds r5, r4, #0 + ldr r3, [r5, #0x10] + movs r2, #1 + mov sb, r2 + adds r2, r3, #0 + mov r6, sb + ands r2, r6 + cmp r2, #0 + bne _0800A146 + b _0800A2F0 +_0800A146: + movs r0, #0x80 + lsls r0, r0, #0xa + ldr r2, [sp, #0x30] + orrs r2, r0 + str r2, [sp, #0x30] + ldr r0, _0800A160 @ =gPlayer + 0x3E + movs r6, #0 + ldrsb r6, [r0, r6] + cmp r6, #0 + beq _0800A164 + movs r0, #0 + strh r0, [r5, #8] + b _0800A372 + .align 2, 0 +_0800A160: .4byte gPlayer + 0x3E +_0800A164: + mov r2, sp + movs r0, #0xe + ldrsb r0, [r2, r0] + adds r0, r1, r0 + add r1, sp, #4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + lsls r0, r0, #8 + str r0, [sp, #0x38] + movs r0, #8 + ldrsh r1, [r5, r0] + cmp r1, #0 + bge _0800A184 + rsbs r1, r1, #0 +_0800A184: + movs r0, #0x90 + lsls r0, r0, #3 + cmp r1, r0 + ble _0800A1FC + movs r0, #0x80 + lsls r0, r0, #0xe + ldr r1, [sp, #0x30] + orrs r1, r0 + str r1, [sp, #0x30] + mov r2, sl + lsls r0, r2, #0x10 + cmp r0, #0 + bge _0800A1E8 + ldr r3, [sp, #0x2c] + cmp r3, #0 + beq _0800A1D4 + strh r2, [r5, #0xc] + mov r0, sl + strh r0, [r5, #8] + adds r0, r5, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3d + strb r6, [r0] + ldr r1, _0800A1D0 @ =gPlayer + 0x3E + strb r6, [r1] + b _0800A358 + .align 2, 0 +_0800A1D0: .4byte gPlayer + 0x3E +_0800A1D4: + mov r2, sl + strh r2, [r5, #0xc] + strh r2, [r5, #8] + ldr r0, [r5] + ldr r3, _0800A1E4 @ =0xFFFFFF00 + adds r0, r0, r3 + str r0, [r5] + b _0800A366 + .align 2, 0 +_0800A1E4: .4byte 0xFFFFFF00 +_0800A1E8: + movs r0, #2 + orrs r3, r0 + str r3, [r5, #0x10] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #8] + movs r0, #0xfd + lsls r0, r0, #8 + strh r0, [r5, #0xa] + b _0800A372 +_0800A1FC: + movs r1, #8 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0800A206 + b _0800A372 +_0800A206: + ldr r2, [sp, #0x38] + asrs r0, r2, #8 + movs r1, #0xe + ldrsb r1, [r5, r1] + add r1, r8 + ldr r2, _0800A290 @ =sa2__sub_801EB44 + str r2, [sp] + ldr r2, [sp, #0x28] + movs r3, #8 + bl sa2__sub_801F100 + adds r7, r0, #0 + cmp r7, #0 + bge _0800A29C + ldr r1, [r5, #0x10] + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #2 + bne _0800A24A + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r5, #0 + cmp r0, #1 + beq _0800A272 + cmp r0, #3 + beq _0800A272 +_0800A24A: + cmp r2, #3 + bne _0800A264 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _0800A264 + ldr r3, _0800A294 @ =gPlayer + 0x3E + movs r0, #0 + ldrsb r0, [r3, r0] + adds r4, r5, #0 + cmp r0, #0 + bne _0800A272 +_0800A264: + ldr r0, _0800A298 @ =gPlayer + ldr r1, [r0, #0x10] + movs r2, #3 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x10] + adds r4, r0, #0 +_0800A272: + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + movs r0, #0 + strh r0, [r4, #8] + lsls r1, r7, #8 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] + b _0800A372 + .align 2, 0 +_0800A290: .4byte sa2__sub_801EB44 +_0800A294: .4byte gPlayer + 0x3E +_0800A298: .4byte gPlayer +_0800A29C: + ldr r1, [r5, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0800A2CE + movs r0, #0x20 + orrs r1, r0 + ldr r2, [sp, #0x30] + orrs r2, r0 + subs r0, #0x25 + ands r1, r0 + str r1, [r5, #0x10] + ands r2, r0 + str r2, [sp, #0x30] + adds r0, r5, #0 + adds r0, #0x40 + movs r4, #0xe + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] +_0800A2CE: + ldr r0, [r5, #0x10] + mov r3, sb + orrs r0, r3 + str r0, [r5, #0x10] + ldr r0, [sp, #0x30] + orrs r0, r3 + str r0, [sp, #0x30] + strh r6, [r5, #0xc] + strh r6, [r5, #8] + ldr r1, [sp, #0x38] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r1, r2 + str r0, [r5] + ldr r3, [sp, #0x3c] + str r3, [r5, #4] + b _0800A372 +_0800A2F0: + movs r0, #0x80 + lsls r0, r0, #0xa + orrs r3, r0 + str r3, [r5, #0x10] + adds r7, r5, #0 + adds r7, #0x3e + movs r6, #0 + ldrsb r6, [r7, r6] + cmp r6, #0 + beq _0800A308 + strh r2, [r5, #8] + b _0800A372 +_0800A308: + mov r1, sl + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r2, r1, #0 + cmp r1, #0 + bge _0800A316 + rsbs r2, r1, #0 +_0800A316: + movs r0, #0x90 + lsls r0, r0, #3 + cmp r2, r0 + ble _0800A372 + movs r0, #0x80 + lsls r0, r0, #0xe + ldr r2, [sp, #0x30] + orrs r2, r0 + str r2, [sp, #0x30] + cmp r1, #0 + ble _0800A36E + ldr r3, [sp, #0x2c] + cmp r3, #0 + beq _0800A360 + mov r0, sl + strh r0, [r5, #0xc] + strh r0, [r5, #8] + adds r0, r5, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3d + strb r6, [r0] + strb r6, [r7] +_0800A358: + movs r0, #0xa1 + bl m4aSongNumStart + b _0800A372 +_0800A360: + adds r0, r5, #0 +_0800A362: + bl sa2__sub_800DE44 +_0800A366: + movs r0, #0xa2 + bl m4aSongNumStart + b _0800A372 +_0800A36E: + strh r6, [r4, #0xc] + strh r6, [r4, #8] +_0800A372: + ldr r1, [sp, #0x34] + cmp r1, #0 + beq _0800A390 +_0800A378: + ldr r2, _0800A3A4 @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0800A390 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r2, #0x10] +_0800A390: + ldr r0, [sp, #0x30] +_0800A392: + add sp, #0x48 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0800A3A4: .4byte gPlayer + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc b/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc new file mode 100644 index 0000000000..e47fb4bbcf --- /dev/null +++ b/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc @@ -0,0 +1,115 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r1, #0 + adds r4, r0, #0 + ldr r0, [sp, #0x1c] + mov r8, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov sb, r3 + ldr r1, [r0, #0x64] + mov ip, r1 + mov r7, ip + adds r7, #0xc + ldr r0, [r0, #0x10] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0800C2AA + ldr r1, [r7, #0x28] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0800C2AA + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r5, #0x18 + asrs r3, r1, #0x18 + adds r2, r0, r3 + mov r1, r8 + ldr r0, [r1] + asrs r0, r0, #8 + mov r1, ip + adds r1, #0x38 + movs r6, #0 + ldrsb r6, [r1, r6] + adds r1, r0, r6 + cmp r2, r1 + bgt _0800C24C + lsls r0, r5, #8 + asrs r0, r0, #0x18 + subs r0, r0, r3 + adds r0, r2, r0 + cmp r0, r1 + bge _0800C25E + cmp r2, r1 + blt _0800C2AA +_0800C24C: + mov r0, ip + adds r0, #0x3a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r6 + adds r0, r1, r0 + cmp r0, r2 + blt _0800C2AA +_0800C25E: + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + adds r4, r5, #0 + lsls r1, r4, #0x10 + asrs r1, r1, #0x18 + adds r3, r0, r1 + mov r2, r8 + ldr r0, [r2, #4] + asrs r0, r0, #8 + adds r2, r7, #0 + adds r2, #0x2d + movs r5, #0 + ldrsb r5, [r2, r5] + adds r2, r0, r5 + cmp r3, r2 + bgt _0800C28E + asrs r0, r4, #0x18 + subs r0, r0, r1 + adds r0, r3, r0 + cmp r0, r2 + bge _0800C2A0 + cmp r3, r2 + blt _0800C2AA +_0800C28E: + adds r0, r7, #0 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r0, r5 + adds r0, r2, r0 + cmp r0, r3 + blt _0800C2AA +_0800C2A0: + mov r0, r8 + bl Coll_DamagePlayer + movs r0, #2 + b _0800C2AC +_0800C2AA: + movs r0, #0 +_0800C2AC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/collision__sub_800C934.inc b/asm/non_matching/game/shared/stage/collision__sub_800C934.inc new file mode 100644 index 0000000000..bd2205bae9 --- /dev/null +++ b/asm/non_matching/game/shared/stage/collision__sub_800C934.inc @@ -0,0 +1,349 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 @ r8 = s + mov sb, r2 @ r2 = y + adds r7, r3, #0 @ r7 = rectPlayer + ldr r4, [sp, #0x2c] @ r4 = p + ldr r0, _0800CA1C @ =gStageFlags + ldrh r2, [r0] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + mov r0, r8 + adds r0, #0x2d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 @ r0 = hbTop = HB_TOP(s->hitboxes[0]) + mov r2, r8 + adds r2, #0x2f + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 @ r2 hbBottom = HB_BOTTOM(s->hitboxes[0]) + adds r0, r0, r2 + asrs r0, r0, #1 + add r0, sb @ r0 = y + (hbBottom - hbTop) / 2 + mov sl, r0 @ sl = middleY + mov r0, r8 + adds r0, #0x2c + movs r3, #0 + ldrsb r3, [r0, r3] @ r3 = HB_LEFT(s->hitboxes[0].b) + adds r1, r1, r3 @ r1 = x += HB_LEFT(s->hitboxes[0].b) + ldr r0, [r4] + asrs r0, r0, #8 @ r0 = I(p->qWorldX) + movs r5, #0 + ldrsb r5, [r7, r5] @ r5 = rectPlayer + adds r2, r0, r5 @ r2 = I(p->qWorldX) + HB_LEFT(rectPlayer) + cmp r1, r2 + bgt _0800C9A2 + mov r0, r8 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 @ r0 = HB_RIGHT(s->hitboxes[0].b.right) + subs r0, r0, r3 @ r0 = HB_WIDTH(s->hitboxes[0].b.right) + adds r0, r1, r0 + cmp r0, r2 + bge _0800C9B0 + cmp r1, r2 + bge _0800C9A2 + b _0800CBA8_return_0 +_0800C9A2: + movs r0, #2 + ldrsb r0, [r7, r0] @ r0 = r7+2 = rectPlayer + subs r0, r0, r5 + adds r0, r2, r0 + cmp r0, r1 + bge _0800C9B0 + b _0800CBA8_return_0 +_0800C9B0: + mov r3, r8 + adds r3, #0x2d + movs r0, #0 + ldrsb r0, [r3, r0] + mov ip, r0 + mov r6, sb + add r6, ip + ldr r2, [r4, #4] + asrs r0, r2, #8 @ r0 = I(p->qWorldY) + movs r1, #1 + ldrsb r1, [r7, r1] + adds r5, r0, r1 + str r3, [sp, #4] + cmp r6, r5 + bgt _0800C9E8 + mov r0, r8 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r3, ip + subs r0, r0, r3 + adds r0, r6, r0 + cmp r0, r5 + bge _0800C9F6 + cmp r6, r5 + bge _0800C9E8 + b _0800CBA8_return_0 +_0800C9E8: + movs r0, #3 + ldrsb r0, [r7, r0] + subs r0, r0, r1 + adds r0, r5, r0 + cmp r0, r6 + bge _0800C9F6 + b _0800CBA8_return_0 +_0800C9F6: + ldr r0, [sp] + cmp r0, #0 + bne _0800CA20 + asrs r0, r2, #8 + cmp r0, sl + ble _0800CA28 + mov r0, r8 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + subs r0, r0, r1 + lsls r0, r0, #8 + ldrb r1, [r4, #4] + adds r1, r1, r0 + str r1, [r4, #4] + b _0800CB4C + .align 2, 0 +_0800CA1C: .4byte gStageFlags +_0800CA20: + asrs r0, r2, #8 + cmp r0, sl + bge _0800CA28 + b _0800CB38 +_0800CA28: + ldr r1, [sp] + cmp r1, #0 + bne _0800CA3E + ldr r2, [sp, #4] + movs r0, #0 + ldrsb r0, [r2, r0] + add r0, sb + movs r1, #3 + ldrsb r1, [r7, r1] + subs r0, r0, r1 + b _0800CA50 +_0800CA3E: + mov r0, r8 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + movs r1, #3 + ldrsb r1, [r7, r1] + adds r0, r0, r1 +_0800CA50: + lsls r0, r0, #8 + ldrb r1, [r4, #4] + adds r1, r1, r0 + str r1, [r4, #4] + ldr r3, _0800CA6C @ =gCamera + movs r1, #0x14 + ldrsh r0, [r3, r1] + lsls r0, r0, #8 + ldr r1, [r4, #4] + cmp r1, r0 + bge _0800CA70 +_0800CA66: + str r0, [r4, #4] + b _0800CBA8_return_0 + .align 2, 0 +_0800CA6C: .4byte gCamera +_0800CA70: + ldr r2, _0800CB34 @ =gCamera + movs r3, #0x16 + ldrsh r0, [r2, r3] + lsls r0, r0, #8 + cmp r1, r0 + bge _0800CA66 + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _0800CA86 + b _0800CBA8_return_0 +_0800CA86: + ldrb r0, [r4, #0xf] + rsbs r0, r0, #0 + strb r0, [r7, #1] + ldrb r0, [r4, #0xf] + strb r0, [r7, #3] + movs r0, #0 + strh r0, [r4, #0xa] + ldr r2, [r4, #0x10] + movs r0, #2 + ands r2, r0 + cmp r2, #0 + bne _0800CAAC + ldrb r0, [r4, #0x14] + adds r0, #0x20 + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0800CAAC + strh r2, [r4, #0xc] +_0800CAAC: + ldr r0, [r4, #0x10] + movs r1, #8 + orrs r0, r1 + str r0, [r4, #0x10] + ldr r2, [sp, #0x30] + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + adds r0, r4, #0 + adds r0, #0x59 + movs r2, #0 + ldrsb r2, [r0, r2] + ldr r1, [r4, #0x10] + adds r3, r0, #0 + cmp r2, #2 + bne _0800CADC + subs r0, #0x1c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _0800CB00 + cmp r0, #3 + beq _0800CB00 +_0800CADC: + cmp r2, #3 + bne _0800CAF8 + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r0, r1 + cmp r0, #0 + beq _0800CAF8 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0800CB00 +_0800CAF8: + movs r0, #3 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x10] +_0800CB00: + mov r0, r8 + str r0, [r4, #0x28] + ldr r0, [sp, #0x28] + cmp r0, #0 + bne _0800CB9A_return_1 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #2 + bne _0800CB24 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _0800CB2E + cmp r0, #3 + beq _0800CB2E +_0800CB24: + adds r0, r4, #0 + bl sa2__sub_8021BE0 + ldrh r0, [r4, #8] + strh r0, [r4, #0xc] +_0800CB2E: + movs r0, #0 + strb r0, [r4, #0x14] + b _0800CB9A_return_1 + .align 2, 0 +_0800CB34: .4byte gCamera +_0800CB38: + ldr r3, [sp, #4] + movs r0, #0 + ldrsb r0, [r3, r0] + add r0, sb + adds r0, r0, r1 + lsls r0, r0, #8 + ldr r1, _0800CBA0 @ =0xFFFFFF00 + bics r2, r1 + adds r0, r2, r0 + str r0, [r4, #4] +_0800CB4C: + ldr r1, _0800CBA4 @ =gCamera + movs r2, #0x14 + ldrsh r0, [r1, r2] + lsls r0, r0, #8 + ldr r1, [r4, #4] + cmp r1, r0 + bge _0800CB5C + b _0800CA66 +_0800CB5C: + ldr r3, _0800CBA4 @ =gCamera + movs r2, #0x16 + ldrsh r0, [r3, r2] + lsls r0, r0, #8 + cmp r1, r0 + blt _0800CB6A + b _0800CA66 +_0800CB6A: + ldr r3, [sp, #0x30] + ldr r0, [r3] + movs r1, #0x80 + lsls r1, r1, #9 + orrs r0, r1 + str r0, [r3] + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _0800CBA8_return_0 + movs r0, #0 + strh r0, [r4, #0xa] + ldr r2, [r4, #0x10] + movs r0, #2 + ands r2, r0 + cmp r2, #0 + bne _0800CB9A_return_1 + ldrb r0, [r4, #0x14] + adds r0, #0x20 + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0800CB9A_return_1 + strh r2, [r4, #0xc] +_0800CB9A_return_1: + movs r0, #1 + b _0800CBAA + .align 2, 0 +_0800CBA0: .4byte 0xFFFFFF00 +_0800CBA4: .4byte gCamera +_0800CBA8_return_0: + movs r0, #0 +_0800CBAA: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc b/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc new file mode 100644 index 0000000000..4d82e7327c --- /dev/null +++ b/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc @@ -0,0 +1,333 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + adds r6, r0, #0 @ r6 = s + mov sb, r1 @ sb = x + mov sl, r2 @ sl = y + adds r7, r3, #0 @ r7 = rectPlayer + ldr r4, [sp, #0x3c] @ r4 = p + ldr r0, [sp, #0x40] + mov r8, r0 @ r8 = param6 + adds r0, r6, #0 + adds r0, #0x2c + movs r5, #0 + ldrsb r5, [r0, r5] @ r5 = shbLeft = s->hitboxes[0].b.left + adds r0, #2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov ip, r0 @ ip = shbRight = s->hitboxes[0].b.right + adds r0, r5, r0 + asrs r0, r0, #1 + add r0, sb + str r0, [sp, #8] @ sp08 = shbMiddleH + ldrb r0, [r4, #0x14] + adds r0, #0x20 + movs r1, #0xc0 + ands r0, r1 + asrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0800CC04 + b _0800CE20_return_FALSE +_0800CC04: + mov r1, sb @ r1 = x + adds r3, r1, r5 @ r3 = x + shbLeft + ldr r0, [r4] + asrs r1, r0, #8 + movs r2, #0 + ldrsb r2, [r7, r2] + adds r1, r1, r2 + str r0, [sp, #0x10] @ sp10 = p->x + str r2, [sp, #0xc] @ sp0C = rectPlayer.left + cmp r3, r1 + bgt _0800CC2A @ (x + shbLeft) > (I(p->x) + rectPlayer->left)) + mov r2, ip @ r2 = ip = shbRight + subs r0, r2, r5 + adds r0, r3, r0 + cmp r0, r1 + bge _0800CC3A + cmp r3, r1 + bge _0800CC2A + b _0800CE20_return_FALSE +_0800CC2A: + movs r0, #2 + ldrsb r0, [r7, r0] + ldr r5, [sp, #0xc] + subs r0, r0, r5 + adds r0, r1, r0 + cmp r0, r3 + bge _0800CC3A + b _0800CE20_return_FALSE +_0800CC3A: + adds r0, r6, #0 + adds r0, #0x2d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + str r0, [sp, #0x14] + adds r2, r0, #0 + add r2, sl + ldr r1, [r4, #4] + asrs r0, r1, #8 + movs r3, #1 + ldrsb r3, [r7, r3] + mov ip, r3 + adds r3, r0, r3 + mov sl, r1 + cmp r2, r3 + bgt _0800CC76 + adds r0, r6, #0 + adds r0, #0x2f + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r5, [sp, #0x14] + subs r0, r0, r5 + adds r0, r2, r0 + cmp r0, r3 + bge _0800CC86 + cmp r2, r3 + bge _0800CC76 + b _0800CE20_return_FALSE +_0800CC76: + movs r0, #3 + ldrsb r0, [r7, r0] + mov r1, ip + subs r0, r0, r1 + adds r0, r3, r0 + cmp r0, r2 + bge _0800CC86 + b _0800CE20_return_FALSE +_0800CC86: + ldr r2, [sp, #0x10] + asrs r0, r2, #8 + ldr r3, [sp, #8] + cmp r0, r3 + bgt _0800CD58 + adds r0, r6, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + movs r1, #2 + ldrsb r1, [r7, r1] + subs r5, r0, r1 + mov r0, sl + asrs r1, r0, #8 + adds r0, r4, #0 + adds r0, #0x27 + ldrb r2, [r0] + movs r3, #8 + rsbs r3, r3, #0 + movs r0, #0 + str r0, [sp] + ldr r0, _0800CCC8 @ =sa2__sub_801ED24 + str r0, [sp, #4] + adds r0, r5, #0 + bl sa2__sub_801E4E4 + cmp r0, #0 + blt _0800CCCC + lsls r0, r5, #8 + b _0800CCE2 + .align 2, 0 +_0800CCC8: .4byte sa2__sub_801ED24 +_0800CCCC: + adds r0, r6, #0 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + movs r1, #0 + ldrsb r1, [r7, r1] + subs r0, r0, r1 + adds r0, #1 + lsls r0, r0, #8 +_0800CCE2: + str r0, [r4] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _0800CCEE + b _0800CE20_return_FALSE +_0800CCEE: + mov r2, r8 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [r2] + ldr r2, [r4, #0x10] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0800CDD0 + adds r0, r4, #0 + adds r0, #0x3e + movs r3, #0 + ldrsb r3, [r0, r3] + cmp r3, #0 + bne _0800CDD0 + movs r5, #8 + ldrsh r0, [r4, r5] + cmp r0, #0 + ble _0800CDD4 + movs r1, #0x20 + orrs r2, r1 + str r2, [r4, #0x10] + mov r2, r8 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, [r4, #0x10] + subs r1, #0x25 + ands r0, r1 + str r0, [r4, #0x10] + ldr r0, [r2] + ands r0, r1 + str r0, [r2] + ldr r0, [r4, #0x10] + adds r1, #3 + ands r0, r1 + str r0, [r4, #0x10] + ldr r0, [r2] + ands r0, r1 + str r0, [r2] + strh r3, [r4, #0xc] + strh r3, [r4, #8] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + b _0800CDD4 +_0800CD58: + adds r0, r6, #0 + adds r0, #0x2e + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + ldr r3, [sp, #0xc] + subs r0, r0, r3 + adds r5, r0, #1 + mov r0, sl + asrs r1, r0, #8 + adds r0, r4, #0 + adds r0, #0x27 + ldrb r2, [r0] + movs r0, #0 + str r0, [sp] + ldr r0, _0800CD8C @ =sa2__sub_801ED24 + str r0, [sp, #4] + adds r0, r5, #0 + movs r3, #8 + bl sa2__sub_801E4E4 + cmp r0, #0 + blt _0800CD90 + lsls r0, r5, #8 + b _0800CDA4 + .align 2, 0 +_0800CD8C: .4byte sa2__sub_801ED24 +_0800CD90: + adds r0, r6, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sb + movs r1, #2 + ldrsb r1, [r7, r1] + subs r0, r0, r1 + lsls r0, r0, #8 +_0800CDA4: + str r0, [r4] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _0800CE20_return_FALSE + mov r2, r8 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xb + orrs r0, r1 + str r0, [r2] + ldr r2, [r4, #0x10] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + bne _0800CDD0 + adds r0, r4, #0 + adds r0, #0x3e + movs r3, #0 + ldrsb r3, [r0, r3] + cmp r3, #0 + beq _0800CDD8 +_0800CDD0: + movs r0, #0 + strh r0, [r4, #8] +_0800CDD4: + movs r0, #1 + b _0800CE22 +_0800CDD8: + movs r5, #8 + ldrsh r0, [r4, r5] + cmp r0, #0 + bge _0800CDD4 + movs r1, #0x20 + orrs r2, r1 + str r2, [r4, #0x10] + mov r2, r8 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, [r4, #0x10] + subs r1, #0x25 + ands r0, r1 + str r0, [r4, #0x10] + ldr r0, [r2] + ands r0, r1 + str r0, [r2] + ldr r0, [r4, #0x10] + movs r1, #1 + orrs r0, r1 + str r0, [r4, #0x10] + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + strh r3, [r4, #0xc] + strh r3, [r4, #8] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + b _0800CDD4 +_0800CE20_return_FALSE: + movs r0, #0 +_0800CE22: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc b/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc new file mode 100644 index 0000000000..3a1f94cbe5 --- /dev/null +++ b/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc @@ -0,0 +1,375 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r1, r1, #0x18 + lsrs r7, r1, #0x18 + movs r0, #0 + mov sb, r0 + movs r1, #0 + str r1, [sp, #4] + mov sl, r1 + movs r2, #0 + str r2, [sp, #8] + ldr r2, _08017F80 @ =gMultiplayerPlayerTasks + lsls r0, r7, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + str r1, [sp] + movs r6, #0 + ldr r0, [r2] + cmp r0, #0 + beq _08017FD8 + ldr r0, _08017F84 @ =gGameMode + ldrb r5, [r0] + movs r0, #0x10 + mov ip, r0 + adds r4, r2, #0 + ldr r1, _08017F88 @ =0x04000128 + mov r8, r1 +_08017F56: + ldr r2, [sp, #4] + adds r2, #1 + str r2, [sp, #4] + ldr r0, [r4] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + cmp r5, #3 + beq _08017F8C + cmp r5, #5 + beq _08017F8C + ldr r0, [r1, #0x5c] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08017FCA + add sb, r1 + add sl, r1 + b _08017FCA + .align 2, 0 +_08017F80: .4byte gMultiplayerPlayerTasks +_08017F84: .4byte gGameMode +_08017F88: .4byte 0x04000128 +_08017F8C: + ldr r0, _08017FF8 @ =gMultiplayerConnections + ldrb r3, [r0] + mov r2, ip + lsls r2, r6 + ands r2, r3 + adds r0, r6, #4 + asrs r2, r0 + mov r0, r8 + ldr r1, [r0] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + mov r0, ip + lsls r0, r1 + ands r3, r0 + mov r1, r8 + ldr r0, [r1] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, #4 + asrs r3, r0 + cmp r2, r3 + beq _08017FCA + ldr r2, _08017FFC @ =gMultiplayerRanks + adds r0, r6, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08017FCA + movs r0, #1 + mov sb, r0 +_08017FCA: + adds r4, #4 + adds r6, #1 + cmp r6, #3 + bhi _08017FD8 + ldr r0, [r4] + cmp r0, #0 + bne _08017F56 +_08017FD8: + ldr r1, _08017FFC @ =gMultiplayerRanks + adds r0, r7, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08018000 + mov r2, sb + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + adds r0, r7, #0 + bl CreateMultiplayerFinishResult + b _08018004 + .align 2, 0 +_08017FF8: .4byte gMultiplayerConnections +_08017FFC: .4byte gMultiplayerRanks +_08018000: + movs r0, #1 + str r0, [sp, #8] +_08018004: + ldr r0, _08018180 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _0801801C + mov r1, sl + adds r1, #1 + str r1, [sp, #0x10] + ldr r2, [sp, #4] + subs r2, #1 + str r2, [sp, #0xc] + cmp r0, #5 + bne _08018106 +_0801801C: + movs r6, #0 + ldr r0, _08018184 @ =gMultiplayerPlayerTasks + ldr r0, [r0] + mov r1, sl + adds r1, #1 + str r1, [sp, #0x10] + ldr r2, [sp, #4] + subs r2, #1 + str r2, [sp, #0xc] + cmp r0, #0 + beq _08018106 + movs r0, #0x10 + mov sl, r0 + mov r8, sl + mov r1, r8 + lsls r1, r7 + mov r8, r1 + ldr r5, _08018188 @ =gPlayer +_08018040: + cmp r6, r7 + beq _080180F4 + ldr r0, _0801818C @ =gMultiplayerRanks + adds r0, r6, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r2, #1 + rsbs r2, r2, #0 + cmp r0, r2 + bne _080180F4 + ldr r0, _08018190 @ =gMultiplayerConnections + ldrb r2, [r0] + mov r0, sl + lsls r0, r6 + ands r0, r2 + adds r1, r6, #4 + asrs r0, r1 + mov r1, r8 + ands r2, r1 + adds r1, r7, #4 + asrs r2, r1 + cmp r0, r2 + bne _080180F4 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + mov r2, sb + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl CreateMultiplayerFinishResult + ldr r0, _08018194 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r6, r0 + bne _080180F4 + adds r0, r5, #0 + bl Player_TransitionCancelFlyingAndBoost + ldr r0, [r5, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #0x18 + ands r0, r1 + adds r1, #0x1c + ands r0, r1 + subs r1, #0xc + ands r0, r1 + movs r1, #2 + orrs r0, r1 + ldr r1, _08018198 @ =0xFFFFFBFF + ands r0, r1 + ldr r1, _0801819C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r5, #0x10] + adds r4, r5, #0 + adds r4, #0x40 + movs r0, #0xf + strb r0, [r4] + adds r0, r5, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r5, #0xe] + movs r0, #0xe + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x3d + movs r2, #0 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + strh r2, [r5, #0xc] + strh r2, [r5, #8] + ldr r1, [r5, #0x10] + movs r0, #0x80 + lsls r0, r0, #0xe + orrs r1, r0 + strh r2, [r5, #0x38] + movs r0, #1 + orrs r1, r0 + movs r0, #0x1d + strb r0, [r4] + movs r0, #0x80 + lsls r0, r0, #0x10 + orrs r1, r0 + str r1, [r5, #0x10] +_080180F4: + adds r6, #1 + cmp r6, #3 + bhi _08018106 + ldr r0, _08018184 @ =gMultiplayerPlayerTasks + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + bne _08018040 +_08018106: + ldr r1, [sp] + ldr r0, [r1, #0x5c] + movs r2, #1 + orrs r0, r2 + str r0, [r1, #0x5c] + mov r0, sb + cmp r0, #0 + bne _08018130 + ldr r3, _080181A0 @ =gStageFlags + ldrh r1, [r3] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08018130 + movs r0, #4 + orrs r0, r1 + strh r0, [r3] + ldr r1, _080181A4 @ =gCourseTime + movs r0, #0xe1 + lsls r0, r0, #4 + str r0, [r1] +_08018130: + ldr r1, [sp, #0x10] + ldr r2, [sp, #0xc] + cmp r1, r2 + bhs _08018144 + ldr r0, _08018180 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _08018144 + cmp r0, #5 + bne _080181E4 +_08018144: + movs r6, #0 + ldr r0, _08018184 @ =gMultiplayerPlayerTasks + ldr r0, [r0] + cmp r0, #0 + beq _080181DA + movs r0, #1 + rsbs r0, r0, #0 + mov r8, r0 + movs r4, #0 + ldr r5, _08018188 @ =gPlayer +_08018158: + cmp r6, r7 + beq _080181C2 + ldr r0, _0801818C @ =gMultiplayerRanks + adds r0, r6, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, r8 + bne _080181C2 + ldr r0, _08018180 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _08018176 + cmp r0, #5 + bne _080181A8 +_08018176: + lsrs r0, r4, #0x18 + movs r1, #1 + bl CreateMultiplayerFinishResult + b _080181C2 + .align 2, 0 +_08018180: .4byte gGameMode +_08018184: .4byte gMultiplayerPlayerTasks +_08018188: .4byte gPlayer +_0801818C: .4byte gMultiplayerRanks +_08018190: .4byte gMultiplayerConnections +_08018194: .4byte 0x04000128 +_08018198: .4byte 0xFFFFFBFF +_0801819C: .4byte 0xFFFFFEFF +_080181A0: .4byte gStageFlags +_080181A4: .4byte gCourseTime +_080181A8: + lsrs r0, r4, #0x18 + ldr r2, [sp, #0xc] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl CreateMultiplayerFinishResult + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r5, #0x10] + movs r0, #0 + strh r0, [r5, #0x38] +_080181C2: + movs r0, #0x80 + lsls r0, r0, #0x11 + adds r4, r4, r0 + adds r6, #1 + cmp r6, #3 + bhi _080181DA + ldr r0, _080181F4 @ =gMultiplayerPlayerTasks + lsls r1, r6, #2 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + bne _08018158 +_080181DA: + ldr r1, [sp, #8] + cmp r1, #0 + bne _080181E4 + bl CreateMultiplayerFinishHandler +_080181E4: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080181F4: .4byte gMultiplayerPlayerTasks + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc b/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc new file mode 100644 index 0000000000..7798b492a4 --- /dev/null +++ b/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc @@ -0,0 +1,553 @@ + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r0, #0 + mov sl, r0 + ldr r1, _0801E874 @ =gCurTask + mov sb, r1 + ldr r0, [r1] + ldrh r5, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r6, r5, r0 @ r6 = itembox + ldr r2, _0801E878 @ =0x0300000C + adds r4, r5, r2 @ r4 = s + ldr r3, [r6] + str r3, [sp, #8] @ sp08 = me + ldrb r0, [r6, #8] + lsls r0, r0, #3 + ldrh r1, [r6, #4] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 @ r8 = worldX + ldrb r0, [r3, #1] + lsls r0, r0, #3 + ldrh r1, [r6, #6] + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 @ r7 = worldY + ldr r0, _0801E87C @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bls _0801E890 + movs r1, #0 + ldrsb r1, [r3, r1] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801E890 + movs r0, #0xa7 + bl m4aSongNumStart + mov r1, r8 + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + ldr r3, _0801E880 @ =0x0300006C + adds r2, r5, r3 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + ldrh r2, [r2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CreateDustCloud + mov r0, sb @ r0 = sb = gCurTask + ldr r1, [r0] + ldr r0, _0801E884 @ =Task_Itembox3 + str r0, [r1, #8] + ldr r1, _0801E888 @ =0x03000070 + adds r0, r5, r1 + mov r2, sl + strb r2, [r0] + ldr r2, _0801E88C @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0801E85E + b _0801EC0A_return +_0801E85E: + ldr r0, [r2, #0x28] + cmp r0, r4 + beq _0801E866 + b _0801EC0A_return +_0801E866: + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r2, #0x10] + b _0801EC0A_return + .align 2, 0 +_0801E874: .4byte gCurTask +_0801E878: .4byte 0x0300000C +_0801E87C: .4byte gGameMode +_0801E880: .4byte 0x0300006C +_0801E884: .4byte Task_Itembox3 +_0801E888: .4byte 0x03000070 +_0801E88C: .4byte gPlayer +_0801E890: + adds r0, r6, #0 @ r0 = r6 = itembox + adds r0, #0x70 + ldrb r1, [r0] + mov r3, r8 @ r3 = r8 = worldX + lsls r3, r3, #0x10 + mov r8, r3 @ r8 = worldX << 16 + lsls r7, r7, #0x10 + mov sb, r7 @ sb = r7 = worldY << 16 + str r0, [sp, #0xc] @ sp0C = &itembox->unk70 + adds r7, r6, #0 + adds r7, #0x6c @ r7 = &itembox->iconOffset + cmp r1, #0 + beq _0801E8F0 + adds r1, r6, #0 + adds r1, #0x6e + ldrh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r5, [r7] + adds r0, r0, r5 + movs r2, #0 + strh r0, [r7] + ldrh r0, [r1] + adds r0, #0x28 + strh r0, [r1] + mov r1, sb @ r1 = worldY + asrs r0, r1, #0x10 + movs r3, #0 + ldrsh r1, [r7, r3] + adds r0, r0, r1 @ r0 = worldY + iconOffset + mov r5, r8 + asrs r1, r5, #0x10 @ r1 = worldX + str r2, [sp] + ldr r2, _0801E9DC @ =sa2__sub_801EE64 + str r2, [sp, #4] + movs r2, #1 + movs r3, #8 + bl sa2__sub_801F07C + adds r1, r0, #0 + cmp r1, #0 + bge _0801E8F0 + ldrh r0, [r7] + adds r0, r0, r1 + strh r0, [r7] + movs r0, #0 + ldr r1, [sp, #0xc] + strb r0, [r1] +_0801E8F0: + ldr r2, _0801E9E0 @ =gCamera + ldrh r1, [r2] + mov r3, r8 @ r3 = r8 = worldX << 16 + asrs r0, r3, #0x10 + subs r0, r0, r1 + strh r0, [r4, #0x16] + ldrh r1, [r2, #2] + mov r5, sb @ r5 = sb = worldY << 16 + asrs r0, r5, #0x10 + subs r0, r0, r1 + ldrh r1, [r7] + adds r0, r0, r1 + strh r0, [r4, #0x18] + ldr r0, _0801E9E4 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _0801E916 + cmp r0, #5 + bne _0801E95E +_0801E916: + movs r2, #0 + ldr r1, _0801E9E8 @ =gMultiplayerPlayerTasks + ldr r0, [r1] + cmp r0, #0 + beq _0801E95E + adds r3, r1, #0 +_0801E922: + ldr r0, _0801E9EC @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r2, r0 + beq _0801E94A + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #0x12 + adds r0, r0, r1 + ldr r0, [r0, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0801E94A + movs r5, #1 + mov sl, r5 +_0801E94A: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bhi _0801E95E + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + bne _0801E922 +_0801E95E: + ldr r5, _0801E9F0 @ =gPlayer + ldr r0, [r5, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0801E974 + mov r0, sl + cmp r0, #0 + bne _0801E974 + b _0801EADC +_0801E974: + ldr r0, _0801E9F4 @ =gNumSingleplayerCharacters + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + ble _0801E998 + mov r2, r8 @ r2 = r8 = worldX << 16 + asrs r1, r2, #0x10 + mov r3, sb @ r3 = sb = worldY << 16 + asrs r2, r3, #0x10 + ldrh r0, [r7] + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r3, _0801E9F8 @ =gPartner + adds r0, r4, #0 + bl Coll_Player_Platform +_0801E998: + ldr r0, [r5, #0x10] + movs r1, #8 + mov sl, r1 + ands r0, r1 + cmp r0, #0 + beq _0801E9AA + ldr r0, [r5, #0x28] + cmp r0, r4 + beq _0801E9B6 +_0801E9AA: + ldr r0, [r5, #0x64] + ldr r1, [r0, #0x3c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801E9FC +_0801E9B6: + mov r2, r8 @ r2 = r8 = worldX << 16 + asrs r1, r2, #0x10 + mov r3, sb @ r3 = sb = worldY << 16 + asrs r2, r3, #0x10 + ldrh r5, [r7] + adds r2, r2, r5 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + ldr r3, _0801E9F0 @ =gPlayer + adds r0, r4, #0 + bl Coll_Player_Platform + movs r1, #0x80 + lsls r1, r1, #9 + ands r1, r0 + cmp r1, #0 + bne _0801E9DA + b _0801EADC +_0801E9DA: + b _0801EA20 + .align 2, 0 +_0801E9DC: .4byte sa2__sub_801EE64 +_0801E9E0: .4byte gCamera +_0801E9E4: .4byte gGameMode +_0801E9E8: .4byte gMultiplayerPlayerTasks +_0801E9EC: .4byte 0x04000128 +_0801E9F0: .4byte gPlayer +_0801E9F4: .4byte gNumSingleplayerCharacters +_0801E9F8: .4byte gPartner +_0801E9FC: + mov r2, r8 @ r2 = r8 = worldX << 16 + asrs r1, r2, #0x10 + mov r3, sb @ r3 = sb = worldY << 16 + asrs r2, r3, #0x10 + ldrh r0, [r7] + adds r2, r2, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r4, #0 + adds r3, r5, #0 + bl Coll_Player_Itembox + adds r1, r0, #0 + movs r0, #0x80 + lsls r0, r0, #9 + ands r0, r1 + cmp r0, #0 + beq _0801EA32 +_0801EA20: + adds r1, r6, #0 + adds r1, #0x6e + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + movs r0, #0xff + ldr r1, [sp, #0xc] @ r1 = sp0C = &itembox->unk70 + strb r0, [r1] + b _0801EADC +_0801EA32: + movs r0, #0x28 + ands r0, r1 + cmp r0, #0 + beq _0801EADC + ldr r2, _0801EAC8 @ =gPlayer + ldr r1, [r2, #0x10] + adds r0, r1, #0 + mov r3, sl + ands r0, r3 + cmp r0, #0 + beq _0801EA5E + ldr r0, [r2, #0x28] + cmp r0, r4 + bne _0801EA5E + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #0x18 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r2, #0x10] +_0801EA5E: + ldr r2, _0801EACC @ =gPartner + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0801EA80 + ldr r0, [r2, #0x28] + cmp r0, r4 + bne _0801EA80 + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #0x18 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r2, #0x10] +_0801EA80: @ BreakItemBox() in SA2! + movs r0, #0xa7 + bl m4aSongNumStart + mov r5, r8 @ r5 = r8 = worldX << 16 + asrs r0, r5, #0x10 + mov r2, sb @ r2 = sb = worldY << 16 + asrs r1, r2, #0x10 + ldrh r7, [r7] + adds r1, r1, r7 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl CreateDustCloud + ldr r0, _0801EAD0 @ =gCurTask + ldr r1, [r0] + ldr r0, _0801EAD4 @ =Task_Itembox2 + str r0, [r1, #8] + movs r0, #0 + ldr r3, [sp, #0xc] @ r3 = sp0C = &itembox->unk70 + strb r0, [r3] + ldr r0, _0801EAD8 @ =gGameMode + ldrb r0, [r0] + cmp r0, #1 + bhi _0801EAB2 + b _0801EC0A_return +_0801EAB2: + bl CreateRoomEvent + movs r1, #2 + strb r1, [r0] + ldrh r1, [r6, #4] + strb r1, [r0, #1] + ldrh r1, [r6, #6] + strb r1, [r0, #2] + ldrb r1, [r6, #9] + strb r1, [r0, #3] + b _0801EC0A_return + .align 2, 0 +_0801EAC8: .4byte gPlayer +_0801EACC: .4byte gPartner +_0801EAD0: .4byte gCurTask +_0801EAD4: .4byte Task_Itembox2 +_0801EAD8: .4byte gGameMode +_0801EADC: + mov r5, r8 @ r5 = r8 = worldX << 16 + asrs r2, r5, #0x10 + ldr r3, _0801EB4C @ =gCamera + movs r0, #0 + ldrsh r1, [r3, r0] + movs r5, #0xb8 + lsls r5, r5, #1 + adds r0, r1, r5 + cmp r2, r0 + bgt _0801EB12 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + blt _0801EB12 + mov r0, sb @ r0 = sb = worldY << 16 + asrs r2, r0, #0x10 + movs r5, #2 + ldrsh r1, [r3, r5] + movs r3, #0x90 + lsls r3, r3, #1 + adds r0, r1, r3 + cmp r2, r0 + bgt _0801EB12 + adds r0, r1, #0 + subs r0, #0x80 + cmp r2, r0 + bge _0801EB54 +_0801EB12: + ldrh r0, [r4, #0x16] + adds r0, #0x80 + lsls r0, r0, #0x10 + movs r1, #0xf8 + lsls r1, r1, #0x11 + cmp r0, r1 + bhi _0801EB3C + movs r5, #0x18 + ldrsh r1, [r4, r5] + movs r2, #0 + ldrsh r0, [r7, r2] + adds r0, #0x80 + adds r1, r1, r0 + cmp r1, #0 + blt _0801EB3C + movs r3, #0x18 + ldrsh r1, [r4, r3] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0801EB54 +_0801EB3C: + ldrb r0, [r6, #8] + ldr r5, [sp, #8] + strb r0, [r5] + ldr r0, _0801EB50 @ =gCurTask + ldr r0, [r0] + bl TaskDestroy + b _0801EC0A_return + .align 2, 0 +_0801EB4C: .4byte gCamera +_0801EB50: .4byte gCurTask +_0801EB54: + adds r0, r4, #0 + bl DisplaySprite + adds r4, r6, #0 @ r4 = r6 = itembox + adds r4, #0x3c @ r4 = s + ldr r0, _0801EBA8 @ =gGameMode + ldrb r0, [r0] + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0801EBEA + ldr r0, _0801EBAC @ =gStageTime + ldr r3, [r0] + lsrs r0, r3, #5 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0801EBBC + ldr r2, _0801EBB0 @ =gUnknown_080BB4F0 + ldr r0, _0801EBB4 @ =gMultiplayerPseudoRandom + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r3, [r0] + adds r1, r6, #0 + adds r1, #0x71 + strb r3, [r1] + ldr r0, _0801EBB8 @ =gCurrentLevel + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x19 + adds r2, r1, #0 + cmp r0, #5 + bne _0801EBD6 + cmp r3, #8 + bne _0801EBD6 + movs r0, #0xa + strb r0, [r2] + b _0801EBD6 + .align 2, 0 +_0801EBA8: .4byte gGameMode +_0801EBAC: .4byte gStageTime +_0801EBB0: .4byte gUnknown_080BB4F0 +_0801EBB4: .4byte gMultiplayerPseudoRandom +_0801EBB8: .4byte gCurrentLevel +_0801EBBC: + ldr r2, _0801EC1C @ =gUnknown_080BB4E8 + lsrs r0, r3, #6 + ldr r1, [sp, #8] @ r1 = sp08 = me + ldrb r1, [r1, #2] + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x71 + strb r1, [r0] @ itembox->kind = + adds r2, r0, #0 +_0801EBD6: + ldr r1, _0801EC20 @ =gUnknown_080BB4D8 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x20 + strb r1, [r0] @ s->variant = gUnknown_080BB4D8[itembox->kind]; + adds r0, r4, #0 + bl UpdateSpriteAnimation +_0801EBEA: + ldr r2, _0801EC24 @ =gCamera + ldrh r1, [r2] + mov r3, r8 @ r3 = r8 = worldX << 16 + asrs r0, r3, #0x10 + subs r0, r0, r1 + strh r0, [r4, #0x16] + ldrh r1, [r2, #2] + mov r5, sb @ r5 = sb = worldY << 16 + asrs r0, r5, #0x10 + subs r0, r0, r1 + ldrh r7, [r7] + adds r0, r0, r7 + strh r0, [r4, #0x18] + adds r0, r4, #0 + bl DisplaySprite +_0801EC0A_return: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801EC1C: .4byte gUnknown_080BB4E8 +_0801EC20: .4byte gUnknown_080BB4D8 +_0801EC24: .4byte gCamera + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc b/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc new file mode 100644 index 0000000000..d5cc807780 --- /dev/null +++ b/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc @@ -0,0 +1,582 @@ + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + ldr r0, _08011E7C @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r4, r1, r0 + ldrh r1, [r4] + ldr r0, _08011E80 @ =0x000001FF + cmp r1, r0 + bhi _08011E84 + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + subs r0, r0, r1 + b _08011E8A + .align 2, 0 +_08011E7C: .4byte gCurTask +_08011E80: .4byte 0x000001FF +_08011E84: + ldrh r0, [r4, #2] + ldrh r1, [r4, #4] + adds r0, r0, r1 +_08011E8A: + strh r0, [r4, #4] + ldrh r0, [r4, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r2, [r4] + adds r0, r0, r2 + movs r3, #0 + mov r8, r3 + ldr r3, _08011F28 @ =0x000003FF + ands r0, r3 + strh r0, [r4] + ldrb r1, [r4, #0xb] + adds r5, r0, r1 + ands r5, r3 + ldr r6, _08011F2C @ =gSineTable + movs r7, #0x80 + lsls r7, r7, #1 + adds r0, r5, r7 + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r1, r0, #0x10 + cmp r1, #0 + bne _08011EBC + b _080122BA +_08011EBC: + lsls r0, r5, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + asrs r1, r1, #0x16 + str r3, [sp, #0x18] + bl Div + mov sl, r0 + add r2, sp, #0x10 + movs r1, #8 + ldrsh r0, [r4, r1] + mov sb, r0 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + mov r1, sb + muls r1, r0, r1 + asrs r1, r1, #8 + ldrh r0, [r4, #6] + subs r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r2 + ldr r3, [sp, #0x18] + cmp r0, #0 + bgt _08011F6A + mov r0, r8 + strh r0, [r2] + cmp r5, #0xff + bls _08011F34 + ldr r2, _08011F30 @ =0xFFFFFD00 + adds r1, r5, r2 + ands r1, r3 + lsls r0, r1, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + adds r1, r1, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + movs r3, #6 + ldrsh r1, [r4, r3] + b _08011FB0 + .align 2, 0 +_08011F28: .4byte 0x000003FF +_08011F2C: .4byte gSineTable +_08011F30: .4byte 0xFFFFFD00 +_08011F34: + subs r1, r7, r5 + ands r1, r3 + lsls r0, r1, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + adds r1, r1, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + movs r2, #6 + ldrsh r1, [r4, r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r1, r0, r1 + asrs r1, r1, #8 + ldrh r0, [r4, #8] + subs r0, r0, r1 + mov r3, sl + strh r0, [r3, #2] + b _08011FC8 +_08011F6A: + cmp r0, #0xef + ble _08011FC2 + movs r0, #0xf0 + mov r8, r0 + mov r2, r8 + mov r1, sl + strh r2, [r1] + cmp r5, #0xff + bls _08011F88 + ldr r0, _08011F84 @ =0xFFFFFD00 + adds r1, r5, r0 + b _08011F8A + .align 2, 0 +_08011F84: .4byte 0xFFFFFD00 +_08011F88: + subs r1, r7, r5 +_08011F8A: + ands r1, r3 + lsls r0, r1, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + adds r1, r1, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + movs r2, #6 + ldrsh r1, [r4, r2] + mov r3, r8 + subs r1, r3, r1 +_08011FB0: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r1, r0, r1 + asrs r1, r1, #8 + ldrh r0, [r4, #8] + subs r0, r0, r1 + mov r1, sl + strh r0, [r1, #2] + b _08011FC8 +_08011FC2: + mov r3, r8 + mov r2, sl + strh r3, [r2, #2] +_08011FC8: + add r1, sp, #8 + mov r2, sl + ldrh r0, [r2] + movs r3, #0 + mov sb, r3 + strb r0, [r1] + ldrh r0, [r2, #2] + strb r0, [r1, #1] + ldr r6, _08012074 @ =gSineTable + lsls r0, r5, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + movs r7, #0x80 + lsls r7, r7, #1 + adds r1, r5, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + add r3, sp, #8 + ldrb r2, [r4, #6] + movs r5, #8 + ldrsh r1, [r4, r5] + subs r1, #0xa0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r0, r1, r0 + asrs r0, r0, #8 + subs r2, r2, r0 + strb r2, [r3, #2] + adds r1, r3, #0 + movs r0, #0xa0 + strb r0, [r1, #3] + ldrb r1, [r4, #0xb] + ldrh r0, [r4] + subs r0, r0, r1 + movs r2, #0x80 + lsls r2, r2, #3 + adds r1, r2, #0 + subs r5, r1, r0 + ldr r3, _08012078 @ =0x000003FF + adds r0, r3, #0 + ands r5, r0 + lsls r0, r5, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + adds r1, r5, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + add r2, sp, #0x14 + movs r3, #8 + ldrsh r1, [r4, r3] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r0, r1, r0 + asrs r0, r0, #8 + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r2 + cmp r0, #0 + bgt _080120BC + mov r3, sb + strh r3, [r2] + cmp r5, #0xff + bls _08012080 + ldr r0, _0801207C @ =0xFFFFFD00 + adds r1, r5, r0 + b _08012082 + .align 2, 0 +_08012074: .4byte gSineTable +_08012078: .4byte 0x000003FF +_0801207C: .4byte 0xFFFFFD00 +_08012080: + subs r1, r7, r5 +_08012082: + ldr r0, _080120B8 @ =0x000003FF + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + adds r1, r1, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + movs r2, #6 + ldrsh r1, [r4, r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r1, r0, r1 + asrs r1, r1, #8 + ldrh r0, [r4, #8] + subs r0, r0, r1 + mov r3, r8 + strh r0, [r3, #2] + b _0801211E + .align 2, 0 +_080120B8: .4byte 0x000003FF +_080120BC: + cmp r0, #0xef + ble _08012118 + movs r0, #0xf0 + mov sb, r0 + mov r2, sb + mov r1, r8 + strh r2, [r1] + cmp r5, #0xff + bls _080120D8 + ldr r3, _080120D4 @ =0xFFFFFD00 + adds r1, r5, r3 + b _080120DA + .align 2, 0 +_080120D4: .4byte 0xFFFFFD00 +_080120D8: + subs r1, r7, r5 +_080120DA: + ldr r0, _08012114 @ =0x000003FF + ands r1, r0 + lsls r0, r1, #1 + adds r0, r0, r6 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + adds r1, r1, r7 + lsls r1, r1, #1 + adds r1, r1, r6 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + movs r2, #6 + ldrsh r1, [r4, r2] + mov r3, sb + subs r1, r3, r1 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r1, r0, r1 + asrs r1, r1, #8 + ldrh r0, [r4, #8] + subs r0, r0, r1 + mov r1, r8 + strh r0, [r1, #2] + b _0801211E + .align 2, 0 +_08012114: .4byte 0x000003FF +_08012118: + mov r3, sb + mov r2, r8 + strh r3, [r2, #2] +_0801211E: + add r1, sp, #8 + mov r6, r8 + ldrh r0, [r6] + strb r0, [r1, #4] + ldrh r0, [r6, #2] + strb r0, [r1, #5] + ldr r2, _080121A4 @ =gSineTable + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x16 + lsls r0, r0, #8 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r5, r3 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + lsls r1, r1, #0x10 + asrs r1, r1, #0x16 + bl Div + add r2, sp, #8 + movs r5, #8 + ldrsh r1, [r4, r5] + subs r1, #0xa0 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + muls r0, r1, r0 + asrs r0, r0, #8 + ldrb r1, [r4, #6] + adds r0, r0, r1 + strb r0, [r2, #6] + adds r1, r2, #0 + movs r0, #0xa0 + strb r0, [r1, #7] + ldrh r1, [r4] + ldr r0, _080121A8 @ =0x000001FF + cmp r1, r0 + bhi _0801221C + ldrh r0, [r6, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _0801217C + b _080122BA +_0801217C: + mov r2, sl + ldrh r0, [r2, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _080121E0 + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080121B0 + ldr r2, _080121AC @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #6] + b _080121BE + .align 2, 0 +_080121A4: .4byte gSineTable +_080121A8: .4byte 0x000001FF +_080121AC: .4byte gWinRegs +_080121B0: + ldr r2, _080121DC @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #4] +_080121BE: + ldrb r0, [r4, #0xa] + add r1, sp, #8 + ldrb r1, [r1, #4] + add r2, sp, #8 + ldrb r2, [r2, #5] + add r3, sp, #8 + ldrb r3, [r3, #6] + add r4, sp, #8 + ldrb r4, [r4, #7] + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + bl sa2__sub_8006228 + b _080122BA + .align 2, 0 +_080121DC: .4byte gWinRegs +_080121E0: + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08012200 + ldr r2, _080121FC @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #6] + b _0801220E + .align 2, 0 +_080121FC: .4byte gWinRegs +_08012200: + ldr r2, _08012218 @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #5] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #4] +_0801220E: + ldrb r0, [r4, #0xa] + add r1, sp, #8 + bl sa2__sub_800724C + b _080122BA + .align 2, 0 +_08012218: .4byte gWinRegs +_0801221C: + mov r3, sl + ldrh r0, [r3, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + bgt _080122BA + mov r5, r8 + ldrh r0, [r5, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x9f + ble _08012284 + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08012254 + ldr r2, _08012250 @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #1] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #6] + b _08012262 + .align 2, 0 +_08012250: .4byte gWinRegs +_08012254: + ldr r2, _08012280 @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #1] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #4] +_08012262: + ldrb r0, [r4, #0xa] + add r1, sp, #8 + ldrb r1, [r1] + add r2, sp, #8 + ldrb r2, [r2, #1] + add r3, sp, #8 + ldrb r3, [r3, #2] + add r4, sp, #8 + ldrb r4, [r4, #3] + str r4, [sp] + movs r4, #0 + str r4, [sp, #4] + bl sa2__sub_80064A8 + b _080122BA + .align 2, 0 +_08012280: .4byte gWinRegs +_08012284: + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080122A4 + ldr r2, _080122A0 @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #1] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #6] + b _080122B2 + .align 2, 0 +_080122A0: .4byte gWinRegs +_080122A4: + ldr r2, _080122CC @ =gWinRegs + add r0, sp, #8 + ldrb r0, [r0, #1] + lsls r0, r0, #8 + movs r1, #0xa0 + orrs r0, r1 + strh r0, [r2, #4] +_080122B2: + ldrb r0, [r4, #0xa] + add r1, sp, #8 + bl sa2__sub_800724C +_080122BA: + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080122CC: .4byte gWinRegs + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc b/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc new file mode 100644 index 0000000000..8353df0f60 --- /dev/null +++ b/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc @@ -0,0 +1,1275 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + ldr r0, _080134CC @ =gCurTask + ldr r0, [r0] + ldrh r4, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r4, r0 + adds r6, r7, #0 + adds r0, #0x38 + adds r0, r4, r0 + str r0, [sp] + ldr r1, _080134D0 @ =0x03000056 + adds r3, r4, r1 + ldrb r2, [r3] + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080134D4 @ =gMultiSioRecv + adds r0, r0, r1 + mov r8, r0 + ldr r5, _080134D8 @ =gMultiSioStatusFlags + mov sb, r5 + movs r5, #1 + adds r1, r5, #0 + lsls r1, r2 + mov r2, sb + ldr r0, [r2] + ands r0, r1 + cmp r0, #0 + bne _08013448 + b _08013810 +_08013448: + ldr r0, _080134DC @ =0x03000061 + adds r2, r4, r0 + movs r1, #0 + mov sl, r1 + mov r0, sl + strb r0, [r2] + adds r1, r5, #0 + ldrb r3, [r3] + lsls r1, r3 + mov r3, sb + ldr r0, [r3] + ands r0, r1 + cmp r0, #0 + bne _08013466 + b _08013810 +_08013466: + mov r5, r8 + ldrh r1, [r5] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + beq _08013474 + b _08013810 +_08013474: + mov r0, sl + strb r0, [r2] + movs r1, #2 + ldrsh r0, [r5, r1] + ldr r2, _080134E0 @ =0x03000050 + adds r3, r4, r2 + movs r5, #0 + ldrsh r1, [r3, r5] + subs r0, r0, r1 + str r0, [r7, #0x44] + mov r1, r8 + movs r2, #4 + ldrsh r0, [r1, r2] + ldr r5, _080134E4 @ =0x03000052 + adds r2, r4, r5 + movs r5, #0 + ldrsh r1, [r2, r5] + subs r0, r0, r1 + str r0, [r7, #0x48] + mov r1, r8 + ldrh r0, [r1, #2] + strh r0, [r3] + ldrh r0, [r1, #4] + strh r0, [r2] + ldr r0, [r7, #0x44] + cmp r0, #0 + bge _080134AC + rsbs r0, r0, #0 +_080134AC: + cmp r0, #0x40 + bgt _080134BC + ldr r0, [r7, #0x48] + cmp r0, #0 + bge _080134B8 + rsbs r0, r0, #0 +_080134B8: + cmp r0, #0x40 + ble _080134E8 +_080134BC: + adds r0, r6, #0 + adds r0, #0x66 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + b _080134FC + .align 2, 0 +_080134CC: .4byte gCurTask +_080134D0: .4byte 0x03000056 +_080134D4: .4byte gMultiSioRecv +_080134D8: .4byte gMultiSioStatusFlags +_080134DC: .4byte 0x03000061 +_080134E0: .4byte 0x03000050 +_080134E4: .4byte 0x03000052 +_080134E8: + ldr r0, [r7, #0x44] + lsls r0, r0, #8 + ldr r2, _0801358C @ =0x03000066 + adds r1, r4, r2 + strh r0, [r1] + ldr r0, [r7, #0x48] + lsls r0, r0, #8 + ldr r3, _08013590 @ =0x03000068 + adds r1, r4, r3 + strh r0, [r1] +_080134FC: + adds r2, r6, #0 + adds r2, #0x57 + ldrb r1, [r2] + mov r4, r8 + ldrb r0, [r4, #0xa] + adds r4, r0, #0 + bics r4, r1 + adds r5, r4, #0 + adds r0, r4, #0 + movs r1, #2 + ands r0, r1 + mov sl, r2 + movs r2, #0x56 + adds r2, r2, r6 + mov sb, r2 + cmp r0, #0 + beq _08013526 + movs r0, #0 + ldrsb r0, [r2, r0] + bl CreateItemTask_Invincibility +_08013526: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08013538 + mov r3, sb + movs r0, #0 + ldrsb r0, [r3, r0] + bl CreateItemTask_Shield_Normal +_08013538: + movs r0, #8 + ands r4, r0 + cmp r4, #0 + beq _0801354A + mov r4, sb + movs r0, #0 + ldrsb r0, [r4, r0] + bl CreateItemTask_Shield_Magnetic +_0801354A: + movs r0, #0x50 + ands r5, r0 + cmp r5, #0 + beq _0801355C + mov r5, sb + movs r0, #0 + ldrsb r0, [r5, r0] + bl CreateItemTask_Confusion +_0801355C: + mov r1, r8 + ldrb r0, [r1, #0xa] + mov r2, sl + strb r0, [r2] + ldrh r1, [r1, #8] + adds r0, r6, #0 + adds r0, #0x54 + strh r1, [r0] + ldr r3, _08013594 @ =0x04000128 + ldr r0, [r3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + mov r4, sb + ldrb r4, [r4] + cmp r0, r4 + beq _08013598 + movs r0, #0xc0 + lsls r0, r0, #3 + ands r0, r1 + lsrs r0, r0, #9 + adds r1, r6, #0 + adds r1, #0x64 + strb r0, [r1] + b _08013644 + .align 2, 0 +_0801358C: .4byte 0x03000066 +_08013590: .4byte 0x03000068 +_08013594: .4byte 0x04000128 +_08013598: + ldr r0, [r3] + lsls r0, r0, #0x1a + adds r4, r6, #0 + adds r4, #0x64 + ldrb r2, [r4] + lsrs r0, r0, #0x1e + cmp r0, r2 + beq _08013644 + ldr r1, _08013674 @ =gMultiplayerPlayerTasks + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r5, r1, r0 + ldr r0, [r3] + lsls r0, r0, #0x1a + ldr r2, _08013678 @ =0x03000064 + adds r1, r1, r2 + lsrs r0, r0, #0x1e + ldrb r1, [r1] + cmp r0, r1 + bne _08013644 + ldr r0, [r3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + strb r0, [r4] + ldr r4, _0801367C @ =gPlayer + ldr r0, [r4, #0x10] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + subs r1, #0x18 + ands r0, r1 + movs r3, #5 + rsbs r3, r3, #0 + mov sl, r3 + ands r0, r3 + adds r1, #0x10 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + ldr r1, _08013680 @ =0xFFFFFBFF + ands r0, r1 + ldr r1, _08013684 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x40 + movs r1, #4 + strb r1, [r0] + movs r0, #0x3c + strh r0, [r4, #0x1c] + ldr r0, [r4, #0x10] + ldr r2, _08013688 @ =0xFFBFFFFF + ands r0, r2 + str r0, [r4, #0x10] + ldr r0, [r6, #0x5c] + mov r3, sl + ands r0, r3 + str r0, [r6, #0x5c] + ldr r0, [r5, #0x5c] + ands r0, r1 + cmp r0, #0 + beq _08013644 + ldr r0, [r4, #0x10] + ands r0, r2 + str r0, [r4, #0x10] + ldr r0, [r5, #0x5c] + ands r0, r3 + str r0, [r5, #0x5c] +_08013644: + ldr r0, _0801368C @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + bne _080136D4 + mov r4, r8 + ldrh r1, [r4, #6] + ldrb r3, [r4, #6] + ldr r2, _08013690 @ =gMultiplayerCharRings + mov r5, sb + ldrb r0, [r5] + adds r0, r0, r2 + lsrs r1, r1, #8 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x6a + strh r3, [r0] + ldrb r0, [r5] + cmp r0, #3 + bne _080136A0 + cmp r3, #8 + bne _08013694 + movs r3, #0xc4 + lsls r3, r3, #1 + b _080136B2 + .align 2, 0 +_08013674: .4byte gMultiplayerPlayerTasks +_08013678: .4byte 0x03000064 +_0801367C: .4byte gPlayer +_08013680: .4byte 0xFFFFFBFF +_08013684: .4byte 0xFFFFFEFF +_08013688: .4byte 0xFFBFFFFF +_0801368C: .4byte gGameMode +_08013690: .4byte gMultiplayerCharRings +_08013694: + cmp r3, #0x12 + bne _080136A0 + ldr r3, _0801369C @ =0x00000189 + b _080136B2 + .align 2, 0 +_0801369C: .4byte 0x00000189 +_080136A0: + ldr r0, _080136D0 @ =gPlayerCharacterIdleAnims + mov r5, sb + ldrb r1, [r5] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_080136B2: + adds r5, r7, #0 + adds r5, #0x20 + adds r0, r6, #0 + adds r0, #0x58 + str r0, [sp, #0x10] + movs r1, #0x22 + adds r1, r1, r7 + mov sl, r1 + adds r2, r6, #0 + adds r2, #0x50 + movs r4, #0x52 + adds r4, r4, r6 + mov ip, r4 + b _0801377A + .align 2, 0 +_080136D0: .4byte gPlayerCharacterIdleAnims +_080136D4: + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0801375C + movs r5, #0 + str r5, [sp, #8] + mov r0, r8 + ldrh r1, [r0, #6] + ldr r3, _08013750 @ =0x000003FF + ands r3, r1 + ldr r0, _08013754 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + mov r2, sb + ldrb r2, [r2] + cmp r0, r2 + beq _08013704 + lsrs r1, r1, #0xc + lsls r1, r1, #0x10 + ldr r0, [r6, #0x5c] + orrs r0, r1 + str r0, [r6, #0x5c] +_08013704: + movs r1, #0 + adds r5, r7, #0 + adds r5, #0x20 + adds r4, r6, #0 + adds r4, #0x58 + str r4, [sp, #0x10] + movs r0, #0x22 + adds r0, r0, r7 + mov sl, r0 + adds r2, r6, #0 + adds r2, #0x50 + movs r4, #0x52 + adds r4, r4, r6 + mov ip, r4 + ldr r4, [r6, #0x5c] +_08013722: + movs r0, #0x80 + lsls r0, r0, #9 + lsls r0, r1 + ands r0, r4 + cmp r0, #0 + beq _08013738 + ldr r0, [sp, #8] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #8] +_08013738: + adds r1, #1 + cmp r1, #2 + bls _08013722 + mov r1, sb + ldrb r0, [r1] + ldr r4, _08013758 @ =gMultiplayerCharRings + adds r0, r0, r4 + mov r1, sp + ldrb r1, [r1, #8] + strb r1, [r0] + b _0801377A + .align 2, 0 +_08013750: .4byte 0x000003FF +_08013754: .4byte 0x04000128 +_08013758: .4byte gMultiplayerCharRings +_0801375C: + mov r2, r8 + ldrh r3, [r2, #6] + adds r5, r7, #0 + adds r5, #0x20 + adds r4, r6, #0 + adds r4, #0x58 + str r4, [sp, #0x10] + movs r0, #0x22 + adds r0, r0, r7 + mov sl, r0 + adds r2, r6, #0 + adds r2, #0x50 + movs r1, #0x52 + adds r1, r1, r6 + mov ip, r1 +_0801377A: + mov r4, r8 + ldrb r0, [r4, #0xb] + movs r1, #7 + mov sb, r1 + mov r4, sb + ands r4, r0 + mov sb, r4 + ldrh r0, [r7, #0xa] + cmp r0, r3 + bne _08013794 + ldrb r0, [r5] + cmp r0, sb + beq _0801379C +_08013794: + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7, #0x28] + str r0, [r7, #0x30] +_0801379C: + adds r0, r6, #0 + adds r0, #0x54 + ldrh r1, [r0] + movs r4, #4 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _080137E4 + ldr r0, [r6, #0x5c] + ands r0, r4 + ldr r4, _08013808 @ =gPlayer + cmp r0, #0 + beq _080137C8 + ldr r0, [r4, #0x10] + ldr r1, _0801380C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r4, #0x10] + ldr r0, [r6, #0x5c] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r6, #0x5c] +_080137C8: + ldr r1, [r4, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080137E4 + ldr r0, [r4, #0x28] + cmp r0, r7 + bne _080137E4 + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r4, #0x10] +_080137E4: + strh r3, [r7, #0xa] + mov r0, sb + strb r0, [r5] + mov r1, r8 + ldrb r0, [r1, #0xb] + lsls r0, r0, #0x18 + asrs r0, r0, #0x1b + ldr r3, [sp, #0x10] + strb r0, [r3] + ldrb r0, [r1, #0xc] + mov r4, sl + strb r0, [r4] + ldrb r0, [r1, #0xd] + lsls r0, r0, #2 + ldr r5, [sp] + strh r0, [r5] + b _08013890 + .align 2, 0 +_08013808: .4byte gPlayer +_0801380C: .4byte 0xFFBFFFFF +_08013810: + adds r2, r6, #0 + adds r2, #0x50 + adds r0, r6, #0 + adds r0, #0x66 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + adds r4, r6, #0 + adds r4, #0x52 + adds r0, r6, #0 + adds r0, #0x68 + ldrh r0, [r0] + lsls r0, r0, #0x10 + asrs r0, r0, #0x18 + ldrh r3, [r4] + adds r0, r0, r3 + strh r0, [r4] + adds r3, r6, #0 + adds r3, #0x61 + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov ip, r4 + cmp r0, #0x1e + bls _08013890 + ldr r1, _08013874 @ =0x0000FFFF + movs r0, #0 + bl TasksDestroyInPriorityRange + ldr r1, _08013878 @ =gBackgroundsCopyQueueCursor + ldr r0, _0801387C @ =gBackgroundsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08013880 @ =gBgSpritesCount + movs r0, #0 + strb r0, [r1] + ldr r1, _08013884 @ =gVramGraphicsCopyCursor + ldr r0, _08013888 @ =gVramGraphicsCopyQueueIndex + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0801388C @ =gGameMode + ldrb r0, [r0] + bl LinkCommunicationError + b _08013DB4 + .align 2, 0 +_08013874: .4byte 0x0000FFFF +_08013878: .4byte gBackgroundsCopyQueueCursor +_0801387C: .4byte gBackgroundsCopyQueueIndex +_08013880: .4byte gBgSpritesCount +_08013884: .4byte gVramGraphicsCopyCursor +_08013888: .4byte gVramGraphicsCopyQueueIndex +_0801388C: .4byte gGameMode +_08013890: + movs r3, #3 + ldr r4, _08013A60 @ =gPlayerCharacterIdleAnims + movs r5, #6 + ldrsh r0, [r4, r5] + ldrh r1, [r7, #0xa] + adds r5, r6, #0 + adds r5, #0x54 + str r5, [sp, #0xc] + ldr r5, _08013A64 @ =gCamera + cmp r0, r1 + ble _080138C4 + mov r8, r4 +_080138A8: + lsls r0, r3, #0x18 + movs r3, #0xff + lsls r3, r3, #0x18 + adds r0, r0, r3 + lsrs r3, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _080138C4 + lsls r0, r0, #1 + add r0, r8 + movs r4, #0 + ldrsh r0, [r0, r4] + cmp r0, r1 + bgt _080138A8 +_080138C4: + ldrh r0, [r2] + ldrh r1, [r5] + subs r0, r0, r1 + strh r0, [r7, #0x16] + mov r1, ip + ldrh r0, [r1] + ldrh r1, [r5, #2] + subs r0, r0, r1 + strh r0, [r7, #0x18] + ldrh r0, [r2] + ldrh r1, [r5] + subs r0, r0, r1 + ldr r2, [sp] + strh r0, [r2, #6] + mov r3, ip + ldrh r0, [r3] + ldrh r1, [r5, #2] + subs r0, r0, r1 + strh r0, [r2, #8] + ldr r4, [sp, #0xc] + ldrh r1, [r4] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08013908 + adds r1, r7, #0 + adds r1, #0x21 + movs r0, #0xff + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7, #0x28] + str r0, [r7, #0x30] +_08013908: + adds r0, r7, #0 + bl UpdateSpriteAnimation + ldr r3, _08013A68 @ =gMultiplayerPlayerTasks + ldr r2, _08013A6C @ =0x04000128 + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r1, r1, r0 + str r1, [sp, #4] + ldr r0, _08013A70 @ =gGameMode + ldrb r0, [r0] + cmp r0, #3 + beq _08013934 + cmp r0, #5 + bne _080139C6 +_08013934: + ldr r1, _08013A74 @ =gMultiplayerRanks + ldr r0, [r2] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080139C6 + movs r5, #1 + mov sl, r5 + movs r4, #0 + ldr r0, [r3] + cmp r0, #0 + beq _080139B8 + ldr r0, _08013A78 @ =gMultiplayerConnections + ldrb r0, [r0] + mov ip, r0 + movs r0, #0x10 + mov sb, r0 + mov r8, r2 + adds r5, r3, #0 +_08013964: + ldr r0, [r5] + ldrh r0, [r0, #6] + str r0, [sp, #0x14] + mov r2, sb + lsls r2, r4 + mov r1, ip + ands r2, r1 + adds r0, r4, #4 + asrs r2, r0 + mov r3, r8 + ldr r0, [r3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + mov r1, sb + lsls r1, r0 + mov r0, ip + ands r1, r0 + ldr r0, [r3] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, #4 + asrs r1, r0 + cmp r2, r1 + bne _080139AA + ldr r1, [sp, #0x14] + ldr r2, _08013A7C @ =0x03000054 + adds r0, r1, r2 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080139AA + movs r3, #0 + mov sl, r3 +_080139AA: + adds r5, #4 + adds r4, #1 + cmp r4, #3 + bhi _080139B8 + ldr r0, [r5] + cmp r0, #0 + bne _08013964 +_080139B8: + mov r4, sl + cmp r4, #0 + beq _080139C6 + bl CreateRoomEvent + movs r1, #7 + strb r1, [r0] +_080139C6: + ldr r0, _08013A80 @ =gStageFlags + ldrh r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + ldr r4, _08013A84 @ =gPlayer + cmp r0, #0 + bne _08013ACC + ldr r5, [sp, #0xc] + ldrh r1, [r5] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08013ACC + ldr r0, [sp, #4] + adds r0, #0x57 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08013ACC + adds r0, r4, #0 + adds r0, #0x26 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08013A02 + b _08013B10 +_08013A02: + adds r0, r6, #0 + adds r0, #0x57 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08013ACC + ldr r1, [sp, #4] + ldr r0, [r1, #0x5c] + ands r0, r3 + cmp r0, #0 + bne _08013ACC + movs r3, #0x1c + ldrsh r0, [r4, r3] + cmp r0, #0 + bne _08013ACC + ldr r0, [r4, #0x10] + ands r0, r2 + cmp r0, #0 + bne _08013ACC + ldr r0, _08013A70 @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + beq _08013AAE + adds r0, r6, #0 + adds r0, #0x56 + ldrb r1, [r0] + ldr r0, _08013A6C @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r1, r0 + bne _08013A46 + b _08013BD4 +_08013A46: + ldr r0, _08013A88 @ =gMultiplayerCharacters + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + beq _08013A9C + cmp r0, #1 + bgt _08013A8C + cmp r0, #0 + beq _08013A96 + b _08013BD4 + .align 2, 0 +_08013A60: .4byte gPlayerCharacterIdleAnims +_08013A64: .4byte gCamera +_08013A68: .4byte gMultiplayerPlayerTasks +_08013A6C: .4byte 0x04000128 +_08013A70: .4byte gGameMode +_08013A74: .4byte gMultiplayerRanks +_08013A78: .4byte gMultiplayerConnections +_08013A7C: .4byte 0x03000054 +_08013A80: .4byte gStageFlags +_08013A84: .4byte gPlayer +_08013A88: .4byte gMultiplayerCharacters +_08013A8C: + cmp r0, #2 + beq _08013AA2 + cmp r0, #3 + beq _08013AA8 + b _08013BD4 +_08013A96: + bl sa2__sub_8016D20 + b _08013BD4 +_08013A9C: + bl sa2__sub_801707C + b _08013BD4 +_08013AA2: + bl sa2__sub_8017670 + b _08013BD4 +_08013AA8: + bl sa2__sub_8017C28 + b _08013BD4 +_08013AAE: + adds r1, r6, #0 + adds r1, #0x56 + ldr r0, _08013AC8 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + ldrb r1, [r1] + lsrs r0, r0, #0x1e + cmp r1, r0 + bne _08013AC2 + b _08013BD4 +_08013AC2: + bl sa2__sub_8018120 + b _08013BD4 + .align 2, 0 +_08013AC8: .4byte 0x04000128 +_08013ACC: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08013B10 + adds r0, r6, #0 + adds r0, #0x57 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08013B10 + movs r5, #0x1c + ldrsh r0, [r4, r5] + cmp r0, #0 + bne _08013B10 + ldr r0, [r4, #0x10] + ands r0, r2 + cmp r0, #0 + bne _08013B10 + ldr r1, _08013B98 @ =gMultiplayerRanks + adds r0, r6, #0 + adds r0, #0x56 + ldrb r0, [r0] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08013BD4 +_08013B10: + ldr r0, _08013B9C @ =gGameMode + ldrb r0, [r0] + cmp r0, #6 + beq _08013BB0 + adds r4, r6, #0 + adds r4, #0x56 + ldrb r1, [r4] + ldr r0, _08013BA0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + cmp r1, r0 + beq _08013B76 + ldr r0, _08013BA4 @ =gMultiplayerCharacters + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bgt _08013B76 + cmp r0, #1 + blt _08013B76 + ldr r1, [r6, #0x5c] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08013B76 + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r6, #0x5c] + ldr r2, _08013BA8 @ =gPlayer + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08013B66 + ldr r0, [r2, #0x10] + ldr r1, _08013BAC @ =0xFFBFFFFF + ands r0, r1 + str r0, [r2, #0x10] +_08013B66: + bl CreateRoomEvent + movs r2, #0 + movs r1, #8 + strb r1, [r0] + ldrb r1, [r4] + strb r1, [r0, #1] + strb r2, [r0, #2] +_08013B76: + ldr r2, _08013BA8 @ =gPlayer + ldr r1, [r2, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08013BD4 + ldr r0, [r2, #0x28] + cmp r0, r7 + bne _08013BD4 + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r2, #0x10] + b _08013BCC + .align 2, 0 +_08013B98: .4byte gMultiplayerRanks +_08013B9C: .4byte gGameMode +_08013BA0: .4byte 0x04000128 +_08013BA4: .4byte gMultiplayerCharacters +_08013BA8: .4byte gPlayer +_08013BAC: .4byte 0xFFBFFFFF +_08013BB0: + ldr r1, [r4, #0x10] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08013BD4 + ldr r0, [r4, #0x28] + cmp r0, r7 + bne _08013BD4 + movs r0, #9 + rsbs r0, r0, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + str r1, [r4, #0x10] +_08013BCC: + adds r1, r6, #0 + adds r1, #0x60 + movs r0, #0x1e + strb r0, [r1] +_08013BD4: + ldr r0, [sp, #0xc] + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08013C42 + ldr r0, [r7, #0x10] + movs r1, #0x20 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r7, #0x10] + ldr r2, _08013C18 @ =gOamMatrixIndex + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x20 + orrs r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, [r7, #0x10] + orrs r0, r1 + str r0, [r7, #0x10] + ldr r2, [sp, #0xc] + ldrh r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08013C1C + movs r0, #0xff + lsls r0, r0, #8 + ldr r3, [sp] + strh r0, [r3, #2] + b _08013C24 + .align 2, 0 +_08013C18: .4byte gOamMatrixIndex +_08013C1C: + movs r0, #0x80 + lsls r0, r0, #1 + ldr r4, [sp] + strh r0, [r4, #2] +_08013C24: + ldr r5, [sp, #0xc] + ldrh r1, [r5] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08013C38 + ldr r1, [sp] + ldrh r0, [r1, #2] + rsbs r0, r0, #0 + strh r0, [r1, #2] +_08013C38: + adds r0, r7, #0 + ldr r1, [sp] + bl TransformSprite + b _08013C88 +_08013C42: + ldr r2, [r7, #0x10] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r2, r0 + str r2, [r7, #0x10] + ldr r3, [sp, #0xc] + ldrh r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08013C60 + movs r0, #0x80 + lsls r0, r0, #3 + orrs r2, r0 + b _08013C64 +_08013C60: + ldr r0, _08013C7C @ =0xFFFFFBFF + ands r2, r0 +_08013C64: + str r2, [r7, #0x10] + ldr r4, [sp, #0xc] + ldrh r1, [r4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08013C80 + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #4 + orrs r0, r1 + b _08013C86 + .align 2, 0 +_08013C7C: .4byte 0xFFFFFBFF +_08013C80: + ldr r0, [r7, #0x10] + ldr r1, _08013DC4 @ =0xFFFFF7FF + ands r0, r1 +_08013C86: + str r0, [r7, #0x10] +_08013C88: + ldr r1, [r7, #0x10] + ldr r0, _08013DC8 @ =0xFFFFCFFF + ands r1, r0 + str r1, [r7, #0x10] + ldr r5, [sp, #0xc] + ldrh r2, [r5] + movs r0, #0x30 + ands r0, r2 + lsls r0, r0, #8 + orrs r1, r0 + str r1, [r7, #0x10] + ldrh r3, [r5] + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + beq _08013CAA + b _08013DB4 +_08013CAA: + ldr r0, _08013DCC @ =gStageTime + ldr r0, [r0] + movs r4, #2 + ands r0, r4 + movs r1, #0x57 + adds r1, r1, r6 + mov sl, r1 + cmp r0, #0 + bne _08013CFE + ldrb r1, [r1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08013CFE + ldr r2, [r6, #0x5c] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _08013CFE + ldr r1, _08013DD0 @ =gMultiplayerRanks + adds r0, r6, #0 + adds r0, #0x56 + ldrb r0, [r0] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08013CFE + adds r0, r6, #0 + adds r0, #0x60 + ldrb r0, [r0] + cmp r0, #0 + bne _08013DB4 + movs r0, #4 + ands r0, r3 + cmp r0, #0 + bne _08013DB4 + ands r2, r4 + cmp r2, #0 + bne _08013DB4 +_08013CFE: + ldr r2, [sp, #0xc] + ldrh r1, [r2] + movs r0, #0x80 + ands r0, r1 + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + cmp r0, #0 + beq _08013D16 + movs r4, #0x88 + lsls r4, r4, #3 + adds r1, r4, #0 +_08013D16: + strh r1, [r7, #0x1a] + ldr r0, [r7, #0x10] + ldr r1, _08013DD4 @ =0xFFFFFE7F + ands r0, r1 + str r0, [r7, #0x10] + mov r5, sl + ldrb r1, [r5] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08013DAE + ldr r0, _08013DD8 @ =gGameMode + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #3 + beq _08013D3A + cmp r1, #5 + bne _08013D6A +_08013D3A: + ldr r0, _08013DDC @ =gMultiplayerConnections + ldrb r3, [r0] + adds r0, r6, #0 + adds r0, #0x56 + ldrb r0, [r0] + movs r2, #0x10 + adds r1, r2, #0 + lsls r1, r0 + ands r1, r3 + adds r0, #4 + asrs r1, r0 + ldr r4, _08013DE0 @ =0x04000128 + ldr r0, [r4] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r2, r0 + ands r3, r2 + ldr r0, [r4] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, #4 + asrs r3, r0 + cmp r1, r3 + bne _08013D74 +_08013D6A: + ldrb r0, [r5] + cmp r0, #3 + beq _08013DAE + cmp r0, #5 + beq _08013DAE +_08013D74: + adds r0, r6, #0 + adds r0, #0x60 + ldrb r0, [r0] + cmp r0, #0 + bne _08013DAE + adds r1, r6, #0 + adds r1, #0x56 + ldr r0, _08013DE0 @ =0x04000128 + ldr r0, [r0] + lsls r0, r0, #0x1a + ldrb r1, [r1] + lsrs r0, r0, #0x1e + cmp r1, r0 + beq _08013DAE + ldr r0, [r7, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r7, #0x10] + ldr r2, _08013DE4 @ =gDispCnt + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08013DE8 @ =gWinRegs + ldr r0, _08013DEC @ =0x0000083F + strh r0, [r1, #0xa] +_08013DAE: + adds r0, r7, #0 + bl DisplaySprite +_08013DB4: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08013DC4: .4byte 0xFFFFF7FF +_08013DC8: .4byte 0xFFFFCFFF +_08013DCC: .4byte gStageTime +_08013DD0: .4byte gMultiplayerRanks +_08013DD4: .4byte 0xFFFFFE7F +_08013DD8: .4byte gGameMode +_08013DDC: .4byte gMultiplayerConnections +_08013DE0: .4byte 0x04000128 +_08013DE4: .4byte gDispCnt +_08013DE8: .4byte gWinRegs +_08013DEC: .4byte 0x0000083F + +.syntax divided diff --git a/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc b/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc new file mode 100644 index 0000000000..66a530319b --- /dev/null +++ b/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc @@ -0,0 +1,757 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r2, _080147EC @ =gPlayer + ldr r0, [r2, #0x64] + adds r0, #0xc + mov r8, r0 + ldr r0, _080147F0 @ =gCurTask + ldr r0, [r0] + ldrh r1, [r0, #6] + movs r0, #0xc0 + lsls r0, r0, #0x12 + adds r7, r1, r0 + mov sb, r7 + ldr r1, [r2, #0x10] + lsrs r0, r1, #5 + str r0, [sp, #0x14] + movs r0, #1 + ldr r3, [sp, #0x14] + ands r3, r0 + str r3, [sp, #0x14] + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0801477E + ldr r0, [r2, #0x28] + cmp r0, r7 + bne _0801477E + bl sa2__sub_8017F34 +_0801477E: + ldr r0, _080147F4 @ =gGameMode + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #3 + beq _0801478C + cmp r1, #5 + bne _080147BC +_0801478C: + ldr r0, _080147F8 @ =gMultiplayerConnections + ldrb r3, [r0] + adds r0, r7, #0 + adds r0, #0x56 + ldrb r0, [r0] + movs r2, #0x10 + adds r1, r2, #0 + lsls r1, r0 + ands r1, r3 + adds r0, #4 + asrs r1, r0 + ldr r4, _080147FC @ =0x04000128 + ldr r0, [r4] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + lsls r2, r0 + ands r3, r2 + ldr r0, [r4] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1e + adds r0, #4 + asrs r3, r0 + cmp r1, r3 + bne _080147C6 +_080147BC: + ldrb r0, [r5] + cmp r0, #3 + beq _08014800 + cmp r0, #5 + beq _08014800 +_080147C6: + bl sa2__sub_8018300 + cmp r0, #0 + bne _080147D0 + b _08014CFC +_080147D0: + ldr r0, [r7, #0x4c] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080147DC + b _08014CFC +_080147DC: + ldr r2, _080147EC @ =gPlayer + ldr r0, [r2, #0x10] + subs r1, #0x41 + ands r0, r1 + str r0, [r2, #0x10] + movs r0, #0 + str r0, [r7, #0x4c] + b _08014CFC + .align 2, 0 +_080147EC: .4byte gPlayer +_080147F0: .4byte gCurTask +_080147F4: .4byte gGameMode +_080147F8: .4byte gMultiplayerConnections +_080147FC: .4byte 0x04000128 +_08014800: + ldr r6, _08014870 @ =gPlayer + adds r0, r6, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08014820 + adds r0, r6, #0 + adds r0, #0x59 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08014820 + b _08014CFC +_08014820: + adds r1, r7, #0 + adds r1, #0x60 + ldrb r2, [r1] + str r1, [sp, #0x20] + cmp r2, #0 + beq _08014838 + ldr r5, [r7, #0x5c] + movs r0, #4 + ands r5, r0 + cmp r5, #0 + bne _08014838 + b _08014C98 +_08014838: + movs r5, #0 + strb r5, [r1] + ldr r0, _08014874 @ =0xFFFFFEFC + adds r4, r0, #0 + mov r1, sb + ldrh r1, [r1, #0xa] + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _0801489C + bl sa2__sub_80181E0 + cmp r0, #0 + beq _08014878 + ldr r0, [r7, #0x4c] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08014862 + b _08014CFC +_08014862: + ldr r0, [r6, #0x10] + subs r1, #0x41 + ands r0, r1 + str r0, [r6, #0x10] + str r5, [r7, #0x4c] + b _08014CFC + .align 2, 0 +_08014870: .4byte gPlayer +_08014874: .4byte 0xFFFFFEFC +_08014878: + mov r2, sb + ldrh r2, [r2, #0xa] + adds r0, r4, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bls _0801489C + mov r3, r8 + ldr r0, [r3, #0x30] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0801489C + mov r4, sb + ldr r0, [r4, #0x30] + cmp r0, r1 + beq _0801489C + b _08014CFC +_0801489C: + ldr r0, _080149A8 @ =gPlayer + mov sl, r0 + ldrb r4, [r0, #0xe] + rsbs r0, r4, #0 + add r1, sp, #0x10 + strb r0, [r1] + mov r2, sl + ldrb r3, [r2, #0xf] + rsbs r2, r3, #0 + mov r0, sp + adds r0, #0x11 + strb r2, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r3, [r0] + add r0, sp, #0xc + movs r2, #4 + bl memcpy + movs r3, #0x50 + adds r3, r3, r7 + mov r8, r3 + movs r4, #0 + ldrsh r1, [r3, r4] + adds r6, r7, #0 + adds r6, #0x52 + movs r0, #0 + ldrsh r2, [r6, r0] + adds r0, r7, #0 + adds r0, #0x66 + movs r4, #0 + ldrsh r3, [r0, r4] + adds r0, #2 + movs r4, #0 + ldrsh r0, [r0, r4] + str r0, [sp] + adds r5, r7, #0 + adds r5, #0x54 + ldrh r0, [r5] + lsrs r0, r0, #7 + movs r4, #1 + ands r0, r4 + str r0, [sp, #4] + str r4, [sp, #8] + mov r0, sb + bl sa2__sub_800D0A0 + adds r2, r0, #0 + ldr r0, [r7, #0x4c] + movs r1, #0x20 + ands r0, r1 + mov r3, r8 + str r3, [sp, #0x18] + str r6, [sp, #0x1c] + mov r8, r5 + cmp r0, #0 + beq _08014922 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08014922 + mov r4, sl + ldr r0, [r4, #0x10] + subs r1, #0x41 + ands r0, r1 + str r0, [r4, #0x10] +_08014922: + str r2, [r7, #0x4c] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r0, r2 + cmp r0, #0 + beq _08014934 + movs r0, #0x1e + ldr r1, [sp, #0x20] + strb r0, [r1] +_08014934: + ldr r2, [sp, #0x18] + movs r3, #0 + ldrsh r1, [r2, r3] + ldr r4, [sp, #0x1c] + movs r0, #0 + ldrsh r2, [r4, r0] + ldr r5, _080149A8 @ =gPlayer + add r3, sp, #0xc + str r3, [sp] + mov r0, sb + adds r3, r5, #0 + bl Coll_Player_Entity_RectIntersection + cmp r0, #0 + bne _08014954 + b _08014A6A +_08014954: + mov r4, r8 + ldrh r0, [r4] + lsls r2, r0, #0x10 + lsrs r0, r2, #0x17 + movs r4, #1 + ands r0, r4 + adds r1, r5, #0 + adds r1, #0x27 + ldrb r1, [r1] + cmp r0, r1 + beq _0801496C + b _08014A6A +_0801496C: + ldr r1, _080149AC @ =0xFFFFFEFC + adds r0, r1, #0 + mov r3, sb + ldrh r3, [r3, #0xa] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #2 + bhi _08014A6A + ldr r0, _080149B0 @ =gStageFlags + ldrh r3, [r0] + lsrs r1, r3, #7 + ands r1, r4 + lsrs r2, r2, #0x13 + adds r0, r4, #0 + bics r0, r2 + cmp r1, r0 + beq _08014A6A + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _080149B4 + ldr r0, [r5, #4] + asrs r0, r0, #8 + ldr r4, [sp, #0x1c] + movs r2, #0 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _080149C2 + b _08014A6A + .align 2, 0 +_080149A8: .4byte gPlayer +_080149AC: .4byte 0xFFFFFEFC +_080149B0: .4byte gStageFlags +_080149B4: + ldr r0, [r5, #4] + asrs r0, r0, #8 + ldr r3, [sp, #0x1c] + movs r4, #0 + ldrsh r1, [r3, r4] + cmp r0, r1 + bge _08014A6A +_080149C2: + ldr r4, _08014A10 @ =gPlayer + ldr r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xe + bl Player_HandleSpriteYOffsetChange + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #0xe + strb r0, [r4, #0xf] + adds r2, r4, #0 + movs r1, #0 + movs r0, #0 + strh r0, [r2, #0xc] + strh r0, [r2, #8] + adds r0, r2, #0 + adds r0, #0x40 + strb r1, [r0] + subs r0, #3 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + mov r1, sb + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08014A14 + ldr r0, [r2, #0x10] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x10] + b _08014A1C + .align 2, 0 +_08014A10: .4byte gPlayer +_08014A14: + ldr r0, [r4, #0x10] + movs r1, #1 + orrs r0, r1 + str r0, [r4, #0x10] +_08014A1C: + ldr r0, [r7, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08014A62 + bl CreateRoomEvent + movs r1, #8 + strb r1, [r0] + adds r1, r7, #0 + adds r1, #0x56 + ldrb r1, [r1] + strb r1, [r0, #1] + movs r1, #1 + strb r1, [r0, #2] + ldr r0, _08014A50 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08014A58 + ldr r0, [r7, #0x5c] + ldr r1, _08014A54 @ =0xFFFFFEFF + ands r0, r1 + b _08014A60 + .align 2, 0 +_08014A50: .4byte gStageFlags +_08014A54: .4byte 0xFFFFFEFF +_08014A58: + ldr r0, [r7, #0x5c] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 +_08014A60: + str r0, [r7, #0x5c] +_08014A62: + ldr r0, [r7, #0x5c] + movs r1, #4 + orrs r0, r1 + str r0, [r7, #0x5c] +_08014A6A: + ldr r0, [r7, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08014A76 + b _08014CFC +_08014A76: + ldr r6, _08014A98 @ =gPlayer + adds r0, r6, #0 + bl Player_TryJump + cmp r0, #0 + beq _08014AA0 + movs r0, #0x1e + ldr r2, [sp, #0x20] + strb r0, [r2] + ldr r0, [r6, #0x10] + ldr r1, _08014A9C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r6, #0x10] + ldr r0, [r7, #0x5c] + movs r1, #5 + rsbs r1, r1, #0 + b _08014C7C + .align 2, 0 +_08014A98: .4byte gPlayer +_08014A9C: .4byte 0xFFBFFFFF +_08014AA0: + ldr r3, _08014B3C @ =0xFFFFFEFC + adds r0, r3, #0 + mov r4, sb + ldrh r4, [r4, #0xa] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r5, _08014B40 @ =gStageFlags + cmp r0, #2 + bhi _08014AF4 + ldr r0, [r6] + asrs r1, r0, #8 + ldr r2, _08014B44 @ =gCamera + movs r3, #0x18 + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _08014AF4 + movs r4, #0x1a + ldrsh r0, [r2, r4] + cmp r1, r0 + bge _08014AF4 + ldrh r4, [r5] + lsrs r0, r4, #7 + movs r3, #1 + adds r2, r3, #0 + bics r2, r0 + mov r1, r8 + ldrh r0, [r1] + lsrs r0, r0, #3 + adds r1, r3, #0 + bics r1, r0 + cmp r2, r1 + bne _08014AF4 + ldr r1, [r7, #0x5c] + lsrs r1, r1, #8 + adds r0, r3, #0 + bics r0, r1 + cmp r0, r2 + bne _08014AF4 + ldr r2, [sp, #0x14] + cmp r2, #0 + beq _08014B50 +_08014AF4: + ldr r2, _08014B48 @ =gPlayer + ldr r0, [r2, #0x10] + ldr r1, _08014B4C @ =0xFFBFFFFF + ands r0, r1 + str r0, [r2, #0x10] + ldr r0, [r7, #0x5c] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r7, #0x5c] + adds r2, #0x40 + movs r0, #0 + strb r0, [r2] + ldrh r0, [r5] + lsrs r0, r0, #7 + movs r3, #1 + adds r2, r3, #0 + bics r2, r0 + mov r4, r8 + ldrh r1, [r4] + lsrs r1, r1, #3 + adds r0, r3, #0 + bics r0, r1 + cmp r2, r0 + bne _08014B34 + ldr r1, [r7, #0x5c] + lsrs r1, r1, #8 + adds r0, r3, #0 + bics r0, r1 + cmp r0, r2 + bne _08014B34 + b _08014CFC +_08014B34: + movs r0, #0x1e + ldr r1, [sp, #0x20] + strb r0, [r1] + b _08014CFC + .align 2, 0 +_08014B3C: .4byte 0xFFFFFEFC +_08014B40: .4byte gStageFlags +_08014B44: .4byte gCamera +_08014B48: .4byte gPlayer +_08014B4C: .4byte 0xFFBFFFFF +_08014B50: + movs r2, #0xf + ldrsb r2, [r6, r2] + movs r0, #0x80 + ands r0, r4 + ldr r3, [sp, #0x18] + movs r4, #0 + ldrsh r1, [r3, r4] + lsls r1, r1, #8 + mov r8, r1 + cmp r0, #0 + bne _08014BAC + ldr r1, [sp, #0x1c] + movs r3, #0 + ldrsh r0, [r1, r3] + mov r1, sb + adds r1, #0x2d + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + add r1, sp, #0xc + ldrb r1, [r1, #3] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r0, r0, r1 + lsls r5, r0, #8 + subs r0, r0, r2 + mov r4, r8 + asrs r1, r4, #8 + adds r2, r6, #0 + adds r2, #0x27 + ldrb r2, [r2] + movs r3, #8 + rsbs r3, r3, #0 + ldr r4, _08014BA8 @ =sa2__sub_801EC3C + str r4, [sp] + bl sa2__sub_801F100 + cmp r0, #0 + bge _08014BFC + lsls r0, r0, #8 + subs r5, r5, r0 + b _08014BE8 + .align 2, 0 +_08014BA8: .4byte sa2__sub_801EC3C +_08014BAC: + ldr r1, [sp, #0x1c] + movs r3, #0 + ldrsh r0, [r1, r3] + mov r1, sb + adds r1, #0x2f + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + add r1, sp, #0xc + ldrb r1, [r1, #3] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + lsls r5, r0, #8 + adds r0, r0, r2 + mov r4, r8 + asrs r1, r4, #8 + adds r2, r6, #0 + adds r2, #0x27 + ldrb r2, [r2] + ldr r3, _08014C3C @ =sa2__sub_801EC3C + str r3, [sp] + movs r3, #8 + bl sa2__sub_801F100 + cmp r0, #0 + bge _08014BFC + lsls r0, r0, #8 + adds r5, r5, r0 +_08014BE8: + ldr r0, [r6, #0x10] + ldr r1, _08014C40 @ =0xFFBFFFFF + ands r0, r1 + movs r1, #2 + orrs r0, r1 + str r0, [r6, #0x10] + ldr r0, [r7, #0x5c] + subs r1, #7 + ands r0, r1 + str r0, [r7, #0x5c] +_08014BFC: + ldr r3, _08014C44 @ =gPlayer + mov r0, r8 + str r0, [r3] + str r5, [r3, #4] + ldr r0, [r7, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08014C58 + ldr r2, [r3, #0x10] + movs r0, #8 + orrs r2, r0 + subs r0, #0xd + ands r2, r0 + adds r0, #2 + ands r2, r0 + str r2, [r3, #0x10] + mov r1, sb + str r1, [r3, #0x28] + movs r0, #0 + strh r0, [r3, #0xa] + ldr r0, [r1, #0x10] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08014C48 + movs r0, #2 + rsbs r0, r0, #0 + ands r2, r0 + b _08014C4C + .align 2, 0 +_08014C3C: .4byte sa2__sub_801EC3C +_08014C40: .4byte 0xFFBFFFFF +_08014C44: .4byte gPlayer +_08014C48: + movs r0, #1 + orrs r2, r0 +_08014C4C: + str r2, [r3, #0x10] + ldr r0, [r7, #0x5c] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _08014C6C +_08014C58: + bl CreateRoomEvent + movs r2, #0 + movs r1, #8 + strb r1, [r0] + adds r1, r7, #0 + adds r1, #0x56 + ldrb r1, [r1] + strb r1, [r0, #1] + strb r2, [r0, #2] +_08014C6C: + ldr r0, _08014C84 @ =gStageFlags + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08014C8C + ldr r0, [r7, #0x5c] + ldr r1, _08014C88 @ =0xFFFFFEFF +_08014C7C: + ands r0, r1 + str r0, [r7, #0x5c] + b _08014CFC + .align 2, 0 +_08014C84: .4byte gStageFlags +_08014C88: .4byte 0xFFFFFEFF +_08014C8C: + ldr r0, [r7, #0x5c] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r7, #0x5c] + b _08014CFC +_08014C98: + subs r0, r2, #1 + strb r0, [r1] + ldr r0, [r6, #0x10] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08014CFC + ldr r0, [r6, #0x28] + cmp r0, sb + bne _08014CFC + adds r0, r7, #0 + adds r0, #0x50 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, #2 + movs r3, #0 + ldrsh r2, [r0, r3] + adds r0, #0x14 + movs r4, #0 + ldrsh r3, [r0, r4] + adds r0, #2 + movs r4, #0 + ldrsh r0, [r0, r4] + str r0, [sp] + adds r0, r7, #0 + adds r0, #0x54 + ldrh r0, [r0] + lsrs r0, r0, #7 + movs r4, #1 + ands r0, r4 + str r0, [sp, #4] + str r5, [sp, #8] + mov r0, sb + bl sa2__sub_800D0A0 + adds r2, r0, #0 + ldr r0, [r7, #0x4c] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08014CFA + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08014CFA + ldr r0, [r6, #0x10] + subs r1, #0x41 + ands r0, r1 + str r0, [r6, #0x10] +_08014CFA: + str r2, [r7, #0x4c] +_08014CFC: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/include/core.h b/include/core.h index 1aba6e3ff4..1c1f11d8fa 100644 --- a/include/core.h +++ b/include/core.h @@ -319,13 +319,13 @@ extern Background *gBackgroundsCopyQueue[16]; // This is used to buffer the xy-shift for each background scanline extern void *gBgOffsetsHBlankPrimary; -extern u16 SA2_LABEL(gUnknown_030017F0); +extern u16 gSpriteTransformScaleX; extern Vec2_16 gSpriteOffset; extern u8 gOamMallocOrders_StartIndex[32]; extern IntrFunc gVBlankCallbacks[4]; extern u8 gOamFreeIndex; -extern u16 SA2_LABEL(gUnknown_03001944); +extern u16 gSpriteTransformRotation; extern u8 gNumVBlankIntrs; extern s16 SA2_LABEL(gUnknown_0300194C); @@ -404,7 +404,7 @@ extern u16 SA2_LABEL(gUnknown_03004D58); extern u8 gVramGraphicsCopyCursor; extern u8 gOamMallocOrders_EndIndex[0x20]; extern u8 gBgSpritesCount; -extern u16 SA2_LABEL(gUnknown_03005394); +extern u16 gSpriteTransformScaleY; extern u16 SA2_LABEL(gUnknown_03005398); extern IntrFunc gVBlankIntrs[4]; extern s32 gPseudoRandom; diff --git a/sa1/asm/non_matching/engine/UnusedTransform.inc b/sa1/asm/non_matching/engine/UnusedTransform.inc index 1d64d00823..bac8a0c3ab 100644 --- a/sa1/asm/non_matching/engine/UnusedTransform.inc +++ b/sa1/asm/non_matching/engine/UnusedTransform.inc @@ -29,7 +29,7 @@ _08003A48: subs r2, #0x18 str r2, [sp, #0x28] ldrh r0, [r7] - ldr r3, _08003CCC @ =sa2__gUnknown_03001944 + ldr r3, _08003CCC @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 ldr r2, _08003CD0 @ =0x000003FF @@ -49,7 +49,7 @@ _08003A48: add r3, sp mov r8, r3 ldrh r0, [r7] - ldr r5, _08003CCC @ =sa2__gUnknown_03001944 + ldr r5, _08003CCC @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -62,7 +62,7 @@ _08003A48: add r6, sp, #0xc movs r0, #2 ldrsh r1, [r7, r0] - ldr r2, _08003CD8 @ =sa2__gUnknown_030017F0 + ldr r2, _08003CD8 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -72,7 +72,7 @@ _08003A48: mov sl, r3 movs r5, #4 ldrsh r1, [r7, r5] - ldr r2, _08003CDC @ =sa2__gUnknown_03005394 + ldr r2, _08003CDC @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -146,7 +146,7 @@ _08003A48: movs r2, #2 ldrsh r0, [r7, r2] rsbs r0, r0, #0 - ldr r3, _08003CD8 @ =sa2__gUnknown_030017F0 + ldr r3, _08003CD8 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 @@ -154,7 +154,7 @@ _08003A48: _08003B60: movs r4, #4 ldrsh r0, [r7, r4] - ldr r5, _08003CDC @ =sa2__gUnknown_03005394 + ldr r5, _08003CDC @ =gSpriteTransformScaleY ldrh r3, [r5] ldrh r2, [r7, #4] mov r1, sp @@ -168,7 +168,7 @@ _08003B60: asrs r0, r0, #8 mov r5, sl strh r0, [r5] - ldr r0, _08003CDC @ =sa2__gUnknown_03005394 + ldr r0, _08003CDC @ =gSpriteTransformScaleY ldrh r3, [r0] _08003B84: mov r2, sp @@ -224,7 +224,7 @@ _08003B84: asrs r0, r0, #8 strh r0, [r6] add r5, sp, #0x18 - ldr r1, _08003CCC @ =sa2__gUnknown_03001944 + ldr r1, _08003CCC @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 @@ -235,14 +235,14 @@ _08003B84: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08003CD8 @ =sa2__gUnknown_030017F0 + ldr r6, _08003CD8 @ =gSpriteTransformScaleX ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r5] mov r2, sp adds r2, #0x1a - ldr r1, _08003CCC @ =sa2__gUnknown_03001944 + ldr r1, _08003CCC @ =gSpriteTransformRotation ldrh r0, [r1] lsls r0, r0, #1 adds r0, r0, r4 @@ -255,7 +255,7 @@ _08003B84: asrs r0, r0, #8 strh r0, [r2] add r4, sp, #0x1c - ldr r6, _08003CCC @ =sa2__gUnknown_03001944 + ldr r6, _08003CCC @ =gSpriteTransformRotation ldrh r0, [r6] lsls r0, r0, #1 ldr r1, _08003CD4 @ =gSineTable @@ -277,7 +277,7 @@ _08003B84: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08003CDC @ =sa2__gUnknown_03005394 + ldr r6, _08003CDC @ =gSpriteTransformScaleY ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 @@ -334,11 +334,11 @@ _08003B84: b _08003CF6 .align 2, 0 _08003CC8: .4byte gOamBuffer+0x6 -_08003CCC: .4byte sa2__gUnknown_03001944 +_08003CCC: .4byte gSpriteTransformRotation _08003CD0: .4byte 0x000003FF _08003CD4: .4byte gSineTable -_08003CD8: .4byte sa2__gUnknown_030017F0 -_08003CDC: .4byte sa2__gUnknown_03005394 +_08003CD8: .4byte gSpriteTransformScaleX +_08003CDC: .4byte gSpriteTransformScaleY _08003CE0: .4byte sa2__gUnknown_0300194C _08003CE4: .4byte sa2__gUnknown_03002820 _08003CE8: diff --git a/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc b/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc index 2fe83c7739..994d62d461 100644 --- a/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc +++ b/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc @@ -29,7 +29,7 @@ _08003DA0: subs r2, #0x18 str r2, [sp, #0x28] ldrh r0, [r6] - ldr r3, _0800409C @ =sa2__gUnknown_03001944 + ldr r3, _0800409C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 ldr r2, _080040A0 @ =0x000003FF @@ -49,7 +49,7 @@ _08003DA0: add r3, sp mov r8, r3 ldrh r0, [r6] - ldr r5, _0800409C @ =sa2__gUnknown_03001944 + ldr r5, _0800409C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -62,7 +62,7 @@ _08003DA0: add r7, sp, #0xc movs r0, #2 ldrsh r1, [r6, r0] - ldr r2, _080040A8 @ =sa2__gUnknown_030017F0 + ldr r2, _080040A8 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -72,7 +72,7 @@ _08003DA0: mov sl, r3 movs r5, #4 ldrsh r1, [r6, r5] - ldr r2, _080040AC @ =sa2__gUnknown_03005394 + ldr r2, _080040AC @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -146,7 +146,7 @@ _08003DA0: movs r2, #2 ldrsh r0, [r6, r2] rsbs r0, r0, #0 - ldr r3, _080040A8 @ =sa2__gUnknown_030017F0 + ldr r3, _080040A8 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 @@ -154,7 +154,7 @@ _08003DA0: _08003EB8: movs r4, #4 ldrsh r0, [r6, r4] - ldr r5, _080040AC @ =sa2__gUnknown_03005394 + ldr r5, _080040AC @ =gSpriteTransformScaleY ldrh r4, [r5] ldrh r2, [r6, #4] mov r1, sp @@ -224,7 +224,7 @@ _08003EDA: strh r0, [r3] add r0, sp, #0x18 mov r8, r0 - ldr r1, _0800409C @ =sa2__gUnknown_03001944 + ldr r1, _0800409C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 @@ -235,7 +235,7 @@ _08003EDA: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r5, _080040A8 @ =sa2__gUnknown_030017F0 + ldr r5, _080040A8 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 @@ -257,7 +257,7 @@ _08003EDA: movs r2, #0x1a add r2, sp mov ip, r2 - ldr r5, _0800409C @ =sa2__gUnknown_03001944 + ldr r5, _0800409C @ =gSpriteTransformRotation ldrh r0, [r5] lsls r0, r0, #1 ldr r1, _080040A4 @ =gSineTable @@ -266,7 +266,7 @@ _08003EDA: ldrsh r0, [r0, r2] rsbs r0, r0, #0 asrs r0, r0, #6 - ldr r5, _080040A8 @ =sa2__gUnknown_030017F0 + ldr r5, _080040A8 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 @@ -285,7 +285,7 @@ _08003EDA: mov r1, ip strh r0, [r1] add r5, sp, #0x1c - ldr r2, _0800409C @ =sa2__gUnknown_03001944 + ldr r2, _0800409C @ =gSpriteTransformRotation ldrh r0, [r2] lsls r0, r0, #1 ldr r7, _080040A4 @ =gSineTable @@ -311,7 +311,7 @@ _08003EDA: strh r0, [r5] mov r4, sp adds r4, #0x1e - ldr r7, _0800409C @ =sa2__gUnknown_03001944 + ldr r7, _0800409C @ =gSpriteTransformRotation ldrh r0, [r7] movs r1, #0x80 lsls r1, r1, #1 @@ -322,7 +322,7 @@ _08003EDA: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r7, _080040AC @ =sa2__gUnknown_03005394 + ldr r7, _080040AC @ =gSpriteTransformScaleY ldrh r1, [r7] adds r2, r0, #0 muls r2, r1, r2 @@ -395,11 +395,11 @@ _08003EDA: b _080040CA .align 2, 0 _08004098: .4byte gOamBuffer+0x6 -_0800409C: .4byte sa2__gUnknown_03001944 +_0800409C: .4byte gSpriteTransformRotation _080040A0: .4byte 0x000003FF _080040A4: .4byte gSineTable -_080040A8: .4byte sa2__gUnknown_030017F0 -_080040AC: .4byte sa2__gUnknown_03005394 +_080040A8: .4byte gSpriteTransformScaleX +_080040AC: .4byte gSpriteTransformScaleY _080040B0: .4byte sa2__gUnknown_03005398 _080040B4: .4byte sa2__gUnknown_0300194C _080040B8: .4byte sa2__gUnknown_03002820 diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc index 08856069fd..2e77e4d42a 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc @@ -830,18 +830,18 @@ _08026B82: ands r3, r0 cmp r3, #0 beq _08026BE0 - ldr r2, _08026BC0 @ =sa2__gUnknown_03001944 + ldr r2, _08026BC0 @ =gSpriteTransformRotation ldr r0, [sp, #0x10] ldrh r1, [r0] ldr r0, _08026BC4 @ =0x000003FF ands r0, r1 strh r0, [r2] - ldr r0, _08026BC8 @ =sa2__gUnknown_030017F0 + ldr r0, _08026BC8 @ =gSpriteTransformScaleX movs r2, #0x80 lsls r2, r2, #1 adds r1, r2, #0 strh r1, [r0] - ldr r0, _08026BCC @ =sa2__gUnknown_03005394 + ldr r0, _08026BCC @ =gSpriteTransformScaleY strh r1, [r0] ldr r0, _08026BD0 @ =sa2__gUnknown_03002A8C movs r1, #0 @@ -856,27 +856,27 @@ _08026B82: ldrh r0, [r3, #0x24] b _08026C0E .align 2, 0 -_08026BC0: .4byte sa2__gUnknown_03001944 +_08026BC0: .4byte gSpriteTransformRotation _08026BC4: .4byte 0x000003FF -_08026BC8: .4byte sa2__gUnknown_030017F0 -_08026BCC: .4byte sa2__gUnknown_03005394 +_08026BC8: .4byte gSpriteTransformScaleX +_08026BCC: .4byte gSpriteTransformScaleY _08026BD0: .4byte sa2__gUnknown_03002A8C _08026BD4: .4byte sa2__gUnknown_03004D58 _08026BD8: .4byte sa2__gUnknown_0300194C _08026BDC: .4byte sa2__gUnknown_03002820 _08026BE0: - ldr r2, _08026C24 @ =sa2__gUnknown_03001944 + ldr r2, _08026C24 @ =gSpriteTransformRotation ldr r4, [sp, #0x10] ldrh r1, [r4] ldr r0, _08026C28 @ =0x000003FF ands r0, r1 strh r0, [r2] - ldr r0, _08026C2C @ =sa2__gUnknown_030017F0 + ldr r0, _08026C2C @ =gSpriteTransformScaleX movs r5, #0x80 lsls r5, r5, #1 adds r1, r5, #0 strh r1, [r0] - ldr r0, _08026C30 @ =sa2__gUnknown_03005394 + ldr r0, _08026C30 @ =gSpriteTransformScaleY strh r1, [r0] ldr r0, _08026C34 @ =sa2__gUnknown_03002A8C strh r3, [r0] @@ -901,10 +901,10 @@ _08026C12: pop {r0} bx r0 .align 2, 0 -_08026C24: .4byte sa2__gUnknown_03001944 +_08026C24: .4byte gSpriteTransformRotation _08026C28: .4byte 0x000003FF -_08026C2C: .4byte sa2__gUnknown_030017F0 -_08026C30: .4byte sa2__gUnknown_03005394 +_08026C2C: .4byte gSpriteTransformScaleX +_08026C30: .4byte gSpriteTransformScaleY _08026C34: .4byte sa2__gUnknown_03002A8C _08026C38: .4byte sa2__gUnknown_03004D58 _08026C3C: .4byte sa2__gUnknown_0300194C diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc index 80cf3efb9b..096698c341 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc @@ -22,7 +22,7 @@ mov ip, r3 ldrb r4, [r3] ldr r2, _08027274 @ =gSineTable - ldr r0, _08027278 @ =sa2__gUnknown_03001944 + ldr r0, _08027278 @ =gSpriteTransformRotation ldrh r1, [r0] movs r3, #0x80 lsls r3, r3, #1 @@ -73,7 +73,7 @@ _08027268: .4byte gCurTask _0802726C: .4byte 0x03000030 _08027270: .4byte 0x03000050 _08027274: .4byte gSineTable -_08027278: .4byte sa2__gUnknown_03001944 +_08027278: .4byte gSpriteTransformRotation _0802727C: .4byte sa2__gUnknown_0300194C _08027280: .4byte gCamera _08027284: .4byte sa2__gUnknown_03002820 diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc index 2c374d8fc7..4c87d5f8a1 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc @@ -45,7 +45,7 @@ _08027650: rsbs r0, r1, #0 strh r0, [r4] _08027658: - ldr r1, _080276C0 @ =sa2__gUnknown_03001944 + ldr r1, _080276C0 @ =gSpriteTransformRotation ldrh r0, [r1] ldrh r2, [r4] adds r0, r0, r2 @@ -98,7 +98,7 @@ _08027658: lsls r0, r0, #2 b _080276DC .align 2, 0 -_080276C0: .4byte sa2__gUnknown_03001944 +_080276C0: .4byte gSpriteTransformRotation _080276C4: .4byte gSineTable _080276C8: .4byte sa2__gUnknown_0300194C _080276CC: .4byte gCamera diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc index c1a2b93f25..362167012d 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc @@ -53,7 +53,7 @@ _0802750C: adds r1, r3, #0 bl UnusedTransform ldr r3, _0802759C @ =gSineTable - ldr r0, _080275A0 @ =sa2__gUnknown_03001944 + ldr r0, _080275A0 @ =gSpriteTransformRotation ldrh r2, [r0] movs r4, #0x80 lsls r4, r4, #1 @@ -119,7 +119,7 @@ _0802750C: b _080275BE .align 2, 0 _0802759C: .4byte gSineTable -_080275A0: .4byte sa2__gUnknown_03001944 +_080275A0: .4byte gSpriteTransformRotation _080275A4: .4byte sa2__gUnknown_0300194C _080275A8: .4byte gCamera _080275AC: .4byte sa2__gUnknown_03002820 diff --git a/src/core.c b/src/core.c index f2d714331c..9651b481be 100644 --- a/src/core.c +++ b/src/core.c @@ -18,7 +18,7 @@ typedef bool32 (*VBlankProcessFunc)(void); IntrFunc gIntrTable[] = {}; u32 gIntrMainBuf[] = {}; struct Task gTasks[] = {}; -u16 SA2_LABEL(gUnknown_030017F0) ALIGNED(4) = 0; +u16 gSpriteTransformScaleX ALIGNED(4) = 0; Vec2_16 gSpriteOffset ALIGNED(4) = {}; Background *gBackgroundsCopyQueue[] ALIGNED(16) = {}; u32 gFlags = 0; @@ -45,7 +45,7 @@ u8 gNextFreeAffineIndex = 0; #endif BgAffineReg gBgAffineRegs[NUM_AFFINE_BACKGROUNDS] ALIGNED(16) = {}; void *gVramHeapStartAddr = NULL; -u16 SA2_LABEL(gUnknown_03001944) ALIGNED(4) = 0; +u16 gSpriteTransformRotation ALIGNED(4) = 0; u8 gNumVBlankIntrs ALIGNED(4) = 0; s16 SA2_LABEL(gUnknown_0300194C) ALIGNED(4) = 0; @@ -161,7 +161,7 @@ u8 gBgSprites_Unknown1[] = {}; OamData gOamBuffer[] ALIGNED(16) = {}; u16 gVramHeapState[] = {}; u8 gBgSpritesCount ALIGNED(4) = 0; -u16 SA2_LABEL(gUnknown_03005394) ALIGNED(4) = 0; +u16 gSpriteTransformScaleY ALIGNED(4) = 0; u16 SA2_LABEL(gUnknown_03005398) ALIGNED(4) = 0; IntrFunc gVBlankIntrs[] ALIGNED(16) = {}; const u8 *gInputPlaybackData = NULL; @@ -388,9 +388,9 @@ void EngineInit(void) #if (ENGINE >= ENGINE_3) gNextFreeAffineIndex = 0; #endif - SA2_LABEL(gUnknown_03001944) = 0; - SA2_LABEL(gUnknown_030017F0) = 0x100; - SA2_LABEL(gUnknown_03005394) = 0x100; + gSpriteTransformRotation = 0; + gSpriteTransformScaleX = 0x100; + gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; SA2_LABEL(gUnknown_0300194C) = 0; diff --git a/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c b/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c index bb05db11d0..b2a23158d9 100644 --- a/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c +++ b/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c @@ -512,17 +512,17 @@ void Task_802611C(void) } if (s->frameFlags & 0x400) { - SA2_LABEL(gUnknown_03001944) = 0x3FF & tank->unk94; - SA2_LABEL(gUnknown_030017F0) = 0x100; - SA2_LABEL(gUnknown_03005394) = 0x100; + gSpriteTransformRotation = 0x3FF & tank->unk94; + gSpriteTransformScaleX = 0x100; + gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; SA2_LABEL(gUnknown_0300194C) = tank->s.x; SA2_LABEL(gUnknown_03002820) = tank->s.y - 0x24; } else { - SA2_LABEL(gUnknown_03001944) = 0x3FF & tank->unk94; - SA2_LABEL(gUnknown_030017F0) = 0x100; - SA2_LABEL(gUnknown_03005394) = 0x100; + gSpriteTransformRotation = 0x3FF & tank->unk94; + gSpriteTransformScaleX = 0x100; + gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; SA2_LABEL(gUnknown_0300194C) = tank->s.x; @@ -768,17 +768,17 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc", voi } if (s->frameFlags & 0x400) { - SA2_LABEL(gUnknown_03001944) = tank->unk94 & 0x3FF; - SA2_LABEL(gUnknown_030017F0) = 0x100; - SA2_LABEL(gUnknown_03005394) = 0x100; + gSpriteTransformRotation = tank->unk94 & 0x3FF; + gSpriteTransformScaleX = 0x100; + gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; SA2_LABEL(gUnknown_0300194C) = tank->s.x; SA2_LABEL(gUnknown_03002820) = tank->s.y - 0x24; } else { - SA2_LABEL(gUnknown_03001944) = tank->unk94 & 0x3FF; - SA2_LABEL(gUnknown_030017F0) = 0x100; - SA2_LABEL(gUnknown_03005394) = 0x100; + gSpriteTransformRotation = tank->unk94 & 0x3FF; + gSpriteTransformScaleX = 0x100; + gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; SA2_LABEL(gUnknown_0300194C) = tank->s.x; @@ -999,8 +999,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc", voi tf = &arm->transform; tf->rotation = 0; - arm->unk3C = ((COS(SA2_LABEL(gUnknown_03001944)) * 0x10 * arm->unk50) >> 0xE) + (gCamera.x + SA2_LABEL(gUnknown_0300194C)); - arm->unk3E = ((SIN(SA2_LABEL(gUnknown_03001944)) * 0x10 * arm->unk50) >> 0xE) + (gCamera.y + SA2_LABEL(gUnknown_03002820)); + arm->unk3C = ((COS(gSpriteTransformRotation) * 0x10 * arm->unk50) >> 0xE) + (gCamera.x + SA2_LABEL(gUnknown_0300194C)); + arm->unk3E = ((SIN(gSpriteTransformRotation) * 0x10 * arm->unk50) >> 0xE) + (gCamera.y + SA2_LABEL(gUnknown_03002820)); if (arm->unk50) { arm->qUnk4C = +Q(2); @@ -1145,8 +1145,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc", v s32 x32; s32 y32; #endif - x32 = COS(SA2_LABEL(gUnknown_03001944)) * 3; - y32 = SIN(SA2_LABEL(gUnknown_03001944)) * 3; + x32 = COS(gSpriteTransformRotation) * 3; + y32 = SIN(gSpriteTransformRotation) * 3; x = SA2_LABEL(gUnknown_0300194C) + gCamera.x + (x32 >> 9); y = SA2_LABEL(gUnknown_03002820) + gCamera.y + (y32 >> 9); } @@ -1201,14 +1201,14 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc", voi } } else if (tank->unk94 > 0) { tf->rotation = -tank->unk94; - tf->rotation += SA2_LABEL(gUnknown_03001944); + tf->rotation += gSpriteTransformRotation; } { s32 x32; s32 y32; - x32 = COS(SA2_LABEL(gUnknown_03001944)) * 3; - y32 = SIN(SA2_LABEL(gUnknown_03001944)) * 3; + x32 = COS(gSpriteTransformRotation) * 3; + y32 = SIN(gSpriteTransformRotation) * 3; x = SA2_LABEL(gUnknown_0300194C) + gCamera.x + (x32 >> 9); y = SA2_LABEL(gUnknown_03002820) + gCamera.y + (y32 >> 9); hammer->unk3C = x; diff --git a/src/game/shared/stage/stage.c b/src/game/shared/stage/stage.c index 6f5af84bad..eb7e98dba9 100644 --- a/src/game/shared/stage/stage.c +++ b/src/game/shared/stage/stage.c @@ -411,9 +411,9 @@ void CreateGameStage(void) CreateStageEntitiesManager(); #endif - SA2_LABEL(gUnknown_03001944) = 0; - SA2_LABEL(gUnknown_030017F0) = 0x100; - SA2_LABEL(gUnknown_03005394) = 0x100; + gSpriteTransformRotation = 0; + gSpriteTransformScaleX = 0x100; + gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0x78; SA2_LABEL(gUnknown_03004D58) = 0x50; SA2_LABEL(gUnknown_0300194C) = 0x78; diff --git a/src/sprite.c b/src/sprite.c index a825953ad0..a78650ae42 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -528,10 +528,10 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004E14.inc", void SA2_LABEL(sub_8004 us.affineIndex = sprite->frameFlags & SPRITE_FLAG_MASK_ROT_SCALE; affine = (u16 *)&gOamBuffer[us.affineIndex * 4].all.affineParam; - us.qDirX = COS_24_8((transform->rotation + SA2_LABEL(gUnknown_03001944)) & ONE_CYCLE); - us.qDirY = SIN_24_8((transform->rotation + SA2_LABEL(gUnknown_03001944)) & ONE_CYCLE); - us.unkC[0] = I(transform->qScaleX * SA2_LABEL(gUnknown_030017F0)); - us.unkC[1] = I(transform->qScaleY * SA2_LABEL(gUnknown_03005394)); + us.qDirX = COS_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); + us.qDirY = SIN_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); + us.unkC[0] = I(transform->qScaleX * gSpriteTransformScaleX); + us.unkC[1] = I(transform->qScaleY * gSpriteTransformScaleY); affine[0 * OAM_DATA_COUNT_AFFINE] = I(Div(Q(256), us.unkC[0]) * us.qDirX); affine[1 * OAM_DATA_COUNT_AFFINE] = I(Div(Q(256), us.unkC[0]) * us.qDirY); @@ -539,12 +539,12 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004E14.inc", void SA2_LABEL(sub_8004 affine[3 * OAM_DATA_COUNT_AFFINE] = I(Div(Q(256), us.unkC[1]) * us.qDirX); if (transform->qScaleX < 0) { - us.unkC[0] = I(-transform->qScaleX * SA2_LABEL(gUnknown_030017F0)); + us.unkC[0] = I(-transform->qScaleX * gSpriteTransformScaleX); } // _08004F48 if (transform->qScaleY < 0) { - us.unkC[1] = I(-transform->qScaleY * SA2_LABEL(gUnknown_03005394)); + us.unkC[1] = I(-transform->qScaleY * gSpriteTransformScaleY); } // _08004F6A @@ -556,13 +556,13 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004E14.inc", void SA2_LABEL(sub_8004 // 2D Rotation matrix: // { +cos(a), -sin(a) } // { +sin(a), +cos(a) } - us.unk18[0][0] = I((Q(+COS_24_8(SA2_LABEL(gUnknown_03001944))) * SA2_LABEL(gUnknown_030017F0)) >> 16) + us.unk18[0][0] = I((Q(+COS_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleX) >> 16) * (Q(us.unkC[0] * SA2_LABEL(gUnknown_03005398) >> 16)); - us.unk18[0][1] = I((Q(-SIN_24_8(SA2_LABEL(gUnknown_03001944))) * SA2_LABEL(gUnknown_030017F0)) >> 16) + us.unk18[0][1] = I((Q(-SIN_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleX) >> 16) * (Q(us.unkC[0] * SA2_LABEL(gUnknown_03005398) >> 16)); - us.unk18[1][0] = I((Q(+SIN_24_8(SA2_LABEL(gUnknown_03001944))) * SA2_LABEL(gUnknown_03005394)) >> 16) + us.unk18[1][0] = I((Q(+SIN_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleY) >> 16) * (Q(us.unkC[1] * SA2_LABEL(gUnknown_03005398) >> 16)); - us.unk18[1][1] = I((Q(+COS_24_8(SA2_LABEL(gUnknown_03001944))) * SA2_LABEL(gUnknown_03005394)) >> 16) + us.unk18[1][1] = I((Q(+COS_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleY) >> 16) * (Q(us.unkC[1] * SA2_LABEL(gUnknown_03005398) >> 16)); us.posX = I(transform->x * us.unk18[0][0] + transform->y * us.unk18[0][1] + Q(SA2_LABEL(gUnknown_0300194C))); From 19fbe433b3bd090ca1315dd1394fa5bc0ad79744 Mon Sep 17 00:00:00 2001 From: Oliver Bell Date: Sat, 2 May 2026 22:36:45 +0100 Subject: [PATCH 2/4] nonmatching engine functions align --- asm/non_matching/engine/TransformSprite.inc | 56 +- asm/non_matching/engine/UnusedTransform.inc | 86 +- .../engine/sa2__sub_8002B20_sa1.inc | 0 asm/non_matching/engine/sa2__sub_80039E4.inc | 258 +-- asm/non_matching/engine/sa2__sub_8004010.inc | 156 +- asm/non_matching/engine/sa2__sub_8004E14.inc | 108 +- .../engine/sa2__unused_sub_8005C54.inc | 134 +- .../engine/sa2__unused_sub_8005FB4.inc | 180 +- .../engine/sa2__unused_sub_800672C.inc | 376 ++--- .../stage/enemies/boss_1__Task_80264C8.inc | 16 +- .../stage/enemies/boss_1__Task_80271E4.inc | 8 +- .../stage/enemies/boss_1__Task_8027600.inc | 8 +- .../stage/enemies/boss_1__Task_EHTHammer.inc | 8 +- .../ice_block__Task_IceBlock.inc | 16 +- include/core.h | 6 +- sa1/asm/non_matching/engine/.gitkeep | 0 .../non_matching/engine/TransformSprite.inc | 230 +-- .../non_matching/engine/UnusedTransform.inc | 88 +- .../engine/sa2__sub_8002B20_sa1.inc | 1476 +++++++++++++++++ .../non_matching/engine/sa2__sub_80039E4.inc | 258 +-- .../non_matching/engine/sa2__sub_8004010.inc | 342 ++-- .../non_matching/engine/sa2__sub_8004E14.inc | 319 ++-- .../engine/sa2__unused_sub_8005C54.inc | 136 +- .../engine/sa2__unused_sub_8005FB4.inc | 180 +- .../engine/sa2__unused_sub_800672C.inc | 379 ++--- .../stage/enemies/boss_1__Task_80264C8.inc | 16 +- .../stage/enemies/boss_1__Task_80271E4.inc | 8 +- .../stage/enemies/boss_1__Task_8027600.inc | 8 +- .../stage/enemies/boss_1__Task_EHTHammer.inc | 8 +- .../ice_block__Task_IceBlock.inc | 16 +- src/background.c | 4 + src/core.c | 12 +- .../stage/enemies/boss_1_egg_hammer_tank.c | 28 +- .../sa1/stage/interactables/boulder_spawner.c | 7 +- src/game/sa1/stage/interactables/decoration.c | 8 +- src/game/sa1/stage/interactables/ice_block.c | 8 +- .../sa1/stage/interactables/skating_stone.c | 8 +- src/game/shared/stage/stage.c | 6 +- src/sprite.c | 12 +- 39 files changed, 3249 insertions(+), 1724 deletions(-) rename sa1/asm/non_matching/engine/sa2__sub_8002B20.inc => asm/non_matching/engine/sa2__sub_8002B20_sa1.inc (100%) create mode 100644 sa1/asm/non_matching/engine/.gitkeep create mode 100644 sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc diff --git a/asm/non_matching/engine/TransformSprite.inc b/asm/non_matching/engine/TransformSprite.inc index 801127a507..67bc6853f5 100644 --- a/asm/non_matching/engine/TransformSprite.inc +++ b/asm/non_matching/engine/TransformSprite.inc @@ -12,9 +12,9 @@ movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 @ if (dimensions != (SpriteOffset *)-1) - bne _0800487C - b _08004AAA -_0800487C: + bne _sa2_0800487C + b _sa2_08004AAA +_sa2_0800487C: mov r8, r1 @ r8 = dimensions add r2, sp, #0x20 @ r2 = sp20 = &big.affineIndex ldr r1, [sp, #0x24] @ r1 = s @@ -24,13 +24,13 @@ _0800487C: strh r0, [r2] @ big.affineIndex = (frameFlags & SPRITE_FLAG_MASK_ROT_SCALE); ldrh r4, [r2] @ r2 = big.affineIndex lsls r4, r4, #5 - ldr r0, _08004A14 @ =gOamBuffer + 0x6 + ldr r0, _sa2_08004A14 @ =gOamBuffer + 0x6 adds r4, r4, r0 @ r4 = affine = &gOamBuffer[big.affineIndex * 4].all.affineParam; subs r2, #0x18 str r2, [sp, #0x28] @; sp28 = sp08 = &big.qDirX - ldr r2, _08004A18 @ =gSineTable + ldr r2, _sa2_08004A18 @ =gSineTable ldrh r0, [r6] @ r0 = transform.rotation - ldr r1, _08004A1C @ =0x000003FF + ldr r1, _sa2_08004A1C @ =0x000003FF ands r1, r0 @ r1 = (transform->rotation & ONE_CYCLE) movs r3, #0x80 lsls r3, r3, #1 @ r3 = 0x100 @@ -130,21 +130,21 @@ __post_Divs: movs r3, #2 ldrsh r5, [r6, r3] @ r5 = transform.width cmp r5, #0 - bge _08004966 @ if (transform->width < 0) + bge _sa2_08004966 @ if (transform->width < 0) rsbs r0, r0, #0 strh r0, [r7] @ big.unkC[0] = -transform->width; -_08004966: +_sa2_08004966: movs r1, #4 ldrsh r0, [r6, r1] ldrh r2, [r6, #4] mov ip, r2 @ ip = transform.height cmp r0, #0 - bge _0800497A @ if (transform->height < 0) + bge _sa2_0800497A @ if (transform->height < 0) mov r3, ip rsbs r0, r3, #0 mov r1, sb strh r0, [r1] @ big.unkC[1] = -transform->height; -_0800497A: +_sa2_0800497A: mov r2, sp @ r2 = sp00 = &big ldr r3, [sp, #0x28] @ r3 = sp28 = &big.qDirX ldrh r1, [r3] @@ -157,7 +157,7 @@ _0800497A: asrs r0, r0, #8 strh r0, [r2] @ big.unk0[0] = big.qDirX * big.unkC[0] -__08004990: +__sa2_08004990: mov r4, sp adds r4, #2 @ r4 = &big.unk0[1] mov r0, sl @ r0 = sl = &big.qDirY @@ -172,7 +172,7 @@ __08004990: asrs r0, r0, #8 strh r0, [r4] @ big.unk0[1] = -__080049AA: +__sa2_080049AA: add r3, sp, #4 mov r2, sl @ r2 = sl = &big.qDirY ldrh r1, [r2] @@ -186,7 +186,7 @@ __080049AA: asrs r0, r0, #8 strh r0, [r3] @ big.unk0[2] = (big.qDirY * big.unkC[1]) >> 8 -__080049C2: +__sa2_080049C2: mov r2, sp adds r2, #6 ldr r0, [sp, #0x28] @ r0 = sp28 = &big.qDirX @@ -228,19 +228,19 @@ __080049C2: adds r6, r4, #0 @ r6 = &big.unk0[1] adds r7, r3, #0 @ r7 = r3 = &big.unk0[2] mov sb, r2 @ sb = r2 = &big.unk0[3] -__08004A04: +__sa2_08004A04: cmp r5, #0 @ if (transform->width > 0) - ble _08004A20 -__08004A08: + ble _sa2_08004A20 +__sa2_08004A08: mov r0, r8 @ r0 = r8 = dimensions ldrh r4, [r0, #8] ldrh r2, [r0, #4] - b _08004A2E + b _sa2_08004A2E .align 2, 0 -_08004A14: .4byte gOamBuffer + 0x6 -_08004A18: .4byte gSineTable -_08004A1C: .4byte 0x000003FF -_08004A20: +_sa2_08004A14: .4byte gOamBuffer + 0x6 +_sa2_08004A18: .4byte gSineTable +_sa2_08004A1C: .4byte 0x000003FF +_sa2_08004A20: mov r2, r8 @ r2 = r8 = dimensions ldrh r1, [r2, #4] ldrh r0, [r2, #8] @@ -248,16 +248,16 @@ _08004A20: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r2, r1, #0 -_08004A2E: +_sa2_08004A2E: mov r3, ip @ r3 = ip = lsls r0, r3, #0x10 cmp r0, #0 - ble _08004A3E + ble _sa2_08004A3E mov r0, r8 @ r0 = r8 = dimensions ldrh r3, [r0, #0xa] ldrh r5, [r0, #6] - b _08004A4C -_08004A3E: + b _sa2_08004A4C +_sa2_08004A3E: mov r3, r8 @ r3 = r8 = dimensions ldrh r1, [r3, #6] ldrh r0, [r3, #0xa] @@ -265,7 +265,7 @@ _08004A3E: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 adds r5, r1, #0 -_08004A4C: +_sa2_08004A4C: mov r0, sp @ r0 = big.unk0[0] ldrh r0, [r0] lsls r0, r0, #0x10 @@ -292,7 +292,7 @@ _08004A4C: subs r0, r0, r1 str r0, [sp, #0x10] -__080004A7E: +__sa2_080004A7E: ldrh r0, [r7] @ r0 = big.unk0[2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -315,7 +315,7 @@ __080004A7E: strh r0, [r1, #0x16] ldr r0, [sp, #0x14] strh r0, [r1, #0x18] -_08004AAA: +_sa2_08004AAA: add sp, #0x2c pop {r3, r4, r5} mov r8, r3 diff --git a/asm/non_matching/engine/UnusedTransform.inc b/asm/non_matching/engine/UnusedTransform.inc index dc6fd3696f..69db09bc92 100644 --- a/asm/non_matching/engine/UnusedTransform.inc +++ b/asm/non_matching/engine/UnusedTransform.inc @@ -13,9 +13,9 @@ movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - bne _08004AD8 - b _08004E04 -_08004AD8: + bne _sa2_08004AD8 + b _sa2_08004E04 +_sa2_08004AD8: mov sb, r1 add r2, sp, #0x20 ldr r1, [sp, #0x24] @@ -25,21 +25,21 @@ _08004AD8: strh r0, [r2] ldrh r4, [r2] lsls r4, r4, #5 - ldr r0, _08004D58 @ =gOamBuffer + 0x6 + ldr r0, _sa2_08004D58 @ =gOamBuffer + 0x6 adds r4, r4, r0 subs r2, #0x18 str r2, [sp, #0x28] ldrh r0, [r7] - ldr r3, _08004D5C @ =gSpriteTransformRotation + ldr r3, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 - ldr r2, _08004D60 @ =0x000003FF + ldr r2, _sa2_08004D60 @ =0x000003FF ands r0, r2 movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 lsls r0, r0, #1 - ldr r6, _08004D64 @ =gSineTable + ldr r6, _sa2_08004D64 @ =gSineTable adds r0, r0, r6 ldrh r0, [r0] lsls r0, r0, #0x10 @@ -50,7 +50,7 @@ _08004AD8: add r3, sp mov r8, r3 ldrh r0, [r7] - ldr r5, _08004D5C @ =gSpriteTransformRotation + ldr r5, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -63,7 +63,7 @@ _08004AD8: add r6, sp, #0xc movs r0, #2 ldrsh r1, [r7, r0] - ldr r2, _08004D68 @ =gSpriteTransformScaleX + ldr r2, _sa2_08004D68 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -73,7 +73,7 @@ _08004AD8: mov sl, r3 movs r5, #4 ldrsh r1, [r7, r5] - ldr r2, _08004D6C @ =gSpriteTransformScaleY + ldr r2, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -143,25 +143,25 @@ _08004AD8: ldrsh r0, [r7, r1] str r0, [sp, #0x2c] cmp r0, #0 - bge _08004BF0 + bge _sa2_08004BF0 movs r2, #2 ldrsh r0, [r7, r2] rsbs r0, r0, #0 - ldr r3, _08004D68 @ =gSpriteTransformScaleX + ldr r3, _sa2_08004D68 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r6] -_08004BF0: +_sa2_08004BF0: movs r4, #4 ldrsh r0, [r7, r4] - ldr r5, _08004D6C @ =gSpriteTransformScaleY + ldr r5, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r3, [r5] ldrh r2, [r7, #4] mov r1, sp strh r2, [r1, #0x34] cmp r0, #0 - bge _08004C14 + bge _sa2_08004C14 movs r4, #4 ldrsh r0, [r7, r4] rsbs r0, r0, #0 @@ -169,9 +169,9 @@ _08004BF0: asrs r0, r0, #8 mov r5, sl strh r0, [r5] - ldr r0, _08004D6C @ =gSpriteTransformScaleY + ldr r0, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r3, [r0] -_08004C14: +_sa2_08004C14: mov r2, sp ldr r4, [sp, #0x28] ldrh r1, [r4] @@ -225,25 +225,25 @@ _08004C14: asrs r0, r0, #8 strh r0, [r6] add r5, sp, #0x18 - ldr r1, _08004D5C @ =gSpriteTransformRotation + ldr r1, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 - ldr r4, _08004D64 @ =gSineTable + ldr r4, _sa2_08004D64 @ =gSineTable adds r0, r0, r4 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08004D68 @ =gSpriteTransformScaleX + ldr r6, _sa2_08004D68 @ =gSpriteTransformScaleX ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r5] mov r2, sp adds r2, #0x1a - ldr r1, _08004D5C @ =gSpriteTransformRotation + ldr r1, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r0, [r1] lsls r0, r0, #1 adds r0, r0, r4 @@ -256,10 +256,10 @@ _08004C14: asrs r0, r0, #8 strh r0, [r2] add r4, sp, #0x1c - ldr r6, _08004D5C @ =gSpriteTransformRotation + ldr r6, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r0, [r6] lsls r0, r0, #1 - ldr r1, _08004D64 @ =gSineTable + ldr r1, _sa2_08004D64 @ =gSineTable adds r0, r0, r1 ldrh r0, [r0] lsls r0, r0, #0x10 @@ -278,7 +278,7 @@ _08004C14: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08004D6C @ =gSpriteTransformScaleY + ldr r6, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 @@ -296,7 +296,7 @@ _08004C14: ldrsh r2, [r7, r6] muls r0, r2, r0 adds r1, r1, r0 - ldr r0, _08004D70 @ =gUnknown_0300194C + ldr r0, _sa2_08004D70 @ =gSpriteTransformX movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 @@ -316,7 +316,7 @@ _08004C14: ldrsh r2, [r7, r5] muls r0, r2, r0 adds r1, r1, r0 - ldr r0, _08004D74 @ =gUnknown_03002820 + ldr r0, _sa2_08004D74 @ =gSpriteTransformY movs r6, #0 ldrsh r0, [r0, r6] lsls r0, r0, #8 @@ -328,21 +328,21 @@ _08004C14: ldr r6, [sp, #0x38] ldr r0, [sp, #0x2c] cmp r0, #0 - ble _08004D78 + ble _sa2_08004D78 mov r1, sb ldrh r4, [r1, #8] ldrh r2, [r1, #4] - b _08004D86 + b _sa2_08004D86 .align 2, 0 -_08004D58: .4byte gOamBuffer + 0x6 -_08004D5C: .4byte gSpriteTransformRotation -_08004D60: .4byte 0x000003FF -_08004D64: .4byte gSineTable -_08004D68: .4byte gSpriteTransformScaleX -_08004D6C: .4byte gSpriteTransformScaleY -_08004D70: .4byte gUnknown_0300194C -_08004D74: .4byte gUnknown_03002820 -_08004D78: +_sa2_08004D58: .4byte gOamBuffer + 0x6 +_sa2_08004D5C: .4byte gSpriteTransformRotation +_sa2_08004D60: .4byte 0x000003FF +_sa2_08004D64: .4byte gSineTable +_sa2_08004D68: .4byte gSpriteTransformScaleX +_sa2_08004D6C: .4byte gSpriteTransformScaleY +_sa2_08004D70: .4byte gSpriteTransformX +_sa2_08004D74: .4byte gSpriteTransformY +_sa2_08004D78: mov r2, sb ldrh r1, [r2, #4] ldrh r0, [r2, #8] @@ -350,17 +350,17 @@ _08004D78: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r2, r1, #0 -_08004D86: +_sa2_08004D86: mov r3, sp ldrh r3, [r3, #0x34] lsls r0, r3, #0x10 cmp r0, #0 - ble _08004D98 + ble _sa2_08004D98 mov r5, sb ldrh r3, [r5, #0xa] ldrh r5, [r5, #6] - b _08004DA6 -_08004D98: + b _sa2_08004DA6 +_sa2_08004D98: mov r0, sb ldrh r1, [r0, #6] ldrh r0, [r0, #0xa] @@ -368,7 +368,7 @@ _08004D98: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 adds r5, r1, #0 -_08004DA6: +_sa2_08004DA6: mov r0, sp ldrh r0, [r0] lsls r0, r0, #0x10 @@ -416,7 +416,7 @@ _08004DA6: strh r0, [r2, #0x16] ldr r0, [sp, #0x14] strh r0, [r2, #0x18] -_08004E04: +_sa2_08004E04: add sp, #0x3c pop {r3, r4, r5} mov r8, r3 diff --git a/sa1/asm/non_matching/engine/sa2__sub_8002B20.inc b/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc similarity index 100% rename from sa1/asm/non_matching/engine/sa2__sub_8002B20.inc rename to asm/non_matching/engine/sa2__sub_8002B20_sa1.inc diff --git a/asm/non_matching/engine/sa2__sub_80039E4.inc b/asm/non_matching/engine/sa2__sub_80039E4.inc index c866957708..4759ad7f6b 100644 --- a/asm/non_matching/engine/sa2__sub_80039E4.inc +++ b/asm/non_matching/engine/sa2__sub_80039E4.inc @@ -10,30 +10,30 @@ sub sp, #0x44 movs r0, #5 str r0, [sp, #0x28] - ldr r0, _08003A04 @ =REG_DISPSTAT + ldr r0, _sa2_08003A04 @ =REG_DISPSTAT ldrh r1, [r0] movs r0, #1 @ DISPSTAT_VBLANK ands r0, r1 cmp r0, #0 - bne _08003A08 + bne _sa2_08003A08 movs r0, #0 b sub_80039E4_return .align 2, 0 -_08003A04: .4byte REG_DISPSTAT -_08003A08: - ldr r0, _08003BA4 @ =gBgSpritesCount +_sa2_08003A04: .4byte REG_DISPSTAT +_sa2_08003A08: + ldr r0, _sa2_08003BA4 @ =gBgSpritesCount ldrb r1, [r0] cmp r1, #0 - bne _08003A12 + bne _sa2_08003A12 b sub_80039E4_return_1 -_08003A12: +_sa2_08003A12: movs r5, #0 @ r5 = r5 = 0 cmp r5, r1 @ for(; r5 < gBgSpritesCount; r5++) - blo _08003A1A - b _08003EC2 -_08003A1A: + blo _sa2_08003A1A + b _sa2_08003EC2 +_sa2_08003A1A: lsls r0, r5, #2 - ldr r1, _08003BA8 @ =gBgSprites + ldr r1, _sa2_08003BA8 @ =gBgSprites adds r0, r0, r1 ldr r0, [r0] str r0, [sp, #0xc] @ sp0C = s @@ -43,9 +43,9 @@ _08003A1A: adds r2, r5, #1 str r2, [sp, #0x3c] cmp r1, r0 - bne _08003A34 - b _08003EB2 -_08003A34: + bne _sa2_08003A34 + b _sa2_08003EB2 +_sa2_08003A34: mov sl, r1 @ sl = dims ldr r3, [sp, #0xc] @ r3 = sp0C = s ldr r0, [r3, #0x10] @@ -54,7 +54,7 @@ _08003A34: ands r0, r1 lsrs r3, r0, #0xf lsls r0, r3, #1 - ldr r4, _08003BAC @ =gBgCntRegs + ldr r4, _sa2_08003BAC @ =gBgCntRegs adds r0, r0, r4 ldrh r2, [r0] movs r0, #0xc @@ -73,29 +73,29 @@ _08003A34: movs r0, #0x80 ands r0, r2 cmp r0, #0 - beq _08003A70 + beq _sa2_08003A70 movs r6, #6 str r6, [sp, #0x28] -_08003A70: +_sa2_08003A70: cmp r3, #1 - bhi _08003A76 - b _08003C2C -_08003A76: - ldr r7, _08003BB0 @ =gDispCnt + bhi _sa2_08003A76 + b _sa2_08003C2C +_sa2_08003A76: + ldr r7, _sa2_08003BB0 @ =gDispCnt ldrh r1, [r7] movs r0, #3 ands r0, r1 cmp r0, #0 - bne _08003A84 - b _08003C2C -_08003A84: + bne _sa2_08003A84 + b _sa2_08003C2C +_sa2_08003A84: lsrs r1, r2, #0xe movs r0, #0x80 lsls r0, r0, #0xd lsls r0, r1 lsrs r0, r0, #0x10 str r0, [sp, #0x10] @ sp10 = bg_affine_pixelcount - ldr r0, _08003BB4 @ =gRefSpriteTables + ldr r0, _sa2_08003BB4 @ =gRefSpriteTables ldr r1, [r0] ldr r2, [sp, #0xc] @ r2 = sp0C = s ldrh r0, [r2, #0xa] @@ -116,21 +116,21 @@ _08003A84: str r5, [sp, #8] ldrh r6, [r3, #2] cmp r5, r6 - blo _08003ABE - b _08003EB2 -_08003ABE: + blo _sa2_08003ABE + b _sa2_08003EB2 +_sa2_08003ABE: mov sb, sp @ sb = sp = oam ldr r7, [sp, #0x10] lsls r0, r7, #0x18 lsrs r0, r0, #0x18 str r0, [sp, #0x30] -_08003AC8: +_sa2_08003AC8: ldr r0, [sp, #0x1c] - ldr r1, _08003BB8 @ =0x040000D4 + ldr r1, _sa2_08003BB8 @ =0x040000D4 str r0, [r1] mov r2, sp str r2, [r1, #4] - ldr r0, _08003BBC @ =0x80000003 + ldr r0, _sa2_08003BBC @ =0x80000003 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, [sp, #0x1c] @@ -149,12 +149,12 @@ _08003AC8: lsrs r0, r0, #0xe orrs r1, r0 lsls r1, r1, #1 - ldr r5, _08003BC0 @ =gOamShapesSizes + ldr r5, _sa2_08003BC0 @ =gOamShapesSizes adds r0, r1, r5 ldrb r0, [r0] lsrs r0, r0, #3 str r0, [sp, #0x20] @ sp20 = tilesX - ldr r6, _08003BC4 @ =gOamShapesSizes+1 + ldr r6, _sa2_08003BC4 @ =gOamShapesSizes+1 adds r1, r1, r6 ldrb r0, [r1] lsrs r0, r0, #3 @@ -193,7 +193,7 @@ _08003AC8: lsrs r1, r0 @ r1 = tileId = ((size_t)(s->graphics.dest - bgVram)) >> sp28 mov r3, sb @ r3 = oam ldrh r2, [r3, #4] - ldr r0, _08003BC8 @ =0x000003FF + ldr r0, _sa2_08003BC8 @ =0x000003FF ands r0, r2 adds r5, r1, r0 movs r6, #0xff @@ -205,17 +205,17 @@ _08003AC8: ldr r0, [sp, #8] adds r0, #1 str r0, [sp, #0x40] -__08003B68: +__sa2_08003B68: cmp r4, #0 - beq _08003C18 + beq _sa2_08003C18 ldr r1, [sp, #0x30] lsls r0, r1, #0x18 asrs r0, r0, #0x18 str r0, [sp, #0x34] -_08003B74: +_sa2_08003B74: mov r2, sb @ r2 = sb = oam ldrh r0, [r2, #2] - ldr r1, _08003BCC @ =0x000001FF + ldr r1, _sa2_08003BCC @ =0x000001FF ands r1, r0 @ r1 = oam->tileNum add r1, r8 asrs r1, r1, #3 @@ -228,28 +228,28 @@ _08003B74: subs r6, #1 ldr r4, [sp, #0x20] cmp r4, #0 - beq _08003BF2 + beq _sa2_08003BF2 movs r4, #1 -_08003B96: +_sa2_08003B96: adds r0, r2, #0 ands r0, r4 cmp r0, #0 - bne _08003BD0 + bne _sa2_08003BD0 str r5, [sp, #0x24] - b _08003BDE + b _sa2_08003BDE .align 2, 0 -_08003BA4: .4byte gBgSpritesCount -_08003BA8: .4byte gBgSprites -_08003BAC: .4byte gBgCntRegs -_08003BB0: .4byte gDispCnt -_08003BB4: .4byte gRefSpriteTables -_08003BB8: .4byte 0x040000D4 -_08003BBC: .4byte 0x80000003 -_08003BC0: .4byte gOamShapesSizes -_08003BC4: .4byte gOamShapesSizes+1 -_08003BC8: .4byte 0x000003FF -_08003BCC: .4byte 0x000001FF -_08003BD0: +_sa2_08003BA4: .4byte gBgSpritesCount +_sa2_08003BA8: .4byte gBgSprites +_sa2_08003BAC: .4byte gBgCntRegs +_sa2_08003BB0: .4byte gDispCnt +_sa2_08003BB4: .4byte gRefSpriteTables +_sa2_08003BB8: .4byte 0x040000D4 +_sa2_08003BBC: .4byte 0x80000003 +_sa2_08003BC0: .4byte gOamShapesSizes +_sa2_08003BC4: .4byte gOamShapesSizes+1 +_sa2_08003BC8: .4byte 0x000003FF +_sa2_08003BCC: .4byte 0x000001FF +_sa2_08003BD0: lsls r0, r5, #8 ldr r1, [sp, #0x24] orrs r1, r0 @@ -257,7 +257,7 @@ _08003BD0: lsrs r0, r0, #0x10 str r0, [sp, #0x24] strh r0, [r2] -_08003BDE: +_sa2_08003BDE: adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 @@ -267,12 +267,12 @@ _08003BDE: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r1, #0 - bne _08003B96 -_08003BF2: + bne _sa2_08003B96 +_sa2_08003BF2: movs r0, #1 ands r0, r2 cmp r0, #0 - beq _08003C08 + beq _sa2_08003C08 ldrh r1, [r2] movs r0, #0xff lsls r0, r0, #8 @@ -280,7 +280,7 @@ _08003BF2: ldr r1, [sp, #0x24] orrs r0, r1 strh r0, [r2] -_08003C08: +_sa2_08003C08: ldr r2, [sp, #0x34] adds r7, r7, r2 mov r1, ip @@ -288,8 +288,8 @@ _08003C08: lsrs r0, r0, #0x18 mov ip, r0 cmp r1, #0 - bne _08003B74 -_08003C18: + bne _sa2_08003B74 +_sa2_08003C18: ldr r3, [sp, #0x40] lsls r0, r3, #0x18 lsrs r0, r0, #0x18 @@ -297,11 +297,11 @@ _08003C18: mov r4, sl ldrh r4, [r4, #2] cmp r0, r4 - bhs _08003C2A - b _08003AC8 @ -> for (sp08 = 0; sp08 < dims->numSubframes; sp08++) -_08003C2A: - b _08003EB2 -_08003C2C: + bhs _sa2_08003C2A + b _sa2_08003AC8 @ -> for (sp08 = 0; sp08 < dims->numSubframes; sp08++) +_sa2_08003C2A: + b _sa2_08003EB2 +_sa2_08003C2C: movs r6, #0x20 str r6, [sp, #0x10] lsls r0, r3, #1 @ r3 = bgId @@ -312,11 +312,11 @@ _08003C2C: lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 - bhi _08003C46 + bhi _sa2_08003C46 movs r7, #0x40 str r7, [sp, #0x10] -_08003C46: - ldr r0, _08003D14 @ =gRefSpriteTables +_sa2_08003C46: + ldr r0, _sa2_08003D14 @ =gRefSpriteTables ldr r1, [r0] ldr r2, [sp, #0xc] @ r2 = sp0C = s ldrh r0, [r2, #0xa] @@ -339,17 +339,17 @@ _08003C46: str r5, [sp, #0x3c] ldrh r7, [r3, #2] cmp r6, r7 - blo _08003C78 - b _08003EB2 -_08003C78: + blo _sa2_08003C78 + b _sa2_08003EB2 +_sa2_08003C78: mov sb, sp @ sb = sp = oam -_08003C7A: +_sa2_08003C7A: ldr r0, [sp, #0x1c] - ldr r1, _08003D18 @ =0x040000D4 + ldr r1, _sa2_08003D18 @ =0x040000D4 str r0, [r1] mov r2, sp str r2, [r1, #4] - ldr r0, _08003D1C @ =0x80000003 + ldr r0, _sa2_08003D1C @ =0x80000003 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, [sp, #0x1c] @@ -368,17 +368,17 @@ _08003C7A: lsrs r0, r0, #0xe @ r0 = oam.size orrs r1, r0 @ r1 = shapeAndSize lsls r1, r1, #1 - ldr r5, _08003D20 @ =gOamShapesSizes + ldr r5, _sa2_08003D20 @ =gOamShapesSizes adds r0, r1, r5 ldrb r0, [r0] lsrs r0, r0, #3 str r0, [sp, #0x20] @ sp20 = tilesX - ldr r6, _08003D24 @ =gOamShapesSizes+1 + ldr r6, _sa2_08003D24 @ =gOamShapesSizes+1 adds r1, r1, r6 ldrb r0, [r1] lsrs r0, r0, #3 mov ip, r0 @ ip = tilesY - ldr r4, _08003D28 @ =0x000001FF + ldr r4, _sa2_08003D28 @ =0x000001FF ands r4, r3 movs r6, #0xff ands r6, r2 @ r6 = oamX @@ -391,7 +391,7 @@ _08003C7A: adds r0, r0, r7 mov r1, sb strh r0, [r1, #4] -__08003CD8: +__sa2_08003CD8: ldr r2, [sp, #0xc] @ r2 = sp0C = s ldr r1, [r2, #0x10] lsrs r1, r1, #0xb @@ -402,8 +402,8 @@ __08003CD8: movs r7, #1 ands r0, r7 cmp r0, #0 - beq _08003D4A -___08003CEE: + beq _sa2_08003D4A +___sa2_08003CEE: movs r1, #0x80 lsls r1, r1, #6 adds r0, r1, #0 @@ -414,23 +414,23 @@ ___08003CEE: movs r0, #1 ands r0, r1 cmp r0, #0 - beq _08003D2C -__08003D04: + beq _sa2_08003D2C +__sa2_08003D04: ldr r3, [sp, #0xc] @ r3 = sp0C = s movs r5, #0x18 ldrsh r0, [r3, r5] mov r7, sl @ r7 = sl = dims movs r2, #0xa ldrsh r1, [r7, r2] - b _08003D3C + b _sa2_08003D3C .align 2, 0 -_08003D14: .4byte gRefSpriteTables -_08003D18: .4byte 0x040000D4 -_08003D1C: .4byte 0x80000003 -_08003D20: .4byte gOamShapesSizes -_08003D24: .4byte gOamShapesSizes+1 -_08003D28: .4byte 0x000001FF -_08003D2C: +_sa2_08003D14: .4byte gRefSpriteTables +_sa2_08003D18: .4byte 0x040000D4 +_sa2_08003D1C: .4byte 0x80000003 +_sa2_08003D20: .4byte gOamShapesSizes +_sa2_08003D24: .4byte gOamShapesSizes+1 +_sa2_08003D28: .4byte 0x000001FF +_sa2_08003D2C: ldr r3, [sp, #0xc] @ r3 = sp0C = s movs r5, #0x18 ldrsh r0, [r3, r5] @@ -439,15 +439,15 @@ _08003D2C: movs r3, #0xa ldrsh r2, [r7, r3] subs r1, r1, r2 -_08003D3C: +_sa2_08003D3C: adds r0, r0, r1 adds r5, r0, #0 subs r5, #8 @ r5 = someOffsetY lsls r0, r6, #0x10 rsbs r0, r0, #0 lsrs r6, r0, #0x10 - b _08003D58 -_08003D4A: + b _sa2_08003D58 +_sa2_08003D4A: ldr r5, [sp, #0xc] @ r5 = sp0C = s movs r7, #0x18 ldrsh r1, [r5, r7] @@ -455,7 +455,7 @@ _08003D4A: movs r3, #0xa ldrsh r0, [r2, r3] subs r5, r1, r0 @ r5 = someOffsetY -_08003D58: +_sa2_08003D58: ldr r7, [sp, #0xc] @ r7 = sp0C = s ldr r0, [r7, #0x10] lsrs r0, r0, #0xa @@ -466,8 +466,8 @@ _08003D58: adds r1, r3, #0 ands r1, r2 cmp r0, r1 - beq _08003DB4 -__08003D6E: + beq _sa2_08003DB4 +__sa2_08003D6E: mov r2, sb @ r2 = sb = oam ldrh r0, [r2, #2] movs r7, #0x80 @@ -480,15 +480,15 @@ __08003D6E: adds r0, r3, #0 ands r0, r1 cmp r0, #0 - beq _08003D96 + beq _sa2_08003D96 ldr r1, [sp, #0xc] @ r1 = sp0C = s movs r2, #0x16 ldrsh r0, [r1, r2] mov r3, sl movs r7, #8 ldrsh r1, [r3, r7] - b _08003DA6 -_08003D96: + b _sa2_08003DA6 +_sa2_08003D96: ldr r1, [sp, #0xc] @ r1 = sp0C = s movs r2, #0x16 ldrsh r0, [r1, r2] @@ -497,15 +497,15 @@ _08003D96: movs r7, #8 ldrsh r2, [r3, r7] subs r1, r1, r2 -_08003DA6: +_sa2_08003DA6: adds r0, r0, r1 subs r0, #8 mov r8, r0 lsls r0, r4, #0x10 rsbs r0, r0, #0 lsrs r4, r0, #0x10 - b _08003DC4 -_08003DB4: + b _sa2_08003DC4 +_sa2_08003DB4: ldr r0, [sp, #0xc] @ r0 = sp0C = s movs r2, #0x16 ldrsh r1, [r0, r2] @@ -514,7 +514,7 @@ _08003DB4: ldrsh r0, [r3, r7] subs r1, r1, r0 mov r8, r1 -_08003DC4: +_sa2_08003DC4: movs r0, #0x10 rsbs r0, r0, #0 mov r1, r8 @@ -530,23 +530,23 @@ _08003DC4: movs r3, #2 str r3, [sp, #0x2c] cmp r0, #0 - beq _08003DE8 + beq _sa2_08003DE8 movs r7, #0xfe str r7, [sp, #0x2c] -_08003DE8: +_sa2_08003DE8: movs r0, #0x80 lsls r0, r0, #6 ands r0, r1 cmp r0, #0 - beq _08003DFA + beq _sa2_08003DFA ldr r1, [sp, #0x10] lsls r0, r1, #0x19 rsbs r0, r0, #0 - b _08003DFE -_08003DFA: + b _sa2_08003DFE +_sa2_08003DFA: ldr r2, [sp, #0x10] lsls r0, r2, #0x19 -_08003DFE: +_sa2_08003DFE: lsrs r0, r0, #0x18 str r0, [sp, #0x30] lsls r0, r6, #0x10 @@ -565,7 +565,7 @@ _08003DFE: lsrs r1, r2 mov r3, sb ldrh r2, [r3, #4] - ldr r0, _08003EDC @ =0x0000F3FF + ldr r0, _sa2_08003EDC @ =0x0000F3FF ands r0, r2 adds r1, r1, r0 ldrh r2, [r3, #2] @@ -585,7 +585,7 @@ _08003DFE: adds r6, #1 str r6, [sp, #0x40] cmp r1, #0 - beq _08003EA0 + beq _sa2_08003EA0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 add r0, r8 @@ -595,7 +595,7 @@ _08003DFE: lsls r0, r1, #0x18 asrs r0, r0, #0x18 mov r8, r0 -_08003E5E: +_sa2_08003E5E: ldr r3, [sp, #0x38] adds r2, r7, r3 ldr r0, [sp, #0x20] @@ -606,11 +606,11 @@ _08003E5E: subs r6, #1 ldr r4, [sp, #0x20] cmp r4, #0 - beq _08003E92 + beq _sa2_08003E92 ldr r1, [sp, #0x2c] lsls r0, r1, #0x18 asrs r4, r0, #0x18 -_08003E7A: +_sa2_08003E7A: adds r1, r5, #0 adds r0, r1, #1 lsls r0, r0, #0x10 @@ -622,16 +622,16 @@ _08003E7A: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r1, #0 - bne _08003E7A -_08003E92: + bne _sa2_08003E7A +_sa2_08003E92: add r7, r8 mov r1, ip lsls r0, r6, #0x18 lsrs r0, r0, #0x18 mov ip, r0 cmp r1, #0 - bne _08003E5E -_08003EA0: + bne _sa2_08003E5E +_sa2_08003EA0: ldr r2, [sp, #0x40] lsls r0, r2, #0x18 lsrs r0, r0, #0x18 @@ -639,20 +639,20 @@ _08003EA0: mov r3, sl @ r3 = sl = dims ldrh r3, [r3, #2] cmp r0, r3 - bhs _08003EB2 - b _08003C7A -_08003EB2: + bhs _sa2_08003EB2 + b _sa2_08003C7A +_sa2_08003EB2: ldr r4, [sp, #0x3c] lsls r0, r4, #0x18 lsrs r5, r0, #0x18 - ldr r6, _08003EE0 @ =gBgSpritesCount + ldr r6, _sa2_08003EE0 @ =gBgSpritesCount ldrb r6, [r6] cmp r5, r6 - bhs _08003EC2 - b _08003A1A -_08003EC2: + bhs _sa2_08003EC2 + b _sa2_08003A1A +_sa2_08003EC2: movs r0, #0 - ldr r7, _08003EE0 @ =gBgSpritesCount + ldr r7, _sa2_08003EE0 @ =gBgSpritesCount strb r0, [r7] sub_80039E4_return_1: movs r0, #1 @@ -666,7 +666,7 @@ sub_80039E4_return: pop {r1} bx r1 .align 2, 0 -_08003EDC: .4byte 0x0000F3FF -_08003EE0: .4byte gBgSpritesCount +_sa2_08003EDC: .4byte 0x0000F3FF +_sa2_08003EE0: .4byte gBgSpritesCount .syntax divided diff --git a/asm/non_matching/engine/sa2__sub_8004010.inc b/asm/non_matching/engine/sa2__sub_8004010.inc index 2e8ff8cb8e..64ba293cb6 100644 --- a/asm/non_matching/engine/sa2__sub_8004010.inc +++ b/asm/non_matching/engine/sa2__sub_8004010.inc @@ -15,33 +15,33 @@ sub_8004010_loop: mov r2, r8 @ r8 = bg lsls r0, r2, #2 @ r0 = bg*4 - ldr r1, _080040DC @ =gBgSprites_Unknown2 + ldr r1, _sa2_080040DC @ =gBgSprites_Unknown2 adds r1, #1 adds r4, r0, r1 @ r4 = gBgSprites_Unknown2[bg][1] - ldr r6, _080040E0 @ =gBgSprites_Unknown2 + 3 + ldr r6, _sa2_080040E0 @ =gBgSprites_Unknown2 + 3 adds r6, r0, r6 @ r6 = &gBgSprites_Unknown2[bg][3] str r6, [sp, #0xc] @ sp0C = r6 = &gBgSprites_Unknown2[bg][3] ldrb r1, [r4] @ r1 = *r4 = gBgSprites_Unknown2[bg][1] ldrb r2, [r6] @ r2 = *r6 = gBgSprites_Unknown2[bg][3] mov ip, r2 @ ip = r2 = gBgSprites_Unknown2[bg][3] mov sl, r0 @ sl = bg*4 -__0800403C: +__sa2_0800403C: cmp r1, ip - bne _08004056 - ldr r0, _080040DC @ =gBgSprites_Unknown2 + 0 + bne _sa2_08004056 + ldr r0, _sa2_080040DC @ =gBgSprites_Unknown2 + 0 add r0, sl - ldr r1, _080040E4 @ =gBgSprites_Unknown2 + 2 + ldr r1, _sa2_080040E4 @ =gBgSprites_Unknown2 + 2 add r1, sl @ r1 = gBgSprites_Unknown2[bg][2] ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][0] mov r7, r8 adds r7, #1 @ r7 = bg+1 ldrb r1, [r1] -__08004050: +__sa2_08004050: cmp r0, r1 - bne _08004056 + bne _sa2_08004056 b sub_8004010_continue -_08004056: - ldr r2, _080040E8 @ =gBgCntRegs +_sa2_08004056: + ldr r2, _sa2_080040E8 @ =gBgCntRegs mov r6, r8 @ r6 = r8 = bg lsls r3, r6, #1 @ r3 = bg*2 adds r0, r3, r2 @ r0 = &gBgCntRegs[bg] @@ -54,24 +54,24 @@ _08004056: lsls r0, r0, #3 adds r5, r0, r1 @ r5 = vramBase ldrb r4, [r4] @ r4 = gBgSprites_Unknown2[bg][1] - ldr r0, _080040DC @ =gBgSprites_Unknown2 + ldr r0, _sa2_080040DC @ =gBgSprites_Unknown2 add r0, sl @ r0 = &gBgSprites_Unknown2[bg][0] ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][0] str r0, [sp, #8] adds r7, r2, #0 @ r7 = gBgCntRegs adds r2, r3, #0 @ r2 = r3 = bg * 2 mov r0, r8 -__0800407E: +__sa2_0800407E: cmp r0, #1 - bls _08004168 - ldr r0, _080040EC @ =gDispCnt + bls _sa2_08004168 + ldr r0, _sa2_080040EC @ =gDispCnt ldrh r1, [r0] movs r0, #3 ands r0, r1 -__0800408A: +__sa2_0800408A: cmp r0, #0 - beq _08004168 -__0800408E: + beq _sa2_08004168 +__sa2_0800408E: ldr r1, [sp, #8] adds r5, r5, r1 @ r5 = vramBase + sp08 lsrs r2, r6, #14 @ r2 = (r6 = bgCtrl) >> 14 @@ -80,11 +80,11 @@ __0800408E: lsls r0, r2 lsrs r3, r0, #0x10 @ r3 = affineSize = (16 << (gBgCntRegs[bg] >> 14)) mov r2, ip @ r2 = ip = gBgSprites_Unknown2[bg][3] -__0800409E: +__sa2_0800409E: cmp r2, #0xff - bne _080040F8 -__080040A2: - ldr r0, _080040F0 @ =gBgSprites_Unknown1 + bne _sa2_080040F8 +__sa2_080040A2: + ldr r0, _sa2_080040F0 @ =gBgSprites_Unknown1 add r0, r8 @ r0 = &gBgSprites_Unknown1[bg] ldrb r1, [r0] @ r1 = gBgSprites_Unknown1[bg] lsls r0, r1, #8 @ combine(v) : ((v) << 8 | (v)) @@ -95,7 +95,7 @@ __080040A2: ldr r6, [sp, #0x10] @ --- DMA Start --- strh r1, [r6] @ *sp10 = cb mov r1, sp - ldr r2, _080040F4 @ =0x040000D4 + ldr r2, _sa2_080040F4 @ =0x040000D4 str r1, [r2] @ DMASrc = sp00 (fill: cb) str r0, [r2, #4] @ vramBase ldr r6, [sp, #0xc] @ sp0C = &gBgSprites_Unknown2[bg][3] @@ -112,35 +112,35 @@ __080040A2: ldr r0, [r2, #8] @ @ --- DMA End --- add r2, sp, #4 mov sb, r2 @ sb = 2nd dmaTarget - b _080041C0 + b _sa2_080041C0 .align 2, 0 -_080040DC: .4byte gBgSprites_Unknown2 -_080040E0: .4byte gBgSprites_Unknown2 + 3 -_080040E4: .4byte gBgSprites_Unknown2 + 2 -_080040E8: .4byte gBgCntRegs -_080040EC: .4byte gDispCnt -_080040F0: .4byte gBgSprites_Unknown1 -_080040F4: .4byte 0x040000D4 -_080040F8: +_sa2_080040DC: .4byte gBgSprites_Unknown2 +_sa2_080040E0: .4byte gBgSprites_Unknown2 + 3 +_sa2_080040E4: .4byte gBgSprites_Unknown2 + 2 +_sa2_080040E8: .4byte gBgCntRegs +_sa2_080040EC: .4byte gDispCnt +_sa2_080040F0: .4byte gBgSprites_Unknown1 +_sa2_080040F4: .4byte 0x040000D4 +_sa2_080040F8: add r6, sp, #4 mov sb, r6 @ sb = sp04 (2nd dmaTarget) mov r7, r8 @ r7 = r8 = bg adds r7, #1 @ r7 = bg + 1 -__08004100: +__sa2_08004100: cmp r4, ip @ ip = p3 - bls _08004106 - b _0800422C -_08004106: - ldr r0, _0800415C @ =gBgSprites_Unknown1 + bls _sa2_08004106 + b _sa2_0800422C +_sa2_08004106: + ldr r0, _sa2_0800415C @ =gBgSprites_Unknown1 add r0, r8 mov ip, r0 @ ip = &gBgSprites_Unknown1[bg] - ldr r2, _08004160 @ =0x040000D4 - ldr r1, _08004164 @ =gBgSprites_Unknown2 + 2 + ldr r2, _sa2_08004160 @ =0x040000D4 + ldr r1, _sa2_08004164 @ =gBgSprites_Unknown2 + 2 add r1, sl mov r8, r1 @ r8 = &gBgSprites_Unknown2[bg][2] ldr r6, [sp, #0xc] str r6, [sp, #0x14] -_08004118_loop: +_sa2_08004118_loop: mov r0, ip @ r0 = ip = &gBgSprites_Unknown1[bg] ldrb r1, [r0] lsls r0, r1, #8 @@ -173,13 +173,13 @@ _08004118_loop: ldr r0, [sp, #0x14] ldrb r0, [r0] cmp r4, r0 - bls _08004118_loop - b _0800422C + bls _sa2_08004118_loop + b _sa2_0800422C .align 2, 0 -_0800415C: .4byte gBgSprites_Unknown1 -_08004160: .4byte 0x040000D4 -_08004164: .4byte gBgSprites_Unknown2 + 2 -_08004168: +_sa2_0800415C: .4byte gBgSprites_Unknown1 +_sa2_08004160: .4byte 0x040000D4 +_sa2_08004164: .4byte gBgSprites_Unknown2 + 2 +_sa2_08004168: ldr r1, [sp, #8] @ r1 = sp08 = gBgSprites_Unknown2[bg][0] lsls r0, r1, #1 adds r5, r5, r0 @ r5 = vramBase + (sp08 * 2) @@ -192,19 +192,19 @@ _08004168: subs r0, r2, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 @ r0 = affineSize -__0800417C: +__sa2_0800417C: cmp r0, #1 - bhi _08004182 + bhi _sa2_08004182 movs r3, #0x40 @ r3 = tileSize = 64 -_08004182: - ldr r1, _080041C8 @ =&gBgSprites_Unknown2[0][2] +_sa2_08004182: + ldr r1, _sa2_080041C8 @ =&gBgSprites_Unknown2[0][2] add r1, sl @ r1 = &gBgSprites_Unknown2[bg][2] ldrb r0, [r1] -__08004188: +__sa2_08004188: cmp r0, #0xff - bne _080041D8 -__0800418C: - ldr r0, _080041CC @ =gBgSprites_Unknown1 + bne _sa2_080041D8 +__sa2_0800418C: + ldr r0, _sa2_080041CC @ =gBgSprites_Unknown1 add r0, r8 ldrb r1, [r0] @ r1 = gBgSprites_Unknown1[bg] lsls r0, r3, #1 @ r3 = tileSize @@ -213,10 +213,10 @@ __0800418C: ldr r2, [sp, #0x10] @ r2 = &sp00[0] strh r1, [r2] @ sp00[0] = gBgSprites_Unknown1[bg]; mov r6, sp @ r6 = sp - ldr r1, _080041D0 @ =0x040000D4 + ldr r1, _sa2_080041D0 @ =0x040000D4 str r6, [r1] str r0, [r1, #4] - ldr r0, _080041D4 @ r0 = &gBgSprites_Unknown2[0][3] + ldr r0, _sa2_080041D4 @ r0 = &gBgSprites_Unknown2[0][3] add r0, sl @ r0 = &gBgSprites_Unknown2[bg][3] ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][3] subs r0, r0, r4 @ r0 = r0 - gBgSprites_Unknown2[bg][1] @@ -230,33 +230,33 @@ __0800418C: ldr r0, [r1, #8] add r6, sp, #4 mov sb, r6 @ sb = dmaTarget -_080041C0: +_sa2_080041C0: mov r7, r8 adds r7, #1 - b _0800422C + b _sa2_0800422C .align 2, 0 -_080041C8: .4byte gBgSprites_Unknown2 + 2 -_080041CC: .4byte gBgSprites_Unknown1 -_080041D0: .4byte 0x040000D4 -_080041D4: .4byte gBgSprites_Unknown2 + 3 -_080041D8: - ldr r0, _08004260 @ =gBgSprites_Unknown2 + 3 +_sa2_080041C8: .4byte gBgSprites_Unknown2 + 2 +_sa2_080041CC: .4byte gBgSprites_Unknown1 +_sa2_080041D0: .4byte 0x040000D4 +_sa2_080041D4: .4byte gBgSprites_Unknown2 + 3 +_sa2_080041D8: + ldr r0, _sa2_08004260 @ =gBgSprites_Unknown2 + 3 add r0, sl @ r0 = &gBgSprites_Unknown2[bg][3] add r2, sp, #4 mov sb, r2 @ sb = dmaTarget mov r7, r8 @ r7 = bg+1 (done by loop) adds r7, #1 ldrb r6, [r0] @ r6 = gBgSprites_Unknown2[bg][3] -__080041E6: +__sa2_080041E6: cmp r4, r6 - bhi _0800422C - ldr r2, _08004264 @ r2 = gBgSprites_Unknown1 + bhi _sa2_0800422C + ldr r2, _sa2_08004264 @ r2 = gBgSprites_Unknown1 add r8, r2 @ r8 = gBgSprites_Unknown1[bg] - ldr r2, _08004268 @ =0x040000D4 + ldr r2, _sa2_08004268 @ =0x040000D4 mov ip, r1 @ ip = r1 = &gBgSprites_Unknown2[bg][2] str r0, [sp, #0x14] lsls r3, r3, #1 -_080041F6: +_sa2_080041F6: mov r6, r8 @ r6 = &gBgSprites_Unknown1[bg] ldrb r1, [r6] @ r1 = gBgSprites_Unknown1[bg] adds r0, r4, #0 @ r0 = r4 = gBgSprites_Unknown2[bg][1] @@ -283,17 +283,17 @@ _080041F6: ldr r0, [sp, #0x14] ldrb r0, [r0] cmp r4, r0 - bls _080041F6 -_0800422C: + bls _sa2_080041F6 +_sa2_0800422C: movs r0, #0 str r0, [sp, #4] mov r1, sb @ r1 = sb = &sp04 = dmaTarget - ldr r2, _08004268 @ r2 = 0x040000D4 + ldr r2, _sa2_08004268 @ r2 = 0x040000D4 str r1, [r2] - ldr r0, _0800426C @ =gBgSprites_Unknown2 + ldr r0, _sa2_0800426C @ =gBgSprites_Unknown2 add r0, sl @ r0 = &gBgSprites_Unknown2[bg][0] str r0, [r2, #4] - ldr r0, _08004270 @ =0x85000001 + ldr r0, _sa2_08004270 @ =0x85000001 str r0, [r2, #8] ldr r0, [r2, #8] sub_8004010_continue: @@ -314,10 +314,10 @@ sub_8004010_return: pop {r1} bx r1 .align 2, 0 -_08004260: .4byte gBgSprites_Unknown2 + 3 -_08004264: .4byte gBgSprites_Unknown1 -_08004268: .4byte 0x040000D4 -_0800426C: .4byte gBgSprites_Unknown2 -_08004270: .4byte 0x85000001 +_sa2_08004260: .4byte gBgSprites_Unknown2 + 3 +_sa2_08004264: .4byte gBgSprites_Unknown1 +_sa2_08004268: .4byte 0x040000D4 +_sa2_0800426C: .4byte gBgSprites_Unknown2 +_sa2_08004270: .4byte 0x85000001 .syntax divided diff --git a/asm/non_matching/engine/sa2__sub_8004E14.inc b/asm/non_matching/engine/sa2__sub_8004E14.inc index 2713abcbb4..8576cd49aa 100644 --- a/asm/non_matching/engine/sa2__sub_8004E14.inc +++ b/asm/non_matching/engine/sa2__sub_8004E14.inc @@ -12,9 +12,9 @@ movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - bne _08004E30 - b _080051D8 -_08004E30: + bne _sa2_08004E30 + b _sa2_080051D8 +_sa2_08004E30: mov sb, r1 @ sb = sprDims add r2, sp, #0x20 ldr r1, [sp, #0x24] @@ -24,21 +24,21 @@ _08004E30: strh r0, [r2] @ us->affineIndex = s->unk10 & SPRITE_FLAG_MASK_ROT_SCALE; ldrh r4, [r2] lsls r4, r4, #5 - ldr r0, _08005128 @ =gOamBuffer + 0x6 + ldr r0, _sa2_08005128 @ =gOamBuffer + 0x6 adds r4, r4, r0 @ r4 = u16 *affine = &gOamBuffer[us->affineIndex * 4 + 3]; subs r2, #0x18 str r2, [sp, #0x28] @ sp28 = &us->qDirX ldrh r0, [r6] - ldr r3, _0800512C @ =gSpriteTransformRotation + ldr r3, _sa2_0800512C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 - ldr r2, _08005130 @ =0x000003FF + ldr r2, _sa2_08005130 @ =0x000003FF ands r0, r2 movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 lsls r0, r0, #1 - ldr r7, _08005134 @ =gSineTable + ldr r7, _sa2_08005134 @ =gSineTable adds r0, r0, r7 ldrh r0, [r0] lsls r0, r0, #0x10 @@ -49,7 +49,7 @@ _08004E30: add r3, sp mov r8, r3 @ r8 = r3 = &us.qDirY ldrh r0, [r6] @ r0 = transform->rotation - ldr r5, _0800512C @ =gSpriteTransformRotation + ldr r5, _sa2_0800512C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -62,7 +62,7 @@ _08004E30: add r7, sp, #0xc @ r7 = us->unkC[0] movs r0, #2 ldrsh r1, [r6, r0] @ r1 = transform->width - ldr r2, _08005138 @ =gSpriteTransformScaleX + ldr r2, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -72,7 +72,7 @@ _08004E30: mov sl, r3 movs r5, #4 ldrsh r1, [r6, r5] @ r1 = transform->height - ldr r2, _0800513C @ =gSpriteTransformScaleY + ldr r2, _sa2_0800513C @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -142,25 +142,25 @@ _08004E30: ldrsh r0, [r6, r1] @ r0 = transform->width str r0, [sp, #0x2c] cmp r0, #0 - bge _08004F48 + bge _sa2_08004F48 movs r2, #2 ldrsh r0, [r6, r2] rsbs r0, r0, #0 - ldr r3, _08005138 @ =gSpriteTransformScaleX + ldr r3, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r7] @ us->unkC[0] = I(-transform->width * gSpriteTransformScaleX); -_08004F48: +_sa2_08004F48: movs r4, #4 ldrsh r0, [r6, r4] - ldr r5, _0800513C @ =gSpriteTransformScaleY + ldr r5, _sa2_0800513C @ =gSpriteTransformScaleY ldrh r4, [r5] ldrh r2, [r6, #4] mov r1, sp strh r2, [r1, #0x3c] @ sp3C = (u16)transform->height cmp r0, #0 - bge _08004F6A + bge _sa2_08004F6A movs r3, #4 ldrsh r0, [r6, r3] rsbs r0, r0, #0 @@ -169,7 +169,7 @@ _08004F48: mov r4, sl @ r4 = sl = &us->unkC[1] strh r0, [r4] ldrh r4, [r5] @ r4 = gSpriteTransformScaleY -_08004F6A: +_sa2_08004F6A: mov r2, sp @ r2 = &us ldr r5, [sp, #0x28] ldrh r1, [r5] @ r1 = us->qDirX @@ -224,18 +224,18 @@ _08004F6A: strh r0, [r3] @ us.unk0[3] = I(+us.qDirX * us.unkC[1]); add r0, sp, #0x18 mov r8, r0 @ r8 = &us.unk18[0][0] - ldr r1, _0800512C @ =gSpriteTransformRotation + ldr r1, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 - ldr r3, _08005134 @ =gSineTable + ldr r3, _sa2_08005134 @ =gSineTable adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r5, _08005138 @ =gSpriteTransformScaleX + ldr r5, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 @@ -244,29 +244,29 @@ _08004F6A: ldrh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 - ldr r3, _08005140 @ =gUnknown_03005398 + ldr r3, _sa2_08005140 @ =gSpriteTransformScaleUnknown movs r5, #0 ldrsh r1, [r3, r5] muls r0, r1, r0 - lsls r0, r0, #8 @ r0 = Q(us.unkC[0] * gUnknown_03005398) - asrs r0, r0, #0x10 @ r0 = (Q(us.unkC[0] * gUnknown_03005398) >> 16) + lsls r0, r0, #8 @ r0 = Q(us.unkC[0] * gSpriteTransformScaleUnknown) + asrs r0, r0, #0x10 @ r0 = (Q(us.unkC[0] * gSpriteTransformScaleUnknown) >> 16) muls r0, r2, r0 - asrs r0, r0, #8 @ r0 = I((COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) * (Q(us.unkC[0] * gUnknown_03005398) >> 16)) + asrs r0, r0, #8 @ r0 = I((COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) * (Q(us.unkC[0] * gSpriteTransformScaleUnknown) >> 16)) mov r1, r8 strh r0, [r1] @ us.unk18[0][0] = I(r2 * r0) movs r2, #0x1a add r2, sp mov ip, r2 @ ip = us.unk18[0][1] - ldr r5, _0800512C @ =gSpriteTransformRotation + ldr r5, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r5] lsls r0, r0, #1 - ldr r1, _08005134 @ =gSineTable + ldr r1, _sa2_08005134 @ =gSineTable adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] rsbs r0, r0, #0 asrs r0, r0, #6 @ r0 = (SIN(-gSpriteTransformRotation) >> 6) - ldr r5, _08005138 @ =gSpriteTransformScaleX + ldr r5, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 @@ -285,10 +285,10 @@ _08004F6A: mov r1, ip strh r0, [r1] @ us.unk18[0][1] = add r5, sp, #0x1c - ldr r2, _0800512C @ =gSpriteTransformRotation + ldr r2, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r2] lsls r0, r0, #1 - ldr r7, _08005134 @ =gSineTable + ldr r7, _sa2_08005134 @ =gSineTable adds r0, r0, r7 ldrh r0, [r0] lsls r0, r0, #0x10 @@ -311,18 +311,18 @@ _08004F6A: strh r0, [r5] @ us.unk18[1][0] = mov r4, sp adds r4, #0x1e - ldr r7, _0800512C @ =gSpriteTransformRotation + ldr r7, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r7] movs r1, #0x80 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 - ldr r2, _08005134 @ =gSineTable + ldr r2, _sa2_08005134 @ =gSineTable adds r0, r0, r2 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r7, _0800513C @ =gSpriteTransformScaleY + ldr r7, _sa2_0800513C @ =gSpriteTransformScaleY ldrh r1, [r7] adds r2, r0, #0 muls r2, r1, r2 @@ -355,13 +355,13 @@ _08004F6A: ldrsh r2, [r6, r7] @ r2 = transform.y muls r0, r2, r0 @ r0 = transform.y * us.unk18[0][1] adds r1, r1, r0 @ r1 = r1 + r0 - ldr r0, _08005144 @ =gUnknown_0300194C + ldr r0, _sa2_08005144 @ =gSpriteTransformX movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 - adds r1, r1, r0 @ r1 += Q(gUnknown_0300194C) + adds r1, r1, r0 @ r1 += Q(gSpriteTransformX) asrs r1, r1, #8 @ r1 = I(r1) - str r1, [sp, #0x10] @ us.posX = I(transform.x * us.unk18[0][0] + transform.y * us.unk18[0][1] + Q(gUnknown_0300194C)) + str r1, [sp, #0x10] @ us.posX = I(transform.x * us.unk18[0][0] + transform.y * us.unk18[0][1] + Q(gSpriteTransformX)) ldrh r0, [r5] @ r0 = us.unk18[1][0] lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -375,35 +375,35 @@ _08004F6A: ldrsh r2, [r6, r4] @ r2 = transform.y muls r0, r2, r0 @ r0 = transform.y * us.unk18[1][1] adds r1, r1, r0 @ r1 = r1 + r0 - ldr r0, _08005148 @ =gUnknown_03002820 + ldr r0, _sa2_08005148 @ =gSpriteTransformY movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #8 adds r1, r1, r0 asrs r1, r1, #8 - str r1, [sp, #0x14] @ us.posY = I(transform.x * us.unk18[1][0] + transform.y * us.unk18[1][1] + Q(gUnknown_0300194C)); + str r1, [sp, #0x14] @ us.posY = I(transform.x * us.unk18[1][0] + transform.y * us.unk18[1][1] + Q(gSpriteTransformX)); ldr r6, [sp, #0x30] @ r6 = &us.unk0[1] ldr r7, [sp, #0x34] @ r7 = &us.unk0[2] ldr r0, [sp, #0x38] @ r0 = &us.unk0[3] mov r8, r0 @ r8 = r0 ldr r1, [sp, #0x2c] @ r1 = transform->width cmp r1, #0 - ble _0800514C + ble _sa2_0800514C mov r2, sb @ r2 = sb = sprDims ldrh r4, [r2, #8] @ r4 = offsetX ldrh r2, [r2, #4] @ r2 = width - b _0800515A + b _sa2_0800515A .align 2, 0 -_08005128: .4byte gOamBuffer + 0x6 -_0800512C: .4byte gSpriteTransformRotation -_08005130: .4byte 0x000003FF -_08005134: .4byte gSineTable -_08005138: .4byte gSpriteTransformScaleX -_0800513C: .4byte gSpriteTransformScaleY -_08005140: .4byte gUnknown_03005398 -_08005144: .4byte gUnknown_0300194C -_08005148: .4byte gUnknown_03002820 -_0800514C: +_sa2_08005128: .4byte gOamBuffer + 0x6 +_sa2_0800512C: .4byte gSpriteTransformRotation +_sa2_08005130: .4byte 0x000003FF +_sa2_08005134: .4byte gSineTable +_sa2_08005138: .4byte gSpriteTransformScaleX +_sa2_0800513C: .4byte gSpriteTransformScaleY +_sa2_08005140: .4byte gSpriteTransformScaleUnknown +_sa2_08005144: .4byte gSpriteTransformX +_sa2_08005148: .4byte gSpriteTransformY +_sa2_0800514C: mov r3, sb @ r3 = sb = sprDims ldrh r1, [r3, #4] ldrh r0, [r3, #8] @@ -411,17 +411,17 @@ _0800514C: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 @ r4 = offsetX adds r2, r1, #0 @ r2 = width -_0800515A: +_sa2_0800515A: mov r5, sp ldrh r5, [r5, #0x3c] @ r5 = (u16)transform->height lsls r0, r5, #0x10 cmp r0, #0 - ble _0800516C + ble _sa2_0800516C mov r0, sb @ r0 = sb = sprDims ldrh r3, [r0, #0xa] @ r3 = offsetY = sprDims->offsetY ldrh r5, [r0, #6] @ r5 = height = sprDims->height - b _0800517A -_0800516C: + b _sa2_0800517A +_sa2_0800516C: mov r3, sb @ r3 = sb = sprDims ldrh r1, [r3, #6] ldrh r0, [r3, #0xa] @@ -429,7 +429,7 @@ _0800516C: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 @ r3 = offsetY = sprDims->height - sprDims->offsetY adds r5, r1, #0 @ r5 = height = sprDims->height -_0800517A: +_sa2_0800517A: mov r0, sp @ r0 = sp = us ldrh r0, [r0] lsls r0, r0, #0x10 @@ -477,7 +477,7 @@ _0800517A: strh r0, [r5, #0x16] @ sprite.x = us.posX ldr r0, [sp, #0x14] strh r0, [r5, #0x18] @ sprite.y = us.posY -_080051D8: +_sa2_080051D8: add sp, #0x40 pop {r3, r4, r5} mov r8, r3 diff --git a/asm/non_matching/engine/sa2__unused_sub_8005C54.inc b/asm/non_matching/engine/sa2__unused_sub_8005C54.inc index b8484ebc17..08521da053 100644 --- a/asm/non_matching/engine/sa2__unused_sub_8005C54.inc +++ b/asm/non_matching/engine/sa2__unused_sub_8005C54.inc @@ -47,22 +47,22 @@ lsrs r5, r0, #0x10 asrs r2, r0, #0x10 cmp r2, #0 - beq _08005CB6 + beq _sa2_08005CB6 movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 - bne _08005CC8 -_08005CB6: - ldr r0, _08005CC4 @ =gFlags + bne _sa2_08005CC8 +_sa2_08005CB6: + ldr r0, _sa2_08005CC4 @ =gFlags ldr r1, [r0] movs r2, #5 rsbs r2, r2, #0 ands r1, r2 str r1, [r0] - b _08005F9E + b _sa2_08005F9E .align 2, 0 -_08005CC4: .4byte gFlags -_08005CC8: +_sa2_08005CC4: .4byte gFlags +_sa2_08005CC8: ldr r3, [sp, #0xc] mov r4, ip subs r0, r3, r4 @@ -73,7 +73,7 @@ _08005CC8: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r2, #0 - bge _08005D08 + bge _sa2_08005D08 movs r0, #0xff str r0, [sp, #0x14] rsbs r0, r2, #0 @@ -95,7 +95,7 @@ _08005CC8: lsls r0, r3, #0x10 eors r0, r1 lsrs r1, r0, #0x10 -_08005D08: +_sa2_08005D08: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r1, r5, #0x10 @@ -118,7 +118,7 @@ _08005D08: lsls r5, r5, #0x18 str r5, [sp, #0x24] cmp r0, r2 - bge _08005D7C + bge _sa2_08005D7C mov r3, sl lsls r0, r7, #8 muls r0, r4, r0 @@ -129,17 +129,17 @@ _08005D08: lsrs r0, r0, #0x18 mov sl, r0 lsls r1, r3, #2 - ldr r7, _08005E28 @ =gBgOffsetsHBlankPrimary + ldr r7, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary ldr r0, [r7] adds r4, r0, r1 mov r0, ip subs r5, r0, r3 - ldr r1, _08005E2C @ =0x000001FF + ldr r1, _sa2_08005E2C @ =0x000001FF adds r0, r1, #0 ands r5, r0 cmp r3, sl - bhs _08005D7C -_08005D5E: + bhs _sa2_08005D7C +_sa2_08005D5E: mov r2, sp ldrh r2, [r2, #0x10] strh r2, [r4] @@ -154,8 +154,8 @@ _08005D5E: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, sl - blo _08005D5E -_08005D7C: + blo _sa2_08005D5E +_sa2_08005D7C: mov r3, r8 asrs r2, r3, #0x10 ldr r4, [sp, #0x20] @@ -171,7 +171,7 @@ _08005D7C: mov sb, r7 ldr r3, [sp, #0x28] cmp r0, r3 - bge _08005DE4 + bge _sa2_08005DE4 ldr r7, [sp, #8] lsls r0, r1, #8 muls r0, r2, r0 @@ -183,17 +183,17 @@ _08005D7C: str r0, [sp, #8] adds r3, r0, #0 lsls r1, r0, #2 - ldr r4, _08005E28 @ =gBgOffsetsHBlankPrimary + ldr r4, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary ldr r0, [r4] adds r4, r0, r1 ldr r0, [sp, #4] subs r5, r0, r3 - ldr r1, _08005E2C @ =0x000001FF + ldr r1, _sa2_08005E2C @ =0x000001FF adds r0, r1, #0 ands r5, r0 cmp r3, r7 - bhs _08005DE4 -_08005DC6: + bhs _sa2_08005DE4 +_sa2_08005DC6: mov r2, sp ldrh r2, [r2, #0x10] strh r2, [r4] @@ -208,21 +208,21 @@ _08005DC6: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, r7 - blo _08005DC6 -_08005DE4: - ldr r3, _08005E30 @ =gFlags + blo _sa2_08005DC6 +_sa2_08005DE4: + ldr r3, _sa2_08005E30 @ =gFlags ldr r0, [r3] movs r1, #4 orrs r0, r1 str r0, [r3] ldr r4, [sp, #0x1c] - ldr r5, _08005E34 @ =0x04000010 + ldr r5, _sa2_08005E34 @ =0x04000010 adds r0, r4, r5 - ldr r7, _08005E38 @ =gHBlankCopyTarget + ldr r7, _sa2_08005E38 @ =gHBlankCopyTarget str r0, [r7] - ldr r0, _08005E3C @ =gHBlankCopySize + ldr r0, _sa2_08005E3C @ =gHBlankCopySize strb r1, [r0] - ldr r1, _08005E28 @ =gBgOffsetsHBlankPrimary + ldr r1, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary ldr r0, [r1] mov r2, sb adds r4, r0, r2 @@ -238,24 +238,24 @@ _08005DE4: movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - beq _08005E40 + beq _sa2_08005E40 ldr r1, [sp, #0xc] subs r0, r1, r2 - b _08005E44 + b _sa2_08005E44 .align 2, 0 -_08005E28: .4byte gBgOffsetsHBlankPrimary -_08005E2C: .4byte 0x000001FF -_08005E30: .4byte gFlags -_08005E34: .4byte 0x04000010 -_08005E38: .4byte gHBlankCopyTarget -_08005E3C: .4byte gHBlankCopySize -_08005E40: +_sa2_08005E28: .4byte gBgOffsetsHBlankPrimary +_sa2_08005E2C: .4byte 0x000001FF +_sa2_08005E30: .4byte gFlags +_sa2_08005E34: .4byte 0x04000010 +_sa2_08005E38: .4byte gHBlankCopyTarget +_sa2_08005E3C: .4byte gHBlankCopySize +_sa2_08005E40: ldr r1, [sp, #0xc] adds r0, r1, r2 -_08005E44: +_sa2_08005E44: mov r3, sl subs r5, r0, r3 - ldr r7, _08005EEC @ =0x000001FF + ldr r7, _sa2_08005EEC @ =0x000001FF adds r0, r7, #0 ands r5, r0 ldr r0, [sp, #0x20] @@ -267,7 +267,7 @@ _08005E44: lsrs r6, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 - beq _08005E72 + beq _sa2_08005E72 ldr r2, [sp, #0x24] asrs r0, r2, #0x18 subs r0, r5, r0 @@ -276,24 +276,24 @@ _08005E44: subs r0, r7, r1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 -_08005E72: +_sa2_08005E72: movs r3, #0x80 lsls r3, r3, #1 mov r8, r3 cmp r7, r8 - ble _08005EF0 + ble _sa2_08005EF0 mov r3, sl ldr r0, [sp, #8] cmp r3, r0 - blo _08005E86 - b _08005F9E -_08005E86: + blo _sa2_08005E86 + b _sa2_08005F9E +_sa2_08005E86: ldr r1, [sp, #0x20] mov sl, r1 mov sb, r7 - ldr r2, _08005EEC @ =0x000001FF + ldr r2, _sa2_08005EEC @ =0x000001FF mov ip, r2 -_08005E90: +_sa2_08005E90: mov r7, sp ldrh r7, [r7, #0x10] strh r7, [r4] @@ -316,10 +316,10 @@ _08005E90: adds r3, #1 mov r8, r3 cmp r0, sb - ble _08005EDA + ble _sa2_08005EDA ldr r0, [sp, #0x24] asrs r3, r0, #0x18 -_08005EC2: +_sa2_08005EC2: adds r0, r5, r3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 @@ -331,8 +331,8 @@ _08005EC2: lsls r2, r6, #0x10 asrs r0, r2, #0x10 cmp r0, r1 - bgt _08005EC2 -_08005EDA: + bgt _sa2_08005EC2 +_sa2_08005EDA: mov r1, ip ands r5, r1 mov r2, r8 @@ -340,11 +340,11 @@ _08005EDA: lsrs r3, r0, #0x18 ldr r7, [sp, #8] cmp r3, r7 - blo _08005E90 - b _08005F9E + blo _sa2_08005E90 + b _sa2_08005F9E .align 2, 0 -_08005EEC: .4byte 0x000001FF -_08005EF0: +_sa2_08005EEC: .4byte 0x000001FF +_sa2_08005EF0: movs r0, #0x80 lsls r0, r0, #9 adds r1, r7, #0 @@ -367,7 +367,7 @@ _08005EF0: movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - bne _08005F30 + bne _sa2_08005F30 mov r1, sb lsls r0, r1, #0x10 movs r3, #0x80 @@ -376,18 +376,18 @@ _08005EF0: rsbs r0, r0, #0 lsrs r0, r0, #0x10 mov sb, r0 -_08005F30: +_sa2_08005F30: mov r3, sl ldr r0, [sp, #8] cmp r3, r0 - bhs _08005F9E + bhs _sa2_08005F9E lsls r0, r2, #0x10 asrs r0, r0, #0x10 str r0, [sp, #0x18] ldr r1, [sp, #0x20] mov ip, r1 mov sl, r7 -_08005F44: +_sa2_08005F44: mov r2, sp ldrh r2, [r2, #0x10] strh r2, [r4] @@ -410,10 +410,10 @@ _08005F44: adds r3, #1 mov r8, r3 cmp r0, sl - ble _08005F8E + ble _sa2_08005F8E ldr r0, [sp, #0x24] asrs r3, r0, #0x18 -_08005F76: +_sa2_08005F76: adds r0, r5, r3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 @@ -425,17 +425,17 @@ _08005F76: lsls r2, r6, #0x10 asrs r0, r2, #0x10 cmp r0, r1 - bgt _08005F76 -_08005F8E: - ldr r1, _08005FB0 @ =0x000001FF + bgt _sa2_08005F76 +_sa2_08005F8E: + ldr r1, _sa2_08005FB0 @ =0x000001FF ands r5, r1 mov r2, r8 lsls r0, r2, #0x18 lsrs r3, r0, #0x18 ldr r7, [sp, #8] cmp r3, r7 - blo _08005F44 -_08005F9E: + blo _sa2_08005F44 +_sa2_08005F9E: add sp, #0x2c pop {r3, r4, r5} mov r8, r3 @@ -445,7 +445,7 @@ _08005F9E: pop {r0} bx r0 .align 2, 0 -_08005FB0: .4byte 0x000001FF +_sa2_08005FB0: .4byte 0x000001FF @ Unused diff --git a/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc b/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc index a228931ca4..0dfc260be0 100644 --- a/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc +++ b/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc @@ -19,55 +19,55 @@ lsrs r2, r3, #0x18 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 - ldr r1, _08005FF8 @ =gFlags + ldr r1, _sa2_08005FF8 @ =gFlags ldr r0, [r1] movs r7, #4 orrs r0, r7 str r0, [r1] cmp r6, #1 - bls _08006010 - ldr r1, _08005FFC @ =gHBlankCopySize + bls _sa2_08006010 + ldr r1, _sa2_08005FFC @ =gHBlankCopySize strb r7, [r1] movs r0, #1 ands r0, r6 cmp r0, #0 - beq _08006004 - ldr r0, _08006000 @ =gBgOffsetsHBlankPrimary + beq _sa2_08006004 + ldr r0, _sa2_08006000 @ =gBgOffsetsHBlankPrimary ldr r0, [r0] adds r3, r0, #2 - b _08006038 + b _sa2_08006038 .align 2, 0 -_08005FF8: .4byte gFlags -_08005FFC: .4byte gHBlankCopySize -_08006000: .4byte gBgOffsetsHBlankPrimary -_08006004: - ldr r0, _0800600C @ =gBgOffsetsHBlankPrimary +_sa2_08005FF8: .4byte gFlags +_sa2_08005FFC: .4byte gHBlankCopySize +_sa2_08006000: .4byte gBgOffsetsHBlankPrimary +_sa2_08006004: + ldr r0, _sa2_0800600C @ =gBgOffsetsHBlankPrimary ldr r3, [r0] - b _08006038 + b _sa2_08006038 .align 2, 0 -_0800600C: .4byte gBgOffsetsHBlankPrimary -_08006010: - ldr r1, _08006028 @ =gHBlankCopySize +_sa2_0800600C: .4byte gBgOffsetsHBlankPrimary +_sa2_08006010: + ldr r1, _sa2_08006028 @ =gHBlankCopySize movs r0, #2 strb r0, [r1] - ldr r0, _0800602C @ =gBgOffsetsHBlankPrimary + ldr r0, _sa2_0800602C @ =gBgOffsetsHBlankPrimary ldr r3, [r0] movs r0, #1 ands r0, r6 cmp r0, #0 - beq _08006038 - ldr r1, _08006030 @ =gHBlankCopyTarget - ldr r0, _08006034 @ =0x04000042 - b _0800603C + beq _sa2_08006038 + ldr r1, _sa2_08006030 @ =gHBlankCopyTarget + ldr r0, _sa2_08006034 @ =0x04000042 + b _sa2_0800603C .align 2, 0 -_08006028: .4byte gHBlankCopySize -_0800602C: .4byte gBgOffsetsHBlankPrimary -_08006030: .4byte gHBlankCopyTarget -_08006034: .4byte 0x04000042 -_08006038: - ldr r1, _080060A0 @ =gHBlankCopyTarget - ldr r0, _080060A4 @ =0x04000040 -_0800603C: +_sa2_08006028: .4byte gHBlankCopySize +_sa2_0800602C: .4byte gBgOffsetsHBlankPrimary +_sa2_08006030: .4byte gHBlankCopyTarget +_sa2_08006034: .4byte 0x04000042 +_sa2_08006038: + ldr r1, _sa2_080060A0 @ =gHBlankCopyTarget + ldr r0, _sa2_080060A4 @ =0x04000040 +_sa2_0800603C: str r0, [r1] subs r1, r2, r5 mov r2, sl @@ -78,9 +78,9 @@ _0800603C: asrs r2, r7, #0x10 adds r0, r2, #0 cmp r2, #0 - bge _08006054 + bge _sa2_08006054 rsbs r0, r2, #0 -_08006054: +_sa2_08006054: lsls r0, r0, #0x11 lsrs r0, r0, #0x10 mov r8, r0 @@ -89,13 +89,13 @@ _08006054: adds r4, r1, #0 mov sb, r0 cmp r1, #0 - bge _08006068 + bge _sa2_08006068 rsbs r4, r1, #0 -_08006068: +_sa2_08006068: lsls r0, r4, #0x11 lsrs r0, r0, #0x10 mov ip, r0 - ldr r4, _080060A8 @ =gHBlankCopySize + ldr r4, _sa2_080060A8 @ =gHBlankCopySize ldrb r0, [r4] mov r4, sl muls r4, r0, r4 @@ -103,30 +103,30 @@ _08006068: adds r3, r3, r0 adds r6, r2, #0 cmp r2, #0 - bge _08006082 + bge _sa2_08006082 rsbs r6, r2, #0 -_08006082: +_sa2_08006082: adds r0, r1, #0 cmp r1, #0 - bge _0800608A + bge _sa2_0800608A rsbs r0, r1, #0 -_0800608A: +_sa2_0800608A: cmp r6, r0 - ble _0800615C + ble _sa2_0800615C rsbs r0, r2, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r2, #0 - ble _080060FC + ble _sa2_080060FC strb r5, [r3, #1] movs r2, #0 adds r6, r7, #0 - b _080060E4 + b _sa2_080060E4 .align 2, 0 -_080060A0: .4byte gHBlankCopyTarget -_080060A4: .4byte 0x04000040 -_080060A8: .4byte gHBlankCopySize -_080060AC: +_sa2_080060A0: .4byte gHBlankCopyTarget +_sa2_080060A4: .4byte 0x04000040 +_sa2_080060A8: .4byte gHBlankCopySize +_sa2_080060AC: adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 @@ -140,7 +140,7 @@ _080060AC: lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 - blt _080060DE + blt _sa2_080060DE mov r4, r8 lsls r0, r4, #0x10 asrs r0, r0, #0x10 @@ -148,35 +148,35 @@ _080060AC: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 strb r5, [r3] - ldr r1, _080060F8 @ =gHBlankCopySize + ldr r1, _sa2_080060F8 @ =gHBlankCopySize ldrb r0, [r1] adds r3, r3, r0 strb r5, [r3, #1] -_080060DE: +_sa2_080060DE: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_080060E4: +_sa2_080060E4: lsls r0, r2, #0x10 asrs r2, r0, #0x10 asrs r0, r6, #0x10 cmp r0, #0 - bge _080060F0 + bge _sa2_080060F0 rsbs r0, r0, #0 -_080060F0: +_sa2_080060F0: cmp r2, r0 - blt _080060AC + blt _sa2_080060AC strb r5, [r3] - b _08006214 + b _sa2_08006214 .align 2, 0 -_080060F8: .4byte gHBlankCopySize -_080060FC: +_sa2_080060F8: .4byte gHBlankCopySize +_sa2_080060FC: strb r5, [r3] adds r3, #1 movs r2, #0 adds r6, r7, #0 - b _08006142 -_08006106: + b _sa2_08006142 +_sa2_08006106: subs r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 @@ -190,7 +190,7 @@ _08006106: lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 - blt _0800613C + blt _sa2_0800613C mov r4, r8 lsls r0, r4, #0x10 asrs r0, r0, #0x10 @@ -198,36 +198,36 @@ _08006106: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 strb r5, [r3] - ldr r1, _08006158 @ =gHBlankCopySize + ldr r1, _sa2_08006158 @ =gHBlankCopySize ldrb r0, [r1] adds r0, r0, r3 subs r3, r0, #1 strb r5, [r3] adds r3, #1 -_0800613C: +_sa2_0800613C: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_08006142: +_sa2_08006142: lsls r0, r2, #0x10 asrs r2, r0, #0x10 asrs r0, r6, #0x10 cmp r0, #0 - bge _0800614E + bge _sa2_0800614E rsbs r0, r0, #0 -_0800614E: +_sa2_0800614E: cmp r2, r0 - blt _08006106 + blt _sa2_08006106 strb r5, [r3] - b _08006214 + b _sa2_08006214 .align 2, 0 -_08006158: .4byte gHBlankCopySize -_0800615C: +_sa2_08006158: .4byte gHBlankCopySize +_sa2_0800615C: rsbs r0, r1, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r2, #0 - ble _080061C0 + ble _sa2_080061C0 movs r2, #0 mov r1, r8 lsls r0, r1, #0x10 @@ -236,13 +236,13 @@ _0800615C: mov r1, ip lsls r0, r1, #0x10 asrs r7, r0, #0x10 - b _080061A8 -_08006178: + b _sa2_080061A8 +_sa2_08006178: adds r2, r5, #1 strb r2, [r3] adds r3, #1 strb r5, [r3] - ldr r1, _080061BC @ =gHBlankCopySize + ldr r1, _sa2_080061BC @ =gHBlankCopySize ldrb r0, [r1] adds r0, r0, r3 subs r3, r0, #1 @@ -253,31 +253,31 @@ _08006178: lsrs r4, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 - blt _080061A2 + blt _sa2_080061A2 lsls r0, r2, #0x18 lsrs r5, r0, #0x18 subs r0, r1, r7 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 -_080061A2: +_sa2_080061A2: adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_080061A8: +_sa2_080061A8: lsls r0, r2, #0x10 asrs r6, r0, #0x10 mov r2, sb asrs r0, r2, #0x10 cmp r0, #0 - bge _080061B6 + bge _sa2_080061B6 rsbs r0, r0, #0 -_080061B6: +_sa2_080061B6: cmp r6, r0 - blt _08006178 - b _08006214 + blt _sa2_08006178 + b _sa2_08006214 .align 2, 0 -_080061BC: .4byte gHBlankCopySize -_080061C0: +_sa2_080061BC: .4byte gHBlankCopySize +_sa2_080061C0: movs r2, #0 mov r1, r8 lsls r0, r1, #0x10 @@ -285,13 +285,13 @@ _080061C0: mov r1, ip lsls r0, r1, #0x10 asrs r6, r0, #0x10 - b _08006202 -_080061D0: + b _sa2_08006202 +_sa2_080061D0: adds r0, r5, #1 strb r0, [r3] adds r3, #1 strb r5, [r3] - ldr r1, _08006224 @ =gHBlankCopySize + ldr r1, _sa2_08006224 @ =gHBlankCopySize ldrb r0, [r1] adds r0, r0, r3 subs r3, r0, #1 @@ -302,29 +302,29 @@ _080061D0: lsrs r4, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 - blt _080061FC + blt _sa2_080061FC subs r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 subs r0, r1, r6 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 -_080061FC: +_sa2_080061FC: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_08006202: +_sa2_08006202: lsls r0, r2, #0x10 asrs r2, r0, #0x10 mov r1, sb asrs r0, r1, #0x10 cmp r0, #0 - bge _08006210 + bge _sa2_08006210 rsbs r0, r0, #0 -_08006210: +_sa2_08006210: cmp r2, r0 - blt _080061D0 -_08006214: + blt _sa2_080061D0 +_sa2_08006214: pop {r3, r4, r5} mov r8, r3 mov sb, r4 @@ -333,6 +333,6 @@ _08006214: pop {r0} bx r0 .align 2, 0 -_08006224: .4byte gHBlankCopySize +_sa2_08006224: .4byte gHBlankCopySize .syntax divided diff --git a/asm/non_matching/engine/sa2__unused_sub_800672C.inc b/asm/non_matching/engine/sa2__unused_sub_800672C.inc index 4da223bb63..44d267784f 100644 --- a/asm/non_matching/engine/sa2__unused_sub_800672C.inc +++ b/asm/non_matching/engine/sa2__unused_sub_800672C.inc @@ -9,55 +9,55 @@ mov ip, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 - ldr r1, _08006760 @ =gFlags + ldr r1, _sa2_08006760 @ =gFlags ldr r0, [r1] movs r3, #4 orrs r0, r3 str r0, [r1] cmp r2, #1 - bls _08006778 - ldr r1, _08006764 @ =gHBlankCopySize + bls _sa2_08006778 + ldr r1, _sa2_08006764 @ =gHBlankCopySize strb r3, [r1] movs r0, #1 ands r0, r2 cmp r0, #0 - beq _0800676C - ldr r0, _08006768 @ =gBgOffsetsHBlankPrimary + beq _sa2_0800676C + ldr r0, _sa2_08006768 @ =gBgOffsetsHBlankPrimary ldr r0, [r0] adds r7, r0, #2 - b _080067A0 + b _sa2_080067A0 .align 2, 0 -_08006760: .4byte gFlags -_08006764: .4byte gHBlankCopySize -_08006768: .4byte gBgOffsetsHBlankPrimary -_0800676C: - ldr r0, _08006774 @ =gBgOffsetsHBlankPrimary +_sa2_08006760: .4byte gFlags +_sa2_08006764: .4byte gHBlankCopySize +_sa2_08006768: .4byte gBgOffsetsHBlankPrimary +_sa2_0800676C: + ldr r0, _sa2_08006774 @ =gBgOffsetsHBlankPrimary ldr r7, [r0] - b _080067A0 + b _sa2_080067A0 .align 2, 0 -_08006774: .4byte gBgOffsetsHBlankPrimary -_08006778: - ldr r1, _08006790 @ =gHBlankCopySize +_sa2_08006774: .4byte gBgOffsetsHBlankPrimary +_sa2_08006778: + ldr r1, _sa2_08006790 @ =gHBlankCopySize movs r0, #2 strb r0, [r1] - ldr r0, _08006794 @ =gBgOffsetsHBlankPrimary + ldr r0, _sa2_08006794 @ =gBgOffsetsHBlankPrimary ldr r7, [r0] movs r0, #1 ands r0, r2 cmp r0, #0 - beq _080067A0 - ldr r1, _08006798 @ =gHBlankCopyTarget - ldr r0, _0800679C @ =0x04000042 - b _080067A4 + beq _sa2_080067A0 + ldr r1, _sa2_08006798 @ =gHBlankCopyTarget + ldr r0, _sa2_0800679C @ =0x04000042 + b _sa2_080067A4 .align 2, 0 -_08006790: .4byte gHBlankCopySize -_08006794: .4byte gBgOffsetsHBlankPrimary -_08006798: .4byte gHBlankCopyTarget -_0800679C: .4byte 0x04000042 -_080067A0: - ldr r1, _080068A4 @ =gHBlankCopyTarget - ldr r0, _080068A8 @ =0x04000040 -_080067A4: +_sa2_08006790: .4byte gHBlankCopySize +_sa2_08006794: .4byte gBgOffsetsHBlankPrimary +_sa2_08006798: .4byte gHBlankCopyTarget +_sa2_0800679C: .4byte 0x04000042 +_sa2_080067A0: + ldr r1, _sa2_080068A4 @ =gHBlankCopyTarget + ldr r0, _sa2_080068A8 @ =0x04000040 +_sa2_080067A4: str r0, [r1] mov r2, sp mov r1, ip @@ -80,9 +80,9 @@ _080067A4: adds r2, #8 str r2, [sp, #0x24] cmp r0, #0 - bge _080067D4 + bge _sa2_080067D4 rsbs r0, r0, #0 -_080067D4: +_sa2_080067D4: lsls r0, r0, #1 ldr r5, [sp, #0x24] strh r0, [r5] @@ -92,9 +92,9 @@ _080067D4: adds r1, #0x10 str r1, [sp, #0x28] cmp r0, #0 - bge _080067EA + bge _sa2_080067EA rsbs r0, r0, #0 -_080067EA: +_sa2_080067EA: lsls r0, r0, #1 ldr r5, [sp, #0x28] strh r0, [r5] @@ -110,9 +110,9 @@ _080067EA: movs r3, #2 ldrsh r0, [r0, r3] cmp r0, #0 - bge _0800680C + bge _sa2_0800680C rsbs r0, r0, #0 -_0800680C: +_sa2_0800680C: lsls r0, r0, #1 ldr r5, [sp, #0x24] strh r0, [r5, #2] @@ -120,9 +120,9 @@ _0800680C: movs r2, #6 ldrsh r0, [r1, r2] cmp r0, #0 - bge _0800681E + bge _sa2_0800681E rsbs r0, r0, #0 -_0800681E: +_sa2_0800681E: lsls r0, r0, #1 ldr r3, [sp, #0x28] strh r0, [r3, #2] @@ -131,7 +131,7 @@ _0800681E: ldrb r0, [r5] strb r0, [r2, #1] strb r0, [r2] - ldr r1, _080068AC @ =gHBlankCopySize + ldr r1, _sa2_080068AC @ =gHBlankCopySize ldrb r0, [r1] muls r0, r4, r0 adds r7, r7, r0 @@ -148,14 +148,14 @@ _0800681E: adds r6, r2, #0 mov sb, r1 cmp r0, r3 - bls _08006854 + bls _sa2_08006854 adds r0, r3, #0 -_08006854: +_sa2_08006854: str r0, [sp, #0x18] cmp r4, r0 - bhs _0800693A + bhs _sa2_0800693A mov r8, sb -_0800685C: +_sa2_0800685C: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -174,16 +174,16 @@ _0800685C: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _080068D6 + blt _sa2_080068D6 str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_08006888: +_sa2_08006888: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _080068B0 + ble _sa2_080068B0 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -192,48 +192,48 @@ _08006888: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _080068CC + b _sa2_080068CC .align 2, 0 -_080068A4: .4byte gHBlankCopyTarget -_080068A8: .4byte 0x04000040 -_080068AC: .4byte gHBlankCopySize -_080068B0: +_sa2_080068A4: .4byte gHBlankCopyTarget +_sa2_080068A8: .4byte 0x04000040 +_sa2_080068AC: .4byte gHBlankCopySize +_sa2_080068B0: ldrb r0, [r6] cmp r0, #0 - beq _080068BA + beq _sa2_080068BA subs r0, #1 strb r0, [r6] -_080068BA: +_sa2_080068BA: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _080068CC + blt _sa2_080068CC ldrb r0, [r6] strb r0, [r7, #1] -_080068CC: +_sa2_080068CC: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _08006888 -_080068D6: + bge _sa2_08006888 +_sa2_080068D6: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006928 + blt _sa2_08006928 adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_080068E6: +_sa2_080068E6: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _0800690C + ble _sa2_0800690C ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -243,30 +243,30 @@ _080068E6: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _0800691E + blt _sa2_0800691E ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _0800691E -_0800690C: + b _sa2_0800691E +_sa2_0800690C: ldrb r0, [r3, #1] cmp r0, #0 - beq _08006916 + beq _sa2_08006916 subs r0, #1 strb r0, [r6, #1] -_08006916: +_sa2_08006916: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_0800691E: +_sa2_0800691E: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _080068E6 -_08006928: - ldr r2, _080069EC @ =gHBlankCopySize + bge _sa2_080068E6 +_sa2_08006928: + ldr r2, _sa2_080069EC @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -274,20 +274,20 @@ _08006928: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _0800685C -_0800693A: + blo _sa2_0800685C +_sa2_0800693A: mov r1, ip ldrb r0, [r1, #3] ldrb r2, [r1, #5] cmp r0, r2 - bne _08006946 - b _08006C30 -_08006946: + bne _sa2_08006946 + b _sa2_08006C30 +_sa2_08006946: ldr r3, [sp, #0x18] cmp r3, r0 - beq _0800694E - b _08006AB4 -_0800694E: + beq _sa2_0800694E + b _sa2_08006AB4 +_sa2_0800694E: mov r2, sp ldrb r0, [r1, #6] ldrb r1, [r1, #2] @@ -302,9 +302,9 @@ _0800694E: movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - bge _0800696E + bge _sa2_0800696E rsbs r0, r0, #0 -_0800696E: +_sa2_0800696E: lsls r0, r0, #1 ldr r2, [sp, #0x24] strh r0, [r2] @@ -312,9 +312,9 @@ _0800696E: movs r5, #4 ldrsh r0, [r3, r5] cmp r0, #0 - bge _08006980 + bge _sa2_08006980 rsbs r0, r0, #0 -_08006980: +_sa2_08006980: lsls r0, r0, #1 ldr r1, [sp, #0x28] strh r0, [r1] @@ -329,11 +329,11 @@ _08006980: ldrb r0, [r5, #5] str r0, [sp, #0x18] cmp r4, r0 - bhs _08006A7A + bhs _sa2_08006A7A mov r8, sb ldr r1, [sp, #0x24] str r1, [sp, #0x1c] -_080069A4: +_sa2_080069A4: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -352,16 +352,16 @@ _080069A4: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _08006A16 + blt _sa2_08006A16 str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_080069D0: +_sa2_080069D0: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _080069F0 + ble _sa2_080069F0 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -370,46 +370,46 @@ _080069D0: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08006A0C + b _sa2_08006A0C .align 2, 0 -_080069EC: .4byte gHBlankCopySize -_080069F0: +_sa2_080069EC: .4byte gHBlankCopySize +_sa2_080069F0: ldrb r0, [r6] cmp r0, #0 - beq _080069FA + beq _sa2_080069FA subs r0, #1 strb r0, [r6] -_080069FA: +_sa2_080069FA: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006A0C + blt _sa2_08006A0C ldrb r0, [r6] strb r0, [r7, #1] -_08006A0C: +_sa2_08006A0C: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _080069D0 -_08006A16: + bge _sa2_080069D0 +_sa2_08006A16: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006A68 + blt _sa2_08006A68 adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_08006A26: +_sa2_08006A26: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08006A4C + ble _sa2_08006A4C ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -419,30 +419,30 @@ _08006A26: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006A5E + blt _sa2_08006A5E ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _08006A5E -_08006A4C: + b _sa2_08006A5E +_sa2_08006A4C: ldrb r0, [r3, #1] cmp r0, #0 - beq _08006A56 + beq _sa2_08006A56 subs r0, #1 strb r0, [r6, #1] -_08006A56: +_sa2_08006A56: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_08006A5E: +_sa2_08006A5E: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _08006A26 -_08006A68: - ldr r2, _08006AB0 @ =gHBlankCopySize + bge _sa2_08006A26 +_sa2_08006A68: + ldr r2, _sa2_08006AB0 @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -450,8 +450,8 @@ _08006A68: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _080069A4 -_08006A7A: + blo _sa2_080069A4 +_sa2_08006A7A: mov r2, sp mov r1, ip ldrb r0, [r1, #6] @@ -469,19 +469,19 @@ _08006A7A: ldrsh r0, [r0, r5] ldrb r3, [r2, #7] cmp r0, #0 - bge _08006AA0 + bge _sa2_08006AA0 rsbs r0, r0, #0 -_08006AA0: +_sa2_08006AA0: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1, #2] mov r2, sp movs r5, #6 ldrsh r0, [r2, r5] - b _08006CA4 + b _sa2_08006CA4 .align 2, 0 -_08006AB0: .4byte gHBlankCopySize -_08006AB4: +_sa2_08006AB0: .4byte gHBlankCopySize +_sa2_08006AB4: mov r2, sp mov r3, ip ldrb r0, [r3, #6] @@ -496,9 +496,9 @@ _08006AB4: movs r5, #2 ldrsh r0, [r0, r5] cmp r0, #0 - bge _08006AD4 + bge _sa2_08006AD4 rsbs r0, r0, #0 -_08006AD4: +_sa2_08006AD4: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1, #2] @@ -506,9 +506,9 @@ _08006AD4: movs r3, #6 ldrsh r0, [r2, r3] cmp r0, #0 - bge _08006AE6 + bge _sa2_08006AE6 rsbs r0, r0, #0 -_08006AE6: +_sa2_08006AE6: lsls r0, r0, #1 ldr r5, [sp, #0x28] strh r0, [r5, #2] @@ -523,11 +523,11 @@ _08006AE6: ldrb r5, [r3, #3] str r5, [sp, #0x18] cmp r4, r5 - bhs _08006BDC + bhs _sa2_08006BDC mov r8, sb ldr r0, [sp, #0x24] str r0, [sp, #0x20] -_08006B0A: +_sa2_08006B0A: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -546,16 +546,16 @@ _08006B0A: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _08006B78 + blt _sa2_08006B78 str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_08006B36: +_sa2_08006B36: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _08006B52 + ble _sa2_08006B52 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -564,44 +564,44 @@ _08006B36: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08006B6E -_08006B52: + b _sa2_08006B6E +_sa2_08006B52: ldrb r0, [r6] cmp r0, #0 - beq _08006B5C + beq _sa2_08006B5C subs r0, #1 strb r0, [r6] -_08006B5C: +_sa2_08006B5C: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006B6E + blt _sa2_08006B6E ldrb r0, [r6] strb r0, [r7, #1] -_08006B6E: +_sa2_08006B6E: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _08006B36 -_08006B78: + bge _sa2_08006B36 +_sa2_08006B78: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006BCA + blt _sa2_08006BCA adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_08006B88: +_sa2_08006B88: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08006BAE + ble _sa2_08006BAE ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -611,30 +611,30 @@ _08006B88: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006BC0 + blt _sa2_08006BC0 ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _08006BC0 -_08006BAE: + b _sa2_08006BC0 +_sa2_08006BAE: ldrb r0, [r3, #1] cmp r0, #0 - beq _08006BB8 + beq _sa2_08006BB8 subs r0, #1 strb r0, [r6, #1] -_08006BB8: +_sa2_08006BB8: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_08006BC0: +_sa2_08006BC0: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _08006B88 -_08006BCA: - ldr r2, _08006C2C @ =gHBlankCopySize + bge _sa2_08006B88 +_sa2_08006BCA: + ldr r2, _sa2_08006C2C @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -642,8 +642,8 @@ _08006BCA: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _08006B0A -_08006BDC: + blo _sa2_08006B0A +_sa2_08006BDC: mov r2, sp mov r1, ip ldrb r0, [r1, #6] @@ -661,9 +661,9 @@ _08006BDC: ldrsh r0, [r0, r5] ldrb r3, [r2, #7] cmp r0, #0 - bge _08006C02 + bge _sa2_08006C02 rsbs r0, r0, #0 -_08006C02: +_sa2_08006C02: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1] @@ -671,9 +671,9 @@ _08006C02: movs r5, #4 ldrsh r0, [r2, r5] cmp r0, #0 - bge _08006C14 + bge _sa2_08006C14 rsbs r0, r0, #0 -_08006C14: +_sa2_08006C14: lsls r0, r0, #1 ldr r1, [sp, #0x28] strh r0, [r1] @@ -685,10 +685,10 @@ _08006C14: mov r1, ip ldrb r0, [r1, #2] strb r0, [r6] - b _08006CC0 + b _sa2_08006CC0 .align 2, 0 -_08006C2C: .4byte gHBlankCopySize -_08006C30: +_sa2_08006C2C: .4byte gHBlankCopySize +_sa2_08006C30: mov r2, sp mov r3, ip ldrb r0, [r3, #6] @@ -707,18 +707,18 @@ _08006C30: mov r8, r1 ldrb r3, [r3, #7] cmp r0, #0 - bge _08006C58 + bge _sa2_08006C58 rsbs r0, r0, #0 -_08006C58: +_sa2_08006C58: lsls r0, r0, #1 ldr r5, [sp, #0x24] strh r0, [r5] movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0 - bge _08006C68 + bge _sa2_08006C68 rsbs r0, r0, #0 -_08006C68: +_sa2_08006C68: lsls r0, r0, #1 ldr r5, [sp, #0x28] strh r0, [r5] @@ -742,19 +742,19 @@ _08006C68: movs r5, #2 ldrsh r0, [r0, r5] cmp r0, #0 - bge _08006C9A + bge _sa2_08006C9A rsbs r0, r0, #0 -_08006C9A: +_sa2_08006C9A: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1, #2] movs r5, #2 ldrsh r0, [r2, r5] -_08006CA4: +_sa2_08006CA4: cmp r0, #0 - bge _08006CAA + bge _sa2_08006CAA rsbs r0, r0, #0 -_08006CAA: +_sa2_08006CAA: lsls r0, r0, #1 ldr r1, [sp, #0x28] strh r0, [r1, #2] @@ -766,14 +766,14 @@ _08006CAA: mov r1, ip ldrb r0, [r1, #4] strb r0, [r6, #1] -_08006CC0: +_sa2_08006CC0: str r3, [sp, #0x18] cmp r4, r3 - bhs _08006D9E + bhs _sa2_08006D9E mov r8, sb ldr r2, [sp, #0x24] mov ip, r2 -_08006CCC: +_sa2_08006CCC: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -792,16 +792,16 @@ _08006CCC: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _08006D3A + blt _sa2_08006D3A str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_08006CF8: +_sa2_08006CF8: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _08006D14 + ble _sa2_08006D14 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -810,44 +810,44 @@ _08006CF8: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08006D30 -_08006D14: + b _sa2_08006D30 +_sa2_08006D14: ldrb r0, [r6] cmp r0, #0 - beq _08006D1E + beq _sa2_08006D1E subs r0, #1 strb r0, [r6] -_08006D1E: +_sa2_08006D1E: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006D30 + blt _sa2_08006D30 ldrb r0, [r6] strb r0, [r7, #1] -_08006D30: +_sa2_08006D30: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _08006CF8 -_08006D3A: + bge _sa2_08006CF8 +_sa2_08006D3A: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006D8C + blt _sa2_08006D8C adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_08006D4A: +_sa2_08006D4A: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08006D70 + ble _sa2_08006D70 ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -857,30 +857,30 @@ _08006D4A: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08006D82 + blt _sa2_08006D82 ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _08006D82 -_08006D70: + b _sa2_08006D82 +_sa2_08006D70: ldrb r0, [r3, #1] cmp r0, #0 - beq _08006D7A + beq _sa2_08006D7A subs r0, #1 strb r0, [r6, #1] -_08006D7A: +_sa2_08006D7A: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_08006D82: +_sa2_08006D82: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _08006D4A -_08006D8C: - ldr r2, _08006DB0 @ =gHBlankCopySize + bge _sa2_08006D4A +_sa2_08006D8C: + ldr r2, _sa2_08006DB0 @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -888,8 +888,8 @@ _08006D8C: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _08006CCC -_08006D9E: + blo _sa2_08006CCC +_sa2_08006D9E: add sp, #0x30 pop {r3, r4, r5} mov r8, r3 @@ -899,7 +899,7 @@ _08006D9E: pop {r0} bx r0 .align 2, 0 -_08006DB0: .4byte gHBlankCopySize +_sa2_08006DB0: .4byte gHBlankCopySize @ Unused @ Very similar to sub_800724C diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc index 2e77e4d42a..fa59069be2 100644 --- a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc @@ -848,11 +848,11 @@ _08026B82: strh r1, [r0] ldr r0, _08026BD4 @ =sa2__gUnknown_03004D58 strh r1, [r0] - ldr r1, _08026BD8 @ =sa2__gUnknown_0300194C + ldr r1, _08026BD8 @ =gSpriteTransformX mov r3, r8 ldrh r0, [r3, #0x22] strh r0, [r1] - ldr r1, _08026BDC @ =sa2__gUnknown_03002820 + ldr r1, _08026BDC @ =gSpriteTransformY ldrh r0, [r3, #0x24] b _08026C0E .align 2, 0 @@ -862,8 +862,8 @@ _08026BC8: .4byte gSpriteTransformScaleX _08026BCC: .4byte gSpriteTransformScaleY _08026BD0: .4byte sa2__gUnknown_03002A8C _08026BD4: .4byte sa2__gUnknown_03004D58 -_08026BD8: .4byte sa2__gUnknown_0300194C -_08026BDC: .4byte sa2__gUnknown_03002820 +_08026BD8: .4byte gSpriteTransformX +_08026BDC: .4byte gSpriteTransformY _08026BE0: ldr r2, _08026C24 @ =gSpriteTransformRotation ldr r4, [sp, #0x10] @@ -882,11 +882,11 @@ _08026BE0: strh r3, [r0] ldr r0, _08026C38 @ =sa2__gUnknown_03004D58 strh r3, [r0] - ldr r1, _08026C3C @ =sa2__gUnknown_0300194C + ldr r1, _08026C3C @ =gSpriteTransformX mov r6, r8 ldrh r0, [r6, #0x22] strh r0, [r1] - ldr r1, _08026C40 @ =sa2__gUnknown_03002820 + ldr r1, _08026C40 @ =gSpriteTransformY ldrh r0, [r6, #0x24] _08026C0E: subs r0, #0x24 @@ -907,7 +907,7 @@ _08026C2C: .4byte gSpriteTransformScaleX _08026C30: .4byte gSpriteTransformScaleY _08026C34: .4byte sa2__gUnknown_03002A8C _08026C38: .4byte sa2__gUnknown_03004D58 -_08026C3C: .4byte sa2__gUnknown_0300194C -_08026C40: .4byte sa2__gUnknown_03002820 +_08026C3C: .4byte gSpriteTransformX +_08026C40: .4byte gSpriteTransformY .syntax divided diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc index 096698c341..91aa7c480c 100644 --- a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc @@ -41,14 +41,14 @@ lsls r0, r0, #4 adds r2, r4, #0 muls r2, r0, r2 - ldr r1, _0802727C @ =sa2__gUnknown_0300194C + ldr r1, _0802727C @ =gSpriteTransformX ldr r4, _08027280 @ =gCamera ldrh r0, [r4] ldrh r1, [r1] adds r0, r0, r1 asrs r3, r3, #0xe adds r3, r3, r0 - ldr r1, _08027284 @ =sa2__gUnknown_03002820 + ldr r1, _08027284 @ =gSpriteTransformY ldrh r0, [r4, #2] ldrh r1, [r1] adds r0, r0, r1 @@ -74,9 +74,9 @@ _0802726C: .4byte 0x03000030 _08027270: .4byte 0x03000050 _08027274: .4byte gSineTable _08027278: .4byte gSpriteTransformRotation -_0802727C: .4byte sa2__gUnknown_0300194C +_0802727C: .4byte gSpriteTransformX _08027280: .4byte gCamera -_08027284: .4byte sa2__gUnknown_03002820 +_08027284: .4byte gSpriteTransformY _08027288: .4byte 0x0300004C _0802728C: ldr r2, _080272C8 @ =0x0300004C diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc index 4c87d5f8a1..e7c27523db 100644 --- a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc @@ -67,7 +67,7 @@ _08027658: ldrsh r0, [r2, r3] lsls r2, r0, #1 adds r2, r2, r0 - ldr r3, _080276C8 @ =sa2__gUnknown_0300194C + ldr r3, _080276C8 @ =gSpriteTransformX ldr r4, _080276CC @ =gCamera ldrh r0, [r4] ldrh r3, [r3] @@ -76,7 +76,7 @@ _08027658: adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 - ldr r3, _080276D0 @ =sa2__gUnknown_03002820 + ldr r3, _080276D0 @ =gSpriteTransformY ldrh r0, [r4, #2] ldrh r3, [r3] adds r0, r0, r3 @@ -100,9 +100,9 @@ _08027658: .align 2, 0 _080276C0: .4byte gSpriteTransformRotation _080276C4: .4byte gSineTable -_080276C8: .4byte sa2__gUnknown_0300194C +_080276C8: .4byte gSpriteTransformX _080276CC: .4byte gCamera -_080276D0: .4byte sa2__gUnknown_03002820 +_080276D0: .4byte gSpriteTransformY _080276D4: mov r1, ip adds r1, #0x4c diff --git a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc index 362167012d..b9b7ab4cb4 100644 --- a/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc +++ b/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc @@ -70,7 +70,7 @@ _0802750C: ldrsh r0, [r2, r3] lsls r2, r0, #1 adds r2, r2, r0 - ldr r3, _080275A4 @ =sa2__gUnknown_0300194C + ldr r3, _080275A4 @ =gSpriteTransformX ldr r4, _080275A8 @ =gCamera ldrh r0, [r4] ldrh r3, [r3] @@ -79,7 +79,7 @@ _0802750C: adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r3, r1, #0x10 - ldr r1, _080275AC @ =sa2__gUnknown_03002820 + ldr r1, _080275AC @ =gSpriteTransformY ldrh r0, [r4, #2] ldrh r1, [r1] adds r0, r0, r1 @@ -120,9 +120,9 @@ _0802750C: .align 2, 0 _0802759C: .4byte gSineTable _080275A0: .4byte gSpriteTransformRotation -_080275A4: .4byte sa2__gUnknown_0300194C +_080275A4: .4byte gSpriteTransformX _080275A8: .4byte gCamera -_080275AC: .4byte sa2__gUnknown_03002820 +_080275AC: .4byte gSpriteTransformY _080275B0: .4byte gPlayer _080275B4: .4byte gNumSingleplayerCharacters _080275B8: .4byte gPartner diff --git a/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc b/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc index 736d26ed68..ade56524f0 100644 --- a/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc +++ b/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc @@ -62,10 +62,10 @@ bl CreateDustCloud movs r0, #0x8a bl m4aSongNumStart - ldr r1, _080918A4 @ =sa2__gUnknown_0300194C + ldr r1, _080918A4 @ =gSpriteTransformX ldrh r0, [r7, #0x16] strh r0, [r1] - ldr r2, _080918A8 @ =sa2__gUnknown_03002820 + ldr r2, _080918A8 @ =gSpriteTransformY ldrh r1, [r7, #0x18] strh r1, [r2] subs r0, r5, r0 @@ -85,8 +85,8 @@ _08091894: .4byte gCurTask _08091898: .4byte 0x0300000C _0809189C: .4byte gCamera _080918A0: .4byte gGameMode -_080918A4: .4byte sa2__gUnknown_0300194C -_080918A8: .4byte sa2__gUnknown_03002820 +_080918A4: .4byte gSpriteTransformX +_080918A8: .4byte gSpriteTransformY _080918AC: lsls r6, r6, #0x10 mov sl, r6 @ sl = worldX << 16 @@ -209,10 +209,10 @@ _0809197E: bl CreateDustCloud movs r0, #0x8a bl m4aSongNumStart - ldr r1, _080919F0 @ =sa2__gUnknown_0300194C + ldr r1, _080919F0 @ =gSpriteTransformX ldrh r0, [r7, #0x16] strh r0, [r1] - ldr r2, _080919F4 @ =sa2__gUnknown_03002820 + ldr r2, _080919F4 @ =gSpriteTransformY ldrh r1, [r7, #0x18] strh r1, [r2] ldr r3, [sp, #0xc] @@ -249,8 +249,8 @@ _080919DC: _080919E4: .4byte gPlayer _080919E8: .4byte gNumSingleplayerCharacters _080919EC: .4byte gPartner -_080919F0: .4byte sa2__gUnknown_0300194C -_080919F4: .4byte sa2__gUnknown_03002820 +_080919F0: .4byte gSpriteTransformX +_080919F4: .4byte gSpriteTransformY _080919F8: .4byte gGameMode _080919FC: adds r0, r7, #0 diff --git a/include/core.h b/include/core.h index 1c1f11d8fa..691d494555 100644 --- a/include/core.h +++ b/include/core.h @@ -327,7 +327,7 @@ extern IntrFunc gVBlankCallbacks[4]; extern u8 gOamFreeIndex; extern u16 gSpriteTransformRotation; extern u8 gNumVBlankIntrs; -extern s16 SA2_LABEL(gUnknown_0300194C); +extern s16 gSpriteTransformX; extern Tilemap **gTilemapsRef; extern u8 gBgSprites_Unknown2[4][4]; @@ -387,7 +387,7 @@ extern void *gBgOffsetsSecondary; extern s16 gMosaicReg; extern u8 gUnknown_030026F4; #endif -extern s16 SA2_LABEL(gUnknown_03002820); +extern s16 gSpriteTransformY; extern u8 gVCountSetting; extern void *gHBlankCopyTarget; extern u8 gBackgroundsCopyQueueIndex; @@ -405,7 +405,7 @@ extern u8 gVramGraphicsCopyCursor; extern u8 gOamMallocOrders_EndIndex[0x20]; extern u8 gBgSpritesCount; extern u16 gSpriteTransformScaleY; -extern u16 SA2_LABEL(gUnknown_03005398); +extern u16 gSpriteTransformScaleUnknown; extern IntrFunc gVBlankIntrs[4]; extern s32 gPseudoRandom; extern u8 gOamMallocCopiedOrder[128]; diff --git a/sa1/asm/non_matching/engine/.gitkeep b/sa1/asm/non_matching/engine/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sa1/asm/non_matching/engine/TransformSprite.inc b/sa1/asm/non_matching/engine/TransformSprite.inc index 4971f1c8db..67bc6853f5 100644 --- a/sa1/asm/non_matching/engine/TransformSprite.inc +++ b/sa1/asm/non_matching/engine/TransformSprite.inc @@ -6,82 +6,84 @@ mov r5, r8 push {r5, r6, r7} sub sp, #0x2c - str r0, [sp, #0x24] - adds r6, r1, #0 + str r0, [sp, #0x24] @ sp24 = s + adds r6, r1, #0 @ r6 = transform ldr r1, [r0, #0xc] movs r0, #1 rsbs r0, r0, #0 - cmp r1, r0 - bne _080037EC - b _08003A1A -_080037EC: - mov r8, r1 - add r2, sp, #0x20 - ldr r1, [sp, #0x24] + cmp r1, r0 @ if (dimensions != (SpriteOffset *)-1) + bne _sa2_0800487C + b _sa2_08004AAA +_sa2_0800487C: + mov r8, r1 @ r8 = dimensions + add r2, sp, #0x20 @ r2 = sp20 = &big.affineIndex + ldr r1, [sp, #0x24] @ r1 = s ldr r0, [r1, #0x10] movs r1, #0x1f ands r0, r1 - strh r0, [r2] - ldrh r4, [r2] - lsls r4, r4, #5 - ldr r0, _08003984 @ =gOamBuffer+0x6 - adds r4, r4, r0 + strh r0, [r2] @ big.affineIndex = (frameFlags & SPRITE_FLAG_MASK_ROT_SCALE); + ldrh r4, [r2] @ r2 = big.affineIndex + lsls r4, r4, #5 + ldr r0, _sa2_08004A14 @ =gOamBuffer + 0x6 + adds r4, r4, r0 @ r4 = affine = &gOamBuffer[big.affineIndex * 4].all.affineParam; subs r2, #0x18 - str r2, [sp, #0x28] - ldr r2, _08003988 @ =gSineTable - ldrh r0, [r6] - ldr r1, _0800398C @ =0x000003FF - ands r1, r0 + str r2, [sp, #0x28] @; sp28 = sp08 = &big.qDirX + ldr r2, _sa2_08004A18 @ =gSineTable + ldrh r0, [r6] @ r0 = transform.rotation + ldr r1, _sa2_08004A1C @ =0x000003FF + ands r1, r0 @ r1 = (transform->rotation & ONE_CYCLE) movs r3, #0x80 - lsls r3, r3, #1 + lsls r3, r3, #1 @ r3 = 0x100 adds r0, r1, r3 lsls r0, r0, #1 adds r0, r0, r2 - ldrh r0, [r0] + ldrh r0, [r0] @ r0 = COS(transform->rotation & ONE_CYCLE) lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r7, [sp, #0x28] - strh r0, [r7] + ldr r7, [sp, #0x28] @ r7 = sp28 = sp08 = &big.qDirX + strh r0, [r7] @ sp00.offsetX = *sp28 = COS_24_8(transform->rotation & ONE_CYCLE) movs r0, #0xa add r0, sp - mov sl, r0 + mov sl, r0 @ sl = &big.qDirY lsls r1, r1, #1 adds r1, r1, r2 - ldrh r0, [r1] + ldrh r0, [r1] @ r0 = SIN(transform->rotation & ONE_CYCLE) lsls r0, r0, #0x10 asrs r0, r0, #0x16 mov r1, sl - strh r0, [r1] - add r7, sp, #0xc + strh r0, [r1] @ big.qDirY = SIN_24_8(transform->rotation & ONE_CYCLE); + add r7, sp, #0xc @ r7 = &big.unkC[0] ldrh r0, [r6, #2] - strh r0, [r7] + strh r0, [r7] @ big.unkC[0] = transform->width movs r2, #0xe add r2, sp - mov sb, r2 + mov sb, r2 @ sb = big.unkC[1] ldrh r0, [r6, #4] - strh r0, [r2] + strh r0, [r2] @ big.unkC[1] = transform->height +__Div_1: movs r5, #0x80 - lsls r5, r5, #9 - ldrh r1, [r7] + lsls r5, r5, #9 @ r5 = 0x10000 + ldrh r1, [r7] @ r1 = big.unkC[0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - ldr r3, [sp, #0x28] + adds r0, r5, #0 @ r0 = r5 = 0x10000 + bl Div @ res = Div(0x10000, big.unkC[0]); + ldr r3, [sp, #0x28] @ r3 = sp28 = &big.qDirX ldrh r1, [r3] lsls r1, r1, #0x10 - asrs r1, r1, #0x10 + asrs r1, r1, #0x10 @ r1 = x16 = big.qDirX; lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r4] - ldrh r1, [r7] + strh r0, [r4] @ affine[0] = I(x16 * res); +__Div_2: + ldrh r1, [r7] @ r1 = big.unkC[0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - mov r2, sl + adds r0, r5, #0 @ r5 = 0x10000 + bl Div @ Div 2 + mov r2, sl @ r2 = sl = &big.qDirY ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -90,13 +92,14 @@ _080037EC: muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r4, #8] - mov r3, sb +__Div_3: + mov r3, sb @ r3 = sb = &big.unkC[1] ldrh r1, [r3] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - mov r2, sl + adds r0, r5, #0 @ r5 = 0x10000 + bl Div @ Div 3 + mov r2, sl @ r2 = sl = &big.qDirY ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -106,13 +109,14 @@ _080037EC: muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r4, #0x10] - mov r3, sb +__Div_4: + mov r3, sb @ r3 = sb = big.unkC[1] ldrh r1, [r3] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - ldr r2, [sp, #0x28] + adds r0, r5, #0 @ r5 = 0x10000 + bl Div @ Div 4 + ldr r2, [sp, #0x28] @ r2 = sp28 = &big.qDirX ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -121,27 +125,28 @@ _080037EC: muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r4, #0x18] - ldrh r0, [r6, #2] +__post_Divs: + ldrh r0, [r6, #2] @ r0 = (u16)transform.width movs r3, #2 - ldrsh r5, [r6, r3] + ldrsh r5, [r6, r3] @ r5 = transform.width cmp r5, #0 - bge _080038D6 + bge _sa2_08004966 @ if (transform->width < 0) rsbs r0, r0, #0 - strh r0, [r7] -_080038D6: + strh r0, [r7] @ big.unkC[0] = -transform->width; +_sa2_08004966: movs r1, #4 ldrsh r0, [r6, r1] ldrh r2, [r6, #4] - mov ip, r2 + mov ip, r2 @ ip = transform.height cmp r0, #0 - bge _080038EA + bge _sa2_0800497A @ if (transform->height < 0) mov r3, ip rsbs r0, r3, #0 mov r1, sb - strh r0, [r1] -_080038EA: - mov r2, sp - ldr r3, [sp, #0x28] + strh r0, [r1] @ big.unkC[1] = -transform->height; +_sa2_0800497A: + mov r2, sp @ r2 = sp00 = &big + ldr r3, [sp, #0x28] @ r3 = sp28 = &big.qDirX ldrh r1, [r3] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -150,10 +155,12 @@ _080038EA: asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r2] + strh r0, [r2] @ big.unk0[0] = big.qDirX * big.unkC[0] + +__sa2_08004990: mov r4, sp - adds r4, #2 - mov r0, sl + adds r4, #2 @ r4 = &big.unk0[1] + mov r0, sl @ r0 = sl = &big.qDirY ldrh r1, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -163,22 +170,26 @@ _080038EA: asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r4] - add r3, sp, #4 - mov r2, sl + strh r0, [r4] @ big.unk0[1] = + +__sa2_080049AA: + add r3, sp, #4 + mov r2, sl @ r2 = sl = &big.qDirY ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - mov r7, sb + mov r7, sb @ r7 = sb = big.unkC[1] ldrh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r3] + strh r0, [r3] @ big.unk0[2] = (big.qDirY * big.unkC[1]) >> 8 + +__sa2_080049C2: mov r2, sp adds r2, #6 - ldr r0, [sp, #0x28] + ldr r0, [sp, #0x28] @ r0 = sp28 = &big.qDirX ldrh r1, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -187,82 +198,91 @@ _080038EA: asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r2] + strh r0, [r2] @ big.unk0[3] = (big.qDirX * big.unkC[1]) >> 8 + add r0, sp, #0x18 movs r1, #0x80 lsls r1, r1, #1 - strh r1, [r0] + strh r1, [r0] @ big.unk18[0][0] = 0x100; + adds r0, #2 movs r1, #0 - strh r1, [r0] + strh r1, [r0] @ big.unk18[0][1] = 0; + add r0, sp, #0x1c - strh r1, [r0] + strh r1, [r0] @ big.unk18[1][0] = 0; + adds r0, #2 movs r7, #0x80 lsls r7, r7, #1 - strh r7, [r0] + strh r7, [r0] @ big.unk18[1][1] = 0x100; + movs r1, #6 ldrsh r0, [r6, r1] - str r0, [sp, #0x10] + str r0, [sp, #0x10] @ big.posX = transform->x; + movs r7, #8 ldrsh r0, [r6, r7] - str r0, [sp, #0x14] - adds r6, r4, #0 - adds r7, r3, #0 - mov sb, r2 - cmp r5, #0 - ble _08003990 - mov r0, r8 + str r0, [sp, #0x14] @ big.posY = transform->y; + + adds r6, r4, #0 @ r6 = &big.unk0[1] + adds r7, r3, #0 @ r7 = r3 = &big.unk0[2] + mov sb, r2 @ sb = r2 = &big.unk0[3] +__sa2_08004A04: + cmp r5, #0 @ if (transform->width > 0) + ble _sa2_08004A20 +__sa2_08004A08: + mov r0, r8 @ r0 = r8 = dimensions ldrh r4, [r0, #8] ldrh r2, [r0, #4] - b _0800399E + b _sa2_08004A2E .align 2, 0 -_08003984: .4byte gOamBuffer+0x6 -_08003988: .4byte gSineTable -_0800398C: .4byte 0x000003FF -_08003990: - mov r2, r8 +_sa2_08004A14: .4byte gOamBuffer + 0x6 +_sa2_08004A18: .4byte gSineTable +_sa2_08004A1C: .4byte 0x000003FF +_sa2_08004A20: + mov r2, r8 @ r2 = r8 = dimensions ldrh r1, [r2, #4] ldrh r0, [r2, #8] subs r0, r1, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r2, r1, #0 -_0800399E: - mov r3, ip +_sa2_08004A2E: + mov r3, ip @ r3 = ip = lsls r0, r3, #0x10 cmp r0, #0 - ble _080039AE - mov r0, r8 + ble _sa2_08004A3E + mov r0, r8 @ r0 = r8 = dimensions ldrh r3, [r0, #0xa] ldrh r5, [r0, #6] - b _080039BC -_080039AE: - mov r3, r8 + b _sa2_08004A4C +_sa2_08004A3E: + mov r3, r8 @ r3 = r8 = dimensions ldrh r1, [r3, #6] ldrh r0, [r3, #0xa] subs r0, r1, r0 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 adds r5, r1, #0 -_080039BC: - mov r0, sp +_sa2_08004A4C: + mov r0, sp @ r0 = big.unk0[0] ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsrs r2, r2, #1 - subs r4, r4, r2 + subs r4, r4, r2 @ r4 = (r4 - (r2 / 2)) adds r1, r0, #0 - muls r1, r4, r1 - ldrh r0, [r6] + muls r1, r4, r1 @ r1 = big.unk0[0] * r4; + ldrh r0, [r6] @ r0 = *r6 = big.unk0[1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r3, r3, #0x10 asrs r3, r3, #0x10 lsrs r5, r5, #1 - subs r3, r3, r5 + subs r3, r3, r5 @ r3 = r3 - (r5 / 2) muls r0, r3, r0 adds r1, r1, r0 lsls r2, r2, #8 @@ -271,12 +291,14 @@ _080039BC: ldr r0, [sp, #0x10] subs r0, r0, r1 str r0, [sp, #0x10] - ldrh r0, [r7] + +__sa2_080004A7E: + ldrh r0, [r7] @ r0 = big.unk0[2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r4, r1 - mov r7, sb + mov r7, sb @ r7 = sb = &big.unk0[3] ldrh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -293,7 +315,7 @@ _080039BC: strh r0, [r1, #0x16] ldr r0, [sp, #0x14] strh r0, [r1, #0x18] -_08003A1A: +_sa2_08004AAA: add sp, #0x2c pop {r3, r4, r5} mov r8, r3 diff --git a/sa1/asm/non_matching/engine/UnusedTransform.inc b/sa1/asm/non_matching/engine/UnusedTransform.inc index bac8a0c3ab..69db09bc92 100644 --- a/sa1/asm/non_matching/engine/UnusedTransform.inc +++ b/sa1/asm/non_matching/engine/UnusedTransform.inc @@ -1,5 +1,6 @@ .syntax unified .text +@ VERY similar to sub_8004860 and sub_8004E14 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -12,9 +13,9 @@ movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - bne _08003A48 - b _08003D74 -_08003A48: + bne _sa2_08004AD8 + b _sa2_08004E04 +_sa2_08004AD8: mov sb, r1 add r2, sp, #0x20 ldr r1, [sp, #0x24] @@ -24,21 +25,21 @@ _08003A48: strh r0, [r2] ldrh r4, [r2] lsls r4, r4, #5 - ldr r0, _08003CC8 @ =gOamBuffer+0x6 + ldr r0, _sa2_08004D58 @ =gOamBuffer + 0x6 adds r4, r4, r0 subs r2, #0x18 str r2, [sp, #0x28] ldrh r0, [r7] - ldr r3, _08003CCC @ =gSpriteTransformRotation + ldr r3, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 - ldr r2, _08003CD0 @ =0x000003FF + ldr r2, _sa2_08004D60 @ =0x000003FF ands r0, r2 movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 lsls r0, r0, #1 - ldr r6, _08003CD4 @ =gSineTable + ldr r6, _sa2_08004D64 @ =gSineTable adds r0, r0, r6 ldrh r0, [r0] lsls r0, r0, #0x10 @@ -49,7 +50,7 @@ _08003A48: add r3, sp mov r8, r3 ldrh r0, [r7] - ldr r5, _08003CCC @ =gSpriteTransformRotation + ldr r5, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -62,7 +63,7 @@ _08003A48: add r6, sp, #0xc movs r0, #2 ldrsh r1, [r7, r0] - ldr r2, _08003CD8 @ =gSpriteTransformScaleX + ldr r2, _sa2_08004D68 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -72,7 +73,7 @@ _08003A48: mov sl, r3 movs r5, #4 ldrsh r1, [r7, r5] - ldr r2, _08003CDC @ =gSpriteTransformScaleY + ldr r2, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 @@ -142,25 +143,25 @@ _08003A48: ldrsh r0, [r7, r1] str r0, [sp, #0x2c] cmp r0, #0 - bge _08003B60 + bge _sa2_08004BF0 movs r2, #2 ldrsh r0, [r7, r2] rsbs r0, r0, #0 - ldr r3, _08003CD8 @ =gSpriteTransformScaleX + ldr r3, _sa2_08004D68 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r6] -_08003B60: +_sa2_08004BF0: movs r4, #4 ldrsh r0, [r7, r4] - ldr r5, _08003CDC @ =gSpriteTransformScaleY + ldr r5, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r3, [r5] ldrh r2, [r7, #4] mov r1, sp strh r2, [r1, #0x34] cmp r0, #0 - bge _08003B84 + bge _sa2_08004C14 movs r4, #4 ldrsh r0, [r7, r4] rsbs r0, r0, #0 @@ -168,9 +169,9 @@ _08003B60: asrs r0, r0, #8 mov r5, sl strh r0, [r5] - ldr r0, _08003CDC @ =gSpriteTransformScaleY + ldr r0, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r3, [r0] -_08003B84: +_sa2_08004C14: mov r2, sp ldr r4, [sp, #0x28] ldrh r1, [r4] @@ -224,25 +225,25 @@ _08003B84: asrs r0, r0, #8 strh r0, [r6] add r5, sp, #0x18 - ldr r1, _08003CCC @ =gSpriteTransformRotation + ldr r1, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 - ldr r4, _08003CD4 @ =gSineTable + ldr r4, _sa2_08004D64 @ =gSineTable adds r0, r0, r4 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08003CD8 @ =gSpriteTransformScaleX + ldr r6, _sa2_08004D68 @ =gSpriteTransformScaleX ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r5] mov r2, sp adds r2, #0x1a - ldr r1, _08003CCC @ =gSpriteTransformRotation + ldr r1, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r0, [r1] lsls r0, r0, #1 adds r0, r0, r4 @@ -255,10 +256,10 @@ _08003B84: asrs r0, r0, #8 strh r0, [r2] add r4, sp, #0x1c - ldr r6, _08003CCC @ =gSpriteTransformRotation + ldr r6, _sa2_08004D5C @ =gSpriteTransformRotation ldrh r0, [r6] lsls r0, r0, #1 - ldr r1, _08003CD4 @ =gSineTable + ldr r1, _sa2_08004D64 @ =gSineTable adds r0, r0, r1 ldrh r0, [r0] lsls r0, r0, #0x10 @@ -277,7 +278,7 @@ _08003B84: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r6, _08003CDC @ =gSpriteTransformScaleY + ldr r6, _sa2_08004D6C @ =gSpriteTransformScaleY ldrh r1, [r6] muls r0, r1, r0 asrs r0, r0, #8 @@ -295,7 +296,7 @@ _08003B84: ldrsh r2, [r7, r6] muls r0, r2, r0 adds r1, r1, r0 - ldr r0, _08003CE0 @ =sa2__gUnknown_0300194C + ldr r0, _sa2_08004D70 @ =gSpriteTransformX movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 @@ -315,7 +316,7 @@ _08003B84: ldrsh r2, [r7, r5] muls r0, r2, r0 adds r1, r1, r0 - ldr r0, _08003CE4 @ =sa2__gUnknown_03002820 + ldr r0, _sa2_08004D74 @ =gSpriteTransformY movs r6, #0 ldrsh r0, [r0, r6] lsls r0, r0, #8 @@ -327,21 +328,21 @@ _08003B84: ldr r6, [sp, #0x38] ldr r0, [sp, #0x2c] cmp r0, #0 - ble _08003CE8 + ble _sa2_08004D78 mov r1, sb ldrh r4, [r1, #8] ldrh r2, [r1, #4] - b _08003CF6 + b _sa2_08004D86 .align 2, 0 -_08003CC8: .4byte gOamBuffer+0x6 -_08003CCC: .4byte gSpriteTransformRotation -_08003CD0: .4byte 0x000003FF -_08003CD4: .4byte gSineTable -_08003CD8: .4byte gSpriteTransformScaleX -_08003CDC: .4byte gSpriteTransformScaleY -_08003CE0: .4byte sa2__gUnknown_0300194C -_08003CE4: .4byte sa2__gUnknown_03002820 -_08003CE8: +_sa2_08004D58: .4byte gOamBuffer + 0x6 +_sa2_08004D5C: .4byte gSpriteTransformRotation +_sa2_08004D60: .4byte 0x000003FF +_sa2_08004D64: .4byte gSineTable +_sa2_08004D68: .4byte gSpriteTransformScaleX +_sa2_08004D6C: .4byte gSpriteTransformScaleY +_sa2_08004D70: .4byte gSpriteTransformX +_sa2_08004D74: .4byte gSpriteTransformY +_sa2_08004D78: mov r2, sb ldrh r1, [r2, #4] ldrh r0, [r2, #8] @@ -349,17 +350,17 @@ _08003CE8: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r2, r1, #0 -_08003CF6: +_sa2_08004D86: mov r3, sp ldrh r3, [r3, #0x34] lsls r0, r3, #0x10 cmp r0, #0 - ble _08003D08 + ble _sa2_08004D98 mov r5, sb ldrh r3, [r5, #0xa] ldrh r5, [r5, #6] - b _08003D16 -_08003D08: + b _sa2_08004DA6 +_sa2_08004D98: mov r0, sb ldrh r1, [r0, #6] ldrh r0, [r0, #0xa] @@ -367,7 +368,7 @@ _08003D08: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 adds r5, r1, #0 -_08003D16: +_sa2_08004DA6: mov r0, sp ldrh r0, [r0] lsls r0, r0, #0x10 @@ -415,7 +416,7 @@ _08003D16: strh r0, [r2, #0x16] ldr r0, [sp, #0x14] strh r0, [r2, #0x18] -_08003D74: +_sa2_08004E04: add sp, #0x3c pop {r3, r4, r5} mov r8, r3 @@ -424,5 +425,6 @@ _08003D74: pop {r4, r5, r6, r7} pop {r0} bx r0 + .align 2, 0 .syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc b/sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc new file mode 100644 index 0000000000..b9560e9520 --- /dev/null +++ b/sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc @@ -0,0 +1,1476 @@ +.include "constants/constants.inc" + +.syntax unified +.text + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x40 + movs r0, #0 + str r0, [sp, #4] + ldr r0, _08001ADC @ =gBackgroundsCopyQueueCursor + ldr r1, _08001AE0 @ =gBackgroundsCopyQueueIndex + ldrb r2, [r0] + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r1, [r4] + cmp r2, r1 + bne _08001AC8 + bl _0800258C +_08001AC8: + ldr r0, _08001AE4 @ =0x04000004 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08001AE8 + movs r0, #0 + bl sub_800258E + .align 2, 0 +_08001ADC: .4byte gBackgroundsCopyQueueCursor +_08001AE0: .4byte gBackgroundsCopyQueueIndex +_08001AE4: .4byte 0x04000004 +_08001AE8: + ldr r0, _08001B48 @ =0x04000006 + ldrh r0, [r0] + ldr r2, _08001B4C @ =gBackgroundsCopyQueue + ldrb r1, [r3] + lsls r0, r1, #2 + adds r0, r0, r2 + ldr r6, [r0] + adds r1, #1 + movs r0, #0xf + ands r1, r0 + strb r1, [r3] + ldrh r2, [r6, #0x2e] + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08001B14 + ldr r1, [r6, #0x30] + ldr r0, [r6, #0x34] + cmp r1, r0 + bne _08001B14 + bl _8002580 +_08001B14: + ldrh r3, [r6, #0x14] + str r3, [sp] + movs r3, #3 + adds r5, r3, #0 + ands r5, r2 + ldr r4, [sp] + cmp r5, #1 + bls _08001B58 + ldr r0, _08001B50 @ =gDispCnt + ldrh r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08001B58 + ldr r1, _08001B54 @ =gBgCntRegs + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + lsrs r3, r0, #0xe + movs r0, #0x80 + lsls r0, r0, #0xd + lsls r0, r3 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + movs r0, #1 + b _08001B76 + .align 2, 0 +_08001B48: .4byte 0x04000006 +_08001B4C: .4byte gBackgroundsCopyQueue +_08001B50: .4byte gDispCnt +_08001B54: .4byte gBgCntRegs +_08001B58: + movs r1, #0x20 + str r1, [sp, #0xc] + ldr r0, _08001C48 @ =gBgCntRegs + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + lsrs r3, r0, #0xe + cmp r3, #1 + beq _08001B6E + cmp r3, #3 + bne _08001B74 +_08001B6E: + movs r2, #0x80 + lsls r2, r2, #4 + str r2, [sp, #4] +_08001B74: + movs r0, #2 +_08001B76: + str r0, [sp, #8] + ldr r1, [sp, #0xc] + ldr r2, [sp, #8] + adds r0, r1, #0 + muls r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + ldrh r2, [r6, #0x2e] + movs r0, #0x20 + mov sb, r0 + ands r0, r2 + cmp r0, #0 + beq _08001B94 + b _08001F60 +_08001B94: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _08001B9E + b _08001E50 +_08001B9E: + ldrh r0, [r6, #0x24] + ldr r1, [sp, #0xc] + muls r0, r1, r0 + ldr r1, [r6, #0xc] + adds r1, r1, r0 + ldrh r5, [r6, #0x22] + mov r8, r5 + ldr r5, [sp, #8] + mov r0, r8 + muls r0, r5, r0 + adds r7, r1, r0 + ldrh r5, [r6, #0x28] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + bne _08001BC4 + b _08001CCC +_08001BC4: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08001C50 + ldrh r0, [r6, #0x20] + adds r0, r0, r5 + subs r0, #1 + muls r0, r4, r0 + ldr r2, [sp, #8] + muls r0, r2, r0 + ldr r2, [r6, #0x10] + adds r2, r2, r0 + ldrh r0, [r6, #0x1e] + ldrh r1, [r6, #0x26] + adds r0, r0, r1 + subs r0, #1 + ldr r3, [sp, #8] + muls r0, r3, r0 + adds r4, r2, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08001C4C @ =0x0000FFFF + cmp r5, r0 + bne _08001BFA + bl _08002570 +_08001BFA: + ldr r2, [sp] + adds r1, r2, #0 + muls r1, r3, r1 + mov sb, r1 + mov sl, r0 +_08001C04: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _08001C36 + movs r0, #0xc0 + lsls r0, r0, #4 + mov r8, r0 +_08001C18: + lsls r0, r3, #1 + adds r1, r0, r7 + mov ip, r1 + subs r0, r4, r0 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + mov r1, ip + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _08001C18 +_08001C36: + adds r7, r2, #0 + mov r1, sb + subs r4, r4, r1 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sl + bne _08001C04 + bl _08002570 + .align 2, 0 +_08001C48: .4byte gBgCntRegs +_08001C4C: .4byte 0x0000FFFF +_08001C50: + ldrh r0, [r6, #0x20] + muls r0, r4, r0 + ldr r2, [sp, #8] + muls r0, r2, r0 + ldr r2, [r6, #0x10] + adds r2, r2, r0 + ldrh r0, [r6, #0x1e] + ldrh r1, [r6, #0x26] + adds r0, r0, r1 + subs r0, #1 + ldr r3, [sp, #8] + muls r0, r3, r0 + adds r4, r2, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08001CC8 @ =0x0000FFFF + cmp r5, r0 + bne _08001C7A + bl _08002570 +_08001C7A: + ldr r2, [sp] + adds r1, r2, #0 + muls r1, r3, r1 + mov sb, r1 + mov sl, r0 +_08001C84: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _08001CB6 + movs r0, #0x80 + lsls r0, r0, #3 + mov r8, r0 +_08001C98: + lsls r0, r3, #1 + adds r1, r0, r7 + mov ip, r1 + subs r0, r4, r0 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + mov r1, ip + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _08001C98 +_08001CB6: + adds r7, r2, #0 + add r4, sb + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sl + bne _08001C84 + bl _08002570 + .align 2, 0 +_08001CC8: .4byte 0x0000FFFF +_08001CCC: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08001D50 + ldrh r0, [r6, #0x20] + adds r0, r0, r5 + subs r0, #1 + muls r0, r4, r0 + ldr r1, [sp, #8] + muls r0, r1, r0 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + ldrh r0, [r6, #0x1e] + ldr r2, [sp, #8] + muls r0, r2, r0 + adds r4, r1, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r3, _08001D4C @ =0x0000FFFF + cmp r5, r3 + bne _08001CFC + bl _08002570 +_08001CFC: + ldr r1, [sp] + adds r0, r1, #0 + muls r0, r2, r0 + mov sb, r0 + mov sl, r3 +_08001D06: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _08001D38 + movs r0, #0x80 + lsls r0, r0, #4 + mov r8, r0 +_08001D1A: + lsls r0, r3, #1 + adds r1, r0, r7 + mov ip, r1 + adds r0, r0, r4 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + mov r1, ip + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _08001D1A +_08001D38: + adds r7, r2, #0 + mov r1, sb + subs r4, r4, r1 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sl + bne _08001D06 + bl _08002570 + .align 2, 0 +_08001D4C: .4byte 0x0000FFFF +_08001D50: + movs r0, #1 + ands r3, r0 + cmp r3, #0 + beq _08001DF0 + ldr r2, [sp, #8] + cmp r2, #2 + bne _08001DF0 + mov r3, sb + mov r0, r8 + subs r3, r3, r0 + cmp r3, #0 + ble _08001DF0 + ldrh r0, [r6, #0x26] + add r0, r8 + adds r2, r0, #0 + subs r2, #0x20 + cmp r2, #0 + ble _08001DF0 + ldrh r0, [r6, #0x20] + muls r0, r4, r0 + lsls r0, r0, #1 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + ldrh r0, [r6, #0x1e] + lsls r0, r0, #1 + adds r4, r1, r0 + lsls r3, r3, #1 + mov sb, r3 + lsls r2, r2, #1 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _08001DE8 @ =0x0000FFFF + cmp r5, r1 + bne _08001D98 + b _08002570 +_08001D98: + ldr r1, _08001DEC @ =0x040000D4 + asrs r3, r3, #1 + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r3, r0 + mov r8, r3 + asrs r2, r2, #1 + mov ip, r2 + orrs r2, r0 + mov ip, r2 +_08001DAC: + str r4, [r1] + str r7, [r1, #4] + mov r3, r8 + str r3, [r1, #8] + ldr r0, [r1, #8] + adds r0, r4, #0 + add r0, sb + str r0, [r1] + ldr r2, [sp, #4] + adds r2, r2, r7 + str r2, [r1, #4] + mov r3, ip + str r3, [r1, #8] + ldr r0, [r1, #8] + ldr r0, [sp, #0xc] + adds r7, r7, r0 + ldr r3, [sp] + ldr r0, [sp, #8] + adds r2, r3, #0 + muls r2, r0, r2 + mov sl, r2 + add r4, sl + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r2, _08001DE8 @ =0x0000FFFF + cmp r5, r2 + bne _08001DAC + b _08002570 + .align 2, 0 +_08001DE8: .4byte 0x0000FFFF +_08001DEC: .4byte 0x040000D4 +_08001DF0: + ldrh r0, [r6, #0x20] + muls r0, r4, r0 + ldr r3, [sp, #8] + muls r0, r3, r0 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + ldrh r0, [r6, #0x1e] + muls r0, r3, r0 + adds r4, r1, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08001E48 @ =0x0000FFFF + cmp r5, r0 + bne _08001E10 + b _08002570 +_08001E10: + ldr r1, _08001E4C @ =0x040000D4 + movs r2, #0x80 + lsls r2, r2, #0x18 + mov r8, r2 + mov sb, r0 + ldr r0, [sp] + adds r2, r0, #0 + muls r2, r3, r2 +_08001E20: + str r4, [r1] + str r7, [r1, #4] + ldrh r0, [r6, #0x26] + ldr r3, [sp, #8] + muls r0, r3, r0 + asrs r0, r0, #1 + mov r3, r8 + orrs r0, r3 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, [sp, #0xc] + adds r7, r7, r0 + adds r4, r4, r2 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sb + bne _08001E20 + b _08002570 + .align 2, 0 +_08001E48: .4byte 0x0000FFFF +_08001E4C: .4byte 0x040000D4 +_08001E50: + ldrh r1, [r6, #0x1e] + str r1, [sp, #0x10] + ldrh r2, [r6, #0x20] + str r2, [sp, #0x14] + movs r3, #0 + mov sl, r3 + ldrh r4, [r6, #0x26] + cmp sl, r4 + blt _08001E64 + b _08002570 +_08001E64: + ldr r4, [sp, #0x10] + add r4, sl + ldrh r1, [r6, #0x14] + adds r0, r4, #0 + bl Div + str r0, [sp, #0x18] + ldrh r1, [r6, #0x14] + adds r5, r0, #0 + adds r0, r5, #0 + muls r0, r1, r0 + subs r4, r4, r0 + str r4, [sp, #0x1c] + ldrh r0, [r6, #0x28] + mov r8, r0 + ldrh r0, [r6, #0x26] + mov r2, sl + subs r0, r0, r2 + subs r1, r1, r4 + cmp r1, r0 + ble _08001E90 + adds r1, r0, #0 +_08001E90: + ldr r4, [sp, #8] + adds r3, r1, #0 + muls r3, r4, r3 + str r3, [sp, #0x20] + movs r5, #0 + mov sb, r5 + add r1, sl + str r1, [sp, #0x38] + cmp sb, r8 + bge _08001F50 +_08001EA4: + ldr r4, [sp, #0x14] + add r4, sb + ldrh r1, [r6, #0x16] + adds r0, r4, #0 + bl Div + ldrh r3, [r6, #0x16] + adds r1, r0, #0 + muls r1, r3, r1 + subs r4, r4, r1 + subs r5, r3, r4 + ldrh r1, [r6, #0x3c] + muls r1, r0, r1 + ldr r0, [r6, #0x38] + adds r0, r0, r1 + ldr r1, [sp, #0x18] + adds r0, r0, r1 + ldrb r0, [r0] + ldrh r2, [r6, #0x14] + muls r0, r2, r0 + adds r1, r0, #0 + muls r1, r3, r1 + adds r0, r4, #0 + muls r0, r2, r0 + ldr r2, [sp, #0x1c] + adds r0, r0, r2 + adds r1, r1, r0 + ldr r3, [sp, #8] + muls r1, r3, r1 + ldr r0, [r6, #0x10] + adds r4, r0, r1 + ldrh r1, [r6, #0x24] + ldr r0, [r6, #0xc] + adds r0, r0, r1 + ldr r2, [sp, #0xc] + mov r1, sb + muls r1, r2, r1 + adds r0, r0, r1 + ldrh r3, [r6, #0x22] + adds r0, r0, r3 + ldr r2, [sp, #8] + mov r1, sl + muls r1, r2, r1 + adds r7, r0, r1 + add sb, r5 + cmp r5, r8 + ble _08001F04 + mov r5, r8 +_08001F04: + mov r3, r8 + subs r3, r3, r5 + mov r8, r3 + adds r0, r5, #0 + subs r5, #1 + cmp r0, #0 + beq _08001F4A + ldr r3, _08001F5C @ =0x040000D4 + ldr r1, [sp, #0x20] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + str r0, [sp, #0x3c] + movs r0, #0x80 + lsls r0, r0, #0x18 + ldr r2, [sp, #0x3c] + orrs r2, r0 + str r2, [sp, #0x3c] + ldr r1, [sp] + ldr r2, [sp, #8] + adds r0, r1, #0 + muls r0, r2, r0 + mov ip, r0 +_08001F32: + str r4, [r3] + str r7, [r3, #4] + ldr r0, [sp, #0x3c] + str r0, [r3, #8] + ldr r0, [r3, #8] + ldr r1, [sp, #0xc] + adds r7, r7, r1 + add r4, ip + adds r0, r5, #0 + subs r5, #1 + cmp r0, #0 + bne _08001F32 +_08001F4A: + ldrh r2, [r6, #0x28] + cmp sb, r2 + blt _08001EA4 +_08001F50: + ldr r3, [sp, #0x38] + mov sl, r3 + ldrh r4, [r6, #0x26] + cmp sl, r4 + blt _08001E64 + b _08002570 + .align 2, 0 +_08001F5C: .4byte 0x040000D4 +_08001F60: + movs r0, #0x40 + ands r0, r2 + ldrh r3, [r6, #0x30] + ldr r1, _08002030 @ =gBgScrollRegs + mov sb, r1 + lsls r5, r5, #2 + mov r8, r5 + cmp r0, #0 + bne _08001FAC + adds r2, r4, #0 + lsls r0, r4, #3 + ldrh r5, [r6, #0x16] + ldrh r7, [r6, #0x32] + cmp r3, r0 + blt _08001F90 +_08001F7E: + lsls r1, r2, #3 + ldrh r0, [r6, #0x30] + subs r0, r0, r1 + strh r0, [r6, #0x30] + ldrh r1, [r6, #0x30] + adds r2, r4, #0 + lsls r0, r4, #3 + cmp r1, r0 + bge _08001F7E +_08001F90: + adds r2, r5, #0 + lsls r0, r2, #3 + ldrh r3, [r6, #0x30] + cmp r7, r0 + blt _08001FAC +_08001F9A: + lsls r1, r2, #3 + ldrh r0, [r6, #0x32] + subs r0, r0, r1 + strh r0, [r6, #0x32] + ldrh r1, [r6, #0x32] + adds r2, r5, #0 + lsls r0, r2, #3 + cmp r1, r0 + bge _08001F9A +_08001FAC: + mov r0, r8 + add r0, sb + movs r2, #7 + ands r3, r2 + strh r3, [r0] + mov r1, sb + adds r1, #2 + add r1, r8 + ldrh r0, [r6, #0x32] + ands r0, r2 + strh r0, [r1] + ldrh r0, [r6, #0x34] + ldrh r4, [r6, #0x30] + lsrs r2, r4, #3 + lsrs r0, r0, #3 + cmp r0, r2 + bne _08001FDC + ldrh r1, [r6, #0x36] + ldrh r0, [r6, #0x32] + lsrs r1, r1, #3 + lsrs r0, r0, #3 + cmp r1, r0 + bne _08001FDC + b _08002570 +_08001FDC: + ldrh r1, [r6, #0x2e] + movs r0, #0x40 + ands r0, r1 + adds r3, r1, #0 + cmp r0, #0 + beq _08001FEA + b _08002454 +_08001FEA: + ldrh r0, [r6, #0x1e] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r0, [r6, #0x32] + lsrs r0, r0, #3 + ldrh r2, [r6, #0x20] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x14] + ldrh r0, [r6, #0x24] + ldr r4, [sp, #0xc] + muls r0, r4, r0 + ldr r1, [r6, #0xc] + adds r1, r1, r0 + ldrh r0, [r6, #0x22] + ldr r5, [sp, #8] + muls r0, r5, r0 + adds r7, r1, r0 + ldrh r0, [r6, #0x26] + ldr r1, [sp, #0x10] + adds r2, r1, r0 + adds r1, r2, #1 + ldrh r4, [r6, #0x14] + mov r8, r0 + cmp r1, r4 + ble _08002034 + subs r0, r4, #1 + subs r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _08002036 + .align 2, 0 +_08002030: .4byte gBgScrollRegs +_08002034: + movs r2, #0 +_08002036: + ldrh r0, [r6, #0x28] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + bne _0800204C + b _08002148 +_0800204C: + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _080020D0 + ldrh r0, [r6, #0x20] + adds r0, r0, r5 + subs r0, #1 + muls r0, r4, r0 + ldr r3, [sp, #8] + muls r0, r3, r0 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + ldrh r0, [r6, #0x1e] + add r0, r8 + subs r0, #1 + muls r0, r3, r0 + adds r4, r1, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r2, r2, #0x10 + mov sl, r2 + ldr r0, _080020CC @ =0x0000FFFF + cmp r5, r0 + bne _08002080 + b _0800223C +_08002080: + ldr r2, [sp] + adds r1, r2, #0 + muls r1, r3, r1 + mov sb, r1 + mov ip, r0 +_0800208A: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _080020BC + movs r0, #0xc0 + lsls r0, r0, #4 + mov r8, r0 +_0800209E: + lsls r0, r3, #1 + adds r1, r0, r7 + str r1, [sp, #0x3c] + subs r0, r4, r0 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + ldr r1, [sp, #0x3c] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _0800209E +_080020BC: + adds r7, r2, #0 + mov r1, sb + subs r4, r4, r1 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, ip + bne _0800208A + b _0800223C + .align 2, 0 +_080020CC: .4byte 0x0000FFFF +_080020D0: + ldrh r0, [r6, #0x20] + muls r0, r4, r0 + ldr r3, [sp, #8] + muls r0, r3, r0 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + ldrh r0, [r6, #0x1e] + add r0, r8 + subs r0, #1 + muls r0, r3, r0 + adds r4, r1, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r2, r2, #0x10 + mov sl, r2 + ldr r0, _08002144 @ =0x0000FFFF + cmp r5, r0 + bne _080020F8 + b _0800223C +_080020F8: + ldr r2, [sp] + adds r1, r2, #0 + muls r1, r3, r1 + mov sb, r1 + mov ip, r0 +_08002102: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _08002134 + movs r0, #0x80 + lsls r0, r0, #3 + mov r8, r0 +_08002116: + lsls r0, r3, #1 + adds r1, r0, r7 + str r1, [sp, #0x3c] + subs r0, r4, r0 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + ldr r1, [sp, #0x3c] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _08002116 +_08002134: + adds r7, r2, #0 + add r4, sb + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, ip + bne _08002102 + b _0800223C + .align 2, 0 +_08002144: .4byte 0x0000FFFF +_08002148: + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _080021CC + ldr r1, [sp, #0x14] + adds r0, r1, r5 + subs r0, #1 + muls r0, r4, r0 + ldr r3, [sp, #8] + adds r1, r0, #0 + muls r1, r3, r1 + ldr r0, [r6, #0x10] + adds r0, r0, r1 + ldr r4, [sp, #0x10] + adds r1, r4, #0 + muls r1, r3, r1 + adds r4, r0, r1 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r2, r2, #0x10 + mov sl, r2 + ldr r0, _080021C8 @ =0x0000FFFF + cmp r5, r0 + beq _0800223C + ldr r2, [sp] + adds r1, r2, #0 + muls r1, r3, r1 + mov sb, r1 + mov ip, r0 +_08002184: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _080021B6 + movs r0, #0x80 + lsls r0, r0, #4 + mov r8, r0 +_08002198: + lsls r0, r3, #1 + adds r1, r0, r7 + str r1, [sp, #0x3c] + adds r0, r0, r4 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + ldr r1, [sp, #0x3c] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _08002198 +_080021B6: + adds r7, r2, #0 + mov r1, sb + subs r4, r4, r1 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, ip + bne _08002184 + b _0800223C + .align 2, 0 +_080021C8: .4byte 0x0000FFFF +_080021CC: + ldr r3, [sp, #0x14] + adds r0, r3, #0 + muls r0, r4, r0 + ldr r4, [sp, #8] + adds r1, r0, #0 + muls r1, r4, r1 + ldr r0, [r6, #0x10] + adds r0, r0, r1 + ldr r3, [sp, #0x10] + adds r1, r3, #0 + muls r1, r4, r1 + adds r4, r0, r1 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + lsls r2, r2, #0x10 + mov sl, r2 + ldr r0, _080022F0 @ =0x0000FFFF + cmp r5, r0 + beq _0800223C + ldr r2, _080022F4 @ =0x040000D4 + mov r1, sl + asrs r0, r1, #0x10 + subs r0, #1 + mov r8, r0 + ldr r3, _080022F0 @ =0x0000FFFF + mov ip, r3 + movs r0, #0x80 + lsls r0, r0, #0x18 + mov sb, r0 + ldr r1, [sp] + ldr r0, [sp, #8] + adds r3, r1, #0 + muls r3, r0, r3 +_08002210: + str r4, [r2] + str r7, [r2, #4] + ldrh r0, [r6, #0x26] + mov r1, r8 + subs r0, r0, r1 + ldr r1, [sp, #8] + muls r0, r1, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + mov r1, sb + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, [sp, #0xc] + adds r7, r7, r0 + adds r4, r4, r3 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, ip + bne _08002210 +_0800223C: + mov r1, sl + asrs r3, r1, #0x10 + cmp r3, #0 + bne _08002246 + b _08002570 +_08002246: + ldrh r0, [r6, #0x24] + ldr r2, [sp, #0xc] + muls r0, r2, r0 + ldr r1, [r6, #0xc] + adds r1, r1, r0 + ldrh r0, [r6, #0x22] + ldrh r4, [r6, #0x14] + adds r0, r0, r4 + ldr r5, [sp, #0x10] + subs r0, r0, r5 + ldr r2, [sp, #8] + muls r0, r2, r0 + adds r7, r1, r0 + ldrh r0, [r6, #0x28] + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldrh r1, [r6, #0x2e] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0800236C + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080022F8 + ldr r1, [sp, #0x14] + adds r0, r1, r5 + subs r0, #1 + muls r0, r4, r0 + ldr r2, [sp, #8] + muls r0, r2, r0 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + subs r0, r3, #1 + muls r0, r2, r0 + adds r4, r1, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r3, _080022F0 @ =0x0000FFFF + cmp r5, r3 + bne _080022A2 + b _08002570 +_080022A2: + ldr r1, [sp] + adds r0, r1, #0 + muls r0, r2, r0 + mov sb, r0 + mov sl, r3 +_080022AC: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _080022DE + movs r0, #0xc0 + lsls r0, r0, #4 + mov r8, r0 +_080022C0: + lsls r0, r3, #1 + adds r1, r0, r7 + mov ip, r1 + subs r0, r4, r0 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + mov r1, ip + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _080022C0 +_080022DE: + adds r7, r2, #0 + mov r1, sb + subs r4, r4, r1 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sl + bne _080022AC + b _08002570 + .align 2, 0 +_080022F0: .4byte 0x0000FFFF +_080022F4: .4byte 0x040000D4 +_080022F8: + ldr r2, [sp, #0x14] + adds r0, r2, #0 + muls r0, r4, r0 + ldr r4, [sp, #8] + muls r0, r4, r0 + ldr r1, [r6, #0x10] + adds r1, r1, r0 + subs r0, r3, #1 + muls r0, r4, r0 + adds r4, r1, r0 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08002368 @ =0x0000FFFF + cmp r5, r0 + bne _0800231A + b _08002570 +_0800231A: + ldr r2, [sp] + ldr r3, [sp, #8] + adds r1, r2, #0 + muls r1, r3, r1 + mov sb, r1 + mov sl, r0 +_08002326: + movs r3, #0 + subs r5, #1 + ldr r0, [sp, #0xc] + adds r2, r7, r0 + ldrh r1, [r6, #0x26] + cmp r3, r1 + bhs _08002358 + movs r0, #0x80 + lsls r0, r0, #3 + mov r8, r0 +_0800233A: + lsls r0, r3, #1 + adds r1, r0, r7 + mov ip, r1 + subs r0, r4, r0 + ldrh r0, [r0] + mov r1, r8 + eors r0, r1 + mov r1, ip + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r0, [r6, #0x26] + cmp r3, r0 + blo _0800233A +_08002358: + adds r7, r2, #0 + add r4, sb + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + cmp r5, sl + bne _08002326 + b _08002570 + .align 2, 0 +_08002368: .4byte 0x0000FFFF +_0800236C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080023EC + ldr r1, [sp, #0x14] + adds r0, r1, r5 + subs r0, #1 + muls r0, r4, r0 + ldr r2, [sp, #8] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r6, #0x10] + adds r4, r0, r1 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _080023E8 @ =0x0000FFFF + cmp r5, r0 + bne _08002394 + b _08002570 +_08002394: + mov r1, sl + str r1, [sp, #0x30] + mov ip, r3 + ldr r0, [sp] + adds r3, r0, #0 + muls r3, r2, r3 + mov sb, r3 +_080023A2: + movs r3, #0 + subs r5, #1 + ldr r1, [sp, #0xc] + adds r2, r7, r1 + cmp r3, ip + bge _080023D6 + movs r0, #0x80 + lsls r0, r0, #4 + mov sl, r0 + ldr r1, [sp, #0x30] + asrs r1, r1, #0x10 + mov r8, r1 +_080023BA: + lsls r0, r3, #1 + adds r1, r0, r7 + str r1, [sp, #0x3c] + adds r0, r0, r4 + ldrh r0, [r0] + mov r1, sl + eors r0, r1 + ldr r1, [sp, #0x3c] + strh r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, r8 + blt _080023BA +_080023D6: + adds r7, r2, #0 + mov r2, sb + subs r4, r4, r2 + lsls r0, r5, #0x10 + lsrs r5, r0, #0x10 + ldr r3, _080023E8 @ =0x0000FFFF + cmp r5, r3 + bne _080023A2 + b _08002570 + .align 2, 0 +_080023E8: .4byte 0x0000FFFF +_080023EC: + ldr r1, [sp, #0x14] + adds r0, r1, #0 + muls r0, r4, r0 + ldr r2, [sp, #8] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r6, #0x10] + adds r4, r0, r1 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _0800244C @ =0x0000FFFF + cmp r5, r0 + bne _0800240A + b _08002570 +_0800240A: + ldr r2, _08002450 @ =0x040000D4 + ldr r1, [sp, #8] + adds r0, r3, #0 + muls r0, r1, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + mov sb, r0 + movs r0, #0x80 + lsls r0, r0, #0x18 + mov r3, sb + orrs r3, r0 + mov sb, r3 + ldr r1, [sp] + ldr r3, [sp, #8] + adds r0, r1, #0 + muls r0, r3, r0 + mov r8, r0 +_0800242E: + str r4, [r2] + str r7, [r2, #4] + mov r0, sb + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r1, [sp, #0xc] + adds r7, r7, r1 + add r4, r8 + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r3, _0800244C @ =0x0000FFFF + cmp r5, r3 + bne _0800242E + b _08002570 + .align 2, 0 +_0800244C: .4byte 0x0000FFFF +_08002450: .4byte 0x040000D4 +_08002454: + lsrs r0, r4, #3 + ldrh r4, [r6, #0x1e] + adds r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r0, [r6, #0x32] + lsrs r0, r0, #3 + ldrh r5, [r6, #0x20] + adds r0, r0, r5 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0x14] + movs r0, #0 + mov sl, r0 + ldrh r1, [r6, #0x26] + cmp sl, r1 + bge _08002570 +_08002478: + ldr r4, [sp, #0x10] + add r4, sl + ldrh r1, [r6, #0x14] + adds r0, r4, #0 + bl Div + str r0, [sp, #0x24] + ldrh r1, [r6, #0x14] + adds r2, r0, #0 + adds r0, r2, #0 + muls r0, r1, r0 + subs r4, r4, r0 + str r4, [sp, #0x28] + ldrh r3, [r6, #0x28] + mov r8, r3 + ldrh r0, [r6, #0x26] + mov r4, sl + subs r0, r0, r4 + ldr r5, [sp, #0x28] + subs r1, r1, r5 + cmp r1, r0 + ble _080024A6 + adds r1, r0, #0 +_080024A6: + ldr r2, [sp, #8] + adds r0, r1, #0 + muls r0, r2, r0 + str r0, [sp, #0x2c] + movs r3, #0 + mov sb, r3 + add r1, sl + str r1, [sp, #0x34] + cmp sb, r8 + bge _08002566 +_080024BA: + ldr r4, [sp, #0x14] + add r4, sb + ldrh r1, [r6, #0x16] + adds r0, r4, #0 + bl Div + ldrh r3, [r6, #0x16] + adds r1, r0, #0 + muls r1, r3, r1 + subs r4, r4, r1 + subs r5, r3, r4 + ldrh r1, [r6, #0x3c] + muls r1, r0, r1 + ldr r0, [r6, #0x38] + adds r0, r0, r1 + ldr r1, [sp, #0x24] + adds r0, r0, r1 + ldrb r0, [r0] + ldrh r2, [r6, #0x14] + muls r0, r2, r0 + adds r1, r0, #0 + muls r1, r3, r1 + adds r0, r4, #0 + muls r0, r2, r0 + ldr r2, [sp, #0x28] + adds r0, r0, r2 + adds r1, r1, r0 + ldr r3, [sp, #8] + muls r1, r3, r1 + ldr r0, [r6, #0x10] + adds r4, r0, r1 + ldrh r1, [r6, #0x24] + ldr r0, [r6, #0xc] + adds r0, r0, r1 + ldr r2, [sp, #0xc] + mov r1, sb + muls r1, r2, r1 + adds r0, r0, r1 + ldrh r3, [r6, #0x22] + adds r0, r0, r3 + ldr r2, [sp, #8] + mov r1, sl + muls r1, r2, r1 + adds r7, r0, r1 + add sb, r5 + cmp r5, r8 + ble _0800251A + mov r5, r8 +_0800251A: + mov r3, r8 + subs r3, r3, r5 + mov r8, r3 + adds r0, r5, #0 + subs r5, #1 + cmp r0, #0 + beq _08002560 + ldr r3, _080025A0 @ =0x040000D4 + ldr r1, [sp, #0x2c] + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r0, r0, #1 + str r0, [sp, #0x3c] + movs r0, #0x80 + lsls r0, r0, #0x18 + ldr r2, [sp, #0x3c] + orrs r2, r0 + str r2, [sp, #0x3c] + ldr r1, [sp] + ldr r2, [sp, #8] + adds r0, r1, #0 + muls r0, r2, r0 + mov ip, r0 +_08002548: + str r4, [r3] + str r7, [r3, #4] + ldr r0, [sp, #0x3c] + str r0, [r3, #8] + ldr r0, [r3, #8] + ldr r1, [sp, #0xc] + adds r7, r7, r1 + add r4, ip + adds r0, r5, #0 + subs r5, #1 + cmp r0, #0 + bne _08002548 +_08002560: + ldrh r2, [r6, #0x28] + cmp sb, r2 + blt _080024BA +_08002566: + ldr r3, [sp, #0x34] + mov sl, r3 + ldrh r4, [r6, #0x26] + cmp sl, r4 + blt _08002478 +_08002570: + ldr r0, _080025A4 @ =0x04000006 + ldrh r0, [r0] + ldrh r0, [r6, #0x30] + strh r0, [r6, #0x34] + ldrh r0, [r6, #0x32] + strh r0, [r6, #0x36] + ldr r3, _080025A8 @ =gBackgroundsCopyQueueCursor + ldr r4, _080025AC @ =gBackgroundsCopyQueueIndex +_8002580: @ 0x08002580 + ldrb r0, [r3] + ldrb r5, [r4] + cmp r0, r5 + beq _0800258C + bl _08001AC8 +_0800258C: + movs r0, #1 +sub_800258E: + add sp, #0x40 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080025A0: .4byte 0x040000D4 +_080025A4: .4byte REG_VCOUNT +_080025A8: .4byte gBackgroundsCopyQueueCursor +_080025AC: .4byte gBackgroundsCopyQueueIndex + +.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc b/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc index c866957708..4759ad7f6b 100644 --- a/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc +++ b/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc @@ -10,30 +10,30 @@ sub sp, #0x44 movs r0, #5 str r0, [sp, #0x28] - ldr r0, _08003A04 @ =REG_DISPSTAT + ldr r0, _sa2_08003A04 @ =REG_DISPSTAT ldrh r1, [r0] movs r0, #1 @ DISPSTAT_VBLANK ands r0, r1 cmp r0, #0 - bne _08003A08 + bne _sa2_08003A08 movs r0, #0 b sub_80039E4_return .align 2, 0 -_08003A04: .4byte REG_DISPSTAT -_08003A08: - ldr r0, _08003BA4 @ =gBgSpritesCount +_sa2_08003A04: .4byte REG_DISPSTAT +_sa2_08003A08: + ldr r0, _sa2_08003BA4 @ =gBgSpritesCount ldrb r1, [r0] cmp r1, #0 - bne _08003A12 + bne _sa2_08003A12 b sub_80039E4_return_1 -_08003A12: +_sa2_08003A12: movs r5, #0 @ r5 = r5 = 0 cmp r5, r1 @ for(; r5 < gBgSpritesCount; r5++) - blo _08003A1A - b _08003EC2 -_08003A1A: + blo _sa2_08003A1A + b _sa2_08003EC2 +_sa2_08003A1A: lsls r0, r5, #2 - ldr r1, _08003BA8 @ =gBgSprites + ldr r1, _sa2_08003BA8 @ =gBgSprites adds r0, r0, r1 ldr r0, [r0] str r0, [sp, #0xc] @ sp0C = s @@ -43,9 +43,9 @@ _08003A1A: adds r2, r5, #1 str r2, [sp, #0x3c] cmp r1, r0 - bne _08003A34 - b _08003EB2 -_08003A34: + bne _sa2_08003A34 + b _sa2_08003EB2 +_sa2_08003A34: mov sl, r1 @ sl = dims ldr r3, [sp, #0xc] @ r3 = sp0C = s ldr r0, [r3, #0x10] @@ -54,7 +54,7 @@ _08003A34: ands r0, r1 lsrs r3, r0, #0xf lsls r0, r3, #1 - ldr r4, _08003BAC @ =gBgCntRegs + ldr r4, _sa2_08003BAC @ =gBgCntRegs adds r0, r0, r4 ldrh r2, [r0] movs r0, #0xc @@ -73,29 +73,29 @@ _08003A34: movs r0, #0x80 ands r0, r2 cmp r0, #0 - beq _08003A70 + beq _sa2_08003A70 movs r6, #6 str r6, [sp, #0x28] -_08003A70: +_sa2_08003A70: cmp r3, #1 - bhi _08003A76 - b _08003C2C -_08003A76: - ldr r7, _08003BB0 @ =gDispCnt + bhi _sa2_08003A76 + b _sa2_08003C2C +_sa2_08003A76: + ldr r7, _sa2_08003BB0 @ =gDispCnt ldrh r1, [r7] movs r0, #3 ands r0, r1 cmp r0, #0 - bne _08003A84 - b _08003C2C -_08003A84: + bne _sa2_08003A84 + b _sa2_08003C2C +_sa2_08003A84: lsrs r1, r2, #0xe movs r0, #0x80 lsls r0, r0, #0xd lsls r0, r1 lsrs r0, r0, #0x10 str r0, [sp, #0x10] @ sp10 = bg_affine_pixelcount - ldr r0, _08003BB4 @ =gRefSpriteTables + ldr r0, _sa2_08003BB4 @ =gRefSpriteTables ldr r1, [r0] ldr r2, [sp, #0xc] @ r2 = sp0C = s ldrh r0, [r2, #0xa] @@ -116,21 +116,21 @@ _08003A84: str r5, [sp, #8] ldrh r6, [r3, #2] cmp r5, r6 - blo _08003ABE - b _08003EB2 -_08003ABE: + blo _sa2_08003ABE + b _sa2_08003EB2 +_sa2_08003ABE: mov sb, sp @ sb = sp = oam ldr r7, [sp, #0x10] lsls r0, r7, #0x18 lsrs r0, r0, #0x18 str r0, [sp, #0x30] -_08003AC8: +_sa2_08003AC8: ldr r0, [sp, #0x1c] - ldr r1, _08003BB8 @ =0x040000D4 + ldr r1, _sa2_08003BB8 @ =0x040000D4 str r0, [r1] mov r2, sp str r2, [r1, #4] - ldr r0, _08003BBC @ =0x80000003 + ldr r0, _sa2_08003BBC @ =0x80000003 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, [sp, #0x1c] @@ -149,12 +149,12 @@ _08003AC8: lsrs r0, r0, #0xe orrs r1, r0 lsls r1, r1, #1 - ldr r5, _08003BC0 @ =gOamShapesSizes + ldr r5, _sa2_08003BC0 @ =gOamShapesSizes adds r0, r1, r5 ldrb r0, [r0] lsrs r0, r0, #3 str r0, [sp, #0x20] @ sp20 = tilesX - ldr r6, _08003BC4 @ =gOamShapesSizes+1 + ldr r6, _sa2_08003BC4 @ =gOamShapesSizes+1 adds r1, r1, r6 ldrb r0, [r1] lsrs r0, r0, #3 @@ -193,7 +193,7 @@ _08003AC8: lsrs r1, r0 @ r1 = tileId = ((size_t)(s->graphics.dest - bgVram)) >> sp28 mov r3, sb @ r3 = oam ldrh r2, [r3, #4] - ldr r0, _08003BC8 @ =0x000003FF + ldr r0, _sa2_08003BC8 @ =0x000003FF ands r0, r2 adds r5, r1, r0 movs r6, #0xff @@ -205,17 +205,17 @@ _08003AC8: ldr r0, [sp, #8] adds r0, #1 str r0, [sp, #0x40] -__08003B68: +__sa2_08003B68: cmp r4, #0 - beq _08003C18 + beq _sa2_08003C18 ldr r1, [sp, #0x30] lsls r0, r1, #0x18 asrs r0, r0, #0x18 str r0, [sp, #0x34] -_08003B74: +_sa2_08003B74: mov r2, sb @ r2 = sb = oam ldrh r0, [r2, #2] - ldr r1, _08003BCC @ =0x000001FF + ldr r1, _sa2_08003BCC @ =0x000001FF ands r1, r0 @ r1 = oam->tileNum add r1, r8 asrs r1, r1, #3 @@ -228,28 +228,28 @@ _08003B74: subs r6, #1 ldr r4, [sp, #0x20] cmp r4, #0 - beq _08003BF2 + beq _sa2_08003BF2 movs r4, #1 -_08003B96: +_sa2_08003B96: adds r0, r2, #0 ands r0, r4 cmp r0, #0 - bne _08003BD0 + bne _sa2_08003BD0 str r5, [sp, #0x24] - b _08003BDE + b _sa2_08003BDE .align 2, 0 -_08003BA4: .4byte gBgSpritesCount -_08003BA8: .4byte gBgSprites -_08003BAC: .4byte gBgCntRegs -_08003BB0: .4byte gDispCnt -_08003BB4: .4byte gRefSpriteTables -_08003BB8: .4byte 0x040000D4 -_08003BBC: .4byte 0x80000003 -_08003BC0: .4byte gOamShapesSizes -_08003BC4: .4byte gOamShapesSizes+1 -_08003BC8: .4byte 0x000003FF -_08003BCC: .4byte 0x000001FF -_08003BD0: +_sa2_08003BA4: .4byte gBgSpritesCount +_sa2_08003BA8: .4byte gBgSprites +_sa2_08003BAC: .4byte gBgCntRegs +_sa2_08003BB0: .4byte gDispCnt +_sa2_08003BB4: .4byte gRefSpriteTables +_sa2_08003BB8: .4byte 0x040000D4 +_sa2_08003BBC: .4byte 0x80000003 +_sa2_08003BC0: .4byte gOamShapesSizes +_sa2_08003BC4: .4byte gOamShapesSizes+1 +_sa2_08003BC8: .4byte 0x000003FF +_sa2_08003BCC: .4byte 0x000001FF +_sa2_08003BD0: lsls r0, r5, #8 ldr r1, [sp, #0x24] orrs r1, r0 @@ -257,7 +257,7 @@ _08003BD0: lsrs r0, r0, #0x10 str r0, [sp, #0x24] strh r0, [r2] -_08003BDE: +_sa2_08003BDE: adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 @@ -267,12 +267,12 @@ _08003BDE: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r1, #0 - bne _08003B96 -_08003BF2: + bne _sa2_08003B96 +_sa2_08003BF2: movs r0, #1 ands r0, r2 cmp r0, #0 - beq _08003C08 + beq _sa2_08003C08 ldrh r1, [r2] movs r0, #0xff lsls r0, r0, #8 @@ -280,7 +280,7 @@ _08003BF2: ldr r1, [sp, #0x24] orrs r0, r1 strh r0, [r2] -_08003C08: +_sa2_08003C08: ldr r2, [sp, #0x34] adds r7, r7, r2 mov r1, ip @@ -288,8 +288,8 @@ _08003C08: lsrs r0, r0, #0x18 mov ip, r0 cmp r1, #0 - bne _08003B74 -_08003C18: + bne _sa2_08003B74 +_sa2_08003C18: ldr r3, [sp, #0x40] lsls r0, r3, #0x18 lsrs r0, r0, #0x18 @@ -297,11 +297,11 @@ _08003C18: mov r4, sl ldrh r4, [r4, #2] cmp r0, r4 - bhs _08003C2A - b _08003AC8 @ -> for (sp08 = 0; sp08 < dims->numSubframes; sp08++) -_08003C2A: - b _08003EB2 -_08003C2C: + bhs _sa2_08003C2A + b _sa2_08003AC8 @ -> for (sp08 = 0; sp08 < dims->numSubframes; sp08++) +_sa2_08003C2A: + b _sa2_08003EB2 +_sa2_08003C2C: movs r6, #0x20 str r6, [sp, #0x10] lsls r0, r3, #1 @ r3 = bgId @@ -312,11 +312,11 @@ _08003C2C: lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 - bhi _08003C46 + bhi _sa2_08003C46 movs r7, #0x40 str r7, [sp, #0x10] -_08003C46: - ldr r0, _08003D14 @ =gRefSpriteTables +_sa2_08003C46: + ldr r0, _sa2_08003D14 @ =gRefSpriteTables ldr r1, [r0] ldr r2, [sp, #0xc] @ r2 = sp0C = s ldrh r0, [r2, #0xa] @@ -339,17 +339,17 @@ _08003C46: str r5, [sp, #0x3c] ldrh r7, [r3, #2] cmp r6, r7 - blo _08003C78 - b _08003EB2 -_08003C78: + blo _sa2_08003C78 + b _sa2_08003EB2 +_sa2_08003C78: mov sb, sp @ sb = sp = oam -_08003C7A: +_sa2_08003C7A: ldr r0, [sp, #0x1c] - ldr r1, _08003D18 @ =0x040000D4 + ldr r1, _sa2_08003D18 @ =0x040000D4 str r0, [r1] mov r2, sp str r2, [r1, #4] - ldr r0, _08003D1C @ =0x80000003 + ldr r0, _sa2_08003D1C @ =0x80000003 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, [sp, #0x1c] @@ -368,17 +368,17 @@ _08003C7A: lsrs r0, r0, #0xe @ r0 = oam.size orrs r1, r0 @ r1 = shapeAndSize lsls r1, r1, #1 - ldr r5, _08003D20 @ =gOamShapesSizes + ldr r5, _sa2_08003D20 @ =gOamShapesSizes adds r0, r1, r5 ldrb r0, [r0] lsrs r0, r0, #3 str r0, [sp, #0x20] @ sp20 = tilesX - ldr r6, _08003D24 @ =gOamShapesSizes+1 + ldr r6, _sa2_08003D24 @ =gOamShapesSizes+1 adds r1, r1, r6 ldrb r0, [r1] lsrs r0, r0, #3 mov ip, r0 @ ip = tilesY - ldr r4, _08003D28 @ =0x000001FF + ldr r4, _sa2_08003D28 @ =0x000001FF ands r4, r3 movs r6, #0xff ands r6, r2 @ r6 = oamX @@ -391,7 +391,7 @@ _08003C7A: adds r0, r0, r7 mov r1, sb strh r0, [r1, #4] -__08003CD8: +__sa2_08003CD8: ldr r2, [sp, #0xc] @ r2 = sp0C = s ldr r1, [r2, #0x10] lsrs r1, r1, #0xb @@ -402,8 +402,8 @@ __08003CD8: movs r7, #1 ands r0, r7 cmp r0, #0 - beq _08003D4A -___08003CEE: + beq _sa2_08003D4A +___sa2_08003CEE: movs r1, #0x80 lsls r1, r1, #6 adds r0, r1, #0 @@ -414,23 +414,23 @@ ___08003CEE: movs r0, #1 ands r0, r1 cmp r0, #0 - beq _08003D2C -__08003D04: + beq _sa2_08003D2C +__sa2_08003D04: ldr r3, [sp, #0xc] @ r3 = sp0C = s movs r5, #0x18 ldrsh r0, [r3, r5] mov r7, sl @ r7 = sl = dims movs r2, #0xa ldrsh r1, [r7, r2] - b _08003D3C + b _sa2_08003D3C .align 2, 0 -_08003D14: .4byte gRefSpriteTables -_08003D18: .4byte 0x040000D4 -_08003D1C: .4byte 0x80000003 -_08003D20: .4byte gOamShapesSizes -_08003D24: .4byte gOamShapesSizes+1 -_08003D28: .4byte 0x000001FF -_08003D2C: +_sa2_08003D14: .4byte gRefSpriteTables +_sa2_08003D18: .4byte 0x040000D4 +_sa2_08003D1C: .4byte 0x80000003 +_sa2_08003D20: .4byte gOamShapesSizes +_sa2_08003D24: .4byte gOamShapesSizes+1 +_sa2_08003D28: .4byte 0x000001FF +_sa2_08003D2C: ldr r3, [sp, #0xc] @ r3 = sp0C = s movs r5, #0x18 ldrsh r0, [r3, r5] @@ -439,15 +439,15 @@ _08003D2C: movs r3, #0xa ldrsh r2, [r7, r3] subs r1, r1, r2 -_08003D3C: +_sa2_08003D3C: adds r0, r0, r1 adds r5, r0, #0 subs r5, #8 @ r5 = someOffsetY lsls r0, r6, #0x10 rsbs r0, r0, #0 lsrs r6, r0, #0x10 - b _08003D58 -_08003D4A: + b _sa2_08003D58 +_sa2_08003D4A: ldr r5, [sp, #0xc] @ r5 = sp0C = s movs r7, #0x18 ldrsh r1, [r5, r7] @@ -455,7 +455,7 @@ _08003D4A: movs r3, #0xa ldrsh r0, [r2, r3] subs r5, r1, r0 @ r5 = someOffsetY -_08003D58: +_sa2_08003D58: ldr r7, [sp, #0xc] @ r7 = sp0C = s ldr r0, [r7, #0x10] lsrs r0, r0, #0xa @@ -466,8 +466,8 @@ _08003D58: adds r1, r3, #0 ands r1, r2 cmp r0, r1 - beq _08003DB4 -__08003D6E: + beq _sa2_08003DB4 +__sa2_08003D6E: mov r2, sb @ r2 = sb = oam ldrh r0, [r2, #2] movs r7, #0x80 @@ -480,15 +480,15 @@ __08003D6E: adds r0, r3, #0 ands r0, r1 cmp r0, #0 - beq _08003D96 + beq _sa2_08003D96 ldr r1, [sp, #0xc] @ r1 = sp0C = s movs r2, #0x16 ldrsh r0, [r1, r2] mov r3, sl movs r7, #8 ldrsh r1, [r3, r7] - b _08003DA6 -_08003D96: + b _sa2_08003DA6 +_sa2_08003D96: ldr r1, [sp, #0xc] @ r1 = sp0C = s movs r2, #0x16 ldrsh r0, [r1, r2] @@ -497,15 +497,15 @@ _08003D96: movs r7, #8 ldrsh r2, [r3, r7] subs r1, r1, r2 -_08003DA6: +_sa2_08003DA6: adds r0, r0, r1 subs r0, #8 mov r8, r0 lsls r0, r4, #0x10 rsbs r0, r0, #0 lsrs r4, r0, #0x10 - b _08003DC4 -_08003DB4: + b _sa2_08003DC4 +_sa2_08003DB4: ldr r0, [sp, #0xc] @ r0 = sp0C = s movs r2, #0x16 ldrsh r1, [r0, r2] @@ -514,7 +514,7 @@ _08003DB4: ldrsh r0, [r3, r7] subs r1, r1, r0 mov r8, r1 -_08003DC4: +_sa2_08003DC4: movs r0, #0x10 rsbs r0, r0, #0 mov r1, r8 @@ -530,23 +530,23 @@ _08003DC4: movs r3, #2 str r3, [sp, #0x2c] cmp r0, #0 - beq _08003DE8 + beq _sa2_08003DE8 movs r7, #0xfe str r7, [sp, #0x2c] -_08003DE8: +_sa2_08003DE8: movs r0, #0x80 lsls r0, r0, #6 ands r0, r1 cmp r0, #0 - beq _08003DFA + beq _sa2_08003DFA ldr r1, [sp, #0x10] lsls r0, r1, #0x19 rsbs r0, r0, #0 - b _08003DFE -_08003DFA: + b _sa2_08003DFE +_sa2_08003DFA: ldr r2, [sp, #0x10] lsls r0, r2, #0x19 -_08003DFE: +_sa2_08003DFE: lsrs r0, r0, #0x18 str r0, [sp, #0x30] lsls r0, r6, #0x10 @@ -565,7 +565,7 @@ _08003DFE: lsrs r1, r2 mov r3, sb ldrh r2, [r3, #4] - ldr r0, _08003EDC @ =0x0000F3FF + ldr r0, _sa2_08003EDC @ =0x0000F3FF ands r0, r2 adds r1, r1, r0 ldrh r2, [r3, #2] @@ -585,7 +585,7 @@ _08003DFE: adds r6, #1 str r6, [sp, #0x40] cmp r1, #0 - beq _08003EA0 + beq _sa2_08003EA0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 add r0, r8 @@ -595,7 +595,7 @@ _08003DFE: lsls r0, r1, #0x18 asrs r0, r0, #0x18 mov r8, r0 -_08003E5E: +_sa2_08003E5E: ldr r3, [sp, #0x38] adds r2, r7, r3 ldr r0, [sp, #0x20] @@ -606,11 +606,11 @@ _08003E5E: subs r6, #1 ldr r4, [sp, #0x20] cmp r4, #0 - beq _08003E92 + beq _sa2_08003E92 ldr r1, [sp, #0x2c] lsls r0, r1, #0x18 asrs r4, r0, #0x18 -_08003E7A: +_sa2_08003E7A: adds r1, r5, #0 adds r0, r1, #1 lsls r0, r0, #0x10 @@ -622,16 +622,16 @@ _08003E7A: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r1, #0 - bne _08003E7A -_08003E92: + bne _sa2_08003E7A +_sa2_08003E92: add r7, r8 mov r1, ip lsls r0, r6, #0x18 lsrs r0, r0, #0x18 mov ip, r0 cmp r1, #0 - bne _08003E5E -_08003EA0: + bne _sa2_08003E5E +_sa2_08003EA0: ldr r2, [sp, #0x40] lsls r0, r2, #0x18 lsrs r0, r0, #0x18 @@ -639,20 +639,20 @@ _08003EA0: mov r3, sl @ r3 = sl = dims ldrh r3, [r3, #2] cmp r0, r3 - bhs _08003EB2 - b _08003C7A -_08003EB2: + bhs _sa2_08003EB2 + b _sa2_08003C7A +_sa2_08003EB2: ldr r4, [sp, #0x3c] lsls r0, r4, #0x18 lsrs r5, r0, #0x18 - ldr r6, _08003EE0 @ =gBgSpritesCount + ldr r6, _sa2_08003EE0 @ =gBgSpritesCount ldrb r6, [r6] cmp r5, r6 - bhs _08003EC2 - b _08003A1A -_08003EC2: + bhs _sa2_08003EC2 + b _sa2_08003A1A +_sa2_08003EC2: movs r0, #0 - ldr r7, _08003EE0 @ =gBgSpritesCount + ldr r7, _sa2_08003EE0 @ =gBgSpritesCount strb r0, [r7] sub_80039E4_return_1: movs r0, #1 @@ -666,7 +666,7 @@ sub_80039E4_return: pop {r1} bx r1 .align 2, 0 -_08003EDC: .4byte 0x0000F3FF -_08003EE0: .4byte gBgSpritesCount +_sa2_08003EDC: .4byte 0x0000F3FF +_sa2_08003EE0: .4byte gBgSpritesCount .syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_8004010.inc b/sa1/asm/non_matching/engine/sa2__sub_8004010.inc index 6180591a02..64ba293cb6 100644 --- a/sa1/asm/non_matching/engine/sa2__sub_8004010.inc +++ b/sa1/asm/non_matching/engine/sa2__sub_8004010.inc @@ -1,3 +1,5 @@ +.include "asm/macros.inc" + .syntax unified .text push {r4, r5, r6, r7, lr} @@ -7,89 +9,96 @@ push {r5, r6, r7} sub sp, #0x18 movs r0, #0 - mov r8, r0 + mov r8, r0 @ r8 = bg = 0 mov r1, sp - str r1, [sp, #0x10] -_08002F98: - mov r2, r8 - lsls r0, r2, #2 - ldr r1, _08003050 @ =gBgSprites_Unknown2 + str r1, [sp, #0x10] @ sp+0x10 = sp +sub_8004010_loop: + mov r2, r8 @ r8 = bg + lsls r0, r2, #2 @ r0 = bg*4 + ldr r1, _sa2_080040DC @ =gBgSprites_Unknown2 adds r1, #1 - adds r4, r0, r1 - ldr r6, _08003054 @ =gBgSprites_Unknown2+3 - adds r6, r0, r6 - str r6, [sp, #0xc] - ldrb r1, [r4] - ldrb r2, [r6] - mov ip, r2 - mov sl, r0 + adds r4, r0, r1 @ r4 = gBgSprites_Unknown2[bg][1] + ldr r6, _sa2_080040E0 @ =gBgSprites_Unknown2 + 3 + adds r6, r0, r6 @ r6 = &gBgSprites_Unknown2[bg][3] + str r6, [sp, #0xc] @ sp0C = r6 = &gBgSprites_Unknown2[bg][3] + ldrb r1, [r4] @ r1 = *r4 = gBgSprites_Unknown2[bg][1] + ldrb r2, [r6] @ r2 = *r6 = gBgSprites_Unknown2[bg][3] + mov ip, r2 @ ip = r2 = gBgSprites_Unknown2[bg][3] + mov sl, r0 @ sl = bg*4 +__sa2_0800403C: cmp r1, ip - bne _08002FCA - ldr r0, _08003050 @ =gBgSprites_Unknown2 + bne _sa2_08004056 + ldr r0, _sa2_080040DC @ =gBgSprites_Unknown2 + 0 add r0, sl - ldr r1, _08003058 @ =gBgSprites_Unknown2+ - add r1, sl - ldrb r0, [r0] + ldr r1, _sa2_080040E4 @ =gBgSprites_Unknown2 + 2 + add r1, sl @ r1 = gBgSprites_Unknown2[bg][2] + ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][0] mov r7, r8 - adds r7, #1 + adds r7, #1 @ r7 = bg+1 ldrb r1, [r1] +__sa2_08004050: cmp r0, r1 - bne _08002FCA - b _080031B6 -_08002FCA: - ldr r2, _0800305C @ =gBgCntRegs - mov r6, r8 - lsls r3, r6, #1 - adds r0, r3, r2 - ldrh r6, [r0] + bne _sa2_08004056 + b sub_8004010_continue +_sa2_08004056: + ldr r2, _sa2_080040E8 @ =gBgCntRegs + mov r6, r8 @ r6 = r8 = bg + lsls r3, r6, #1 @ r3 = bg*2 + adds r0, r3, r2 @ r0 = &gBgCntRegs[bg] + ldrh r6, [r0] @ r6 = bgCtrl = gBgCntRegs[bg] movs r1, #0xc0 - lsls r1, r1, #0x13 + lsls r1, r1, #0x13 @ r1 = VRAM movs r0, #0xf8 lsls r0, r0, #5 - ands r0, r6 + ands r0, r6 @ bgCtrl & 0x1F00 lsls r0, r0, #3 - adds r5, r0, r1 - ldrb r4, [r4] - ldr r0, _08003050 @ =gBgSprites_Unknown2 - add r0, sl - ldrb r0, [r0] + adds r5, r0, r1 @ r5 = vramBase + ldrb r4, [r4] @ r4 = gBgSprites_Unknown2[bg][1] + ldr r0, _sa2_080040DC @ =gBgSprites_Unknown2 + add r0, sl @ r0 = &gBgSprites_Unknown2[bg][0] + ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][0] str r0, [sp, #8] - adds r7, r2, #0 - adds r2, r3, #0 + adds r7, r2, #0 @ r7 = gBgCntRegs + adds r2, r3, #0 @ r2 = r3 = bg * 2 mov r0, r8 +__sa2_0800407E: cmp r0, #1 - bls _080030DC - ldr r0, _08003060 @ =gDispCnt + bls _sa2_08004168 + ldr r0, _sa2_080040EC @ =gDispCnt ldrh r1, [r0] movs r0, #3 ands r0, r1 +__sa2_0800408A: cmp r0, #0 - beq _080030DC + beq _sa2_08004168 +__sa2_0800408E: ldr r1, [sp, #8] - adds r5, r5, r1 - lsrs r2, r6, #0xe + adds r5, r5, r1 @ r5 = vramBase + sp08 + lsrs r2, r6, #14 @ r2 = (r6 = bgCtrl) >> 14 movs r0, #0x80 lsls r0, r0, #0xd lsls r0, r2 - lsrs r3, r0, #0x10 - mov r2, ip + lsrs r3, r0, #0x10 @ r3 = affineSize = (16 << (gBgCntRegs[bg] >> 14)) + mov r2, ip @ r2 = ip = gBgSprites_Unknown2[bg][3] +__sa2_0800409E: cmp r2, #0xff - bne _0800306C - ldr r0, _08003064 @ =gBgSprites_Unknown1 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, #8 - orrs r1, r0 - adds r0, r4, #0 - muls r0, r3, r0 - adds r0, r5, r0 - ldr r6, [sp, #0x10] - strh r1, [r6] + bne _sa2_080040F8 +__sa2_080040A2: + ldr r0, _sa2_080040F0 @ =gBgSprites_Unknown1 + add r0, r8 @ r0 = &gBgSprites_Unknown1[bg] + ldrb r1, [r0] @ r1 = gBgSprites_Unknown1[bg] + lsls r0, r1, #8 @ combine(v) : ((v) << 8 | (v)) + orrs r1, r0 @ r1 = cb = combine(gBgSprites_Unknown1[bg]) + adds r0, r4, #0 @ r0 = r4 = gBgSprites_Unknown2[bg][1] + muls r0, r3, r0 @ r0 = affineSize * gBgSprites_Unknown2[bg][1] + adds r0, r5, r0 @ r0 = vramBase + (affineSize * gBgSprites_Unknown2[bg][1]) + ldr r6, [sp, #0x10] @ --- DMA Start --- + strh r1, [r6] @ *sp10 = cb mov r1, sp - ldr r2, _08003068 @ =0x040000D4 - str r1, [r2] - str r0, [r2, #4] - ldr r6, [sp, #0xc] + ldr r2, _sa2_080040F4 @ =0x040000D4 + str r1, [r2] @ DMASrc = sp00 (fill: cb) + str r0, [r2, #4] @ vramBase + ldr r6, [sp, #0xc] @ sp0C = &gBgSprites_Unknown2[bg][3] ldrb r0, [r6] subs r0, r0, r4 muls r0, r3, r0 @@ -100,53 +109,54 @@ _08002FCA: lsls r1, r1, #0x18 orrs r0, r1 str r0, [r2, #8] - ldr r0, [r2, #8] + ldr r0, [r2, #8] @ @ --- DMA End --- add r2, sp, #4 - mov sb, r2 - b _08003134 + mov sb, r2 @ sb = 2nd dmaTarget + b _sa2_080041C0 .align 2, 0 -_08003050: .4byte gBgSprites_Unknown2 -_08003054: .4byte gBgSprites_Unknown2+3 -_08003058: .4byte gBgSprites_Unknown2+2 -_0800305C: .4byte gBgCntRegs -_08003060: .4byte gDispCnt -_08003064: .4byte gBgSprites_Unknown1 -_08003068: .4byte 0x040000D4 -_0800306C: +_sa2_080040DC: .4byte gBgSprites_Unknown2 +_sa2_080040E0: .4byte gBgSprites_Unknown2 + 3 +_sa2_080040E4: .4byte gBgSprites_Unknown2 + 2 +_sa2_080040E8: .4byte gBgCntRegs +_sa2_080040EC: .4byte gDispCnt +_sa2_080040F0: .4byte gBgSprites_Unknown1 +_sa2_080040F4: .4byte 0x040000D4 +_sa2_080040F8: add r6, sp, #4 - mov sb, r6 - mov r7, r8 - adds r7, #1 - cmp r4, ip - bls _0800307A - b _080031A0 -_0800307A: - ldr r0, _080030D0 @ =gBgSprites_Unknown1 + mov sb, r6 @ sb = sp04 (2nd dmaTarget) + mov r7, r8 @ r7 = r8 = bg + adds r7, #1 @ r7 = bg + 1 +__sa2_08004100: + cmp r4, ip @ ip = p3 + bls _sa2_08004106 + b _sa2_0800422C +_sa2_08004106: + ldr r0, _sa2_0800415C @ =gBgSprites_Unknown1 add r0, r8 - mov ip, r0 - ldr r2, _080030D4 @ =0x040000D4 - ldr r1, _080030D8 @ =gBgSprites_Unknown2 + mov ip, r0 @ ip = &gBgSprites_Unknown1[bg] + ldr r2, _sa2_08004160 @ =0x040000D4 + ldr r1, _sa2_08004164 @ =gBgSprites_Unknown2 + 2 add r1, sl - mov r8, r1 + mov r8, r1 @ r8 = &gBgSprites_Unknown2[bg][2] ldr r6, [sp, #0xc] str r6, [sp, #0x14] -_0800308C: - mov r0, ip +_sa2_08004118_loop: + mov r0, ip @ r0 = ip = &gBgSprites_Unknown1[bg] ldrb r1, [r0] lsls r0, r1, #8 - orrs r1, r0 + orrs r1, r0 @ r1 = cb = combine(gBgSprites_Unknown1[bg]) adds r0, r4, #0 - muls r0, r3, r0 + muls r0, r3, r0 @ r0 *= affineSize adds r0, r5, r0 - ldr r6, [sp, #0x10] - strh r1, [r6] + ldr r6, [sp, #0x10] @ r6 = sp00 + strh r1, [r6] @ sp00[0] = cb mov r1, sp str r1, [r2] str r0, [r2, #4] - mov r6, r8 + mov r6, r8 @ r6 = r8 = &gBgSprites_Unknown2[bg][2] ldrb r0, [r6] ldr r1, [sp, #8] - subs r0, r0, r1 + subs r0, r0, r1 @ r0 = gBgSprites_Unknown2[bg][2] - gBgSprites_Unknown2[bg][0] adds r0, #1 asrs r1, r0, #1 lsrs r0, r0, #0x1f @@ -163,48 +173,53 @@ _0800308C: ldr r0, [sp, #0x14] ldrb r0, [r0] cmp r4, r0 - bls _0800308C - b _080031A0 + bls _sa2_08004118_loop + b _sa2_0800422C .align 2, 0 -_080030D0: .4byte gBgSprites_Unknown1 -_080030D4: .4byte 0x040000D4 -_080030D8: .4byte gBgSprites_Unknown2+2 -_080030DC: - ldr r1, [sp, #8] +_sa2_0800415C: .4byte gBgSprites_Unknown1 +_sa2_08004160: .4byte 0x040000D4 +_sa2_08004164: .4byte gBgSprites_Unknown2 + 2 +_sa2_08004168: + ldr r1, [sp, #8] @ r1 = sp08 = gBgSprites_Unknown2[bg][0] lsls r0, r1, #1 - adds r5, r5, r0 - movs r3, #0x20 - adds r0, r2, r7 + adds r5, r5, r0 @ r5 = vramBase + (sp08 * 2) + movs r3, #0x20 @ r3 = tileSize = 32 + @ r7 = gBgCntRegs + @ r2 = bg*2 + adds r0, r2, r7 @ r0 = &gBgCntRegs[bg] ldrh r0, [r0] - lsrs r2, r0, #0xe + lsrs r2, r0, #14 subs r0, r2, #2 lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 + lsrs r0, r0, #0x18 @ r0 = affineSize +__sa2_0800417C: cmp r0, #1 - bhi _080030F6 - movs r3, #0x40 -_080030F6: - ldr r1, _0800313C @ =gBgSprites_Unknown2+2 - add r1, sl + bhi _sa2_08004182 + movs r3, #0x40 @ r3 = tileSize = 64 +_sa2_08004182: + ldr r1, _sa2_080041C8 @ =&gBgSprites_Unknown2[0][2] + add r1, sl @ r1 = &gBgSprites_Unknown2[bg][2] ldrb r0, [r1] +__sa2_08004188: cmp r0, #0xff - bne _0800314C - ldr r0, _08003140 @ =gBgSprites_Unknown1 + bne _sa2_080041D8 +__sa2_0800418C: + ldr r0, _sa2_080041CC @ =gBgSprites_Unknown1 add r0, r8 - ldrb r1, [r0] - lsls r0, r3, #1 - muls r0, r4, r0 + ldrb r1, [r0] @ r1 = gBgSprites_Unknown1[bg] + lsls r0, r3, #1 @ r3 = tileSize + muls r0, r4, r0 @ r0 = tileSize * gBgSprites_Unknown2[bg][1] adds r0, r5, r0 - ldr r2, [sp, #0x10] - strh r1, [r2] - mov r6, sp - ldr r1, _08003144 @ =0x040000D4 + ldr r2, [sp, #0x10] @ r2 = &sp00[0] + strh r1, [r2] @ sp00[0] = gBgSprites_Unknown1[bg]; + mov r6, sp @ r6 = sp + ldr r1, _sa2_080041D0 @ =0x040000D4 str r6, [r1] str r0, [r1, #4] - ldr r0, _08003148 @ =gBgSprites_Unknown2+3 - add r0, sl - ldrb r0, [r0] - subs r0, r0, r4 + ldr r0, _sa2_080041D4 @ r0 = &gBgSprites_Unknown2[0][3] + add r0, sl @ r0 = &gBgSprites_Unknown2[bg][3] + ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][3] + subs r0, r0, r4 @ r0 = r0 - gBgSprites_Unknown2[bg][1] muls r0, r3, r0 lsls r0, r0, #1 asrs r0, r0, #1 @@ -214,47 +229,48 @@ _080030F6: str r0, [r1, #8] ldr r0, [r1, #8] add r6, sp, #4 - mov sb, r6 -_08003134: + mov sb, r6 @ sb = dmaTarget +_sa2_080041C0: mov r7, r8 adds r7, #1 - b _080031A0 + b _sa2_0800422C .align 2, 0 -_0800313C: .4byte gBgSprites_Unknown2+2 -_08003140: .4byte gBgSprites_Unknown1 -_08003144: .4byte 0x040000D4 -_08003148: .4byte gBgSprites_Unknown2+3 -_0800314C: - ldr r0, _080031D4 @ =gBgSprites_Unknown2+3 - add r0, sl +_sa2_080041C8: .4byte gBgSprites_Unknown2 + 2 +_sa2_080041CC: .4byte gBgSprites_Unknown1 +_sa2_080041D0: .4byte 0x040000D4 +_sa2_080041D4: .4byte gBgSprites_Unknown2 + 3 +_sa2_080041D8: + ldr r0, _sa2_08004260 @ =gBgSprites_Unknown2 + 3 + add r0, sl @ r0 = &gBgSprites_Unknown2[bg][3] add r2, sp, #4 - mov sb, r2 - mov r7, r8 + mov sb, r2 @ sb = dmaTarget + mov r7, r8 @ r7 = bg+1 (done by loop) adds r7, #1 - ldrb r6, [r0] + ldrb r6, [r0] @ r6 = gBgSprites_Unknown2[bg][3] +__sa2_080041E6: cmp r4, r6 - bhi _080031A0 - ldr r2, _080031D8 @ =gBgSprites_Unknown1 - add r8, r2 - ldr r2, _080031DC @ =0x040000D4 - mov ip, r1 + bhi _sa2_0800422C + ldr r2, _sa2_08004264 @ r2 = gBgSprites_Unknown1 + add r8, r2 @ r8 = gBgSprites_Unknown1[bg] + ldr r2, _sa2_08004268 @ =0x040000D4 + mov ip, r1 @ ip = r1 = &gBgSprites_Unknown2[bg][2] str r0, [sp, #0x14] lsls r3, r3, #1 -_0800316A: - mov r6, r8 - ldrb r1, [r6] - adds r0, r4, #0 - muls r0, r3, r0 - adds r0, r5, r0 +_sa2_080041F6: + mov r6, r8 @ r6 = &gBgSprites_Unknown1[bg] + ldrb r1, [r6] @ r1 = gBgSprites_Unknown1[bg] + adds r0, r4, #0 @ r0 = r4 = gBgSprites_Unknown2[bg][1] + muls r0, r3, r0 @ r0 = tileSize * gBgSprites_Unknown2[bg][1] + adds r0, r5, r0 ldr r6, [sp, #0x10] - strh r1, [r6] + strh r1, [r6] @ sp00[0] = gBgSprites_Unknown1[bg] mov r1, sp str r1, [r2] str r0, [r2, #4] - mov r6, ip + mov r6, ip @ r6 = ip = &gBgSprites_Unknown2[bg][2] ldrb r0, [r6] ldr r1, [sp, #8] - subs r0, r0, r1 + subs r0, r0, r1 @ r0 = (gBgSprites_Unknown2[bg][2] - gBgSprites_Unknown2[bg][0]) adds r0, #1 movs r6, #0x81 lsls r6, r6, #0x18 @@ -267,27 +283,27 @@ _0800316A: ldr r0, [sp, #0x14] ldrb r0, [r0] cmp r4, r0 - bls _0800316A -_080031A0: + bls _sa2_080041F6 +_sa2_0800422C: movs r0, #0 str r0, [sp, #4] - mov r1, sb - ldr r2, _080031DC @ =0x040000D4 + mov r1, sb @ r1 = sb = &sp04 = dmaTarget + ldr r2, _sa2_08004268 @ r2 = 0x040000D4 str r1, [r2] - ldr r0, _080031E0 @ =gBgSprites_Unknown2 - add r0, sl + ldr r0, _sa2_0800426C @ =gBgSprites_Unknown2 + add r0, sl @ r0 = &gBgSprites_Unknown2[bg][0] str r0, [r2, #4] - ldr r0, _080031E4 @ =0x85000001 + ldr r0, _sa2_08004270 @ =0x85000001 str r0, [r2, #8] ldr r0, [r2, #8] -_080031B6: +sub_8004010_continue: lsls r0, r7, #0x18 lsrs r0, r0, #0x18 mov r8, r0 cmp r0, #3 - bhi _080031C2 - b _08002F98 -_080031C2: + bhi sub_8004010_return + b sub_8004010_loop +sub_8004010_return: movs r0, #1 add sp, #0x18 pop {r3, r4, r5} @@ -298,10 +314,10 @@ _080031C2: pop {r1} bx r1 .align 2, 0 -_080031D4: .4byte gBgSprites_Unknown2+3 -_080031D8: .4byte gBgSprites_Unknown1 -_080031DC: .4byte 0x040000D4 -_080031E0: .4byte gBgSprites_Unknown2 -_080031E4: .4byte 0x85000001 +_sa2_08004260: .4byte gBgSprites_Unknown2 + 3 +_sa2_08004264: .4byte gBgSprites_Unknown1 +_sa2_08004268: .4byte 0x040000D4 +_sa2_0800426C: .4byte gBgSprites_Unknown2 +_sa2_08004270: .4byte 0x85000001 .syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc b/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc index 994d62d461..8576cd49aa 100644 --- a/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc +++ b/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc @@ -6,50 +6,50 @@ mov r5, r8 push {r5, r6, r7} sub sp, #0x40 - str r0, [sp, #0x24] - adds r6, r1, #0 + str r0, [sp, #0x24] @ sp24 = s + adds r6, r1, #0 @ r6 = transform ldr r1, [r0, #0xc] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - bne _08003DA0 - b _08004148 -_08003DA0: - mov sb, r1 + bne _sa2_08004E30 + b _sa2_080051D8 +_sa2_08004E30: + mov sb, r1 @ sb = sprDims add r2, sp, #0x20 ldr r1, [sp, #0x24] ldr r0, [r1, #0x10] movs r1, #0x1f ands r0, r1 - strh r0, [r2] + strh r0, [r2] @ us->affineIndex = s->unk10 & SPRITE_FLAG_MASK_ROT_SCALE; ldrh r4, [r2] lsls r4, r4, #5 - ldr r0, _08004098 @ =gOamBuffer+0x6 - adds r4, r4, r0 + ldr r0, _sa2_08005128 @ =gOamBuffer + 0x6 + adds r4, r4, r0 @ r4 = u16 *affine = &gOamBuffer[us->affineIndex * 4 + 3]; subs r2, #0x18 - str r2, [sp, #0x28] + str r2, [sp, #0x28] @ sp28 = &us->qDirX ldrh r0, [r6] - ldr r3, _0800409C @ =gSpriteTransformRotation + ldr r3, _sa2_0800512C @ =gSpriteTransformRotation ldrh r1, [r3] adds r0, r0, r1 - ldr r2, _080040A0 @ =0x000003FF + ldr r2, _sa2_08005130 @ =0x000003FF ands r0, r2 movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 lsls r0, r0, #1 - ldr r7, _080040A4 @ =gSineTable + ldr r7, _sa2_08005134 @ =gSineTable adds r0, r0, r7 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 ldr r1, [sp, #0x28] - strh r0, [r1] + strh r0, [r1] @ us.qDirX = COS_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); movs r3, #0xa add r3, sp - mov r8, r3 - ldrh r0, [r6] - ldr r5, _0800409C @ =gSpriteTransformRotation + mov r8, r3 @ r8 = r3 = &us.qDirY + ldrh r0, [r6] @ r0 = transform->rotation + ldr r5, _sa2_0800512C @ =gSpriteTransformRotation ldrh r1, [r5] adds r0, r0, r1 ands r0, r2 @@ -58,28 +58,28 @@ _08003DA0: ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - strh r0, [r3] - add r7, sp, #0xc + strh r0, [r3] @ us.qDirY = SIN_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); + add r7, sp, #0xc @ r7 = us->unkC[0] movs r0, #2 - ldrsh r1, [r6, r0] - ldr r2, _080040A8 @ =gSpriteTransformScaleX + ldrsh r1, [r6, r0] @ r1 = transform->width + ldr r2, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r7] + strh r0, [r7] @ us->unkC[0] = ((transform->width * gSpriteTransformScaleX) >> 8) movs r3, #0xe add r3, sp mov sl, r3 movs r5, #4 - ldrsh r1, [r6, r5] - ldr r2, _080040AC @ =gSpriteTransformScaleY + ldrsh r1, [r6, r5] @ r1 = transform->height + ldr r2, _sa2_0800513C @ =gSpriteTransformScaleY ldrh r0, [r2] muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r3] + strh r0, [r3] @ us->unkC[1] = ((transform->height * gSpriteTransformScaleY) >> 8); movs r5, #0x80 lsls r5, r5, #9 - ldrh r1, [r7] + ldrh r1, [r7] @ r1 = us->unkC[0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r5, #0 @@ -98,7 +98,7 @@ _08003DA0: asrs r1, r1, #0x10 adds r0, r5, #0 bl Div - mov r2, r8 + mov r2, r8 @ r2 = r8 = &us.qDirY ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -107,13 +107,13 @@ _08003DA0: muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r4, #8] - mov r3, sl + mov r3, sl @ r3 = &us->unkC[1] ldrh r1, [r3] lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r5, #0 bl Div - mov r2, r8 + mov r2, r8 @ r2 = r8 = &us.qDirY ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -123,7 +123,7 @@ _08003DA0: muls r0, r1, r0 asrs r0, r0, #8 strh r0, [r4, #0x10] - mov r3, sl + mov r3, sl @ r3 = &us->unkC[1] ldrh r1, [r3] lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -139,40 +139,40 @@ _08003DA0: asrs r0, r0, #8 strh r0, [r4, #0x18] movs r1, #2 - ldrsh r0, [r6, r1] + ldrsh r0, [r6, r1] @ r0 = transform->width str r0, [sp, #0x2c] cmp r0, #0 - bge _08003EB8 + bge _sa2_08004F48 movs r2, #2 ldrsh r0, [r6, r2] rsbs r0, r0, #0 - ldr r3, _080040A8 @ =gSpriteTransformScaleX + ldr r3, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r1, [r3] muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r7] -_08003EB8: + strh r0, [r7] @ us->unkC[0] = I(-transform->width * gSpriteTransformScaleX); +_sa2_08004F48: movs r4, #4 ldrsh r0, [r6, r4] - ldr r5, _080040AC @ =gSpriteTransformScaleY + ldr r5, _sa2_0800513C @ =gSpriteTransformScaleY ldrh r4, [r5] ldrh r2, [r6, #4] mov r1, sp - strh r2, [r1, #0x3c] + strh r2, [r1, #0x3c] @ sp3C = (u16)transform->height cmp r0, #0 - bge _08003EDA + bge _sa2_08004F6A movs r3, #4 ldrsh r0, [r6, r3] rsbs r0, r0, #0 muls r0, r4, r0 asrs r0, r0, #8 - mov r4, sl + mov r4, sl @ r4 = sl = &us->unkC[1] strh r0, [r4] - ldrh r4, [r5] -_08003EDA: - mov r2, sp + ldrh r4, [r5] @ r4 = gSpriteTransformScaleY +_sa2_08004F6A: + mov r2, sp @ r2 = &us ldr r5, [sp, #0x28] - ldrh r1, [r5] + ldrh r1, [r5] @ r1 = us->qDirX lsls r1, r1, #0x10 asrs r1, r1, #0x10 ldrh r0, [r7] @@ -180,38 +180,38 @@ _08003EDA: asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r2] + strh r0, [r2] @ us.unk0[0] = I(us->unkC[0] * us->qDirX) mov r0, sp adds r0, #2 - str r0, [sp, #0x30] - mov r2, r8 + str r0, [sp, #0x30] @ sp30 = &us.unk0[1] + mov r2, r8 @ r2 = r8 = &us.qDirY ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - rsbs r1, r1, #0 + rsbs r1, r1, #0 @ r1 = -us.qDirY ldrh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 ldr r3, [sp, #0x30] - strh r0, [r3] + strh r0, [r3] @ us.unk0[1] = I(-us.qDirY * us->unkC[0]) mov r5, sp adds r5, #4 - str r5, [sp, #0x34] + str r5, [sp, #0x34] @ sp34 = &us.unk0[2] ldrh r1, [r2] lsls r1, r1, #0x10 asrs r1, r1, #0x10 - mov r2, sl + mov r2, sl @ r2 = sl = &us->unkC[1] ldrh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r5] + strh r0, [r5] @ us.unk0[2] = I(+us.qDirY * us->unkC[1]) mov r3, sp adds r3, #6 - str r3, [sp, #0x38] + str r3, [sp, #0x38] @ sp38 = &us.unk0[3] ldr r5, [sp, #0x28] ldrh r1, [r5] lsls r1, r1, #0x10 @@ -221,52 +221,52 @@ _08003EDA: asrs r0, r0, #0x10 muls r0, r1, r0 asrs r0, r0, #8 - strh r0, [r3] + strh r0, [r3] @ us.unk0[3] = I(+us.qDirX * us.unkC[1]); add r0, sp, #0x18 - mov r8, r0 - ldr r1, _0800409C @ =gSpriteTransformRotation + mov r8, r0 @ r8 = &us.unk18[0][0] + ldr r1, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r1] movs r2, #0x80 lsls r2, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 - ldr r3, _080040A4 @ =gSineTable + ldr r3, _sa2_08005134 @ =gSineTable adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r5, _080040A8 @ =gSpriteTransformScaleX + ldr r5, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 lsls r2, r2, #8 - asrs r2, r2, #0x10 + asrs r2, r2, #0x10 @ r2 = (COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) ldrh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 - ldr r3, _080040B0 @ =sa2__gUnknown_03005398 + ldr r3, _sa2_08005140 @ =gSpriteTransformScaleUnknown movs r5, #0 ldrsh r1, [r3, r5] muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 + lsls r0, r0, #8 @ r0 = Q(us.unkC[0] * gSpriteTransformScaleUnknown) + asrs r0, r0, #0x10 @ r0 = (Q(us.unkC[0] * gSpriteTransformScaleUnknown) >> 16) muls r0, r2, r0 - asrs r0, r0, #8 + asrs r0, r0, #8 @ r0 = I((COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) * (Q(us.unkC[0] * gSpriteTransformScaleUnknown) >> 16)) mov r1, r8 - strh r0, [r1] + strh r0, [r1] @ us.unk18[0][0] = I(r2 * r0) movs r2, #0x1a add r2, sp - mov ip, r2 - ldr r5, _0800409C @ =gSpriteTransformRotation + mov ip, r2 @ ip = us.unk18[0][1] + ldr r5, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r5] lsls r0, r0, #1 - ldr r1, _080040A4 @ =gSineTable + ldr r1, _sa2_08005134 @ =gSineTable adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] rsbs r0, r0, #0 - asrs r0, r0, #6 - ldr r5, _080040A8 @ =gSpriteTransformScaleX + asrs r0, r0, #6 @ r0 = (SIN(-gSpriteTransformRotation) >> 6) + ldr r5, _sa2_08005138 @ =gSpriteTransformScaleX ldrh r1, [r5] adds r2, r0, #0 muls r2, r1, r2 @@ -283,21 +283,21 @@ _08003EDA: muls r0, r2, r0 asrs r0, r0, #8 mov r1, ip - strh r0, [r1] + strh r0, [r1] @ us.unk18[0][1] = add r5, sp, #0x1c - ldr r2, _0800409C @ =gSpriteTransformRotation + ldr r2, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r2] lsls r0, r0, #1 - ldr r7, _080040A4 @ =gSineTable + ldr r7, _sa2_08005134 @ =gSineTable adds r0, r0, r7 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - adds r2, r0, #0 - muls r2, r4, r2 - lsls r2, r2, #8 + adds r2, r0, #0 @ r2 = SIN_24_8(gSpriteTransformRotation) + muls r2, r4, r2 @ r2 *= gSpriteTransformScaleY + lsls r2, r2, #8 @ r2 = Q(+SIN_24_8(gSpriteTransformRotation) * gSpriteTransformScaleY) asrs r2, r2, #0x10 - mov r1, sl + mov r1, sl @ r1 = sl = &us->unkC[1] ldrh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -308,27 +308,27 @@ _08003EDA: asrs r0, r0, #0x10 muls r0, r2, r0 asrs r0, r0, #8 - strh r0, [r5] + strh r0, [r5] @ us.unk18[1][0] = mov r4, sp adds r4, #0x1e - ldr r7, _0800409C @ =gSpriteTransformRotation + ldr r7, _sa2_0800512C @ =gSpriteTransformRotation ldrh r0, [r7] movs r1, #0x80 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 - ldr r2, _080040A4 @ =gSineTable + ldr r2, _sa2_08005134 @ =gSineTable adds r0, r0, r2 ldrh r0, [r0] lsls r0, r0, #0x10 asrs r0, r0, #0x16 - ldr r7, _080040AC @ =gSpriteTransformScaleY + ldr r7, _sa2_0800513C @ =gSpriteTransformScaleY ldrh r1, [r7] adds r2, r0, #0 muls r2, r1, r2 lsls r2, r2, #8 asrs r2, r2, #0x10 - mov r1, sl + mov r1, sl @ r1 = sl = &us->unkC[1] ldrh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -339,145 +339,145 @@ _08003EDA: asrs r0, r0, #0x10 muls r0, r2, r0 asrs r0, r0, #8 - strh r0, [r4] - mov r1, r8 + strh r0, [r4] @ us.unk18[1][1] = + mov r1, r8 @ r1 = r8 = &us.unk18[0][0] ldrh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #6 - ldrsh r1, [r6, r2] - muls r1, r0, r1 + ldrsh r1, [r6, r2] @ r1 = transform.x + muls r1, r0, r1 @ r1 = transform.x * us.unk18[0][0] mov r3, ip - ldrh r0, [r3] + ldrh r0, [r3] @ r0 = us.unk18[0][1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r7, #8 - ldrsh r2, [r6, r7] - muls r0, r2, r0 - adds r1, r1, r0 - ldr r0, _080040B4 @ =sa2__gUnknown_0300194C + ldrsh r2, [r6, r7] @ r2 = transform.y + muls r0, r2, r0 @ r0 = transform.y * us.unk18[0][1] + adds r1, r1, r0 @ r1 = r1 + r0 + ldr r0, _sa2_08005144 @ =gSpriteTransformX movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #8 - str r1, [sp, #0x10] - ldrh r0, [r5] + adds r1, r1, r0 @ r1 += Q(gSpriteTransformX) + asrs r1, r1, #8 @ r1 = I(r1) + str r1, [sp, #0x10] @ us.posX = I(transform.x * us.unk18[0][0] + transform.y * us.unk18[0][1] + Q(gSpriteTransformX)) + ldrh r0, [r5] @ r0 = us.unk18[1][0] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r3, #6 ldrsh r1, [r6, r3] - muls r1, r0, r1 + muls r1, r0, r1 @ r1 = transform.x * us.unk18[1][0] ldrh r0, [r4] lsls r0, r0, #0x10 - asrs r0, r0, #0x10 + asrs r0, r0, #0x10 @ r0 = us.unk18[1][1] movs r4, #8 - ldrsh r2, [r6, r4] - muls r0, r2, r0 - adds r1, r1, r0 - ldr r0, _080040B8 @ =sa2__gUnknown_03002820 + ldrsh r2, [r6, r4] @ r2 = transform.y + muls r0, r2, r0 @ r0 = transform.y * us.unk18[1][1] + adds r1, r1, r0 @ r1 = r1 + r0 + ldr r0, _sa2_08005148 @ =gSpriteTransformY movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #8 adds r1, r1, r0 asrs r1, r1, #8 - str r1, [sp, #0x14] - ldr r6, [sp, #0x30] - ldr r7, [sp, #0x34] - ldr r0, [sp, #0x38] - mov r8, r0 - ldr r1, [sp, #0x2c] + str r1, [sp, #0x14] @ us.posY = I(transform.x * us.unk18[1][0] + transform.y * us.unk18[1][1] + Q(gSpriteTransformX)); + ldr r6, [sp, #0x30] @ r6 = &us.unk0[1] + ldr r7, [sp, #0x34] @ r7 = &us.unk0[2] + ldr r0, [sp, #0x38] @ r0 = &us.unk0[3] + mov r8, r0 @ r8 = r0 + ldr r1, [sp, #0x2c] @ r1 = transform->width cmp r1, #0 - ble _080040BC - mov r2, sb - ldrh r4, [r2, #8] - ldrh r2, [r2, #4] - b _080040CA + ble _sa2_0800514C + mov r2, sb @ r2 = sb = sprDims + ldrh r4, [r2, #8] @ r4 = offsetX + ldrh r2, [r2, #4] @ r2 = width + b _sa2_0800515A .align 2, 0 -_08004098: .4byte gOamBuffer+0x6 -_0800409C: .4byte gSpriteTransformRotation -_080040A0: .4byte 0x000003FF -_080040A4: .4byte gSineTable -_080040A8: .4byte gSpriteTransformScaleX -_080040AC: .4byte gSpriteTransformScaleY -_080040B0: .4byte sa2__gUnknown_03005398 -_080040B4: .4byte sa2__gUnknown_0300194C -_080040B8: .4byte sa2__gUnknown_03002820 -_080040BC: - mov r3, sb +_sa2_08005128: .4byte gOamBuffer + 0x6 +_sa2_0800512C: .4byte gSpriteTransformRotation +_sa2_08005130: .4byte 0x000003FF +_sa2_08005134: .4byte gSineTable +_sa2_08005138: .4byte gSpriteTransformScaleX +_sa2_0800513C: .4byte gSpriteTransformScaleY +_sa2_08005140: .4byte gSpriteTransformScaleUnknown +_sa2_08005144: .4byte gSpriteTransformX +_sa2_08005148: .4byte gSpriteTransformY +_sa2_0800514C: + mov r3, sb @ r3 = sb = sprDims ldrh r1, [r3, #4] ldrh r0, [r3, #8] subs r0, r1, r0 lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r2, r1, #0 -_080040CA: + lsrs r4, r0, #0x10 @ r4 = offsetX + adds r2, r1, #0 @ r2 = width +_sa2_0800515A: mov r5, sp - ldrh r5, [r5, #0x3c] + ldrh r5, [r5, #0x3c] @ r5 = (u16)transform->height lsls r0, r5, #0x10 cmp r0, #0 - ble _080040DC - mov r0, sb - ldrh r3, [r0, #0xa] - ldrh r5, [r0, #6] - b _080040EA -_080040DC: - mov r3, sb + ble _sa2_0800516C + mov r0, sb @ r0 = sb = sprDims + ldrh r3, [r0, #0xa] @ r3 = offsetY = sprDims->offsetY + ldrh r5, [r0, #6] @ r5 = height = sprDims->height + b _sa2_0800517A +_sa2_0800516C: + mov r3, sb @ r3 = sb = sprDims ldrh r1, [r3, #6] ldrh r0, [r3, #0xa] subs r0, r1, r0 lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r5, r1, #0 -_080040EA: - mov r0, sp + lsrs r3, r0, #0x10 @ r3 = offsetY = sprDims->height - sprDims->offsetY + adds r5, r1, #0 @ r5 = height = sprDims->height +_sa2_0800517A: + mov r0, sp @ r0 = sp = us ldrh r0, [r0] lsls r0, r0, #0x10 - asrs r0, r0, #0x10 + asrs r0, r0, #0x10 @ r0 = us.unk0[0] lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsrs r2, r2, #1 - subs r4, r4, r2 + asrs r4, r4, #0x10 @ r4 = offsetX + lsrs r2, r2, #1 @ r2 = halfWidth = (width/2) + subs r4, r4, r2 @ r4 = offsetX -= halfWidth adds r1, r0, #0 - muls r1, r4, r1 - ldrh r0, [r6] + muls r1, r4, r1 @ r1 = (offsetX - halfWidth) * us.unk0[0] + ldrh r0, [r6] @ r0 = us.unk0[1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r3, r3, #0x10 asrs r3, r3, #0x10 - lsrs r5, r5, #1 - subs r3, r3, r5 - muls r0, r3, r0 - adds r1, r1, r0 + lsrs r5, r5, #1 @ r5 = halfHeight + subs r3, r3, r5 @ r3 = (offsetY - halfHeight) + muls r0, r3, r0 @ r0 = (offsetY - halfHeight) * us.unk0[1] + adds r1, r1, r0 @ r1 += r0 lsls r2, r2, #8 - adds r1, r1, r2 + adds r1, r1, r2 @ r1 += Q(halfWidth) asrs r1, r1, #8 ldr r0, [sp, #0x10] subs r0, r0, r1 - str r0, [sp, #0x10] - ldrh r0, [r7] + str r0, [sp, #0x10] @ us.posX -= I(r1) + ldrh r0, [r7] @ r0 = us.unk0[2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 - muls r1, r4, r1 + muls r1, r4, r1 @ r1 = offsetX * us.unk0[2] mov r4, r8 - ldrh r0, [r4] + ldrh r0, [r4] @ r0 = us.unk0[3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 - muls r0, r3, r0 - adds r1, r1, r0 + muls r0, r3, r0 @ r0 = r3 * us.unk0[3] + adds r1, r1, r0 @ r1 += r0 lsls r5, r5, #8 - adds r1, r1, r5 + adds r1, r1, r5 @ r1 += Q(halfHeight) asrs r1, r1, #8 ldr r0, [sp, #0x14] subs r0, r0, r1 - str r0, [sp, #0x14] + str r0, [sp, #0x14] @ us.posY -= I(r1); ldr r0, [sp, #0x10] - ldr r5, [sp, #0x24] - strh r0, [r5, #0x16] + ldr r5, [sp, #0x24] @ r5 = sprite + strh r0, [r5, #0x16] @ sprite.x = us.posX ldr r0, [sp, #0x14] - strh r0, [r5, #0x18] -_08004148: + strh r0, [r5, #0x18] @ sprite.y = us.posY +_sa2_080051D8: add sp, #0x40 pop {r3, r4, r5} mov r8, r3 @@ -486,5 +486,6 @@ _08004148: pop {r4, r5, r6, r7} pop {r0} bx r0 + .align 2, 0 .syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc b/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc index bab3dc6e87..08521da053 100644 --- a/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc +++ b/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc @@ -47,22 +47,22 @@ lsrs r5, r0, #0x10 asrs r2, r0, #0x10 cmp r2, #0 - beq _08004BFE + beq _sa2_08005CB6 movs r0, #0x80 lsls r0, r0, #1 cmp r2, r0 - bne _08004C10 -_08004BFE: - ldr r0, _08004C0C @ =gFlags + bne _sa2_08005CC8 +_sa2_08005CB6: + ldr r0, _sa2_08005CC4 @ =gFlags ldr r1, [r0] movs r2, #5 rsbs r2, r2, #0 ands r1, r2 str r1, [r0] - b _08004EE6 + b _sa2_08005F9E .align 2, 0 -_08004C0C: .4byte gFlags -_08004C10: +_sa2_08005CC4: .4byte gFlags +_sa2_08005CC8: ldr r3, [sp, #0xc] mov r4, ip subs r0, r3, r4 @@ -73,7 +73,7 @@ _08004C10: lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r2, #0 - bge _08004C50 + bge _sa2_08005D08 movs r0, #0xff str r0, [sp, #0x14] rsbs r0, r2, #0 @@ -95,7 +95,7 @@ _08004C10: lsls r0, r3, #0x10 eors r0, r1 lsrs r1, r0, #0x10 -_08004C50: +_sa2_08005D08: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r1, r5, #0x10 @@ -118,7 +118,7 @@ _08004C50: lsls r5, r5, #0x18 str r5, [sp, #0x24] cmp r0, r2 - bge _08004CC4 + bge _sa2_08005D7C mov r3, sl lsls r0, r7, #8 muls r0, r4, r0 @@ -129,17 +129,17 @@ _08004C50: lsrs r0, r0, #0x18 mov sl, r0 lsls r1, r3, #2 - ldr r7, _08004D70 @ =gBgOffsetsHBlankPrimary + ldr r7, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary ldr r0, [r7] adds r4, r0, r1 mov r0, ip subs r5, r0, r3 - ldr r1, _08004D74 @ =0x000001FF + ldr r1, _sa2_08005E2C @ =0x000001FF adds r0, r1, #0 ands r5, r0 cmp r3, sl - bhs _08004CC4 -_08004CA6: + bhs _sa2_08005D7C +_sa2_08005D5E: mov r2, sp ldrh r2, [r2, #0x10] strh r2, [r4] @@ -154,8 +154,8 @@ _08004CA6: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, sl - blo _08004CA6 -_08004CC4: + blo _sa2_08005D5E +_sa2_08005D7C: mov r3, r8 asrs r2, r3, #0x10 ldr r4, [sp, #0x20] @@ -171,7 +171,7 @@ _08004CC4: mov sb, r7 ldr r3, [sp, #0x28] cmp r0, r3 - bge _08004D2C + bge _sa2_08005DE4 ldr r7, [sp, #8] lsls r0, r1, #8 muls r0, r2, r0 @@ -183,17 +183,17 @@ _08004CC4: str r0, [sp, #8] adds r3, r0, #0 lsls r1, r0, #2 - ldr r4, _08004D70 @ =gBgOffsetsHBlankPrimary + ldr r4, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary ldr r0, [r4] adds r4, r0, r1 ldr r0, [sp, #4] subs r5, r0, r3 - ldr r1, _08004D74 @ =0x000001FF + ldr r1, _sa2_08005E2C @ =0x000001FF adds r0, r1, #0 ands r5, r0 cmp r3, r7 - bhs _08004D2C -_08004D0E: + bhs _sa2_08005DE4 +_sa2_08005DC6: mov r2, sp ldrh r2, [r2, #0x10] strh r2, [r4] @@ -208,21 +208,21 @@ _08004D0E: lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, r7 - blo _08004D0E -_08004D2C: - ldr r3, _08004D78 @ =gFlags + blo _sa2_08005DC6 +_sa2_08005DE4: + ldr r3, _sa2_08005E30 @ =gFlags ldr r0, [r3] movs r1, #4 orrs r0, r1 str r0, [r3] ldr r4, [sp, #0x1c] - ldr r5, _08004D7C @ =0x04000010 + ldr r5, _sa2_08005E34 @ =0x04000010 adds r0, r4, r5 - ldr r7, _08004D80 @ =gHBlankCopyTarget + ldr r7, _sa2_08005E38 @ =gHBlankCopyTarget str r0, [r7] - ldr r0, _08004D84 @ =gHBlankCopySize + ldr r0, _sa2_08005E3C @ =gHBlankCopySize strb r1, [r0] - ldr r1, _08004D70 @ =gBgOffsetsHBlankPrimary + ldr r1, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary ldr r0, [r1] mov r2, sb adds r4, r0, r2 @@ -238,24 +238,24 @@ _08004D2C: movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - beq _08004D88 + beq _sa2_08005E40 ldr r1, [sp, #0xc] subs r0, r1, r2 - b _08004D8C + b _sa2_08005E44 .align 2, 0 -_08004D70: .4byte gBgOffsetsHBlankPrimary -_08004D74: .4byte 0x000001FF -_08004D78: .4byte gFlags -_08004D7C: .4byte 0x04000010 -_08004D80: .4byte gHBlankCopyTarget -_08004D84: .4byte gHBlankCopySize -_08004D88: +_sa2_08005E28: .4byte gBgOffsetsHBlankPrimary +_sa2_08005E2C: .4byte 0x000001FF +_sa2_08005E30: .4byte gFlags +_sa2_08005E34: .4byte 0x04000010 +_sa2_08005E38: .4byte gHBlankCopyTarget +_sa2_08005E3C: .4byte gHBlankCopySize +_sa2_08005E40: ldr r1, [sp, #0xc] adds r0, r1, r2 -_08004D8C: +_sa2_08005E44: mov r3, sl subs r5, r0, r3 - ldr r7, _08004E34 @ =0x000001FF + ldr r7, _sa2_08005EEC @ =0x000001FF adds r0, r7, #0 ands r5, r0 ldr r0, [sp, #0x20] @@ -267,7 +267,7 @@ _08004D8C: lsrs r6, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 - beq _08004DBA + beq _sa2_08005E72 ldr r2, [sp, #0x24] asrs r0, r2, #0x18 subs r0, r5, r0 @@ -276,24 +276,24 @@ _08004D8C: subs r0, r7, r1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 -_08004DBA: +_sa2_08005E72: movs r3, #0x80 lsls r3, r3, #1 mov r8, r3 cmp r7, r8 - ble _08004E38 + ble _sa2_08005EF0 mov r3, sl ldr r0, [sp, #8] cmp r3, r0 - blo _08004DCE - b _08004EE6 -_08004DCE: + blo _sa2_08005E86 + b _sa2_08005F9E +_sa2_08005E86: ldr r1, [sp, #0x20] mov sl, r1 mov sb, r7 - ldr r2, _08004E34 @ =0x000001FF + ldr r2, _sa2_08005EEC @ =0x000001FF mov ip, r2 -_08004DD8: +_sa2_08005E90: mov r7, sp ldrh r7, [r7, #0x10] strh r7, [r4] @@ -316,10 +316,10 @@ _08004DD8: adds r3, #1 mov r8, r3 cmp r0, sb - ble _08004E22 + ble _sa2_08005EDA ldr r0, [sp, #0x24] asrs r3, r0, #0x18 -_08004E0A: +_sa2_08005EC2: adds r0, r5, r3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 @@ -331,8 +331,8 @@ _08004E0A: lsls r2, r6, #0x10 asrs r0, r2, #0x10 cmp r0, r1 - bgt _08004E0A -_08004E22: + bgt _sa2_08005EC2 +_sa2_08005EDA: mov r1, ip ands r5, r1 mov r2, r8 @@ -340,11 +340,11 @@ _08004E22: lsrs r3, r0, #0x18 ldr r7, [sp, #8] cmp r3, r7 - blo _08004DD8 - b _08004EE6 + blo _sa2_08005E90 + b _sa2_08005F9E .align 2, 0 -_08004E34: .4byte 0x000001FF -_08004E38: +_sa2_08005EEC: .4byte 0x000001FF +_sa2_08005EF0: movs r0, #0x80 lsls r0, r0, #9 adds r1, r7, #0 @@ -367,7 +367,7 @@ _08004E38: movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 - bne _08004E78 + bne _sa2_08005F30 mov r1, sb lsls r0, r1, #0x10 movs r3, #0x80 @@ -376,18 +376,18 @@ _08004E38: rsbs r0, r0, #0 lsrs r0, r0, #0x10 mov sb, r0 -_08004E78: +_sa2_08005F30: mov r3, sl ldr r0, [sp, #8] cmp r3, r0 - bhs _08004EE6 + bhs _sa2_08005F9E lsls r0, r2, #0x10 asrs r0, r0, #0x10 str r0, [sp, #0x18] ldr r1, [sp, #0x20] mov ip, r1 mov sl, r7 -_08004E8C: +_sa2_08005F44: mov r2, sp ldrh r2, [r2, #0x10] strh r2, [r4] @@ -410,10 +410,10 @@ _08004E8C: adds r3, #1 mov r8, r3 cmp r0, sl - ble _08004ED6 + ble _sa2_08005F8E ldr r0, [sp, #0x24] asrs r3, r0, #0x18 -_08004EBE: +_sa2_08005F76: adds r0, r5, r3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 @@ -425,17 +425,17 @@ _08004EBE: lsls r2, r6, #0x10 asrs r0, r2, #0x10 cmp r0, r1 - bgt _08004EBE -_08004ED6: - ldr r1, _08004EF8 @ =0x000001FF + bgt _sa2_08005F76 +_sa2_08005F8E: + ldr r1, _sa2_08005FB0 @ =0x000001FF ands r5, r1 mov r2, r8 lsls r0, r2, #0x18 lsrs r3, r0, #0x18 ldr r7, [sp, #8] cmp r3, r7 - blo _08004E8C -_08004EE6: + blo _sa2_08005F44 +_sa2_08005F9E: add sp, #0x2c pop {r3, r4, r5} mov r8, r3 @@ -445,6 +445,8 @@ _08004EE6: pop {r0} bx r0 .align 2, 0 -_08004EF8: .4byte 0x000001FF +_sa2_08005FB0: .4byte 0x000001FF + + @ Unused .syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc b/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc index af51806bf8..0dfc260be0 100644 --- a/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc +++ b/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc @@ -19,55 +19,55 @@ lsrs r2, r3, #0x18 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 - ldr r1, _08004F40 @ =gFlags + ldr r1, _sa2_08005FF8 @ =gFlags ldr r0, [r1] movs r7, #4 orrs r0, r7 str r0, [r1] cmp r6, #1 - bls _08004F58 - ldr r1, _08004F44 @ =gHBlankCopySize + bls _sa2_08006010 + ldr r1, _sa2_08005FFC @ =gHBlankCopySize strb r7, [r1] movs r0, #1 ands r0, r6 cmp r0, #0 - beq _08004F4C - ldr r0, _08004F48 @ =gBgOffsetsHBlankPrimary + beq _sa2_08006004 + ldr r0, _sa2_08006000 @ =gBgOffsetsHBlankPrimary ldr r0, [r0] adds r3, r0, #2 - b _08004F80 + b _sa2_08006038 .align 2, 0 -_08004F40: .4byte gFlags -_08004F44: .4byte gHBlankCopySize -_08004F48: .4byte gBgOffsetsHBlankPrimary -_08004F4C: - ldr r0, _08004F54 @ =gBgOffsetsHBlankPrimary +_sa2_08005FF8: .4byte gFlags +_sa2_08005FFC: .4byte gHBlankCopySize +_sa2_08006000: .4byte gBgOffsetsHBlankPrimary +_sa2_08006004: + ldr r0, _sa2_0800600C @ =gBgOffsetsHBlankPrimary ldr r3, [r0] - b _08004F80 + b _sa2_08006038 .align 2, 0 -_08004F54: .4byte gBgOffsetsHBlankPrimary -_08004F58: - ldr r1, _08004F70 @ =gHBlankCopySize +_sa2_0800600C: .4byte gBgOffsetsHBlankPrimary +_sa2_08006010: + ldr r1, _sa2_08006028 @ =gHBlankCopySize movs r0, #2 strb r0, [r1] - ldr r0, _08004F74 @ =gBgOffsetsHBlankPrimary + ldr r0, _sa2_0800602C @ =gBgOffsetsHBlankPrimary ldr r3, [r0] movs r0, #1 ands r0, r6 cmp r0, #0 - beq _08004F80 - ldr r1, _08004F78 @ =gHBlankCopyTarget - ldr r0, _08004F7C @ =0x04000042 - b _08004F84 + beq _sa2_08006038 + ldr r1, _sa2_08006030 @ =gHBlankCopyTarget + ldr r0, _sa2_08006034 @ =0x04000042 + b _sa2_0800603C .align 2, 0 -_08004F70: .4byte gHBlankCopySize -_08004F74: .4byte gBgOffsetsHBlankPrimary -_08004F78: .4byte gHBlankCopyTarget -_08004F7C: .4byte 0x04000042 -_08004F80: - ldr r1, _08004FE8 @ =gHBlankCopyTarget - ldr r0, _08004FEC @ =0x04000040 -_08004F84: +_sa2_08006028: .4byte gHBlankCopySize +_sa2_0800602C: .4byte gBgOffsetsHBlankPrimary +_sa2_08006030: .4byte gHBlankCopyTarget +_sa2_08006034: .4byte 0x04000042 +_sa2_08006038: + ldr r1, _sa2_080060A0 @ =gHBlankCopyTarget + ldr r0, _sa2_080060A4 @ =0x04000040 +_sa2_0800603C: str r0, [r1] subs r1, r2, r5 mov r2, sl @@ -78,9 +78,9 @@ _08004F84: asrs r2, r7, #0x10 adds r0, r2, #0 cmp r2, #0 - bge _08004F9C + bge _sa2_08006054 rsbs r0, r2, #0 -_08004F9C: +_sa2_08006054: lsls r0, r0, #0x11 lsrs r0, r0, #0x10 mov r8, r0 @@ -89,13 +89,13 @@ _08004F9C: adds r4, r1, #0 mov sb, r0 cmp r1, #0 - bge _08004FB0 + bge _sa2_08006068 rsbs r4, r1, #0 -_08004FB0: +_sa2_08006068: lsls r0, r4, #0x11 lsrs r0, r0, #0x10 mov ip, r0 - ldr r4, _08004FF0 @ =gHBlankCopySize + ldr r4, _sa2_080060A8 @ =gHBlankCopySize ldrb r0, [r4] mov r4, sl muls r4, r0, r4 @@ -103,30 +103,30 @@ _08004FB0: adds r3, r3, r0 adds r6, r2, #0 cmp r2, #0 - bge _08004FCA + bge _sa2_08006082 rsbs r6, r2, #0 -_08004FCA: +_sa2_08006082: adds r0, r1, #0 cmp r1, #0 - bge _08004FD2 + bge _sa2_0800608A rsbs r0, r1, #0 -_08004FD2: +_sa2_0800608A: cmp r6, r0 - ble _080050A4 + ble _sa2_0800615C rsbs r0, r2, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r2, #0 - ble _08005044 + ble _sa2_080060FC strb r5, [r3, #1] movs r2, #0 adds r6, r7, #0 - b _0800502C + b _sa2_080060E4 .align 2, 0 -_08004FE8: .4byte gHBlankCopyTarget -_08004FEC: .4byte 0x04000040 -_08004FF0: .4byte gHBlankCopySize -_08004FF4: +_sa2_080060A0: .4byte gHBlankCopyTarget +_sa2_080060A4: .4byte 0x04000040 +_sa2_080060A8: .4byte gHBlankCopySize +_sa2_080060AC: adds r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 @@ -140,7 +140,7 @@ _08004FF4: lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 - blt _08005026 + blt _sa2_080060DE mov r4, r8 lsls r0, r4, #0x10 asrs r0, r0, #0x10 @@ -148,35 +148,35 @@ _08004FF4: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 strb r5, [r3] - ldr r1, _08005040 @ =gHBlankCopySize + ldr r1, _sa2_080060F8 @ =gHBlankCopySize ldrb r0, [r1] adds r3, r3, r0 strb r5, [r3, #1] -_08005026: +_sa2_080060DE: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_0800502C: +_sa2_080060E4: lsls r0, r2, #0x10 asrs r2, r0, #0x10 asrs r0, r6, #0x10 cmp r0, #0 - bge _08005038 + bge _sa2_080060F0 rsbs r0, r0, #0 -_08005038: +_sa2_080060F0: cmp r2, r0 - blt _08004FF4 + blt _sa2_080060AC strb r5, [r3] - b _0800515C + b _sa2_08006214 .align 2, 0 -_08005040: .4byte gHBlankCopySize -_08005044: +_sa2_080060F8: .4byte gHBlankCopySize +_sa2_080060FC: strb r5, [r3] adds r3, #1 movs r2, #0 adds r6, r7, #0 - b _0800508A -_0800504E: + b _sa2_08006142 +_sa2_08006106: subs r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 @@ -190,7 +190,7 @@ _0800504E: lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0 - blt _08005084 + blt _sa2_0800613C mov r4, r8 lsls r0, r4, #0x10 asrs r0, r0, #0x10 @@ -198,36 +198,36 @@ _0800504E: lsls r0, r0, #0x10 lsrs r4, r0, #0x10 strb r5, [r3] - ldr r1, _080050A0 @ =gHBlankCopySize + ldr r1, _sa2_08006158 @ =gHBlankCopySize ldrb r0, [r1] adds r0, r0, r3 subs r3, r0, #1 strb r5, [r3] adds r3, #1 -_08005084: +_sa2_0800613C: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_0800508A: +_sa2_08006142: lsls r0, r2, #0x10 asrs r2, r0, #0x10 asrs r0, r6, #0x10 cmp r0, #0 - bge _08005096 + bge _sa2_0800614E rsbs r0, r0, #0 -_08005096: +_sa2_0800614E: cmp r2, r0 - blt _0800504E + blt _sa2_08006106 strb r5, [r3] - b _0800515C + b _sa2_08006214 .align 2, 0 -_080050A0: .4byte gHBlankCopySize -_080050A4: +_sa2_08006158: .4byte gHBlankCopySize +_sa2_0800615C: rsbs r0, r1, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r2, #0 - ble _08005108 + ble _sa2_080061C0 movs r2, #0 mov r1, r8 lsls r0, r1, #0x10 @@ -236,13 +236,13 @@ _080050A4: mov r1, ip lsls r0, r1, #0x10 asrs r7, r0, #0x10 - b _080050F0 -_080050C0: + b _sa2_080061A8 +_sa2_08006178: adds r2, r5, #1 strb r2, [r3] adds r3, #1 strb r5, [r3] - ldr r1, _08005104 @ =gHBlankCopySize + ldr r1, _sa2_080061BC @ =gHBlankCopySize ldrb r0, [r1] adds r0, r0, r3 subs r3, r0, #1 @@ -253,31 +253,31 @@ _080050C0: lsrs r4, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 - blt _080050EA + blt _sa2_080061A2 lsls r0, r2, #0x18 lsrs r5, r0, #0x18 subs r0, r1, r7 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 -_080050EA: +_sa2_080061A2: adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_080050F0: +_sa2_080061A8: lsls r0, r2, #0x10 asrs r6, r0, #0x10 mov r2, sb asrs r0, r2, #0x10 cmp r0, #0 - bge _080050FE + bge _sa2_080061B6 rsbs r0, r0, #0 -_080050FE: +_sa2_080061B6: cmp r6, r0 - blt _080050C0 - b _0800515C + blt _sa2_08006178 + b _sa2_08006214 .align 2, 0 -_08005104: .4byte gHBlankCopySize -_08005108: +_sa2_080061BC: .4byte gHBlankCopySize +_sa2_080061C0: movs r2, #0 mov r1, r8 lsls r0, r1, #0x10 @@ -285,13 +285,13 @@ _08005108: mov r1, ip lsls r0, r1, #0x10 asrs r6, r0, #0x10 - b _0800514A -_08005118: + b _sa2_08006202 +_sa2_080061D0: adds r0, r5, #1 strb r0, [r3] adds r3, #1 strb r5, [r3] - ldr r1, _0800516C @ =gHBlankCopySize + ldr r1, _sa2_08006224 @ =gHBlankCopySize ldrb r0, [r1] adds r0, r0, r3 subs r3, r0, #1 @@ -302,29 +302,29 @@ _08005118: lsrs r4, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 - blt _08005144 + blt _sa2_080061FC subs r0, r5, #1 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 subs r0, r1, r6 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 -_08005144: +_sa2_080061FC: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 -_0800514A: +_sa2_08006202: lsls r0, r2, #0x10 asrs r2, r0, #0x10 mov r1, sb asrs r0, r1, #0x10 cmp r0, #0 - bge _08005158 + bge _sa2_08006210 rsbs r0, r0, #0 -_08005158: +_sa2_08006210: cmp r2, r0 - blt _08005118 -_0800515C: + blt _sa2_080061D0 +_sa2_08006214: pop {r3, r4, r5} mov r8, r3 mov sb, r4 @@ -333,6 +333,6 @@ _0800515C: pop {r0} bx r0 .align 2, 0 -_0800516C: .4byte gHBlankCopySize +_sa2_08006224: .4byte gHBlankCopySize .syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc b/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc index ef5facaca1..4da223bb63 100644 --- a/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc +++ b/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc @@ -9,55 +9,55 @@ mov ip, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 - ldr r1, _080056A8 @ =gFlags + ldr r1, _08006760 @ =gFlags ldr r0, [r1] movs r3, #4 orrs r0, r3 str r0, [r1] cmp r2, #1 - bls _080056C0 - ldr r1, _080056AC @ =gHBlankCopySize + bls _08006778 + ldr r1, _08006764 @ =gHBlankCopySize strb r3, [r1] movs r0, #1 ands r0, r2 cmp r0, #0 - beq _080056B4 - ldr r0, _080056B0 @ =gBgOffsetsHBlankPrimary + beq _0800676C + ldr r0, _08006768 @ =gBgOffsetsHBlankPrimary ldr r0, [r0] adds r7, r0, #2 - b _080056E8 + b _080067A0 .align 2, 0 -_080056A8: .4byte gFlags -_080056AC: .4byte gHBlankCopySize -_080056B0: .4byte gBgOffsetsHBlankPrimary -_080056B4: - ldr r0, _080056BC @ =gBgOffsetsHBlankPrimary +_08006760: .4byte gFlags +_08006764: .4byte gHBlankCopySize +_08006768: .4byte gBgOffsetsHBlankPrimary +_0800676C: + ldr r0, _08006774 @ =gBgOffsetsHBlankPrimary ldr r7, [r0] - b _080056E8 + b _080067A0 .align 2, 0 -_080056BC: .4byte gBgOffsetsHBlankPrimary -_080056C0: - ldr r1, _080056D8 @ =gHBlankCopySize +_08006774: .4byte gBgOffsetsHBlankPrimary +_08006778: + ldr r1, _08006790 @ =gHBlankCopySize movs r0, #2 strb r0, [r1] - ldr r0, _080056DC @ =gBgOffsetsHBlankPrimary + ldr r0, _08006794 @ =gBgOffsetsHBlankPrimary ldr r7, [r0] movs r0, #1 ands r0, r2 cmp r0, #0 - beq _080056E8 - ldr r1, _080056E0 @ =gHBlankCopyTarget - ldr r0, _080056E4 @ =0x04000042 - b _080056EC + beq _080067A0 + ldr r1, _08006798 @ =gHBlankCopyTarget + ldr r0, _0800679C @ =0x04000042 + b _080067A4 .align 2, 0 -_080056D8: .4byte gHBlankCopySize -_080056DC: .4byte gBgOffsetsHBlankPrimary -_080056E0: .4byte gHBlankCopyTarget -_080056E4: .4byte 0x04000042 -_080056E8: - ldr r1, _080057EC @ =gHBlankCopyTarget - ldr r0, _080057F0 @ =0x04000040 -_080056EC: +_08006790: .4byte gHBlankCopySize +_08006794: .4byte gBgOffsetsHBlankPrimary +_08006798: .4byte gHBlankCopyTarget +_0800679C: .4byte 0x04000042 +_080067A0: + ldr r1, _080068A4 @ =gHBlankCopyTarget + ldr r0, _080068A8 @ =0x04000040 +_080067A4: str r0, [r1] mov r2, sp mov r1, ip @@ -80,9 +80,9 @@ _080056EC: adds r2, #8 str r2, [sp, #0x24] cmp r0, #0 - bge _0800571C + bge _080067D4 rsbs r0, r0, #0 -_0800571C: +_080067D4: lsls r0, r0, #1 ldr r5, [sp, #0x24] strh r0, [r5] @@ -92,9 +92,9 @@ _0800571C: adds r1, #0x10 str r1, [sp, #0x28] cmp r0, #0 - bge _08005732 + bge _080067EA rsbs r0, r0, #0 -_08005732: +_080067EA: lsls r0, r0, #1 ldr r5, [sp, #0x28] strh r0, [r5] @@ -110,9 +110,9 @@ _08005732: movs r3, #2 ldrsh r0, [r0, r3] cmp r0, #0 - bge _08005754 + bge _0800680C rsbs r0, r0, #0 -_08005754: +_0800680C: lsls r0, r0, #1 ldr r5, [sp, #0x24] strh r0, [r5, #2] @@ -120,9 +120,9 @@ _08005754: movs r2, #6 ldrsh r0, [r1, r2] cmp r0, #0 - bge _08005766 + bge _0800681E rsbs r0, r0, #0 -_08005766: +_0800681E: lsls r0, r0, #1 ldr r3, [sp, #0x28] strh r0, [r3, #2] @@ -131,7 +131,7 @@ _08005766: ldrb r0, [r5] strb r0, [r2, #1] strb r0, [r2] - ldr r1, _080057F4 @ =gHBlankCopySize + ldr r1, _080068AC @ =gHBlankCopySize ldrb r0, [r1] muls r0, r4, r0 adds r7, r7, r0 @@ -148,14 +148,14 @@ _08005766: adds r6, r2, #0 mov sb, r1 cmp r0, r3 - bls _0800579C + bls _08006854 adds r0, r3, #0 -_0800579C: +_08006854: str r0, [sp, #0x18] cmp r4, r0 - bhs _08005882 + bhs _0800693A mov r8, sb -_080057A4: +_0800685C: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -174,16 +174,16 @@ _080057A4: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _0800581E + blt _080068D6 str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_080057D0: +_08006888: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _080057F8 + ble _080068B0 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -192,48 +192,48 @@ _080057D0: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08005814 + b _080068CC .align 2, 0 -_080057EC: .4byte gHBlankCopyTarget -_080057F0: .4byte 0x04000040 -_080057F4: .4byte gHBlankCopySize -_080057F8: +_080068A4: .4byte gHBlankCopyTarget +_080068A8: .4byte 0x04000040 +_080068AC: .4byte gHBlankCopySize +_080068B0: ldrb r0, [r6] cmp r0, #0 - beq _08005802 + beq _080068BA subs r0, #1 strb r0, [r6] -_08005802: +_080068BA: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005814 + blt _080068CC ldrb r0, [r6] strb r0, [r7, #1] -_08005814: +_080068CC: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _080057D0 -_0800581E: + bge _08006888 +_080068D6: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005870 + blt _08006928 adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_0800582E: +_080068E6: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08005854 + ble _0800690C ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -243,30 +243,30 @@ _0800582E: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005866 + blt _0800691E ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _08005866 -_08005854: + b _0800691E +_0800690C: ldrb r0, [r3, #1] cmp r0, #0 - beq _0800585E + beq _08006916 subs r0, #1 strb r0, [r6, #1] -_0800585E: +_08006916: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_08005866: +_0800691E: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _0800582E -_08005870: - ldr r2, _08005934 @ =gHBlankCopySize + bge _080068E6 +_08006928: + ldr r2, _080069EC @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -274,20 +274,20 @@ _08005870: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _080057A4 -_08005882: + blo _0800685C +_0800693A: mov r1, ip ldrb r0, [r1, #3] ldrb r2, [r1, #5] cmp r0, r2 - bne _0800588E - b _08005B78 -_0800588E: + bne _08006946 + b _08006C30 +_08006946: ldr r3, [sp, #0x18] cmp r3, r0 - beq _08005896 - b _080059FC -_08005896: + beq _0800694E + b _08006AB4 +_0800694E: mov r2, sp ldrb r0, [r1, #6] ldrb r1, [r1, #2] @@ -302,9 +302,9 @@ _08005896: movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - bge _080058B6 + bge _0800696E rsbs r0, r0, #0 -_080058B6: +_0800696E: lsls r0, r0, #1 ldr r2, [sp, #0x24] strh r0, [r2] @@ -312,9 +312,9 @@ _080058B6: movs r5, #4 ldrsh r0, [r3, r5] cmp r0, #0 - bge _080058C8 + bge _08006980 rsbs r0, r0, #0 -_080058C8: +_08006980: lsls r0, r0, #1 ldr r1, [sp, #0x28] strh r0, [r1] @@ -329,11 +329,11 @@ _080058C8: ldrb r0, [r5, #5] str r0, [sp, #0x18] cmp r4, r0 - bhs _080059C2 + bhs _08006A7A mov r8, sb ldr r1, [sp, #0x24] str r1, [sp, #0x1c] -_080058EC: +_080069A4: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -352,16 +352,16 @@ _080058EC: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _0800595E + blt _08006A16 str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_08005918: +_080069D0: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _08005938 + ble _080069F0 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -370,46 +370,46 @@ _08005918: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08005954 + b _08006A0C .align 2, 0 -_08005934: .4byte gHBlankCopySize -_08005938: +_080069EC: .4byte gHBlankCopySize +_080069F0: ldrb r0, [r6] cmp r0, #0 - beq _08005942 + beq _080069FA subs r0, #1 strb r0, [r6] -_08005942: +_080069FA: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005954 + blt _08006A0C ldrb r0, [r6] strb r0, [r7, #1] -_08005954: +_08006A0C: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _08005918 -_0800595E: + bge _080069D0 +_08006A16: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _080059B0 + blt _08006A68 adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_0800596E: +_08006A26: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08005994 + ble _08006A4C ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -419,30 +419,30 @@ _0800596E: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _080059A6 + blt _08006A5E ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _080059A6 -_08005994: + b _08006A5E +_08006A4C: ldrb r0, [r3, #1] cmp r0, #0 - beq _0800599E + beq _08006A56 subs r0, #1 strb r0, [r6, #1] -_0800599E: +_08006A56: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_080059A6: +_08006A5E: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _0800596E -_080059B0: - ldr r2, _080059F8 @ =gHBlankCopySize + bge _08006A26 +_08006A68: + ldr r2, _08006AB0 @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -450,8 +450,8 @@ _080059B0: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _080058EC -_080059C2: + blo _080069A4 +_08006A7A: mov r2, sp mov r1, ip ldrb r0, [r1, #6] @@ -469,19 +469,19 @@ _080059C2: ldrsh r0, [r0, r5] ldrb r3, [r2, #7] cmp r0, #0 - bge _080059E8 + bge _08006AA0 rsbs r0, r0, #0 -_080059E8: +_08006AA0: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1, #2] mov r2, sp movs r5, #6 ldrsh r0, [r2, r5] - b _08005BEC + b _08006CA4 .align 2, 0 -_080059F8: .4byte gHBlankCopySize -_080059FC: +_08006AB0: .4byte gHBlankCopySize +_08006AB4: mov r2, sp mov r3, ip ldrb r0, [r3, #6] @@ -496,9 +496,9 @@ _080059FC: movs r5, #2 ldrsh r0, [r0, r5] cmp r0, #0 - bge _08005A1C + bge _08006AD4 rsbs r0, r0, #0 -_08005A1C: +_08006AD4: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1, #2] @@ -506,9 +506,9 @@ _08005A1C: movs r3, #6 ldrsh r0, [r2, r3] cmp r0, #0 - bge _08005A2E + bge _08006AE6 rsbs r0, r0, #0 -_08005A2E: +_08006AE6: lsls r0, r0, #1 ldr r5, [sp, #0x28] strh r0, [r5, #2] @@ -523,11 +523,11 @@ _08005A2E: ldrb r5, [r3, #3] str r5, [sp, #0x18] cmp r4, r5 - bhs _08005B24 + bhs _08006BDC mov r8, sb ldr r0, [sp, #0x24] str r0, [sp, #0x20] -_08005A52: +_08006B0A: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -546,16 +546,16 @@ _08005A52: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _08005AC0 + blt _08006B78 str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_08005A7E: +_08006B36: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _08005A9A + ble _08006B52 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -564,44 +564,44 @@ _08005A7E: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08005AB6 -_08005A9A: + b _08006B6E +_08006B52: ldrb r0, [r6] cmp r0, #0 - beq _08005AA4 + beq _08006B5C subs r0, #1 strb r0, [r6] -_08005AA4: +_08006B5C: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005AB6 + blt _08006B6E ldrb r0, [r6] strb r0, [r7, #1] -_08005AB6: +_08006B6E: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _08005A7E -_08005AC0: + bge _08006B36 +_08006B78: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005B12 + blt _08006BCA adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_08005AD0: +_08006B88: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08005AF6 + ble _08006BAE ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -611,30 +611,30 @@ _08005AD0: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005B08 + blt _08006BC0 ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _08005B08 -_08005AF6: + b _08006BC0 +_08006BAE: ldrb r0, [r3, #1] cmp r0, #0 - beq _08005B00 + beq _08006BB8 subs r0, #1 strb r0, [r6, #1] -_08005B00: +_08006BB8: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_08005B08: +_08006BC0: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _08005AD0 -_08005B12: - ldr r2, _08005B74 @ =gHBlankCopySize + bge _08006B88 +_08006BCA: + ldr r2, _08006C2C @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -642,8 +642,8 @@ _08005B12: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _08005A52 -_08005B24: + blo _08006B0A +_08006BDC: mov r2, sp mov r1, ip ldrb r0, [r1, #6] @@ -661,9 +661,9 @@ _08005B24: ldrsh r0, [r0, r5] ldrb r3, [r2, #7] cmp r0, #0 - bge _08005B4A + bge _08006C02 rsbs r0, r0, #0 -_08005B4A: +_08006C02: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1] @@ -671,9 +671,9 @@ _08005B4A: movs r5, #4 ldrsh r0, [r2, r5] cmp r0, #0 - bge _08005B5C + bge _08006C14 rsbs r0, r0, #0 -_08005B5C: +_08006C14: lsls r0, r0, #1 ldr r1, [sp, #0x28] strh r0, [r1] @@ -685,10 +685,10 @@ _08005B5C: mov r1, ip ldrb r0, [r1, #2] strb r0, [r6] - b _08005C08 + b _08006CC0 .align 2, 0 -_08005B74: .4byte gHBlankCopySize -_08005B78: +_08006C2C: .4byte gHBlankCopySize +_08006C30: mov r2, sp mov r3, ip ldrb r0, [r3, #6] @@ -707,18 +707,18 @@ _08005B78: mov r8, r1 ldrb r3, [r3, #7] cmp r0, #0 - bge _08005BA0 + bge _08006C58 rsbs r0, r0, #0 -_08005BA0: +_08006C58: lsls r0, r0, #1 ldr r5, [sp, #0x24] strh r0, [r5] movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0 - bge _08005BB0 + bge _08006C68 rsbs r0, r0, #0 -_08005BB0: +_08006C68: lsls r0, r0, #1 ldr r5, [sp, #0x28] strh r0, [r5] @@ -742,19 +742,19 @@ _08005BB0: movs r5, #2 ldrsh r0, [r0, r5] cmp r0, #0 - bge _08005BE2 + bge _08006C9A rsbs r0, r0, #0 -_08005BE2: +_08006C9A: lsls r0, r0, #1 ldr r1, [sp, #0x24] strh r0, [r1, #2] movs r5, #2 ldrsh r0, [r2, r5] -_08005BEC: +_08006CA4: cmp r0, #0 - bge _08005BF2 + bge _08006CAA rsbs r0, r0, #0 -_08005BF2: +_08006CAA: lsls r0, r0, #1 ldr r1, [sp, #0x28] strh r0, [r1, #2] @@ -766,14 +766,14 @@ _08005BF2: mov r1, ip ldrb r0, [r1, #4] strb r0, [r6, #1] -_08005C08: +_08006CC0: str r3, [sp, #0x18] cmp r4, r3 - bhs _08005CE6 + bhs _08006D9E mov r8, sb ldr r2, [sp, #0x24] mov ip, r2 -_08005C14: +_08006CCC: ldrb r0, [r6, #1] strb r0, [r7] ldrb r0, [r6] @@ -792,16 +792,16 @@ _08005C14: adds r4, #1 mov sl, r4 cmp r2, #0 - blt _08005C82 + blt _08006D3A str r6, [sp, #0x2c] ldr r4, [sp, #0x28] mov r2, sb -_08005C40: +_08006CF8: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 - ble _08005C5C + ble _08006D14 ldr r5, [sp, #0x2c] ldrb r0, [r5] adds r0, #1 @@ -810,44 +810,44 @@ _08005C40: ldrh r1, [r4] subs r0, r0, r1 strh r0, [r3] - b _08005C78 -_08005C5C: + b _08006D30 +_08006D14: ldrb r0, [r6] cmp r0, #0 - beq _08005C66 + beq _08006D1E subs r0, #1 strb r0, [r6] -_08005C66: +_08006D1E: ldrh r0, [r2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005C78 + blt _08006D30 ldrb r0, [r6] strb r0, [r7, #1] -_08005C78: +_08006D30: mov r3, sb movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 - bge _08005C40 -_08005C82: + bge _08006CF8 +_08006D3A: mov r2, r8 ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005CD4 + blt _08006D8C adds r3, r6, #0 ldr r5, [sp, #0x28] mov r4, sb -_08005C92: +_08006D4A: mov r0, sp ldrh r0, [r0, #2] lsls r0, r0, #0x10 cmp r0, #0 - ble _08005CB8 + ble _08006D70 ldrb r0, [r3, #1] adds r0, #1 strb r0, [r3, #1] @@ -857,30 +857,30 @@ _08005C92: strh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - blt _08005CCA + blt _08006D82 ldrb r0, [r6, #1] adds r0, #1 strb r0, [r7] - b _08005CCA -_08005CB8: + b _08006D82 +_08006D70: ldrb r0, [r3, #1] cmp r0, #0 - beq _08005CC2 + beq _08006D7A subs r0, #1 strb r0, [r6, #1] -_08005CC2: +_08006D7A: ldrh r0, [r4, #2] ldrh r1, [r5, #2] subs r0, r0, r1 strh r0, [r4, #2] -_08005CCA: +_08006D82: mov r2, sb ldrh r0, [r2, #2] lsls r0, r0, #0x10 cmp r0, #0 - bge _08005C92 -_08005CD4: - ldr r2, _08005CF8 @ =gHBlankCopySize + bge _08006D4A +_08006D8C: + ldr r2, _08006DB0 @ =gHBlankCopySize ldrb r0, [r2] adds r7, r7, r0 mov r3, sl @@ -888,8 +888,8 @@ _08005CD4: lsrs r4, r0, #0x18 ldr r5, [sp, #0x18] cmp r4, r5 - blo _08005C14 -_08005CE6: + blo _08006CCC +_08006D9E: add sp, #0x30 pop {r3, r4, r5} mov r8, r3 @@ -899,6 +899,9 @@ _08005CE6: pop {r0} bx r0 .align 2, 0 -_08005CF8: .4byte gHBlankCopySize +_08006DB0: .4byte gHBlankCopySize + + @ Unused + @ Very similar to sub_800724C .syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc index 2e77e4d42a..fa59069be2 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc @@ -848,11 +848,11 @@ _08026B82: strh r1, [r0] ldr r0, _08026BD4 @ =sa2__gUnknown_03004D58 strh r1, [r0] - ldr r1, _08026BD8 @ =sa2__gUnknown_0300194C + ldr r1, _08026BD8 @ =gSpriteTransformX mov r3, r8 ldrh r0, [r3, #0x22] strh r0, [r1] - ldr r1, _08026BDC @ =sa2__gUnknown_03002820 + ldr r1, _08026BDC @ =gSpriteTransformY ldrh r0, [r3, #0x24] b _08026C0E .align 2, 0 @@ -862,8 +862,8 @@ _08026BC8: .4byte gSpriteTransformScaleX _08026BCC: .4byte gSpriteTransformScaleY _08026BD0: .4byte sa2__gUnknown_03002A8C _08026BD4: .4byte sa2__gUnknown_03004D58 -_08026BD8: .4byte sa2__gUnknown_0300194C -_08026BDC: .4byte sa2__gUnknown_03002820 +_08026BD8: .4byte gSpriteTransformX +_08026BDC: .4byte gSpriteTransformY _08026BE0: ldr r2, _08026C24 @ =gSpriteTransformRotation ldr r4, [sp, #0x10] @@ -882,11 +882,11 @@ _08026BE0: strh r3, [r0] ldr r0, _08026C38 @ =sa2__gUnknown_03004D58 strh r3, [r0] - ldr r1, _08026C3C @ =sa2__gUnknown_0300194C + ldr r1, _08026C3C @ =gSpriteTransformX mov r6, r8 ldrh r0, [r6, #0x22] strh r0, [r1] - ldr r1, _08026C40 @ =sa2__gUnknown_03002820 + ldr r1, _08026C40 @ =gSpriteTransformY ldrh r0, [r6, #0x24] _08026C0E: subs r0, #0x24 @@ -907,7 +907,7 @@ _08026C2C: .4byte gSpriteTransformScaleX _08026C30: .4byte gSpriteTransformScaleY _08026C34: .4byte sa2__gUnknown_03002A8C _08026C38: .4byte sa2__gUnknown_03004D58 -_08026C3C: .4byte sa2__gUnknown_0300194C -_08026C40: .4byte sa2__gUnknown_03002820 +_08026C3C: .4byte gSpriteTransformX +_08026C40: .4byte gSpriteTransformY .syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc index 096698c341..91aa7c480c 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc @@ -41,14 +41,14 @@ lsls r0, r0, #4 adds r2, r4, #0 muls r2, r0, r2 - ldr r1, _0802727C @ =sa2__gUnknown_0300194C + ldr r1, _0802727C @ =gSpriteTransformX ldr r4, _08027280 @ =gCamera ldrh r0, [r4] ldrh r1, [r1] adds r0, r0, r1 asrs r3, r3, #0xe adds r3, r3, r0 - ldr r1, _08027284 @ =sa2__gUnknown_03002820 + ldr r1, _08027284 @ =gSpriteTransformY ldrh r0, [r4, #2] ldrh r1, [r1] adds r0, r0, r1 @@ -74,9 +74,9 @@ _0802726C: .4byte 0x03000030 _08027270: .4byte 0x03000050 _08027274: .4byte gSineTable _08027278: .4byte gSpriteTransformRotation -_0802727C: .4byte sa2__gUnknown_0300194C +_0802727C: .4byte gSpriteTransformX _08027280: .4byte gCamera -_08027284: .4byte sa2__gUnknown_03002820 +_08027284: .4byte gSpriteTransformY _08027288: .4byte 0x0300004C _0802728C: ldr r2, _080272C8 @ =0x0300004C diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc index 4c87d5f8a1..e7c27523db 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc @@ -67,7 +67,7 @@ _08027658: ldrsh r0, [r2, r3] lsls r2, r0, #1 adds r2, r2, r0 - ldr r3, _080276C8 @ =sa2__gUnknown_0300194C + ldr r3, _080276C8 @ =gSpriteTransformX ldr r4, _080276CC @ =gCamera ldrh r0, [r4] ldrh r3, [r3] @@ -76,7 +76,7 @@ _08027658: adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 - ldr r3, _080276D0 @ =sa2__gUnknown_03002820 + ldr r3, _080276D0 @ =gSpriteTransformY ldrh r0, [r4, #2] ldrh r3, [r3] adds r0, r0, r3 @@ -100,9 +100,9 @@ _08027658: .align 2, 0 _080276C0: .4byte gSpriteTransformRotation _080276C4: .4byte gSineTable -_080276C8: .4byte sa2__gUnknown_0300194C +_080276C8: .4byte gSpriteTransformX _080276CC: .4byte gCamera -_080276D0: .4byte sa2__gUnknown_03002820 +_080276D0: .4byte gSpriteTransformY _080276D4: mov r1, ip adds r1, #0x4c diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc index 362167012d..b9b7ab4cb4 100644 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc +++ b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc @@ -70,7 +70,7 @@ _0802750C: ldrsh r0, [r2, r3] lsls r2, r0, #1 adds r2, r2, r0 - ldr r3, _080275A4 @ =sa2__gUnknown_0300194C + ldr r3, _080275A4 @ =gSpriteTransformX ldr r4, _080275A8 @ =gCamera ldrh r0, [r4] ldrh r3, [r3] @@ -79,7 +79,7 @@ _0802750C: adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r3, r1, #0x10 - ldr r1, _080275AC @ =sa2__gUnknown_03002820 + ldr r1, _080275AC @ =gSpriteTransformY ldrh r0, [r4, #2] ldrh r1, [r1] adds r0, r0, r1 @@ -120,9 +120,9 @@ _0802750C: .align 2, 0 _0802759C: .4byte gSineTable _080275A0: .4byte gSpriteTransformRotation -_080275A4: .4byte sa2__gUnknown_0300194C +_080275A4: .4byte gSpriteTransformX _080275A8: .4byte gCamera -_080275AC: .4byte sa2__gUnknown_03002820 +_080275AC: .4byte gSpriteTransformY _080275B0: .4byte gPlayer _080275B4: .4byte gNumSingleplayerCharacters _080275B8: .4byte gPartner diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc index 736d26ed68..ade56524f0 100644 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc +++ b/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc @@ -62,10 +62,10 @@ bl CreateDustCloud movs r0, #0x8a bl m4aSongNumStart - ldr r1, _080918A4 @ =sa2__gUnknown_0300194C + ldr r1, _080918A4 @ =gSpriteTransformX ldrh r0, [r7, #0x16] strh r0, [r1] - ldr r2, _080918A8 @ =sa2__gUnknown_03002820 + ldr r2, _080918A8 @ =gSpriteTransformY ldrh r1, [r7, #0x18] strh r1, [r2] subs r0, r5, r0 @@ -85,8 +85,8 @@ _08091894: .4byte gCurTask _08091898: .4byte 0x0300000C _0809189C: .4byte gCamera _080918A0: .4byte gGameMode -_080918A4: .4byte sa2__gUnknown_0300194C -_080918A8: .4byte sa2__gUnknown_03002820 +_080918A4: .4byte gSpriteTransformX +_080918A8: .4byte gSpriteTransformY _080918AC: lsls r6, r6, #0x10 mov sl, r6 @ sl = worldX << 16 @@ -209,10 +209,10 @@ _0809197E: bl CreateDustCloud movs r0, #0x8a bl m4aSongNumStart - ldr r1, _080919F0 @ =sa2__gUnknown_0300194C + ldr r1, _080919F0 @ =gSpriteTransformX ldrh r0, [r7, #0x16] strh r0, [r1] - ldr r2, _080919F4 @ =sa2__gUnknown_03002820 + ldr r2, _080919F4 @ =gSpriteTransformY ldrh r1, [r7, #0x18] strh r1, [r2] ldr r3, [sp, #0xc] @@ -249,8 +249,8 @@ _080919DC: _080919E4: .4byte gPlayer _080919E8: .4byte gNumSingleplayerCharacters _080919EC: .4byte gPartner -_080919F0: .4byte sa2__gUnknown_0300194C -_080919F4: .4byte sa2__gUnknown_03002820 +_080919F0: .4byte gSpriteTransformX +_080919F4: .4byte gSpriteTransformY _080919F8: .4byte gGameMode _080919FC: adds r0, r7, #0 diff --git a/src/background.c b/src/background.c index da4ea40abd..14cb51586b 100644 --- a/src/background.c +++ b/src/background.c @@ -75,7 +75,11 @@ void DrawBackground(Background *background) // (85.37%) https://decomp.me/scratch/617Jb // (87.46%) https://decomp.me/scratch/1CFim // TODO: ProcessBackgroundsCopyQueue might be a good name for this function? +#if (GAME == GAME_SA1) +NONMATCH("asm/non_matching/engine/sa2__sub_8002B20_sa1.inc", bool32 SA2_LABEL(sub_8002B20)(void)) +#else NONMATCH("asm/non_matching/engine/sa2__sub_8002B20.inc", bool32 SA2_LABEL(sub_8002B20)(void)) +#endif { u16 sp00; s32 sp04 = 0; diff --git a/src/core.c b/src/core.c index 9651b481be..11889c6965 100644 --- a/src/core.c +++ b/src/core.c @@ -47,7 +47,7 @@ BgAffineReg gBgAffineRegs[NUM_AFFINE_BACKGROUNDS] ALIGNED(16) = {}; void *gVramHeapStartAddr = NULL; u16 gSpriteTransformRotation ALIGNED(4) = 0; u8 gNumVBlankIntrs ALIGNED(4) = 0; -s16 SA2_LABEL(gUnknown_0300194C) ALIGNED(4) = 0; +s16 gSpriteTransformX ALIGNED(4) = 0; #if (ENGINE >= ENGINE_3) u8 gUnknown_03002C60 ALIGNED(4) = 0; @@ -114,7 +114,7 @@ struct GraphicsData *gVramGraphicsCopyQueue[] ALIGNED(16) = {}; #if (ENGINE == ENGINE_3) VoidFn gUnknown_03003C08 = NULL; #endif -s16 SA2_LABEL(gUnknown_03002820) = 0; +s16 gSpriteTransformY = 0; s16 gBgScrollRegs[][2] ALIGNED(16) = {}; u16 gDispCnt = 0; u8 gKeysContinuedRepeatIntervals[10] ALIGNED(16) = {}; @@ -162,7 +162,7 @@ OamData gOamBuffer[] ALIGNED(16) = {}; u16 gVramHeapState[] = {}; u8 gBgSpritesCount ALIGNED(4) = 0; u16 gSpriteTransformScaleY ALIGNED(4) = 0; -u16 SA2_LABEL(gUnknown_03005398) ALIGNED(4) = 0; +u16 gSpriteTransformScaleUnknown ALIGNED(4) = 0; IntrFunc gVBlankIntrs[] ALIGNED(16) = {}; const u8 *gInputPlaybackData = NULL; bool8 gExecSoundMain ALIGNED(4) = FALSE; @@ -393,9 +393,9 @@ void EngineInit(void) gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; - SA2_LABEL(gUnknown_0300194C) = 0; - SA2_LABEL(gUnknown_03002820) = 0; - SA2_LABEL(gUnknown_03005398) = 0x100; + gSpriteTransformX = 0; + gSpriteTransformY = 0; + gSpriteTransformScaleUnknown = 0x100; gWinRegs[WINREG_WIN0H] = 0; gWinRegs[WINREG_WIN1H] = 0; diff --git a/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c b/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c index b2a23158d9..aa98914b48 100644 --- a/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c +++ b/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c @@ -517,16 +517,16 @@ void Task_802611C(void) gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; - SA2_LABEL(gUnknown_0300194C) = tank->s.x; - SA2_LABEL(gUnknown_03002820) = tank->s.y - 0x24; + gSpriteTransformX = tank->s.x; + gSpriteTransformY = tank->s.y - 0x24; } else { gSpriteTransformRotation = 0x3FF & tank->unk94; gSpriteTransformScaleX = 0x100; gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; - SA2_LABEL(gUnknown_0300194C) = tank->s.x; - SA2_LABEL(gUnknown_03002820) = tank->s.y - 0x24; + gSpriteTransformX = tank->s.x; + gSpriteTransformY = tank->s.y - 0x24; } } @@ -773,16 +773,16 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc", voi gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; - SA2_LABEL(gUnknown_0300194C) = tank->s.x; - SA2_LABEL(gUnknown_03002820) = tank->s.y - 0x24; + gSpriteTransformX = tank->s.x; + gSpriteTransformY = tank->s.y - 0x24; } else { gSpriteTransformRotation = tank->unk94 & 0x3FF; gSpriteTransformScaleX = 0x100; gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0; SA2_LABEL(gUnknown_03004D58) = 0; - SA2_LABEL(gUnknown_0300194C) = tank->s.x; - SA2_LABEL(gUnknown_03002820) = tank->s.y - 0x24; + gSpriteTransformX = tank->s.x; + gSpriteTransformY = tank->s.y - 0x24; } } END_NONMATCH @@ -999,8 +999,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc", voi tf = &arm->transform; tf->rotation = 0; - arm->unk3C = ((COS(gSpriteTransformRotation) * 0x10 * arm->unk50) >> 0xE) + (gCamera.x + SA2_LABEL(gUnknown_0300194C)); - arm->unk3E = ((SIN(gSpriteTransformRotation) * 0x10 * arm->unk50) >> 0xE) + (gCamera.y + SA2_LABEL(gUnknown_03002820)); + arm->unk3C = ((COS(gSpriteTransformRotation) * 0x10 * arm->unk50) >> 0xE) + (gCamera.x + gSpriteTransformX); + arm->unk3E = ((SIN(gSpriteTransformRotation) * 0x10 * arm->unk50) >> 0xE) + (gCamera.y + gSpriteTransformY); if (arm->unk50) { arm->qUnk4C = +Q(2); @@ -1147,8 +1147,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc", v #endif x32 = COS(gSpriteTransformRotation) * 3; y32 = SIN(gSpriteTransformRotation) * 3; - x = SA2_LABEL(gUnknown_0300194C) + gCamera.x + (x32 >> 9); - y = SA2_LABEL(gUnknown_03002820) + gCamera.y + (y32 >> 9); + x = gSpriteTransformX + gCamera.x + (x32 >> 9); + y = gSpriteTransformY + gCamera.y + (y32 >> 9); } if (tank->unk9B == 0) { res = Coll_Player_Entity_Intersection((Sprite *)s, x, y, &gPlayer); @@ -1209,8 +1209,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc", voi s32 y32; x32 = COS(gSpriteTransformRotation) * 3; y32 = SIN(gSpriteTransformRotation) * 3; - x = SA2_LABEL(gUnknown_0300194C) + gCamera.x + (x32 >> 9); - y = SA2_LABEL(gUnknown_03002820) + gCamera.y + (y32 >> 9); + x = gSpriteTransformX + gCamera.x + (x32 >> 9); + y = gSpriteTransformY + gCamera.y + (y32 >> 9); hammer->unk3C = x; hammer->unk3E = y; } diff --git a/src/game/sa1/stage/interactables/boulder_spawner.c b/src/game/sa1/stage/interactables/boulder_spawner.c index 1c535e6480..0ba7b7d0db 100644 --- a/src/game/sa1/stage/interactables/boulder_spawner.c +++ b/src/game/sa1/stage/interactables/boulder_spawner.c @@ -159,11 +159,10 @@ void Task_BoulderMain(void) if (boulder->unkB1 != 0) { boulder->unkB1--; } else { - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; - CreateBoulderDebris(unkB2 + I(boulder->qUnkA8) - SA2_LABEL(gUnknown_0300194C), - unkB4 + I(boulder->qUnkAC) - SA2_LABEL(gUnknown_03002820)); + CreateBoulderDebris(unkB2 + I(boulder->qUnkA8) - gSpriteTransformX, unkB4 + I(boulder->qUnkAC) - gSpriteTransformY); if (!IS_OUT_OF_CAM_RANGE(s->x, s->y)) { m4aSongNumStart(SE_EXPLOSION); diff --git a/src/game/sa1/stage/interactables/decoration.c b/src/game/sa1/stage/interactables/decoration.c index 36a667ce25..ee8f8ade97 100644 --- a/src/game/sa1/stage/interactables/decoration.c +++ b/src/game/sa1/stage/interactables/decoration.c @@ -96,8 +96,8 @@ void Task_DecorationMain(void) CreateDustCloud(worldX, worldY); m4aSongNumStart(SE_ITEM_BOX); - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; CreateDecorationDebris(worldX - s->x, worldY - s->y - 16); @@ -128,8 +128,8 @@ void Task_DecorationMain(void) m4aSongNumStart(SE_ITEM_BOX); - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; CreateDecorationDebris(worldX - s->x, worldY - s->y - 16); diff --git a/src/game/sa1/stage/interactables/ice_block.c b/src/game/sa1/stage/interactables/ice_block.c index 24dd9d4727..e460253d7b 100644 --- a/src/game/sa1/stage/interactables/ice_block.c +++ b/src/game/sa1/stage/interactables/ice_block.c @@ -89,8 +89,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock CreateDustCloud(worldX, worldY); m4aSongNumStart(SE_ITEM_BOX); - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; CreateIceBlockShards(worldX - s->x, worldY - 16 - s->y); @@ -139,8 +139,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock CreateDustCloud(worldX, worldY); m4aSongNumStart(SE_ITEM_BOX); - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; CreateIceBlockShards(worldX - s->x, worldY - 16 - s->y); diff --git a/src/game/sa1/stage/interactables/skating_stone.c b/src/game/sa1/stage/interactables/skating_stone.c index 8f398288bd..20f6054ace 100644 --- a/src/game/sa1/stage/interactables/skating_stone.c +++ b/src/game/sa1/stage/interactables/skating_stone.c @@ -265,8 +265,8 @@ void Task_SkatingStone2(void) m4aSongNumStop(SE_198); - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; CreateSkatingStoneDebris(worldX + I(stone->qUnkA8) - s->x, worldY + I(stone->qUnkAC) - 20 - s->y); @@ -340,8 +340,8 @@ void Task_SkatingStone2(void) m4aSongNumStop(SE_198); - SA2_LABEL(gUnknown_0300194C) = s->x; - SA2_LABEL(gUnknown_03002820) = s->y; + gSpriteTransformX = s->x; + gSpriteTransformY = s->y; CreateSkatingStoneDebris(worldX + I(stone->qUnkA8) - s->x, worldY + I(stone->qUnkAC) - 20 - s->y); diff --git a/src/game/shared/stage/stage.c b/src/game/shared/stage/stage.c index eb7e98dba9..f2d4ea738e 100644 --- a/src/game/shared/stage/stage.c +++ b/src/game/shared/stage/stage.c @@ -416,9 +416,9 @@ void CreateGameStage(void) gSpriteTransformScaleY = 0x100; SA2_LABEL(gUnknown_03002A8C) = 0x78; SA2_LABEL(gUnknown_03004D58) = 0x50; - SA2_LABEL(gUnknown_0300194C) = 0x78; - SA2_LABEL(gUnknown_03002820) = 0x50; - SA2_LABEL(gUnknown_03005398) = 0x80; + gSpriteTransformX = 0x78; + gSpriteTransformY = 0x50; + gSpriteTransformScaleUnknown = 0x80; if (IS_MULTI_PLAYER) { CreateMultiplayerReceiveEventMgr(); diff --git a/src/sprite.c b/src/sprite.c index a78650ae42..2501d2cda7 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -557,16 +557,16 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004E14.inc", void SA2_LABEL(sub_8004 // { +cos(a), -sin(a) } // { +sin(a), +cos(a) } us.unk18[0][0] = I((Q(+COS_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleX) >> 16) - * (Q(us.unkC[0] * SA2_LABEL(gUnknown_03005398) >> 16)); + * (Q(us.unkC[0] * gSpriteTransformScaleUnknown >> 16)); us.unk18[0][1] = I((Q(-SIN_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleX) >> 16) - * (Q(us.unkC[0] * SA2_LABEL(gUnknown_03005398) >> 16)); + * (Q(us.unkC[0] * gSpriteTransformScaleUnknown >> 16)); us.unk18[1][0] = I((Q(+SIN_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleY) >> 16) - * (Q(us.unkC[1] * SA2_LABEL(gUnknown_03005398) >> 16)); + * (Q(us.unkC[1] * gSpriteTransformScaleUnknown >> 16)); us.unk18[1][1] = I((Q(+COS_24_8(gSpriteTransformRotation)) * gSpriteTransformScaleY) >> 16) - * (Q(us.unkC[1] * SA2_LABEL(gUnknown_03005398) >> 16)); + * (Q(us.unkC[1] * gSpriteTransformScaleUnknown >> 16)); - us.posX = I(transform->x * us.unk18[0][0] + transform->y * us.unk18[0][1] + Q(SA2_LABEL(gUnknown_0300194C))); - us.posY = I(transform->x * us.unk18[1][0] + transform->y * us.unk18[1][1] + Q(SA2_LABEL(gUnknown_03002820))); + us.posX = I(transform->x * us.unk18[0][0] + transform->y * us.unk18[0][1] + Q(gSpriteTransformX)); + us.posY = I(transform->x * us.unk18[1][0] + transform->y * us.unk18[1][1] + Q(gSpriteTransformY)); { u16 width, height; From fcc7c07995a6da049088a50886203a60d02567b0 Mon Sep 17 00:00:00 2001 From: Oliver Bell Date: Sat, 2 May 2026 23:31:31 +0100 Subject: [PATCH 3/4] move everything --- Makefile | 2 +- {sa1/data => data}/sa1/build_info.s | 0 {sa1/data => data}/sa1/chao_garden.s | 0 {sa1/data => data}/sa1/data1.s | 0 {sa1/data => data}/sa1/data1_1.s | 0 {sa1/data => data}/sa1/data_0_1_2.s | 0 {sa1/data => data}/sa1/data_0_1_4.s | 0 {sa1/data => data}/sa1/data_0_2.s | 0 {sa1/data => data}/sa1/data_0_3.s | 0 {sa1/data => data}/sa1/data_0_3_2.s | 0 {sa1/data => data}/sa1/data_0_4.s | 0 {sa1/data => data}/sa1/data_0_5.s | 0 {sa1/data => data}/sa1/data_0_5_0.s | 0 {sa1/data => data}/sa1/data_0_5_2.s | 0 {sa1/data => data}/sa1/data_0_6.s | 0 {sa1/data => data}/sa1/data_0_6_0.s | 0 {sa1/data => data}/sa1/data_0_6_1.s | 0 {sa1/data => data}/sa1/data_0_6_2.s | 0 {sa1/data => data}/sa1/data_0_7.s | 0 {sa1/data => data}/sa1/data_sound_test.s | 0 .../chao_hunt/vs_zone_a/entities/enemies.csv | 0 .../vs_zone_a/entities/interactables.csv | 0 .../vs_zone_a/entities/itemboxes.csv | 0 .../chao_hunt/vs_zone_a/entities/rings.csv | 0 .../chao_hunt/vs_zone_a/tilemaps/bg/header.c | 0 .../vs_zone_a/tilemaps/bg/palette.pal | 0 .../vs_zone_a/tilemaps/bg/tilemap.tilemap2 | Bin .../chao_hunt/vs_zone_a/tilemaps/bg/tiles.png | Bin .../vs_zone_a/tilemaps/fg/flags.coll | Bin .../chao_hunt/vs_zone_a/tilemaps/fg/header.c | 0 .../vs_zone_a/tilemaps/fg/height_map.coll | Bin .../vs_zone_a/tilemaps/fg/map_back.bin | Bin .../vs_zone_a/tilemaps/fg/map_front.bin | Bin .../vs_zone_a/tilemaps/fg/metatiles.tilemap2 | Bin .../vs_zone_a/tilemaps/fg/palette.pal | 0 .../vs_zone_a/tilemaps/fg/tile_rot.coll | Bin .../vs_zone_a/tilemaps/fg/tileset.png | Bin .../chao_hunt/vs_zone_b/entities/enemies.csv | 0 .../vs_zone_b/entities/interactables.csv | 0 .../vs_zone_b/entities/itemboxes.csv | 0 .../chao_hunt/vs_zone_b/entities/rings.csv | 0 .../chao_hunt/vs_zone_b/tilemaps/bg/header.c | 0 .../vs_zone_b/tilemaps/bg/palette.pal | 0 .../vs_zone_b/tilemaps/bg/tilemap.tilemap2 | Bin .../chao_hunt/vs_zone_b/tilemaps/bg/tiles.png | Bin .../vs_zone_b/tilemaps/fg/flags.coll | Bin .../chao_hunt/vs_zone_b/tilemaps/fg/header.c | 0 .../vs_zone_b/tilemaps/fg/height_map.coll | Bin .../vs_zone_b/tilemaps/fg/map_back.bin | Bin .../vs_zone_b/tilemaps/fg/map_front.bin | Bin .../vs_zone_b/tilemaps/fg/metatiles.tilemap2 | Bin .../vs_zone_b/tilemaps/fg/palette.pal | 0 .../vs_zone_b/tilemaps/fg/tile_rot.coll | Bin .../vs_zone_b/tilemaps/fg/tileset.png | Bin .../chao_hunt/vs_zone_c/entities/enemies.csv | 0 .../vs_zone_c/entities/interactables.csv | 0 .../vs_zone_c/entities/itemboxes.csv | 0 .../chao_hunt/vs_zone_c/entities/rings.csv | 0 .../chao_hunt/vs_zone_c/tilemaps/bg/header.c | 0 .../vs_zone_c/tilemaps/bg/palette.pal | 0 .../vs_zone_c/tilemaps/bg/tilemap.tilemap2 | Bin .../chao_hunt/vs_zone_c/tilemaps/bg/tiles.png | Bin .../vs_zone_c/tilemaps/fg/flags.coll | Bin .../chao_hunt/vs_zone_c/tilemaps/fg/header.c | 0 .../vs_zone_c/tilemaps/fg/height_map.coll | Bin .../vs_zone_c/tilemaps/fg/map_back.bin | Bin .../vs_zone_c/tilemaps/fg/map_front.bin | Bin .../vs_zone_c/tilemaps/fg/metatiles.tilemap2 | Bin .../vs_zone_c/tilemaps/fg/palette.pal | 0 .../vs_zone_c/tilemaps/fg/tile_rot.coll | Bin .../vs_zone_c/tilemaps/fg/tileset.png | Bin .../chao_hunt/vs_zone_d/entities/enemies.csv | 0 .../vs_zone_d/entities/interactables.csv | 0 .../vs_zone_d/entities/itemboxes.csv | 0 .../chao_hunt/vs_zone_d/entities/rings.csv | 0 .../chao_hunt/vs_zone_d/tilemaps/bg/header.c | 0 .../vs_zone_d/tilemaps/bg/palette.pal | 0 .../vs_zone_d/tilemaps/bg/tilemap.tilemap2 | Bin .../chao_hunt/vs_zone_d/tilemaps/bg/tiles.png | Bin .../vs_zone_d/tilemaps/fg/flags.coll | Bin .../chao_hunt/vs_zone_d/tilemaps/fg/header.c | 0 .../vs_zone_d/tilemaps/fg/height_map.coll | Bin .../vs_zone_d/tilemaps/fg/map_back.bin | Bin .../vs_zone_d/tilemaps/fg/map_front.bin | Bin .../vs_zone_d/tilemaps/fg/metatiles.tilemap2 | Bin .../vs_zone_d/tilemaps/fg/palette.pal | 0 .../vs_zone_d/tilemaps/fg/tile_rot.coll | Bin .../vs_zone_d/tilemaps/fg/tileset.png | Bin .../maps/zone_1/act_1/entities/enemies.csv | 0 .../zone_1/act_1/entities/interactables.csv | 0 .../maps/zone_1/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_1/act_1/entities/rings.csv | 0 .../maps/zone_1/act_1/tilemaps/bg/header.c | 0 .../maps/zone_1/act_1/tilemaps/bg/palette.pal | 0 .../zone_1/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_1/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_1/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_1/act_1/tilemaps/fg/header.c | 0 .../zone_1/act_1/tilemaps/fg/height_map.coll | Bin .../zone_1/act_1/tilemaps/fg/map_back.bin | Bin .../zone_1/act_1/tilemaps/fg/map_front.bin | Bin .../zone_1/act_1/tilemaps/fg/metadata.txt | 0 .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_1/act_1/tilemaps/fg/palette.pal | 0 .../zone_1/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_1/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_1/act_2/entities/enemies.csv | 0 .../zone_1/act_2/entities/interactables.csv | 0 .../maps/zone_1/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_1/act_2/entities/rings.csv | 0 .../maps/zone_1/act_2/tilemaps/bg/header.c | 0 .../maps/zone_1/act_2/tilemaps/bg/palette.pal | 0 .../zone_1/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_1/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_1/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_1/act_2/tilemaps/fg/header.c | 0 .../zone_1/act_2/tilemaps/fg/height_map.coll | Bin .../zone_1/act_2/tilemaps/fg/map_back.bin | Bin .../zone_1/act_2/tilemaps/fg/map_front.bin | Bin .../zone_1/act_2/tilemaps/fg/metadata.txt | 0 .../act_2/tilemaps/fg/metatiles.tilemap2 | 0 .../maps/zone_1/act_2/tilemaps/fg/palette.pal | 0 .../zone_1/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_1/act_2/tilemaps/fg/tileset.png | Bin .../maps/zone_2/act_1/entities/enemies.csv | 0 .../zone_2/act_1/entities/interactables.csv | 0 .../maps/zone_2/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_2/act_1/entities/rings.csv | 0 .../maps/zone_2/act_1/tilemaps/bg/header.c | 0 .../maps/zone_2/act_1/tilemaps/bg/palette.pal | 0 .../zone_2/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_2/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_2/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_2/act_1/tilemaps/fg/header.c | 0 .../zone_2/act_1/tilemaps/fg/height_map.coll | Bin .../zone_2/act_1/tilemaps/fg/map_back.bin | Bin .../zone_2/act_1/tilemaps/fg/map_front.bin | Bin .../zone_2/act_1/tilemaps/fg/metadata.txt | 0 .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_2/act_1/tilemaps/fg/palette.pal | 0 .../zone_2/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_2/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_2/act_2/entities/enemies.csv | 0 .../zone_2/act_2/entities/interactables.csv | 0 .../maps/zone_2/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_2/act_2/entities/rings.csv | 0 .../maps/zone_2/act_2/tilemaps/bg/header.c | 0 .../maps/zone_2/act_2/tilemaps/bg/palette.pal | 0 .../zone_2/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_2/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_2/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_2/act_2/tilemaps/fg/header.c | 0 .../zone_2/act_2/tilemaps/fg/height_map.coll | Bin .../zone_2/act_2/tilemaps/fg/map_back.bin | Bin .../zone_2/act_2/tilemaps/fg/map_front.bin | Bin .../zone_2/act_2/tilemaps/fg/metadata.txt | 0 .../act_2/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_2/act_2/tilemaps/fg/palette.pal | 0 .../zone_2/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_2/act_2/tilemaps/fg/tileset.png | Bin .../maps/zone_3/act_1/entities/enemies.csv | 0 .../zone_3/act_1/entities/interactables.csv | 0 .../maps/zone_3/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_3/act_1/entities/rings.csv | 0 .../maps/zone_3/act_1/tilemaps/bg/header.c | 0 .../maps/zone_3/act_1/tilemaps/bg/palette.pal | 0 .../zone_3/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_3/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_3/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_3/act_1/tilemaps/fg/header.c | 0 .../zone_3/act_1/tilemaps/fg/height_map.coll | Bin .../zone_3/act_1/tilemaps/fg/map_back.bin | Bin .../zone_3/act_1/tilemaps/fg/map_front.bin | Bin .../zone_3/act_1/tilemaps/fg/metadata.txt | 0 .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_3/act_1/tilemaps/fg/palette.pal | 0 .../zone_3/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_3/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_3/act_2/entities/enemies.csv | 0 .../zone_3/act_2/entities/interactables.csv | 0 .../maps/zone_3/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_3/act_2/entities/rings.csv | 0 .../maps/zone_3/act_2/tilemaps/bg/header.c | 0 .../maps/zone_3/act_2/tilemaps/bg/palette.pal | 0 .../zone_3/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_3/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_3/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_3/act_2/tilemaps/fg/header.c | 0 .../zone_3/act_2/tilemaps/fg/height_map.coll | Bin .../zone_3/act_2/tilemaps/fg/map_back.bin | Bin .../zone_3/act_2/tilemaps/fg/map_front.bin | Bin .../zone_3/act_2/tilemaps/fg/metadata.txt | 0 .../act_2/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_3/act_2/tilemaps/fg/palette.pal | 0 .../zone_3/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_3/act_2/tilemaps/fg/tileset.png | Bin .../maps/zone_4/act_1/entities/enemies.csv | 0 .../zone_4/act_1/entities/interactables.csv | 0 .../maps/zone_4/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_4/act_1/entities/rings.csv | 0 .../maps/zone_4/act_1/tilemaps/bg/header.c | 0 .../maps/zone_4/act_1/tilemaps/bg/palette.pal | 0 .../zone_4/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_4/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_4/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_4/act_1/tilemaps/fg/header.c | 0 .../zone_4/act_1/tilemaps/fg/height_map.coll | Bin .../zone_4/act_1/tilemaps/fg/map_back.bin | Bin .../zone_4/act_1/tilemaps/fg/map_front.bin | Bin .../zone_4/act_1/tilemaps/fg/metadata.txt | 0 .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_4/act_1/tilemaps/fg/palette.pal | 0 .../zone_4/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_4/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_4/act_2/entities/enemies.csv | 0 .../zone_4/act_2/entities/interactables.csv | 0 .../maps/zone_4/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_4/act_2/entities/rings.csv | 0 .../maps/zone_4/act_2/tilemaps/bg/header.c | 0 .../maps/zone_4/act_2/tilemaps/bg/palette.pal | 0 .../zone_4/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_4/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_4/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_4/act_2/tilemaps/fg/header.c | 0 .../zone_4/act_2/tilemaps/fg/height_map.coll | Bin .../zone_4/act_2/tilemaps/fg/map_back.bin | Bin .../zone_4/act_2/tilemaps/fg/map_front.bin | Bin .../zone_4/act_2/tilemaps/fg/metadata.txt | 0 .../act_2/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_4/act_2/tilemaps/fg/palette.pal | 0 .../zone_4/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_4/act_2/tilemaps/fg/tileset.png | Bin .../maps/zone_5/act_1/entities/enemies.csv | 0 .../zone_5/act_1/entities/interactables.csv | 0 .../maps/zone_5/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_5/act_1/entities/rings.csv | 0 .../maps/zone_5/act_1/tilemaps/bg/header.c | 0 .../maps/zone_5/act_1/tilemaps/bg/palette.pal | 0 .../zone_5/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_5/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_5/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_5/act_1/tilemaps/fg/header.c | 0 .../zone_5/act_1/tilemaps/fg/height_map.coll | Bin .../zone_5/act_1/tilemaps/fg/map_back.bin | Bin .../zone_5/act_1/tilemaps/fg/map_front.bin | Bin .../zone_5/act_1/tilemaps/fg/metadata.txt | 0 .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_5/act_1/tilemaps/fg/palette.pal | 0 .../zone_5/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_5/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_5/act_2/entities/enemies.csv | 0 .../zone_5/act_2/entities/interactables.csv | 0 .../maps/zone_5/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_5/act_2/entities/rings.csv | 0 .../maps/zone_5/act_2/tilemaps/bg/header.c | 0 .../maps/zone_5/act_2/tilemaps/bg/palette.pal | 0 .../zone_5/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_5/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_5/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_5/act_2/tilemaps/fg/header.c | 0 .../zone_5/act_2/tilemaps/fg/height_map.coll | Bin .../zone_5/act_2/tilemaps/fg/map_back.bin | Bin .../zone_5/act_2/tilemaps/fg/map_front.bin | Bin .../zone_5/act_2/tilemaps/fg/metadata.txt | 0 .../act_2/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_5/act_2/tilemaps/fg/palette.pal | 0 .../zone_5/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_5/act_2/tilemaps/fg/tileset.png | Bin .../maps/zone_6/act_1/entities/enemies.csv | 0 .../zone_6/act_1/entities/interactables.csv | 0 .../maps/zone_6/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_6/act_1/entities/rings.csv | 0 .../maps/zone_6/act_1/tilemaps/bg/header.c | 0 .../maps/zone_6/act_1/tilemaps/bg/palette.pal | 0 .../zone_6/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_6/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_6/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_6/act_1/tilemaps/fg/header.c | 0 .../zone_6/act_1/tilemaps/fg/height_map.coll | Bin .../zone_6/act_1/tilemaps/fg/map_back.bin | Bin .../zone_6/act_1/tilemaps/fg/map_front.bin | Bin .../zone_6/act_1/tilemaps/fg/metadata.txt | 0 .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_6/act_1/tilemaps/fg/palette.pal | 0 .../zone_6/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_6/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_6/act_2/entities/enemies.csv | 0 .../zone_6/act_2/entities/interactables.csv | 0 .../maps/zone_6/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_6/act_2/entities/rings.csv | 0 .../maps/zone_6/act_2/tilemaps/bg/header.c | 0 .../maps/zone_6/act_2/tilemaps/bg/palette.pal | 0 .../zone_6/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_6/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_6/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_6/act_2/tilemaps/fg/header.c | 0 .../zone_6/act_2/tilemaps/fg/height_map.coll | Bin .../zone_6/act_2/tilemaps/fg/map_back.bin | Bin .../zone_6/act_2/tilemaps/fg/map_front.bin | Bin .../zone_6/act_2/tilemaps/fg/metadata.txt | 0 .../act_2/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_6/act_2/tilemaps/fg/palette.pal | 0 .../zone_6/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_6/act_2/tilemaps/fg/tileset.png | Bin .../maps/zone_7/act_1/entities/enemies.csv | 0 .../zone_7/act_1/entities/interactables.csv | 0 .../maps/zone_7/act_1/entities/itemboxes.csv | 0 .../sa1/maps/zone_7/act_1/entities/rings.csv | 0 .../maps/zone_7/act_1/tilemaps/bg/header.c | 0 .../maps/zone_7/act_1/tilemaps/bg/palette.pal | 0 .../zone_7/act_1/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_7/act_1/tilemaps/bg/tiles.png | Bin .../maps/zone_7/act_1/tilemaps/fg/flags.coll | Bin .../maps/zone_7/act_1/tilemaps/fg/header.c | 0 .../zone_7/act_1/tilemaps/fg/height_map.coll | Bin .../zone_7/act_1/tilemaps/fg/map_back.bin | Bin .../zone_7/act_1/tilemaps/fg/map_front.bin | Bin .../act_1/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_7/act_1/tilemaps/fg/palette.pal | 0 .../zone_7/act_1/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_7/act_1/tilemaps/fg/tileset.png | Bin .../maps/zone_7/act_2/entities/enemies.csv | 0 .../zone_7/act_2/entities/interactables.csv | 0 .../maps/zone_7/act_2/entities/itemboxes.csv | 0 .../sa1/maps/zone_7/act_2/entities/rings.csv | 0 .../maps/zone_7/act_2/tilemaps/bg/header.c | 0 .../maps/zone_7/act_2/tilemaps/bg/palette.pal | 0 .../zone_7/act_2/tilemaps/bg/tilemap.tilemap2 | Bin .../maps/zone_7/act_2/tilemaps/bg/tiles.png | Bin .../maps/zone_7/act_2/tilemaps/fg/flags.coll | Bin .../maps/zone_7/act_2/tilemaps/fg/header.c | 0 .../zone_7/act_2/tilemaps/fg/height_map.coll | Bin .../zone_7/act_2/tilemaps/fg/map_back.bin | Bin .../zone_7/act_2/tilemaps/fg/map_front.bin | Bin .../act_2/tilemaps/fg/metatiles.tilemap2 | Bin .../maps/zone_7/act_2/tilemaps/fg/palette.pal | 0 .../zone_7/act_2/tilemaps/fg/tile_rot.coll | Bin .../maps/zone_7/act_2/tilemaps/fg/tileset.png | Bin {sa1/data => data}/sa1/obj_gfx.s | 0 {sa1/data => data}/sa1/rom_header_old.s | 0 {sa1/data => data}/sa1/sound_data.s | 0 .../sa1/obj_palettes/pal_000.pal | 0 .../sa1/obj_palettes/pal_001.pal | 0 .../sa1/obj_palettes/pal_002.pal | 0 .../sa1/obj_palettes/pal_003.pal | 0 .../sa1/obj_palettes/pal_004.pal | 0 .../sa1/obj_palettes/pal_005.pal | 0 .../sa1/obj_palettes/pal_006.pal | 0 .../sa1/obj_palettes/pal_007.pal | 0 .../sa1/obj_palettes/pal_008.pal | 0 .../sa1/obj_palettes/pal_009.pal | 0 .../sa1/obj_palettes/pal_010.pal | 0 .../sa1/obj_palettes/pal_011.pal | 0 .../sa1/obj_palettes/pal_012.pal | 0 .../sa1/obj_palettes/pal_013.pal | 0 .../sa1/obj_palettes/pal_014.pal | 0 .../sa1/obj_palettes/pal_015.pal | 0 .../sa1/obj_palettes/pal_016.pal | 0 .../sa1/obj_palettes/pal_017.pal | 0 .../sa1/obj_palettes/pal_018.pal | 0 .../sa1/obj_palettes/pal_019.pal | 0 .../sa1/obj_palettes/pal_020.pal | 0 .../sa1/obj_palettes/pal_021.pal | 0 .../sa1/obj_palettes/pal_022.pal | 0 .../sa1/obj_palettes/pal_023.pal | 0 .../sa1/obj_palettes/pal_024.pal | 0 .../sa1/obj_palettes/pal_025.pal | 0 .../sa1/obj_palettes/pal_026.pal | 0 .../sa1/obj_palettes/pal_027.pal | 0 .../sa1/obj_palettes/pal_028.pal | 0 .../sa1/obj_palettes/pal_029.pal | 0 .../sa1/obj_palettes/pal_030.pal | 0 .../sa1/obj_palettes/pal_031.pal | 0 .../sa1/obj_palettes/pal_032.pal | 0 .../sa1/obj_palettes/pal_033.pal | 0 .../sa1/obj_palettes/pal_034.pal | 0 .../sa1/obj_palettes/pal_035.pal | 0 .../sa1/obj_palettes/pal_036.pal | 0 .../sa1/obj_palettes/pal_037.pal | 0 .../sa1/obj_palettes/pal_038.pal | 0 .../sa1/obj_palettes/pal_039.pal | 0 .../sa1/obj_palettes/pal_040.pal | 0 .../sa1/obj_palettes/pal_041.pal | 0 .../sa1/obj_palettes/pal_042.pal | 0 .../sa1/obj_palettes/pal_043.pal | 0 .../sa1/obj_palettes/pal_044.pal | 0 .../sa1/obj_palettes/pal_045.pal | 0 .../sa1/obj_palettes/pal_046.pal | 0 .../sa1/obj_palettes/pal_047.pal | 0 .../sa1/obj_palettes/pal_048.pal | 0 .../sa1/obj_palettes/pal_049.pal | 0 .../sa1/obj_palettes/pal_050.pal | 0 .../sa1/obj_palettes/pal_051.pal | 0 .../sa1/obj_palettes/pal_052.pal | 0 .../sa1/obj_palettes/pal_053.pal | 0 .../sa1/obj_palettes/pal_054.pal | 0 .../sa1/obj_palettes/pal_055.pal | 0 .../sa1/obj_palettes/pal_056.pal | 0 .../sa1/obj_palettes/pal_057.pal | 0 .../sa1/obj_palettes/pal_058.pal | 0 .../sa1/obj_palettes/pal_059.pal | 0 .../sa1/obj_palettes/pal_060.pal | 0 .../sa1/obj_palettes/pal_061.pal | 0 .../sa1/obj_palettes/pal_062.pal | 0 .../sa1/obj_palettes/pal_063.pal | 0 .../sa1/obj_palettes/pal_064.pal | 0 .../sa1/obj_palettes/pal_065.pal | 0 .../sa1/obj_palettes/pal_066.pal | 0 .../sa1/obj_palettes/pal_067.pal | 0 .../sa1/obj_palettes/pal_068.pal | 0 .../sa1/obj_palettes/pal_069.pal | 0 .../sa1/obj_palettes/pal_070.pal | 0 .../sa1/obj_palettes/pal_071.pal | 0 .../sa1/obj_palettes/pal_072.pal | 0 .../sa1/obj_palettes/pal_073.pal | 0 .../sa1/obj_palettes/pal_074.pal | 0 .../sa1/obj_palettes/pal_075.pal | 0 .../sa1/obj_palettes/pal_076.pal | 0 .../sa1/obj_palettes/pal_077.pal | 0 .../sa1/obj_palettes/pal_078.pal | 0 .../sa1/obj_palettes/pal_079.pal | 0 .../sa1/obj_palettes/pal_080.pal | 0 .../sa1/obj_palettes/pal_081.pal | 0 .../sa1/obj_palettes/pal_082.pal | 0 .../sa1/obj_palettes/pal_083.pal | 0 .../sa1/obj_palettes/pal_084.pal | 0 .../sa1/obj_palettes/pal_085.pal | 0 .../sa1/obj_palettes/pal_086.pal | 0 .../sa1/obj_palettes/pal_087.pal | 0 .../sa1/obj_palettes/pal_088.pal | 0 .../sa1/obj_palettes/pal_089.pal | 0 .../sa1/obj_palettes/pal_090.pal | 0 .../sa1/obj_palettes/pal_091.pal | 0 .../sa1/obj_palettes/pal_092.pal | 0 .../sa1/obj_palettes/pal_093.pal | 0 .../sa1/obj_palettes/pal_094.pal | 0 .../sa1/obj_palettes/pal_095.pal | 0 .../sa1/obj_palettes/pal_096.pal | 0 .../sa1/obj_palettes/pal_097.pal | 0 .../sa1/obj_palettes/pal_098.pal | 0 .../sa1/obj_palettes/pal_099.pal | 0 .../sa1/obj_palettes/pal_100.pal | 0 .../sa1/obj_palettes/pal_101.pal | 0 .../sa1/obj_palettes/pal_102.pal | 0 .../sa1/obj_palettes/pal_103.pal | 0 .../sa1/obj_palettes/pal_104.pal | 0 .../sa1/obj_palettes/pal_105.pal | 0 .../sa1/obj_palettes/pal_106.pal | 0 .../sa1/obj_palettes/pal_107.pal | 0 .../sa1/obj_palettes/pal_108.pal | 0 .../sa1/obj_palettes/pal_109.pal | 0 .../sa1/obj_palettes/pal_110.pal | 0 .../sa1/obj_palettes/pal_111.pal | 0 .../sa1/obj_palettes/pal_112.pal | 0 .../sa1/obj_palettes/pal_113.pal | 0 .../sa1/obj_palettes/pal_114.pal | 0 .../sa1/obj_palettes/pal_115.pal | 0 .../sa1/obj_palettes/pal_116.pal | 0 .../sa1/obj_palettes/pal_117.pal | 0 .../sa1/obj_palettes/pal_118.pal | 0 .../sa1/obj_palettes/pal_119.pal | 0 .../sa1/obj_palettes/pal_120.pal | 0 .../sa1/obj_palettes/pal_121.pal | 0 .../sa1/obj_palettes/pal_122.pal | 0 .../sa1/obj_palettes/pal_123.pal | 0 .../sa1/obj_palettes/pal_124.pal | 0 .../sa1/obj_palettes/pal_125.pal | 0 .../sa1/obj_palettes/pal_126.pal | 0 .../sa1/obj_palettes/pal_127.pal | 0 .../sa1/obj_palettes/pal_128.pal | 0 .../sa1/obj_palettes/pal_129.pal | 0 .../sa1/obj_palettes/pal_130.pal | 0 .../sa1/obj_palettes/pal_131.pal | 0 .../sa1/obj_palettes/pal_132.pal | 0 .../sa1/obj_palettes/pal_133.pal | 0 .../sa1/obj_palettes/pal_134.pal | 0 .../sa1/obj_palettes/pal_135.pal | 0 .../sa1/obj_palettes/pal_136.pal | 0 .../sa1/obj_palettes/pal_137.pal | 0 .../sa1/obj_palettes/pal_138.pal | 0 .../sa1/obj_palettes/pal_139.pal | 0 .../sa1/obj_palettes/pal_140.pal | 0 .../sa1/obj_palettes/pal_141.pal | 0 .../sa1/obj_palettes/pal_142.pal | 0 .../sa1/obj_palettes/pal_143.pal | 0 .../sa1/obj_palettes/pal_144.pal | 0 .../sa1/obj_palettes/pal_145.pal | 0 .../sa1/obj_palettes/pal_146.pal | 0 .../sa1/obj_palettes/pal_147.pal | 0 .../sa1/obj_palettes/pal_148.pal | 0 .../sa1/obj_palettes/pal_149.pal | 0 .../sa1/obj_palettes/pal_150.pal | 0 .../sa1/obj_palettes/pal_151.pal | 0 .../sa1/obj_palettes/pal_152.pal | 0 .../sa1/obj_palettes/pal_153.pal | 0 .../sa1/obj_palettes/pal_154.pal | 0 .../sa1/obj_palettes/pal_155.pal | 0 .../sa1/obj_palettes/pal_156.pal | 0 .../sa1/obj_palettes/pal_157.pal | 0 .../sa1/obj_palettes/pal_158.pal | 0 .../sa1/obj_palettes/pal_159.pal | 0 .../sa1/obj_palettes/pal_160.pal | 0 .../sa1/obj_palettes/pal_161.pal | 0 .../sa1/obj_palettes/pal_162.pal | 0 .../sa1/obj_palettes/pal_163.pal | 0 .../sa1/obj_palettes/pal_164.pal | 0 .../sa1/obj_palettes/pal_165.pal | 0 .../sa1/obj_palettes/pal_166.pal | 0 .../sa1/obj_palettes/pal_167.pal | 0 .../sa1/obj_palettes/pal_168.pal | 0 .../sa1/obj_palettes/pal_169.pal | 0 .../sa1/obj_palettes/pal_170.pal | 0 .../sa1/obj_palettes/pal_171.pal | 0 .../sa1/obj_palettes/pal_172.pal | 0 .../sa1/obj_palettes/pal_173.pal | 0 .../sa1/obj_palettes/pal_174.pal | 0 .../sa1/obj_palettes/pal_175.pal | 0 .../sa1/obj_palettes/pal_176.pal | 0 .../sa1/obj_palettes/pal_177.pal | 0 .../sa1/obj_palettes/pal_178.pal | 0 .../sa1/obj_palettes/pal_179.pal | 0 .../sa1/obj_palettes/pal_180.pal | 0 .../sa1/obj_palettes/pal_181.pal | 0 .../sa1/obj_palettes/pal_182.pal | 0 .../sa1/obj_palettes/pal_183.pal | 0 .../sa1/obj_palettes/pal_184.pal | 0 .../sa1/obj_palettes/pal_185.pal | 0 .../sa1/obj_palettes/pal_186.pal | 0 .../sa1/obj_palettes/pal_187.pal | 0 .../sa1/obj_palettes/pal_188.pal | 0 .../sa1/obj_palettes/pal_189.pal | 0 .../sa1/obj_palettes/pal_190.pal | 0 .../sa1/obj_palettes/pal_191.pal | 0 .../sa1/obj_palettes/pal_192.pal | 0 .../sa1/obj_palettes/pal_193.pal | 0 .../sa1/obj_palettes/pal_194.pal | 0 .../sa1/obj_palettes/pal_195.pal | 0 .../sa1/obj_palettes/pal_196.pal | 0 .../sa1/obj_palettes/pal_197.pal | 0 .../sa1/obj_palettes/pal_198.pal | 0 .../sa1/obj_palettes/pal_199.pal | 0 .../sa1/obj_palettes/pal_200.pal | 0 .../sa1/obj_palettes/pal_201.pal | 0 .../sa1/obj_palettes/pal_202.pal | 0 .../sa1/obj_palettes/pal_203.pal | 0 .../sa1/obj_palettes/pal_204.pal | 0 .../sa1/obj_palettes/pal_205.pal | 0 .../sa1/obj_palettes/pal_206.pal | 0 .../sa1/obj_palettes/pal_207.pal | 0 .../sa1/obj_palettes/pal_208.pal | 0 .../sa1/obj_palettes/pal_209.pal | 0 .../sa1/obj_palettes/pal_210.pal | 0 .../sa1/obj_palettes/pal_211.pal | 0 .../sa1/obj_palettes/pal_212.pal | 0 .../sa1/obj_palettes/pal_213.pal | 0 .../sa1/obj_palettes/pal_214.pal | 0 .../sa1/obj_palettes/pal_215.pal | 0 .../sa1/obj_palettes/pal_216.pal | 0 .../sa1/obj_palettes/pal_217.pal | 0 .../sa1/obj_palettes/pal_218.pal | 0 .../sa1/obj_palettes/pal_219.pal | 0 .../sa1/obj_palettes/pal_220.pal | 0 .../sa1/obj_palettes/pal_221.pal | 0 .../sa1/obj_palettes/pal_222.pal | 0 .../sa1/obj_palettes/pal_223.pal | 0 .../sa1/obj_palettes/pal_224.pal | 0 .../sa1/obj_palettes/pal_225.pal | 0 .../sa1/obj_palettes/pal_226.pal | 0 .../sa1/obj_palettes/pal_227.pal | 0 .../sa1/obj_palettes/pal_228.pal | 0 .../sa1/obj_palettes/pal_229.pal | 0 .../sa1/obj_palettes/pal_230.pal | 0 .../sa1/obj_palettes/pal_231.pal | 0 .../sa1/obj_palettes/pal_232.pal | 0 .../sa1/obj_palettes/pal_233.pal | 0 .../sa1/obj_palettes/pal_234.pal | 0 .../sa1/obj_palettes/pal_235.pal | 0 .../sa1/obj_palettes/pal_236.pal | 0 .../sa1/obj_palettes/pal_237.pal | 0 .../sa1/obj_palettes/pal_238.pal | 0 .../sa1/obj_palettes/pal_239.pal | 0 .../sa1/obj_palettes/pal_240.pal | 0 .../sa1/obj_palettes/pal_241.pal | 0 .../sa1/obj_palettes/pal_242.pal | 0 .../sa1/obj_palettes/pal_243.pal | 0 .../sa1/obj_palettes/pal_244.pal | 0 .../sa1/obj_palettes/pal_245.pal | 0 .../sa1/obj_palettes/pal_246.pal | 0 .../sa1/obj_palettes/pal_247.pal | 0 .../sa1/obj_palettes/pal_248.pal | 0 .../sa1/obj_palettes/pal_249.pal | 0 .../sa1/obj_palettes/pal_250.pal | 0 .../sa1/obj_palettes/pal_251.pal | 0 .../sa1/obj_palettes/pal_252.pal | 0 .../sa1/obj_palettes/pal_253.pal | 0 .../sa1/obj_palettes/pal_254.pal | 0 .../sa1/obj_palettes/pal_255.pal | 0 .../sa1/obj_palettes/pal_256.pal | 0 .../sa1/obj_palettes/pal_257.pal | 0 .../sa1/obj_palettes/pal_258.pal | 0 .../sa1/obj_palettes/pal_259.pal | 0 .../sa1/obj_palettes/pal_260.pal | 0 .../sa1/obj_palettes/pal_261.pal | 0 .../sa1/obj_palettes/pal_262.pal | 0 .../sa1/obj_palettes/pal_263.pal | 0 .../sa1/obj_palettes/pal_264.pal | 0 .../sa1/obj_palettes/pal_265.pal | 0 .../sa1/obj_palettes/pal_266.pal | 0 .../sa1/obj_palettes/pal_267.pal | 0 .../sa1/obj_palettes/pal_268.pal | 0 .../sa1/obj_palettes/pal_269.pal | 0 .../sa1/obj_palettes/pal_270.pal | 0 .../sa1/obj_palettes/pal_271.pal | 0 .../sa1/obj_palettes/pal_272.pal | 0 .../sa1/obj_palettes/pal_273.pal | 0 .../sa1/obj_palettes/pal_274.pal | 0 .../sa1/obj_palettes/pal_275.pal | 0 .../sa1/obj_palettes/pal_276.pal | 0 .../sa1/obj_palettes/pal_277.pal | 0 .../sa1/obj_palettes/pal_278.pal | 0 .../sa1/obj_palettes/pal_279.pal | 0 .../sa1/obj_palettes/pal_280.pal | 0 .../sa1/obj_palettes/pal_281.pal | 0 .../sa1/obj_palettes/pal_282.pal | 0 .../sa1/obj_palettes/pal_283.pal | 0 .../sa1/obj_palettes/pal_284.pal | 0 .../sa1/obj_palettes/pal_285.pal | 0 .../sa1/obj_palettes/pal_286.pal | 0 .../sa1/obj_palettes/pal_287.pal | 0 .../sa1/obj_palettes/pal_288.pal | 0 .../sa1/obj_palettes/pal_289.pal | 0 .../sa1/obj_palettes/pal_290.pal | 0 .../sa1/obj_palettes/pal_291.pal | 0 .../sa1/obj_palettes/pal_292.pal | 0 .../sa1/obj_palettes/pal_293.pal | 0 .../sa1/obj_palettes/pal_294.pal | 0 .../sa1/obj_palettes/pal_295.pal | 0 .../sa1/obj_palettes/pal_296.pal | 0 .../sa1/obj_palettes/pal_297.pal | 0 .../sa1/obj_palettes/pal_298.pal | 0 .../sa1/obj_palettes/pal_299.pal | 0 .../sa1/obj_palettes/pal_300.pal | 0 .../sa1/obj_palettes/pal_301.pal | 0 .../sa1/obj_palettes/pal_302.pal | 0 .../sa1/obj_palettes/pal_303.pal | 0 .../sa1/obj_palettes/pal_304.pal | 0 .../sa1/obj_palettes/pal_305.pal | 0 .../sa1/obj_palettes/pal_306.pal | 0 .../sa1/obj_palettes/pal_307.pal | 0 .../sa1/obj_palettes/pal_308.pal | 0 .../sa1/obj_palettes/pal_309.pal | 0 .../sa1/obj_palettes/pal_310.pal | 0 .../sa1/obj_palettes/pal_311.pal | 0 .../sa1/obj_palettes/pal_312.pal | 0 .../sa1/obj_palettes/pal_313.pal | 0 .../sa1/obj_palettes/pal_314.pal | 0 .../sa1/obj_palettes/pal_315.pal | 0 .../sa1/obj_palettes/pal_316.pal | 0 .../sa1/obj_palettes/pal_317.pal | 0 .../sa1/obj_palettes/pal_318.pal | 0 .../sa1/obj_palettes/pal_319.pal | 0 .../sa1/obj_palettes/pal_320.pal | 0 .../sa1/obj_palettes/pal_321.pal | 0 .../sa1/obj_palettes/pal_322.pal | 0 .../sa1/obj_palettes/pal_323.pal | 0 .../sa1/obj_palettes/pal_324.pal | 0 .../sa1/obj_palettes/pal_325.pal | 0 .../sa1/obj_palettes/pal_326.pal | 0 .../sa1/obj_palettes/pal_327.pal | 0 .../sa1/obj_palettes/pal_328.pal | 0 .../sa1/obj_palettes/pal_329.pal | 0 .../sa1/obj_palettes/pal_330.pal | 0 .../sa1/obj_palettes/pal_331.pal | 0 .../sa1/obj_palettes/pal_332.pal | 0 .../sa1/obj_palettes/pal_333.pal | 0 .../sa1/obj_palettes/pal_334.pal | 0 .../sa1/obj_palettes/pal_335.pal | 0 .../sa1/obj_palettes/pal_336.pal | 0 .../sa1/obj_palettes/pal_337.pal | 0 .../sa1/obj_palettes/pal_338.pal | 0 .../sa1/obj_palettes/pal_339.pal | 0 .../sa1/obj_palettes/pal_340.pal | 0 .../sa1/obj_palettes/pal_341.pal | 0 .../sa1/obj_palettes/pal_342.pal | 0 .../sa1/obj_palettes/pal_343.pal | 0 .../sa1/obj_palettes/pal_344.pal | 0 .../sa1/obj_palettes/pal_345.pal | 0 .../sa1/obj_palettes/pal_346.pal | 0 .../sa1/obj_palettes/pal_347.pal | 0 .../sa1/obj_palettes/pal_348.pal | 0 .../sa1/obj_palettes/pal_349.pal | 0 .../sa1/obj_palettes/pal_350.pal | 0 .../sa1/obj_palettes/pal_351.pal | 0 .../sa1/obj_palettes/pal_352.pal | 0 .../sa1/obj_palettes/pal_353.pal | 0 .../sa1/obj_palettes/pal_354.pal | 0 .../sa1/obj_palettes/pal_355.pal | 0 .../sa1/obj_palettes/pal_356.pal | 0 .../sa1/obj_palettes/pal_357.pal | 0 .../sa1/obj_palettes/pal_358.pal | 0 .../sa1/obj_palettes/pal_359.pal | 0 .../sa1/obj_palettes/pal_360.pal | 0 .../sa1/obj_palettes/pal_361.pal | 0 .../sa1/obj_palettes/pal_362.pal | 0 .../sa1/obj_palettes/pal_363.pal | 0 .../sa1/obj_palettes/pal_364.pal | 0 .../sa1/obj_palettes/pal_365.pal | 0 .../sa1/obj_palettes/pal_366.pal | 0 .../sa1/obj_palettes/pal_367.pal | 0 .../sa1/obj_palettes/pal_368.pal | 0 .../sa1/obj_palettes/pal_369.pal | 0 .../sa1/obj_palettes/pal_370.pal | 0 .../sa1/obj_palettes/pal_371.pal | 0 .../sa1/obj_palettes/pal_372.pal | 0 .../sa1/obj_palettes/pal_373.pal | 0 .../sa1/obj_palettes/pal_374.pal | 0 .../sa1/obj_palettes/pal_375.pal | 0 .../sa1/obj_palettes/pal_376.pal | 0 .../sa1/obj_palettes/pal_377.pal | 0 .../sa1/obj_palettes/pal_378.pal | 0 .../sa1/obj_palettes/pal_379.pal | 0 .../sa1/obj_palettes/pal_380.pal | 0 .../sa1/obj_palettes/pal_381.pal | 0 .../sa1/obj_palettes/pal_382.pal | 0 .../sa1/obj_palettes/pal_383.pal | 0 .../sa1/obj_palettes/pal_384.pal | 0 .../sa1/obj_palettes/pal_385.pal | 0 .../sa1/obj_palettes/pal_386.pal | 0 .../sa1/obj_palettes/pal_387.pal | 0 .../sa1/obj_palettes/pal_388.pal | 0 .../sa1/obj_palettes/pal_389.pal | 0 .../sa1/obj_palettes/pal_390.pal | 0 .../sa1/obj_palettes/pal_391.pal | 0 .../sa1/obj_palettes/pal_392.pal | 0 .../sa1/obj_palettes/pal_393.pal | 0 .../sa1/obj_palettes/pal_394.pal | 0 .../sa1/obj_palettes/pal_395.pal | 0 .../sa1/obj_palettes/pal_396.pal | 0 .../sa1/obj_palettes/pal_397.pal | 0 .../sa1/obj_palettes/pal_398.pal | 0 .../sa1/obj_palettes/pal_399.pal | 0 .../sa1/obj_palettes/pal_400.pal | 0 .../sa1/obj_palettes/pal_401.pal | 0 .../sa1/obj_palettes/pal_402.pal | 0 .../sa1/obj_palettes/pal_403.pal | 0 .../sa1/obj_palettes/pal_404.pal | 0 .../sa1/obj_palettes/pal_405.pal | 0 .../sa1/obj_palettes/pal_406.pal | 0 .../sa1/obj_palettes/pal_407.pal | 0 .../sa1/obj_palettes/pal_408.pal | 0 .../sa1/obj_palettes/pal_409.pal | 0 .../sa1/obj_palettes/pal_410.pal | 0 .../sa1/obj_palettes/pal_411.pal | 0 .../sa1/obj_palettes/pal_412.pal | 0 .../sa1/obj_palettes/pal_413.pal | 0 .../sa1/obj_palettes/pal_414.pal | 0 .../sa1/obj_palettes/pal_415.pal | 0 .../sa1/obj_palettes/pal_416.pal | 0 .../sa1/obj_palettes/pal_417.pal | 0 .../sa1/obj_palettes/pal_418.pal | 0 .../sa1/obj_palettes/pal_419.pal | 0 .../sa1/obj_palettes/pal_420.pal | 0 .../sa1/obj_palettes/pal_421.pal | 0 .../sa1/obj_palettes/pal_422.pal | 0 .../sa1/obj_palettes/pal_423.pal | 0 .../sa1/obj_palettes/pal_424.pal | 0 .../sa1/obj_palettes/pal_425.pal | 0 .../sa1/obj_palettes/pal_426.pal | 0 .../sa1/obj_palettes/pal_427.pal | 0 .../sa1/obj_palettes/pal_428.pal | 0 .../sa1/obj_palettes/pal_429.pal | 0 .../sa1/obj_palettes/pal_430.pal | 0 .../sa1/obj_palettes/pal_431.pal | 0 .../sa1/obj_palettes/pal_432.pal | 0 .../sa1/obj_palettes/pal_433.pal | 0 .../sa1/obj_palettes/pal_434.pal | 0 .../sa1/obj_palettes/pal_435.pal | 0 .../sa1/obj_palettes/pal_436.pal | 0 .../sa1/obj_palettes/pal_437.pal | 0 .../sa1/obj_palettes/pal_438.pal | 0 .../sa1/obj_palettes/pal_439.pal | 0 .../sa1/obj_palettes/pal_440.pal | 0 .../sa1/obj_palettes/pal_441.pal | 0 .../sa1/obj_palettes/pal_442.pal | 0 .../sa1/obj_palettes/pal_443.pal | 0 .../sa1/obj_palettes/pal_444.pal | 0 .../sa1/obj_palettes/pal_445.pal | 0 .../sa1/obj_palettes/pal_446.pal | 0 .../sa1/obj_palettes/pal_447.pal | 0 .../sa1/obj_palettes/pal_448.pal | 0 .../sa1/obj_palettes/pal_449.pal | 0 .../sa1/obj_palettes/pal_450.pal | 0 .../sa1/obj_palettes/pal_451.pal | 0 .../sa1/obj_palettes/pal_452.pal | 0 .../sa1/obj_palettes/pal_453.pal | 0 .../sa1/obj_palettes/pal_454.pal | 0 .../sa1/obj_palettes/pal_455.pal | 0 .../sa1/obj_palettes/pal_456.pal | 0 .../sa1/obj_palettes/pal_457.pal | 0 .../sa1/obj_palettes/pal_458.pal | 0 .../sa1/obj_palettes/pal_459.pal | 0 .../sa1/obj_palettes/pal_460.pal | 0 .../sa1/obj_palettes/pal_461.pal | 0 .../sa1/obj_palettes/pal_462.pal | 0 .../sa1/obj_palettes/pal_463.pal | 0 .../sa1/obj_tiles/4bpp/a0000_f000.png | Bin .../sa1/obj_tiles/4bpp/a0000_f001.png | Bin .../sa1/obj_tiles/4bpp/a0000_f002.png | Bin .../sa1/obj_tiles/4bpp/a0000_f003.png | Bin .../sa1/obj_tiles/4bpp/a0000_f004.png | Bin .../sa1/obj_tiles/4bpp/a0000_f005.png | Bin .../sa1/obj_tiles/4bpp/a0000_f006.png | Bin .../sa1/obj_tiles/4bpp/a0000_f007.png | Bin .../sa1/obj_tiles/4bpp/a0000_f008.png | Bin .../sa1/obj_tiles/4bpp/a0000_f009.png | Bin .../sa1/obj_tiles/4bpp/a0000_f010.png | Bin .../sa1/obj_tiles/4bpp/a0000_f011.png | Bin .../sa1/obj_tiles/4bpp/a0000_f012.png | Bin .../sa1/obj_tiles/4bpp/a0001_f000.png | Bin .../sa1/obj_tiles/4bpp/a0001_f001.png | Bin .../sa1/obj_tiles/4bpp/a0001_f002.png | Bin .../sa1/obj_tiles/4bpp/a0001_f003.png | Bin .../sa1/obj_tiles/4bpp/a0001_f004.png | Bin .../sa1/obj_tiles/4bpp/a0001_f005.png | Bin .../sa1/obj_tiles/4bpp/a0001_f006.png | Bin .../sa1/obj_tiles/4bpp/a0001_f007.png | Bin .../sa1/obj_tiles/4bpp/a0001_f008.png | Bin .../sa1/obj_tiles/4bpp/a0001_f009.png | Bin .../sa1/obj_tiles/4bpp/a0001_f010.png | Bin .../sa1/obj_tiles/4bpp/a0001_f011.png | Bin .../sa1/obj_tiles/4bpp/a0001_f012.png | Bin .../sa1/obj_tiles/4bpp/a0001_f013.png | Bin .../sa1/obj_tiles/4bpp/a0001_f014.png | Bin .../sa1/obj_tiles/4bpp/a0001_f015.png | Bin .../sa1/obj_tiles/4bpp/a0001_f016.png | Bin .../sa1/obj_tiles/4bpp/a0001_f017.png | Bin .../sa1/obj_tiles/4bpp/a0002_f000.png | Bin .../sa1/obj_tiles/4bpp/a0002_f001.png | Bin .../sa1/obj_tiles/4bpp/a0002_f002.png | Bin .../sa1/obj_tiles/4bpp/a0002_f003.png | Bin .../sa1/obj_tiles/4bpp/a0002_f004.png | Bin .../sa1/obj_tiles/4bpp/a0003_f000.png | Bin .../sa1/obj_tiles/4bpp/a0003_f001.png | Bin .../sa1/obj_tiles/4bpp/a0003_f002.png | Bin .../sa1/obj_tiles/4bpp/a0003_f003.png | Bin .../sa1/obj_tiles/4bpp/a0004_f000.png | Bin .../sa1/obj_tiles/4bpp/a0004_f001.png | Bin .../sa1/obj_tiles/4bpp/a0004_f002.png | Bin .../sa1/obj_tiles/4bpp/a0004_f003.png | Bin .../sa1/obj_tiles/4bpp/a0004_f004.png | Bin .../sa1/obj_tiles/4bpp/a0004_f005.png | Bin .../sa1/obj_tiles/4bpp/a0004_f006.png | Bin .../sa1/obj_tiles/4bpp/a0004_f007.png | Bin .../sa1/obj_tiles/4bpp/a0005_f000.png | Bin .../sa1/obj_tiles/4bpp/a0005_f001.png | Bin .../sa1/obj_tiles/4bpp/a0005_f002.png | Bin .../sa1/obj_tiles/4bpp/a0005_f003.png | Bin .../sa1/obj_tiles/4bpp/a0006_f000.png | Bin .../sa1/obj_tiles/4bpp/a0006_f001.png | Bin .../sa1/obj_tiles/4bpp/a0007_f000.png | Bin .../sa1/obj_tiles/4bpp/a0007_f001.png | Bin .../sa1/obj_tiles/4bpp/a0007_f002.png | Bin .../sa1/obj_tiles/4bpp/a0007_f003.png | Bin .../sa1/obj_tiles/4bpp/a0008_f000.png | Bin .../sa1/obj_tiles/4bpp/a0008_f001.png | Bin .../sa1/obj_tiles/4bpp/a0008_f002.png | Bin .../sa1/obj_tiles/4bpp/a0008_f003.png | Bin .../sa1/obj_tiles/4bpp/a0009_f000.png | Bin .../sa1/obj_tiles/4bpp/a0009_f001.png | Bin .../sa1/obj_tiles/4bpp/a0009_f002.png | Bin .../sa1/obj_tiles/4bpp/a0010_f000.png | Bin .../sa1/obj_tiles/4bpp/a0010_f001.png | Bin .../sa1/obj_tiles/4bpp/a0010_f002.png | Bin .../sa1/obj_tiles/4bpp/a0010_f003.png | Bin .../sa1/obj_tiles/4bpp/a0010_f004.png | Bin .../sa1/obj_tiles/4bpp/a0010_f005.png | Bin .../sa1/obj_tiles/4bpp/a0010_f006.png | Bin .../sa1/obj_tiles/4bpp/a0010_f007.png | Bin .../sa1/obj_tiles/4bpp/a0010_f008.png | Bin .../sa1/obj_tiles/4bpp/a0010_f009.png | Bin .../sa1/obj_tiles/4bpp/a0010_f010.png | Bin .../sa1/obj_tiles/4bpp/a0010_f011.png | Bin .../sa1/obj_tiles/4bpp/a0010_f012.png | Bin .../sa1/obj_tiles/4bpp/a0010_f013.png | Bin .../sa1/obj_tiles/4bpp/a0010_f014.png | Bin .../sa1/obj_tiles/4bpp/a0011_f000.png | Bin .../sa1/obj_tiles/4bpp/a0011_f001.png | Bin .../sa1/obj_tiles/4bpp/a0011_f002.png | Bin .../sa1/obj_tiles/4bpp/a0011_f003.png | Bin .../sa1/obj_tiles/4bpp/a0011_f004.png | Bin .../sa1/obj_tiles/4bpp/a0011_f005.png | Bin .../sa1/obj_tiles/4bpp/a0011_f006.png | Bin .../sa1/obj_tiles/4bpp/a0011_f007.png | Bin .../sa1/obj_tiles/4bpp/a0011_f008.png | Bin .../sa1/obj_tiles/4bpp/a0011_f009.png | Bin .../sa1/obj_tiles/4bpp/a0011_f010.png | Bin .../sa1/obj_tiles/4bpp/a0012_f000.png | Bin .../sa1/obj_tiles/4bpp/a0012_f001.png | Bin .../sa1/obj_tiles/4bpp/a0012_f002.png | Bin .../sa1/obj_tiles/4bpp/a0012_f003.png | Bin .../sa1/obj_tiles/4bpp/a0012_f004.png | Bin .../sa1/obj_tiles/4bpp/a0012_f005.png | Bin .../sa1/obj_tiles/4bpp/a0012_f006.png | Bin .../sa1/obj_tiles/4bpp/a0012_f007.png | Bin .../sa1/obj_tiles/4bpp/a0012_f008.png | Bin .../sa1/obj_tiles/4bpp/a0013_f000.png | Bin .../sa1/obj_tiles/4bpp/a0013_f001.png | Bin .../sa1/obj_tiles/4bpp/a0013_f002.png | Bin .../sa1/obj_tiles/4bpp/a0013_f003.png | Bin .../sa1/obj_tiles/4bpp/a0013_f004.png | Bin .../sa1/obj_tiles/4bpp/a0013_f005.png | Bin .../sa1/obj_tiles/4bpp/a0013_f006.png | Bin .../sa1/obj_tiles/4bpp/a0013_f007.png | Bin .../sa1/obj_tiles/4bpp/a0013_f008.png | Bin .../sa1/obj_tiles/4bpp/a0013_f009.png | Bin .../sa1/obj_tiles/4bpp/a0014_f000.png | Bin .../sa1/obj_tiles/4bpp/a0014_f001.png | Bin .../sa1/obj_tiles/4bpp/a0014_f002.png | Bin .../sa1/obj_tiles/4bpp/a0014_f003.png | Bin .../sa1/obj_tiles/4bpp/a0014_f004.png | Bin .../sa1/obj_tiles/4bpp/a0014_f005.png | Bin .../sa1/obj_tiles/4bpp/a0014_f006.png | Bin .../sa1/obj_tiles/4bpp/a0014_f007.png | Bin .../sa1/obj_tiles/4bpp/a0014_f008.png | Bin .../sa1/obj_tiles/4bpp/a0014_f009.png | Bin .../sa1/obj_tiles/4bpp/a0017_f000.png | Bin .../sa1/obj_tiles/4bpp/a0017_f001.png | Bin .../sa1/obj_tiles/4bpp/a0018_f000.png | Bin .../sa1/obj_tiles/4bpp/a0018_f001.png | Bin .../sa1/obj_tiles/4bpp/a0018_f002.png | Bin .../sa1/obj_tiles/4bpp/a0018_f003.png | Bin .../sa1/obj_tiles/4bpp/a0018_f004.png | Bin .../sa1/obj_tiles/4bpp/a0018_f005.png | Bin .../sa1/obj_tiles/4bpp/a0018_f006.png | Bin .../sa1/obj_tiles/4bpp/a0018_f007.png | Bin .../sa1/obj_tiles/4bpp/a0019_f000.png | Bin .../sa1/obj_tiles/4bpp/a0019_f001.png | Bin .../sa1/obj_tiles/4bpp/a0019_f002.png | Bin .../sa1/obj_tiles/4bpp/a0019_f003.png | Bin .../sa1/obj_tiles/4bpp/a0019_f004.png | Bin .../sa1/obj_tiles/4bpp/a0021_f000.png | Bin .../sa1/obj_tiles/4bpp/a0021_f001.png | Bin .../sa1/obj_tiles/4bpp/a0021_f002.png | Bin .../sa1/obj_tiles/4bpp/a0021_f003.png | Bin .../sa1/obj_tiles/4bpp/a0021_f004.png | Bin .../sa1/obj_tiles/4bpp/a0022_f000.png | Bin .../sa1/obj_tiles/4bpp/a0022_f001.png | Bin .../sa1/obj_tiles/4bpp/a0022_f002.png | Bin .../sa1/obj_tiles/4bpp/a0022_f003.png | Bin .../sa1/obj_tiles/4bpp/a0022_f004.png | Bin .../sa1/obj_tiles/4bpp/a0022_f005.png | Bin .../sa1/obj_tiles/4bpp/a0022_f006.png | Bin .../sa1/obj_tiles/4bpp/a0022_f007.png | Bin .../sa1/obj_tiles/4bpp/a0022_f008.png | Bin .../sa1/obj_tiles/4bpp/a0022_f009.png | Bin .../sa1/obj_tiles/4bpp/a0022_f010.png | Bin .../sa1/obj_tiles/4bpp/a0022_f011.png | Bin .../sa1/obj_tiles/4bpp/a0022_f012.png | Bin .../sa1/obj_tiles/4bpp/a0022_f013.png | Bin .../sa1/obj_tiles/4bpp/a0022_f014.png | Bin .../sa1/obj_tiles/4bpp/a0023_f000.png | Bin .../sa1/obj_tiles/4bpp/a0023_f001.png | Bin .../sa1/obj_tiles/4bpp/a0023_f002.png | Bin .../sa1/obj_tiles/4bpp/a0023_f003.png | Bin .../sa1/obj_tiles/4bpp/a0023_f004.png | Bin .../sa1/obj_tiles/4bpp/a0023_f005.png | Bin .../sa1/obj_tiles/4bpp/a0023_f006.png | Bin .../sa1/obj_tiles/4bpp/a0023_f007.png | Bin .../sa1/obj_tiles/4bpp/a0023_f008.png | Bin .../sa1/obj_tiles/4bpp/a0023_f009.png | Bin .../sa1/obj_tiles/4bpp/a0023_f010.png | Bin .../sa1/obj_tiles/4bpp/a0023_f011.png | Bin .../sa1/obj_tiles/4bpp/a0023_f012.png | Bin .../sa1/obj_tiles/4bpp/a0023_f013.png | Bin .../sa1/obj_tiles/4bpp/a0023_f014.png | Bin .../sa1/obj_tiles/4bpp/a0023_f015.png | Bin .../sa1/obj_tiles/4bpp/a0023_f016.png | Bin .../sa1/obj_tiles/4bpp/a0024_f000.png | Bin .../sa1/obj_tiles/4bpp/a0024_f001.png | Bin .../sa1/obj_tiles/4bpp/a0024_f002.png | Bin .../sa1/obj_tiles/4bpp/a0024_f003.png | Bin .../sa1/obj_tiles/4bpp/a0024_f004.png | Bin .../sa1/obj_tiles/4bpp/a0024_f005.png | Bin .../sa1/obj_tiles/4bpp/a0025_f000.png | Bin .../sa1/obj_tiles/4bpp/a0025_f001.png | Bin .../sa1/obj_tiles/4bpp/a0025_f002.png | Bin .../sa1/obj_tiles/4bpp/a0025_f003.png | Bin .../sa1/obj_tiles/4bpp/a0026_f000.png | Bin .../sa1/obj_tiles/4bpp/a0026_f001.png | Bin .../sa1/obj_tiles/4bpp/a0026_f002.png | Bin .../sa1/obj_tiles/4bpp/a0026_f003.png | Bin .../sa1/obj_tiles/4bpp/a0026_f004.png | Bin .../sa1/obj_tiles/4bpp/a0026_f005.png | Bin .../sa1/obj_tiles/4bpp/a0026_f006.png | Bin .../sa1/obj_tiles/4bpp/a0026_f007.png | Bin .../sa1/obj_tiles/4bpp/a0026_f008.png | Bin .../sa1/obj_tiles/4bpp/a0027_f000.png | Bin .../sa1/obj_tiles/4bpp/a0027_f001.png | Bin .../sa1/obj_tiles/4bpp/a0027_f002.png | Bin .../sa1/obj_tiles/4bpp/a0027_f003.png | Bin .../sa1/obj_tiles/4bpp/a0027_f004.png | Bin .../sa1/obj_tiles/4bpp/a0027_f005.png | Bin .../sa1/obj_tiles/4bpp/a0027_f006.png | Bin .../sa1/obj_tiles/4bpp/a0027_f007.png | Bin .../sa1/obj_tiles/4bpp/a0027_f008.png | Bin .../sa1/obj_tiles/4bpp/a0027_f009.png | Bin .../sa1/obj_tiles/4bpp/a0027_f010.png | Bin .../sa1/obj_tiles/4bpp/a0027_f011.png | Bin .../sa1/obj_tiles/4bpp/a0027_f012.png | Bin .../sa1/obj_tiles/4bpp/a0027_f013.png | Bin .../sa1/obj_tiles/4bpp/a0027_f014.png | Bin .../sa1/obj_tiles/4bpp/a0027_f015.png | Bin .../sa1/obj_tiles/4bpp/a0027_f016.png | Bin .../sa1/obj_tiles/4bpp/a0027_f017.png | Bin .../sa1/obj_tiles/4bpp/a0028_f000.png | Bin .../sa1/obj_tiles/4bpp/a0028_f001.png | Bin .../sa1/obj_tiles/4bpp/a0028_f002.png | Bin .../sa1/obj_tiles/4bpp/a0028_f003.png | Bin .../sa1/obj_tiles/4bpp/a0028_f004.png | Bin .../sa1/obj_tiles/4bpp/a0028_f005.png | Bin .../sa1/obj_tiles/4bpp/a0028_f006.png | Bin .../sa1/obj_tiles/4bpp/a0028_f007.png | Bin .../sa1/obj_tiles/4bpp/a0028_f008.png | Bin .../sa1/obj_tiles/4bpp/a0028_f009.png | Bin .../sa1/obj_tiles/4bpp/a0028_f010.png | Bin .../sa1/obj_tiles/4bpp/a0028_f011.png | Bin .../sa1/obj_tiles/4bpp/a0028_f012.png | Bin .../sa1/obj_tiles/4bpp/a0028_f013.png | Bin .../sa1/obj_tiles/4bpp/a0028_f014.png | Bin .../sa1/obj_tiles/4bpp/a0028_f015.png | Bin .../sa1/obj_tiles/4bpp/a0029_f000.png | Bin .../sa1/obj_tiles/4bpp/a0029_f001.png | Bin .../sa1/obj_tiles/4bpp/a0029_f002.png | Bin .../sa1/obj_tiles/4bpp/a0030_f000.png | Bin .../sa1/obj_tiles/4bpp/a0030_f001.png | Bin .../sa1/obj_tiles/4bpp/a0030_f002.png | Bin .../sa1/obj_tiles/4bpp/a0030_f003.png | Bin .../sa1/obj_tiles/4bpp/a0030_f004.png | Bin .../sa1/obj_tiles/4bpp/a0030_f005.png | Bin .../sa1/obj_tiles/4bpp/a0030_f006.png | Bin .../sa1/obj_tiles/4bpp/a0030_f007.png | Bin .../sa1/obj_tiles/4bpp/a0030_f008.png | Bin .../sa1/obj_tiles/4bpp/a0030_f009.png | Bin .../sa1/obj_tiles/4bpp/a0030_f010.png | Bin .../sa1/obj_tiles/4bpp/a0031_f000.png | Bin .../sa1/obj_tiles/4bpp/a0031_f001.png | Bin .../sa1/obj_tiles/4bpp/a0031_f002.png | Bin .../sa1/obj_tiles/4bpp/a0031_f003.png | Bin .../sa1/obj_tiles/4bpp/a0031_f004.png | Bin .../sa1/obj_tiles/4bpp/a0031_f005.png | Bin .../sa1/obj_tiles/4bpp/a0031_f006.png | Bin .../sa1/obj_tiles/4bpp/a0031_f007.png | Bin .../sa1/obj_tiles/4bpp/a0031_f008.png | Bin .../sa1/obj_tiles/4bpp/a0031_f009.png | Bin .../sa1/obj_tiles/4bpp/a0031_f010.png | Bin .../sa1/obj_tiles/4bpp/a0031_f011.png | Bin .../sa1/obj_tiles/4bpp/a0031_f012.png | Bin .../sa1/obj_tiles/4bpp/a0031_f013.png | Bin .../sa1/obj_tiles/4bpp/a0032_f000.png | Bin .../sa1/obj_tiles/4bpp/a0032_f001.png | Bin .../sa1/obj_tiles/4bpp/a0032_f002.png | Bin .../sa1/obj_tiles/4bpp/a0032_f003.png | Bin .../sa1/obj_tiles/4bpp/a0032_f004.png | Bin .../sa1/obj_tiles/4bpp/a0032_f005.png | Bin .../sa1/obj_tiles/4bpp/a0032_f006.png | Bin .../sa1/obj_tiles/4bpp/a0033_f000.png | Bin .../sa1/obj_tiles/4bpp/a0033_f001.png | Bin .../sa1/obj_tiles/4bpp/a0033_f002.png | Bin .../sa1/obj_tiles/4bpp/a0034_f000.png | Bin .../sa1/obj_tiles/4bpp/a0034_f001.png | Bin .../sa1/obj_tiles/4bpp/a0034_f002.png | Bin .../sa1/obj_tiles/4bpp/a0034_f003.png | Bin .../sa1/obj_tiles/4bpp/a0034_f004.png | Bin .../sa1/obj_tiles/4bpp/a0034_f005.png | Bin .../sa1/obj_tiles/4bpp/a0034_f006.png | Bin .../sa1/obj_tiles/4bpp/a0034_f007.png | Bin .../sa1/obj_tiles/4bpp/a0035_f000.png | Bin .../sa1/obj_tiles/4bpp/a0035_f001.png | Bin .../sa1/obj_tiles/4bpp/a0035_f002.png | Bin .../sa1/obj_tiles/4bpp/a0035_f003.png | Bin .../sa1/obj_tiles/4bpp/a0035_f004.png | Bin .../sa1/obj_tiles/4bpp/a0035_f005.png | Bin .../sa1/obj_tiles/4bpp/a0035_f006.png | Bin .../sa1/obj_tiles/4bpp/a0035_f007.png | Bin .../sa1/obj_tiles/4bpp/a0035_f008.png | Bin .../sa1/obj_tiles/4bpp/a0035_f009.png | Bin .../sa1/obj_tiles/4bpp/a0036_f000.png | Bin .../sa1/obj_tiles/4bpp/a0036_f001.png | Bin .../sa1/obj_tiles/4bpp/a0036_f002.png | Bin .../sa1/obj_tiles/4bpp/a0036_f003.png | Bin .../sa1/obj_tiles/4bpp/a0036_f004.png | Bin .../sa1/obj_tiles/4bpp/a0036_f005.png | Bin .../sa1/obj_tiles/4bpp/a0036_f006.png | Bin .../sa1/obj_tiles/4bpp/a0036_f007.png | Bin .../sa1/obj_tiles/4bpp/a0036_f008.png | Bin .../sa1/obj_tiles/4bpp/a0036_f009.png | Bin .../sa1/obj_tiles/4bpp/a0036_f010.png | Bin .../sa1/obj_tiles/4bpp/a0036_f011.png | Bin .../sa1/obj_tiles/4bpp/a0036_f012.png | Bin .../sa1/obj_tiles/4bpp/a0036_f013.png | Bin .../sa1/obj_tiles/4bpp/a0036_f014.png | Bin .../sa1/obj_tiles/4bpp/a0036_f015.png | Bin .../sa1/obj_tiles/4bpp/a0036_f016.png | Bin .../sa1/obj_tiles/4bpp/a0036_f017.png | Bin .../sa1/obj_tiles/4bpp/a0036_f018.png | Bin .../sa1/obj_tiles/4bpp/a0036_f019.png | Bin .../sa1/obj_tiles/4bpp/a0036_f020.png | Bin .../sa1/obj_tiles/4bpp/a0036_f021.png | Bin .../sa1/obj_tiles/4bpp/a0036_f022.png | Bin .../sa1/obj_tiles/4bpp/a0036_f023.png | Bin .../sa1/obj_tiles/4bpp/a0037_f000.png | Bin .../sa1/obj_tiles/4bpp/a0037_f001.png | Bin .../sa1/obj_tiles/4bpp/a0037_f002.png | Bin .../sa1/obj_tiles/4bpp/a0037_f003.png | Bin .../sa1/obj_tiles/4bpp/a0037_f004.png | Bin .../sa1/obj_tiles/4bpp/a0037_f005.png | Bin .../sa1/obj_tiles/4bpp/a0037_f006.png | Bin .../sa1/obj_tiles/4bpp/a0037_f007.png | Bin .../sa1/obj_tiles/4bpp/a0038_f000.png | Bin .../sa1/obj_tiles/4bpp/a0038_f001.png | Bin .../sa1/obj_tiles/4bpp/a0038_f002.png | Bin .../sa1/obj_tiles/4bpp/a0038_f003.png | Bin .../sa1/obj_tiles/4bpp/a0038_f004.png | Bin .../sa1/obj_tiles/4bpp/a0039_f000.png | Bin .../sa1/obj_tiles/4bpp/a0039_f001.png | Bin .../sa1/obj_tiles/4bpp/a0039_f002.png | Bin .../sa1/obj_tiles/4bpp/a0039_f003.png | Bin .../sa1/obj_tiles/4bpp/a0040_f000.png | Bin .../sa1/obj_tiles/4bpp/a0040_f001.png | Bin .../sa1/obj_tiles/4bpp/a0040_f002.png | Bin .../sa1/obj_tiles/4bpp/a0040_f003.png | Bin .../sa1/obj_tiles/4bpp/a0040_f004.png | Bin .../sa1/obj_tiles/4bpp/a0040_f005.png | Bin .../sa1/obj_tiles/4bpp/a0040_f006.png | Bin .../sa1/obj_tiles/4bpp/a0040_f007.png | Bin .../sa1/obj_tiles/4bpp/a0040_f008.png | Bin .../sa1/obj_tiles/4bpp/a0040_f009.png | Bin .../sa1/obj_tiles/4bpp/a0040_f010.png | Bin .../sa1/obj_tiles/4bpp/a0040_f011.png | Bin .../sa1/obj_tiles/4bpp/a0040_f012.png | Bin .../sa1/obj_tiles/4bpp/a0040_f013.png | Bin .../sa1/obj_tiles/4bpp/a0040_f014.png | Bin .../sa1/obj_tiles/4bpp/a0040_f015.png | Bin .../sa1/obj_tiles/4bpp/a0040_f016.png | Bin .../sa1/obj_tiles/4bpp/a0040_f017.png | Bin .../sa1/obj_tiles/4bpp/a0040_f018.png | Bin .../sa1/obj_tiles/4bpp/a0040_f019.png | Bin .../sa1/obj_tiles/4bpp/a0041_f000.png | Bin .../sa1/obj_tiles/4bpp/a0041_f001.png | Bin .../sa1/obj_tiles/4bpp/a0041_f002.png | Bin .../sa1/obj_tiles/4bpp/a0041_f003.png | Bin .../sa1/obj_tiles/4bpp/a0041_f004.png | Bin .../sa1/obj_tiles/4bpp/a0042_f000.png | Bin .../sa1/obj_tiles/4bpp/a0042_f001.png | Bin .../sa1/obj_tiles/4bpp/a0042_f002.png | Bin .../sa1/obj_tiles/4bpp/a0042_f003.png | Bin .../sa1/obj_tiles/4bpp/a0042_f004.png | Bin .../sa1/obj_tiles/4bpp/a0042_f005.png | Bin .../sa1/obj_tiles/4bpp/a0042_f006.png | Bin .../sa1/obj_tiles/4bpp/a0042_f007.png | Bin .../sa1/obj_tiles/4bpp/a0043_f000.png | Bin .../sa1/obj_tiles/4bpp/a0043_f001.png | Bin .../sa1/obj_tiles/4bpp/a0043_f002.png | Bin .../sa1/obj_tiles/4bpp/a0044_f000.png | Bin .../sa1/obj_tiles/4bpp/a0044_f001.png | Bin .../sa1/obj_tiles/4bpp/a0044_f002.png | Bin .../sa1/obj_tiles/4bpp/a0044_f003.png | Bin .../sa1/obj_tiles/4bpp/a0045_f000.png | Bin .../sa1/obj_tiles/4bpp/a0045_f001.png | Bin .../sa1/obj_tiles/4bpp/a0045_f002.png | Bin .../sa1/obj_tiles/4bpp/a0045_f003.png | Bin .../sa1/obj_tiles/4bpp/a0045_f004.png | Bin .../sa1/obj_tiles/4bpp/a0045_f005.png | Bin .../sa1/obj_tiles/4bpp/a0045_f006.png | Bin .../sa1/obj_tiles/4bpp/a0045_f007.png | Bin .../sa1/obj_tiles/4bpp/a0045_f008.png | Bin .../sa1/obj_tiles/4bpp/a0045_f009.png | Bin .../sa1/obj_tiles/4bpp/a0045_f010.png | Bin .../sa1/obj_tiles/4bpp/a0045_f011.png | Bin .../sa1/obj_tiles/4bpp/a0045_f012.png | Bin .../sa1/obj_tiles/4bpp/a0045_f013.png | Bin .../sa1/obj_tiles/4bpp/a0049_f000.png | Bin .../sa1/obj_tiles/4bpp/a0049_f001.png | Bin .../sa1/obj_tiles/4bpp/a0049_f002.png | Bin .../sa1/obj_tiles/4bpp/a0049_f003.png | Bin .../sa1/obj_tiles/4bpp/a0049_f004.png | Bin .../sa1/obj_tiles/4bpp/a0049_f005.png | Bin .../sa1/obj_tiles/4bpp/a0049_f006.png | Bin .../sa1/obj_tiles/4bpp/a0049_f007.png | Bin .../sa1/obj_tiles/4bpp/a0049_f008.png | Bin .../sa1/obj_tiles/4bpp/a0049_f009.png | Bin .../sa1/obj_tiles/4bpp/a0050_f000.png | Bin .../sa1/obj_tiles/4bpp/a0050_f001.png | Bin .../sa1/obj_tiles/4bpp/a0050_f002.png | Bin .../sa1/obj_tiles/4bpp/a0050_f003.png | Bin .../sa1/obj_tiles/4bpp/a0050_f004.png | Bin .../sa1/obj_tiles/4bpp/a0050_f005.png | Bin .../sa1/obj_tiles/4bpp/a0050_f006.png | Bin .../sa1/obj_tiles/4bpp/a0050_f007.png | Bin .../sa1/obj_tiles/4bpp/a0050_f008.png | Bin .../sa1/obj_tiles/4bpp/a0050_f009.png | Bin .../sa1/obj_tiles/4bpp/a0050_f010.png | Bin .../sa1/obj_tiles/4bpp/a0050_f011.png | Bin .../sa1/obj_tiles/4bpp/a0050_f012.png | Bin .../sa1/obj_tiles/4bpp/a0050_f013.png | Bin .../sa1/obj_tiles/4bpp/a0050_f014.png | Bin .../sa1/obj_tiles/4bpp/a0050_f015.png | Bin .../sa1/obj_tiles/4bpp/a0050_f016.png | Bin .../sa1/obj_tiles/4bpp/a0050_f017.png | Bin .../sa1/obj_tiles/4bpp/a0050_f018.png | Bin .../sa1/obj_tiles/4bpp/a0050_f019.png | Bin .../sa1/obj_tiles/4bpp/a0051_f000.png | Bin .../sa1/obj_tiles/4bpp/a0051_f001.png | Bin .../sa1/obj_tiles/4bpp/a0051_f002.png | Bin .../sa1/obj_tiles/4bpp/a0051_f003.png | Bin .../sa1/obj_tiles/4bpp/a0052_f000.png | Bin .../sa1/obj_tiles/4bpp/a0052_f001.png | Bin .../sa1/obj_tiles/4bpp/a0052_f002.png | Bin .../sa1/obj_tiles/4bpp/a0052_f003.png | Bin .../sa1/obj_tiles/4bpp/a0052_f004.png | Bin .../sa1/obj_tiles/4bpp/a0052_f005.png | Bin .../sa1/obj_tiles/4bpp/a0052_f006.png | Bin .../sa1/obj_tiles/4bpp/a0052_f007.png | Bin .../sa1/obj_tiles/4bpp/a0052_f008.png | Bin .../sa1/obj_tiles/4bpp/a0052_f009.png | Bin .../sa1/obj_tiles/4bpp/a0052_f010.png | Bin .../sa1/obj_tiles/4bpp/a0053_f000.png | Bin .../sa1/obj_tiles/4bpp/a0053_f001.png | Bin .../sa1/obj_tiles/4bpp/a0053_f002.png | Bin .../sa1/obj_tiles/4bpp/a0053_f003.png | Bin .../sa1/obj_tiles/4bpp/a0053_f004.png | Bin .../sa1/obj_tiles/4bpp/a0053_f005.png | Bin .../sa1/obj_tiles/4bpp/a0055_f000.png | Bin .../sa1/obj_tiles/4bpp/a0055_f001.png | Bin .../sa1/obj_tiles/4bpp/a0055_f002.png | Bin .../sa1/obj_tiles/4bpp/a0055_f003.png | Bin .../sa1/obj_tiles/4bpp/a0081_f000.png | Bin .../sa1/obj_tiles/4bpp/a0081_f001.png | Bin .../sa1/obj_tiles/4bpp/a0081_f002.png | Bin .../sa1/obj_tiles/4bpp/a0081_f003.png | Bin .../sa1/obj_tiles/4bpp/a0082_f000.png | Bin .../sa1/obj_tiles/4bpp/a0082_f001.png | Bin .../sa1/obj_tiles/4bpp/a0082_f002.png | Bin .../sa1/obj_tiles/4bpp/a0082_f003.png | Bin .../sa1/obj_tiles/4bpp/a0083_f000.png | Bin .../sa1/obj_tiles/4bpp/a0083_f001.png | Bin .../sa1/obj_tiles/4bpp/a0083_f002.png | Bin .../sa1/obj_tiles/4bpp/a0083_f003.png | Bin .../sa1/obj_tiles/4bpp/a0084_f000.png | Bin .../sa1/obj_tiles/4bpp/a0084_f001.png | Bin .../sa1/obj_tiles/4bpp/a0084_f002.png | Bin .../sa1/obj_tiles/4bpp/a0084_f003.png | Bin .../sa1/obj_tiles/4bpp/a0085_f000.png | Bin .../sa1/obj_tiles/4bpp/a0085_f001.png | Bin .../sa1/obj_tiles/4bpp/a0086_f000.png | Bin .../sa1/obj_tiles/4bpp/a0086_f001.png | Bin .../sa1/obj_tiles/4bpp/a0086_f002.png | Bin .../sa1/obj_tiles/4bpp/a0087_f000.png | Bin .../sa1/obj_tiles/4bpp/a0087_f001.png | Bin .../sa1/obj_tiles/4bpp/a0088_f000.png | Bin .../sa1/obj_tiles/4bpp/a0088_f001.png | Bin .../sa1/obj_tiles/4bpp/a0088_f002.png | Bin .../sa1/obj_tiles/4bpp/a0088_f003.png | Bin .../sa1/obj_tiles/4bpp/a0088_f004.png | Bin .../sa1/obj_tiles/4bpp/a0089_f000.png | Bin .../sa1/obj_tiles/4bpp/a0089_f001.png | Bin .../sa1/obj_tiles/4bpp/a0089_f002.png | Bin .../sa1/obj_tiles/4bpp/a0089_f003.png | Bin .../sa1/obj_tiles/4bpp/a0089_f004.png | Bin .../sa1/obj_tiles/4bpp/a0091_f000.png | Bin .../sa1/obj_tiles/4bpp/a0091_f001.png | Bin .../sa1/obj_tiles/4bpp/a0093_f000.png | Bin .../sa1/obj_tiles/4bpp/a0093_f001.png | Bin .../sa1/obj_tiles/4bpp/a0093_f002.png | Bin .../sa1/obj_tiles/4bpp/a0093_f003.png | Bin .../sa1/obj_tiles/4bpp/a0093_f004.png | Bin .../sa1/obj_tiles/4bpp/a0093_f005.png | Bin .../sa1/obj_tiles/4bpp/a0093_f006.png | Bin .../sa1/obj_tiles/4bpp/a0093_f007.png | Bin .../sa1/obj_tiles/4bpp/a0096_f000.png | Bin .../sa1/obj_tiles/4bpp/a0096_f001.png | Bin .../sa1/obj_tiles/4bpp/a0096_f002.png | Bin .../sa1/obj_tiles/4bpp/a0096_f003.png | Bin .../sa1/obj_tiles/4bpp/a0097_f000.png | Bin .../sa1/obj_tiles/4bpp/a0097_f001.png | Bin .../sa1/obj_tiles/4bpp/a0097_f002.png | Bin .../sa1/obj_tiles/4bpp/a0098_f000.png | Bin .../sa1/obj_tiles/4bpp/a0099_f000.png | Bin .../sa1/obj_tiles/4bpp/a0099_f001.png | Bin .../sa1/obj_tiles/4bpp/a0099_f002.png | Bin .../sa1/obj_tiles/4bpp/a0099_f003.png | Bin .../sa1/obj_tiles/4bpp/a0099_f004.png | Bin .../sa1/obj_tiles/4bpp/a0099_f005.png | Bin .../sa1/obj_tiles/4bpp/a0099_f006.png | Bin .../sa1/obj_tiles/4bpp/a0099_f007.png | Bin .../sa1/obj_tiles/4bpp/a0099_f008.png | Bin .../sa1/obj_tiles/4bpp/a0099_f009.png | Bin .../sa1/obj_tiles/4bpp/a0099_f010.png | Bin .../sa1/obj_tiles/4bpp/a0100_f000.png | Bin .../sa1/obj_tiles/4bpp/a0100_f001.png | Bin .../sa1/obj_tiles/4bpp/a0100_f002.png | Bin .../sa1/obj_tiles/4bpp/a0100_f003.png | Bin .../sa1/obj_tiles/4bpp/a0100_f004.png | Bin .../sa1/obj_tiles/4bpp/a0100_f005.png | Bin .../sa1/obj_tiles/4bpp/a0100_f006.png | Bin .../sa1/obj_tiles/4bpp/a0100_f007.png | Bin .../sa1/obj_tiles/4bpp/a0100_f008.png | Bin .../sa1/obj_tiles/4bpp/a0100_f009.png | Bin .../sa1/obj_tiles/4bpp/a0100_f010.png | Bin .../sa1/obj_tiles/4bpp/a0100_f011.png | Bin .../sa1/obj_tiles/4bpp/a0100_f012.png | Bin .../sa1/obj_tiles/4bpp/a0100_f013.png | Bin .../sa1/obj_tiles/4bpp/a0100_f014.png | Bin .../sa1/obj_tiles/4bpp/a0100_f015.png | Bin .../sa1/obj_tiles/4bpp/a0100_f016.png | Bin .../sa1/obj_tiles/4bpp/a0100_f017.png | Bin .../sa1/obj_tiles/4bpp/a0100_f018.png | Bin .../sa1/obj_tiles/4bpp/a0100_f019.png | Bin .../sa1/obj_tiles/4bpp/a0100_f020.png | Bin .../sa1/obj_tiles/4bpp/a0100_f021.png | Bin .../sa1/obj_tiles/4bpp/a0100_f022.png | Bin .../sa1/obj_tiles/4bpp/a0100_f023.png | Bin .../sa1/obj_tiles/4bpp/a0100_f024.png | Bin .../sa1/obj_tiles/4bpp/a0101_f000.png | Bin .../sa1/obj_tiles/4bpp/a0101_f001.png | Bin .../sa1/obj_tiles/4bpp/a0101_f002.png | Bin .../sa1/obj_tiles/4bpp/a0101_f003.png | Bin .../sa1/obj_tiles/4bpp/a0101_f004.png | Bin .../sa1/obj_tiles/4bpp/a0101_f005.png | Bin .../sa1/obj_tiles/4bpp/a0102_f000.png | Bin .../sa1/obj_tiles/4bpp/a0102_f001.png | Bin .../sa1/obj_tiles/4bpp/a0102_f002.png | Bin .../sa1/obj_tiles/4bpp/a0102_f003.png | Bin .../sa1/obj_tiles/4bpp/a0102_f004.png | Bin .../sa1/obj_tiles/4bpp/a0102_f005.png | Bin .../sa1/obj_tiles/4bpp/a0102_f006.png | Bin .../sa1/obj_tiles/4bpp/a0102_f007.png | Bin .../sa1/obj_tiles/4bpp/a0102_f008.png | Bin .../sa1/obj_tiles/4bpp/a0102_f009.png | Bin .../sa1/obj_tiles/4bpp/a0102_f010.png | Bin .../sa1/obj_tiles/4bpp/a0102_f011.png | Bin .../sa1/obj_tiles/4bpp/a0102_f012.png | Bin .../sa1/obj_tiles/4bpp/a0103_f000.png | Bin .../sa1/obj_tiles/4bpp/a0103_f001.png | Bin .../sa1/obj_tiles/4bpp/a0103_f002.png | Bin .../sa1/obj_tiles/4bpp/a0103_f003.png | Bin .../sa1/obj_tiles/4bpp/a0103_f004.png | Bin .../sa1/obj_tiles/4bpp/a0103_f005.png | Bin .../sa1/obj_tiles/4bpp/a0103_f006.png | Bin .../sa1/obj_tiles/4bpp/a0103_f007.png | Bin .../sa1/obj_tiles/4bpp/a0103_f008.png | Bin .../sa1/obj_tiles/4bpp/a0103_f009.png | Bin .../sa1/obj_tiles/4bpp/a0103_f010.png | Bin .../sa1/obj_tiles/4bpp/a0104_f000.png | Bin .../sa1/obj_tiles/4bpp/a0104_f001.png | Bin .../sa1/obj_tiles/4bpp/a0104_f002.png | Bin .../sa1/obj_tiles/4bpp/a0104_f003.png | Bin .../sa1/obj_tiles/4bpp/a0104_f004.png | Bin .../sa1/obj_tiles/4bpp/a0104_f005.png | Bin .../sa1/obj_tiles/4bpp/a0104_f006.png | Bin .../sa1/obj_tiles/4bpp/a0104_f007.png | Bin .../sa1/obj_tiles/4bpp/a0104_f008.png | Bin .../sa1/obj_tiles/4bpp/a0104_f009.png | Bin .../sa1/obj_tiles/4bpp/a0104_f010.png | Bin .../sa1/obj_tiles/4bpp/a0105_f000.png | Bin .../sa1/obj_tiles/4bpp/a0105_f001.png | Bin .../sa1/obj_tiles/4bpp/a0106_f000.png | Bin .../sa1/obj_tiles/4bpp/a0106_f001.png | Bin .../sa1/obj_tiles/4bpp/a0106_f002.png | Bin .../sa1/obj_tiles/4bpp/a0106_f003.png | Bin .../sa1/obj_tiles/4bpp/a0107_f000.png | Bin .../sa1/obj_tiles/4bpp/a0107_f001.png | Bin .../sa1/obj_tiles/4bpp/a0107_f002.png | Bin .../sa1/obj_tiles/4bpp/a0107_f003.png | Bin .../sa1/obj_tiles/4bpp/a0107_f004.png | Bin .../sa1/obj_tiles/4bpp/a0107_f005.png | Bin .../sa1/obj_tiles/4bpp/a0107_f006.png | Bin .../sa1/obj_tiles/4bpp/a0107_f007.png | Bin .../sa1/obj_tiles/4bpp/a0107_f008.png | Bin .../sa1/obj_tiles/4bpp/a0107_f009.png | Bin .../sa1/obj_tiles/4bpp/a0107_f010.png | Bin .../sa1/obj_tiles/4bpp/a0107_f011.png | Bin .../sa1/obj_tiles/4bpp/a0108_f000.png | Bin .../sa1/obj_tiles/4bpp/a0108_f001.png | Bin .../sa1/obj_tiles/4bpp/a0108_f002.png | Bin .../sa1/obj_tiles/4bpp/a0108_f003.png | Bin .../sa1/obj_tiles/4bpp/a0109_f000.png | Bin .../sa1/obj_tiles/4bpp/a0109_f001.png | Bin .../sa1/obj_tiles/4bpp/a0109_f002.png | Bin .../sa1/obj_tiles/4bpp/a0109_f003.png | Bin .../sa1/obj_tiles/4bpp/a0109_f004.png | Bin .../sa1/obj_tiles/4bpp/a0109_f005.png | Bin .../sa1/obj_tiles/4bpp/a0109_f006.png | Bin .../sa1/obj_tiles/4bpp/a0109_f007.png | Bin .../sa1/obj_tiles/4bpp/a0109_f008.png | Bin .../sa1/obj_tiles/4bpp/a0109_f009.png | Bin .../sa1/obj_tiles/4bpp/a0109_f010.png | Bin .../sa1/obj_tiles/4bpp/a0109_f011.png | Bin .../sa1/obj_tiles/4bpp/a0109_f012.png | Bin .../sa1/obj_tiles/4bpp/a0109_f013.png | Bin .../sa1/obj_tiles/4bpp/a0109_f014.png | Bin .../sa1/obj_tiles/4bpp/a0110_f000.png | Bin .../sa1/obj_tiles/4bpp/a0110_f001.png | Bin .../sa1/obj_tiles/4bpp/a0110_f002.png | Bin .../sa1/obj_tiles/4bpp/a0110_f003.png | Bin .../sa1/obj_tiles/4bpp/a0110_f004.png | Bin .../sa1/obj_tiles/4bpp/a0110_f005.png | Bin .../sa1/obj_tiles/4bpp/a0110_f006.png | Bin .../sa1/obj_tiles/4bpp/a0110_f007.png | Bin .../sa1/obj_tiles/4bpp/a0110_f008.png | Bin .../sa1/obj_tiles/4bpp/a0110_f009.png | Bin .../sa1/obj_tiles/4bpp/a0110_f010.png | Bin .../sa1/obj_tiles/4bpp/a0111_f000.png | Bin .../sa1/obj_tiles/4bpp/a0111_f001.png | Bin .../sa1/obj_tiles/4bpp/a0111_f002.png | Bin .../sa1/obj_tiles/4bpp/a0111_f003.png | Bin .../sa1/obj_tiles/4bpp/a0111_f004.png | Bin .../sa1/obj_tiles/4bpp/a0111_f005.png | Bin .../sa1/obj_tiles/4bpp/a0111_f006.png | Bin .../sa1/obj_tiles/4bpp/a0111_f007.png | Bin .../sa1/obj_tiles/4bpp/a0111_f008.png | Bin .../sa1/obj_tiles/4bpp/a0112_f000.png | Bin .../sa1/obj_tiles/4bpp/a0112_f001.png | Bin .../sa1/obj_tiles/4bpp/a0112_f002.png | Bin .../sa1/obj_tiles/4bpp/a0112_f003.png | Bin .../sa1/obj_tiles/4bpp/a0112_f004.png | Bin .../sa1/obj_tiles/4bpp/a0112_f005.png | Bin .../sa1/obj_tiles/4bpp/a0112_f006.png | Bin .../sa1/obj_tiles/4bpp/a0112_f007.png | Bin .../sa1/obj_tiles/4bpp/a0112_f008.png | Bin .../sa1/obj_tiles/4bpp/a0112_f009.png | Bin .../sa1/obj_tiles/4bpp/a0113_f000.png | Bin .../sa1/obj_tiles/4bpp/a0113_f001.png | Bin .../sa1/obj_tiles/4bpp/a0113_f002.png | Bin .../sa1/obj_tiles/4bpp/a0113_f003.png | Bin .../sa1/obj_tiles/4bpp/a0113_f004.png | Bin .../sa1/obj_tiles/4bpp/a0113_f005.png | Bin .../sa1/obj_tiles/4bpp/a0113_f006.png | Bin .../sa1/obj_tiles/4bpp/a0113_f007.png | Bin .../sa1/obj_tiles/4bpp/a0113_f008.png | Bin .../sa1/obj_tiles/4bpp/a0116_f000.png | Bin .../sa1/obj_tiles/4bpp/a0116_f001.png | Bin .../sa1/obj_tiles/4bpp/a0117_f000.png | Bin .../sa1/obj_tiles/4bpp/a0117_f001.png | Bin .../sa1/obj_tiles/4bpp/a0117_f002.png | Bin .../sa1/obj_tiles/4bpp/a0117_f003.png | Bin .../sa1/obj_tiles/4bpp/a0117_f004.png | Bin .../sa1/obj_tiles/4bpp/a0117_f005.png | Bin .../sa1/obj_tiles/4bpp/a0117_f006.png | Bin .../sa1/obj_tiles/4bpp/a0117_f007.png | Bin .../sa1/obj_tiles/4bpp/a0118_f000.png | Bin .../sa1/obj_tiles/4bpp/a0118_f001.png | Bin .../sa1/obj_tiles/4bpp/a0118_f002.png | Bin .../sa1/obj_tiles/4bpp/a0118_f003.png | Bin .../sa1/obj_tiles/4bpp/a0118_f004.png | Bin .../sa1/obj_tiles/4bpp/a0120_f000.png | Bin .../sa1/obj_tiles/4bpp/a0120_f001.png | Bin .../sa1/obj_tiles/4bpp/a0120_f002.png | Bin .../sa1/obj_tiles/4bpp/a0120_f003.png | Bin .../sa1/obj_tiles/4bpp/a0120_f004.png | Bin .../sa1/obj_tiles/4bpp/a0121_f000.png | Bin .../sa1/obj_tiles/4bpp/a0121_f001.png | Bin .../sa1/obj_tiles/4bpp/a0121_f002.png | Bin .../sa1/obj_tiles/4bpp/a0121_f003.png | Bin .../sa1/obj_tiles/4bpp/a0121_f004.png | Bin .../sa1/obj_tiles/4bpp/a0121_f005.png | Bin .../sa1/obj_tiles/4bpp/a0121_f006.png | Bin .../sa1/obj_tiles/4bpp/a0121_f007.png | Bin .../sa1/obj_tiles/4bpp/a0121_f008.png | Bin .../sa1/obj_tiles/4bpp/a0121_f009.png | Bin .../sa1/obj_tiles/4bpp/a0121_f010.png | Bin .../sa1/obj_tiles/4bpp/a0121_f011.png | Bin .../sa1/obj_tiles/4bpp/a0122_f000.png | Bin .../sa1/obj_tiles/4bpp/a0122_f001.png | Bin .../sa1/obj_tiles/4bpp/a0122_f002.png | Bin .../sa1/obj_tiles/4bpp/a0122_f003.png | Bin .../sa1/obj_tiles/4bpp/a0122_f004.png | Bin .../sa1/obj_tiles/4bpp/a0122_f005.png | Bin .../sa1/obj_tiles/4bpp/a0122_f006.png | Bin .../sa1/obj_tiles/4bpp/a0122_f007.png | Bin .../sa1/obj_tiles/4bpp/a0122_f008.png | Bin .../sa1/obj_tiles/4bpp/a0122_f009.png | Bin .../sa1/obj_tiles/4bpp/a0122_f010.png | Bin .../sa1/obj_tiles/4bpp/a0122_f011.png | Bin .../sa1/obj_tiles/4bpp/a0122_f012.png | Bin .../sa1/obj_tiles/4bpp/a0122_f013.png | Bin .../sa1/obj_tiles/4bpp/a0122_f014.png | Bin .../sa1/obj_tiles/4bpp/a0122_f015.png | Bin .../sa1/obj_tiles/4bpp/a0122_f016.png | Bin .../sa1/obj_tiles/4bpp/a0122_f017.png | Bin .../sa1/obj_tiles/4bpp/a0122_f018.png | Bin .../sa1/obj_tiles/4bpp/a0122_f019.png | Bin .../sa1/obj_tiles/4bpp/a0122_f020.png | Bin .../sa1/obj_tiles/4bpp/a0122_f021.png | Bin .../sa1/obj_tiles/4bpp/a0122_f022.png | Bin .../sa1/obj_tiles/4bpp/a0122_f023.png | Bin .../sa1/obj_tiles/4bpp/a0122_f024.png | Bin .../sa1/obj_tiles/4bpp/a0122_f025.png | Bin .../sa1/obj_tiles/4bpp/a0122_f026.png | Bin .../sa1/obj_tiles/4bpp/a0122_f027.png | Bin .../sa1/obj_tiles/4bpp/a0123_f000.png | Bin .../sa1/obj_tiles/4bpp/a0123_f001.png | Bin .../sa1/obj_tiles/4bpp/a0123_f002.png | Bin .../sa1/obj_tiles/4bpp/a0123_f003.png | Bin .../sa1/obj_tiles/4bpp/a0123_f004.png | Bin .../sa1/obj_tiles/4bpp/a0123_f005.png | Bin .../sa1/obj_tiles/4bpp/a0123_f006.png | Bin .../sa1/obj_tiles/4bpp/a0123_f007.png | Bin .../sa1/obj_tiles/4bpp/a0123_f008.png | Bin .../sa1/obj_tiles/4bpp/a0123_f009.png | Bin .../sa1/obj_tiles/4bpp/a0123_f010.png | Bin .../sa1/obj_tiles/4bpp/a0123_f011.png | Bin .../sa1/obj_tiles/4bpp/a0123_f012.png | Bin .../sa1/obj_tiles/4bpp/a0124_f000.png | Bin .../sa1/obj_tiles/4bpp/a0124_f001.png | Bin .../sa1/obj_tiles/4bpp/a0124_f002.png | Bin .../sa1/obj_tiles/4bpp/a0124_f003.png | Bin .../sa1/obj_tiles/4bpp/a0125_f000.png | Bin .../sa1/obj_tiles/4bpp/a0125_f001.png | Bin .../sa1/obj_tiles/4bpp/a0125_f002.png | Bin .../sa1/obj_tiles/4bpp/a0125_f003.png | Bin .../sa1/obj_tiles/4bpp/a0125_f004.png | Bin .../sa1/obj_tiles/4bpp/a0125_f005.png | Bin .../sa1/obj_tiles/4bpp/a0125_f006.png | Bin .../sa1/obj_tiles/4bpp/a0125_f007.png | Bin .../sa1/obj_tiles/4bpp/a0125_f008.png | Bin .../sa1/obj_tiles/4bpp/a0126_f000.png | Bin .../sa1/obj_tiles/4bpp/a0126_f001.png | Bin .../sa1/obj_tiles/4bpp/a0126_f002.png | Bin .../sa1/obj_tiles/4bpp/a0126_f003.png | Bin .../sa1/obj_tiles/4bpp/a0126_f004.png | Bin .../sa1/obj_tiles/4bpp/a0126_f005.png | Bin .../sa1/obj_tiles/4bpp/a0126_f006.png | Bin .../sa1/obj_tiles/4bpp/a0126_f007.png | Bin .../sa1/obj_tiles/4bpp/a0126_f008.png | Bin .../sa1/obj_tiles/4bpp/a0126_f009.png | Bin .../sa1/obj_tiles/4bpp/a0126_f010.png | Bin .../sa1/obj_tiles/4bpp/a0126_f011.png | Bin .../sa1/obj_tiles/4bpp/a0126_f012.png | Bin .../sa1/obj_tiles/4bpp/a0126_f013.png | Bin .../sa1/obj_tiles/4bpp/a0126_f014.png | Bin .../sa1/obj_tiles/4bpp/a0126_f015.png | Bin .../sa1/obj_tiles/4bpp/a0126_f016.png | Bin .../sa1/obj_tiles/4bpp/a0126_f017.png | Bin .../sa1/obj_tiles/4bpp/a0127_f000.png | Bin .../sa1/obj_tiles/4bpp/a0127_f001.png | Bin .../sa1/obj_tiles/4bpp/a0127_f002.png | Bin .../sa1/obj_tiles/4bpp/a0127_f003.png | Bin .../sa1/obj_tiles/4bpp/a0127_f004.png | Bin .../sa1/obj_tiles/4bpp/a0127_f005.png | Bin .../sa1/obj_tiles/4bpp/a0127_f006.png | Bin .../sa1/obj_tiles/4bpp/a0127_f007.png | Bin .../sa1/obj_tiles/4bpp/a0127_f008.png | Bin .../sa1/obj_tiles/4bpp/a0127_f009.png | Bin .../sa1/obj_tiles/4bpp/a0127_f010.png | Bin .../sa1/obj_tiles/4bpp/a0127_f011.png | Bin .../sa1/obj_tiles/4bpp/a0127_f012.png | Bin .../sa1/obj_tiles/4bpp/a0127_f013.png | Bin .../sa1/obj_tiles/4bpp/a0127_f014.png | Bin .../sa1/obj_tiles/4bpp/a0127_f015.png | Bin .../sa1/obj_tiles/4bpp/a0128_f000.png | Bin .../sa1/obj_tiles/4bpp/a0128_f001.png | Bin .../sa1/obj_tiles/4bpp/a0128_f002.png | Bin .../sa1/obj_tiles/4bpp/a0129_f000.png | Bin .../sa1/obj_tiles/4bpp/a0129_f001.png | Bin .../sa1/obj_tiles/4bpp/a0129_f002.png | Bin .../sa1/obj_tiles/4bpp/a0129_f003.png | Bin .../sa1/obj_tiles/4bpp/a0129_f004.png | Bin .../sa1/obj_tiles/4bpp/a0129_f005.png | Bin .../sa1/obj_tiles/4bpp/a0129_f006.png | Bin .../sa1/obj_tiles/4bpp/a0129_f007.png | Bin .../sa1/obj_tiles/4bpp/a0129_f008.png | Bin .../sa1/obj_tiles/4bpp/a0129_f009.png | Bin .../sa1/obj_tiles/4bpp/a0129_f010.png | Bin .../sa1/obj_tiles/4bpp/a0130_f000.png | Bin .../sa1/obj_tiles/4bpp/a0130_f001.png | Bin .../sa1/obj_tiles/4bpp/a0130_f002.png | Bin .../sa1/obj_tiles/4bpp/a0130_f003.png | Bin .../sa1/obj_tiles/4bpp/a0130_f004.png | Bin .../sa1/obj_tiles/4bpp/a0130_f005.png | Bin .../sa1/obj_tiles/4bpp/a0130_f006.png | Bin .../sa1/obj_tiles/4bpp/a0130_f007.png | Bin .../sa1/obj_tiles/4bpp/a0130_f008.png | Bin .../sa1/obj_tiles/4bpp/a0131_f000.png | Bin .../sa1/obj_tiles/4bpp/a0131_f001.png | Bin .../sa1/obj_tiles/4bpp/a0131_f002.png | Bin .../sa1/obj_tiles/4bpp/a0131_f003.png | Bin .../sa1/obj_tiles/4bpp/a0131_f004.png | Bin .../sa1/obj_tiles/4bpp/a0131_f005.png | Bin .../sa1/obj_tiles/4bpp/a0131_f006.png | Bin .../sa1/obj_tiles/4bpp/a0131_f007.png | Bin .../sa1/obj_tiles/4bpp/a0132_f000.png | Bin .../sa1/obj_tiles/4bpp/a0132_f001.png | Bin .../sa1/obj_tiles/4bpp/a0132_f002.png | Bin .../sa1/obj_tiles/4bpp/a0132_f003.png | Bin .../sa1/obj_tiles/4bpp/a0132_f004.png | Bin .../sa1/obj_tiles/4bpp/a0132_f005.png | Bin .../sa1/obj_tiles/4bpp/a0132_f006.png | Bin .../sa1/obj_tiles/4bpp/a0132_f007.png | Bin .../sa1/obj_tiles/4bpp/a0132_f008.png | Bin .../sa1/obj_tiles/4bpp/a0132_f009.png | Bin .../sa1/obj_tiles/4bpp/a0133_f000.png | Bin .../sa1/obj_tiles/4bpp/a0133_f001.png | Bin .../sa1/obj_tiles/4bpp/a0133_f002.png | Bin .../sa1/obj_tiles/4bpp/a0133_f003.png | Bin .../sa1/obj_tiles/4bpp/a0133_f004.png | Bin .../sa1/obj_tiles/4bpp/a0133_f005.png | Bin .../sa1/obj_tiles/4bpp/a0133_f006.png | Bin .../sa1/obj_tiles/4bpp/a0133_f007.png | Bin .../sa1/obj_tiles/4bpp/a0134_f000.png | Bin .../sa1/obj_tiles/4bpp/a0134_f001.png | Bin .../sa1/obj_tiles/4bpp/a0134_f002.png | Bin .../sa1/obj_tiles/4bpp/a0134_f003.png | Bin .../sa1/obj_tiles/4bpp/a0134_f004.png | Bin .../sa1/obj_tiles/4bpp/a0134_f005.png | Bin .../sa1/obj_tiles/4bpp/a0134_f006.png | Bin .../sa1/obj_tiles/4bpp/a0134_f007.png | Bin .../sa1/obj_tiles/4bpp/a0134_f008.png | Bin .../sa1/obj_tiles/4bpp/a0134_f009.png | Bin .../sa1/obj_tiles/4bpp/a0134_f010.png | Bin .../sa1/obj_tiles/4bpp/a0134_f011.png | Bin .../sa1/obj_tiles/4bpp/a0134_f012.png | Bin .../sa1/obj_tiles/4bpp/a0134_f013.png | Bin .../sa1/obj_tiles/4bpp/a0134_f014.png | Bin .../sa1/obj_tiles/4bpp/a0134_f015.png | Bin .../sa1/obj_tiles/4bpp/a0134_f016.png | Bin .../sa1/obj_tiles/4bpp/a0134_f017.png | Bin .../sa1/obj_tiles/4bpp/a0135_f000.png | Bin .../sa1/obj_tiles/4bpp/a0135_f001.png | Bin .../sa1/obj_tiles/4bpp/a0135_f002.png | Bin .../sa1/obj_tiles/4bpp/a0135_f003.png | Bin .../sa1/obj_tiles/4bpp/a0135_f004.png | Bin .../sa1/obj_tiles/4bpp/a0135_f005.png | Bin .../sa1/obj_tiles/4bpp/a0135_f006.png | Bin .../sa1/obj_tiles/4bpp/a0135_f007.png | Bin .../sa1/obj_tiles/4bpp/a0135_f008.png | Bin .../sa1/obj_tiles/4bpp/a0135_f009.png | Bin .../sa1/obj_tiles/4bpp/a0135_f010.png | Bin .../sa1/obj_tiles/4bpp/a0135_f011.png | Bin .../sa1/obj_tiles/4bpp/a0135_f012.png | Bin .../sa1/obj_tiles/4bpp/a0135_f013.png | Bin .../sa1/obj_tiles/4bpp/a0135_f014.png | Bin .../sa1/obj_tiles/4bpp/a0135_f015.png | Bin .../sa1/obj_tiles/4bpp/a0135_f016.png | Bin .../sa1/obj_tiles/4bpp/a0135_f017.png | Bin .../sa1/obj_tiles/4bpp/a0135_f018.png | Bin .../sa1/obj_tiles/4bpp/a0135_f019.png | Bin .../sa1/obj_tiles/4bpp/a0135_f020.png | Bin .../sa1/obj_tiles/4bpp/a0135_f021.png | Bin .../sa1/obj_tiles/4bpp/a0135_f022.png | Bin .../sa1/obj_tiles/4bpp/a0135_f023.png | Bin .../sa1/obj_tiles/4bpp/a0136_f000.png | Bin .../sa1/obj_tiles/4bpp/a0136_f001.png | Bin .../sa1/obj_tiles/4bpp/a0136_f002.png | Bin .../sa1/obj_tiles/4bpp/a0136_f003.png | Bin .../sa1/obj_tiles/4bpp/a0136_f004.png | Bin .../sa1/obj_tiles/4bpp/a0136_f005.png | Bin .../sa1/obj_tiles/4bpp/a0136_f006.png | Bin .../sa1/obj_tiles/4bpp/a0136_f007.png | Bin .../sa1/obj_tiles/4bpp/a0137_f000.png | Bin .../sa1/obj_tiles/4bpp/a0137_f001.png | Bin .../sa1/obj_tiles/4bpp/a0137_f002.png | Bin .../sa1/obj_tiles/4bpp/a0137_f003.png | Bin .../sa1/obj_tiles/4bpp/a0137_f004.png | Bin .../sa1/obj_tiles/4bpp/a0138_f000.png | Bin .../sa1/obj_tiles/4bpp/a0138_f001.png | Bin .../sa1/obj_tiles/4bpp/a0138_f002.png | Bin .../sa1/obj_tiles/4bpp/a0138_f003.png | Bin .../sa1/obj_tiles/4bpp/a0138_f004.png | Bin .../sa1/obj_tiles/4bpp/a0138_f005.png | Bin .../sa1/obj_tiles/4bpp/a0138_f006.png | Bin .../sa1/obj_tiles/4bpp/a0138_f007.png | Bin .../sa1/obj_tiles/4bpp/a0138_f008.png | Bin .../sa1/obj_tiles/4bpp/a0138_f009.png | Bin .../sa1/obj_tiles/4bpp/a0138_f010.png | Bin .../sa1/obj_tiles/4bpp/a0138_f011.png | Bin .../sa1/obj_tiles/4bpp/a0139_f000.png | Bin .../sa1/obj_tiles/4bpp/a0139_f001.png | Bin .../sa1/obj_tiles/4bpp/a0139_f002.png | Bin .../sa1/obj_tiles/4bpp/a0139_f003.png | Bin .../sa1/obj_tiles/4bpp/a0139_f004.png | Bin .../sa1/obj_tiles/4bpp/a0139_f005.png | Bin .../sa1/obj_tiles/4bpp/a0139_f006.png | Bin .../sa1/obj_tiles/4bpp/a0139_f007.png | Bin .../sa1/obj_tiles/4bpp/a0139_f008.png | Bin .../sa1/obj_tiles/4bpp/a0139_f009.png | Bin .../sa1/obj_tiles/4bpp/a0139_f010.png | Bin .../sa1/obj_tiles/4bpp/a0139_f011.png | Bin .../sa1/obj_tiles/4bpp/a0139_f012.png | Bin .../sa1/obj_tiles/4bpp/a0139_f013.png | Bin .../sa1/obj_tiles/4bpp/a0139_f014.png | Bin .../sa1/obj_tiles/4bpp/a0139_f015.png | Bin .../sa1/obj_tiles/4bpp/a0139_f016.png | Bin .../sa1/obj_tiles/4bpp/a0139_f017.png | Bin .../sa1/obj_tiles/4bpp/a0139_f018.png | Bin .../sa1/obj_tiles/4bpp/a0139_f019.png | Bin .../sa1/obj_tiles/4bpp/a0140_f000.png | Bin .../sa1/obj_tiles/4bpp/a0140_f001.png | Bin .../sa1/obj_tiles/4bpp/a0140_f002.png | Bin .../sa1/obj_tiles/4bpp/a0140_f003.png | Bin .../sa1/obj_tiles/4bpp/a0140_f004.png | Bin .../sa1/obj_tiles/4bpp/a0140_f005.png | Bin .../sa1/obj_tiles/4bpp/a0141_f000.png | Bin .../sa1/obj_tiles/4bpp/a0141_f001.png | Bin .../sa1/obj_tiles/4bpp/a0141_f002.png | Bin .../sa1/obj_tiles/4bpp/a0141_f003.png | Bin .../sa1/obj_tiles/4bpp/a0141_f004.png | Bin .../sa1/obj_tiles/4bpp/a0141_f005.png | Bin .../sa1/obj_tiles/4bpp/a0141_f006.png | Bin .../sa1/obj_tiles/4bpp/a0141_f007.png | Bin .../sa1/obj_tiles/4bpp/a0142_f000.png | Bin .../sa1/obj_tiles/4bpp/a0142_f001.png | Bin .../sa1/obj_tiles/4bpp/a0142_f002.png | Bin .../sa1/obj_tiles/4bpp/a0145_f000.png | Bin .../sa1/obj_tiles/4bpp/a0145_f001.png | Bin .../sa1/obj_tiles/4bpp/a0145_f002.png | Bin .../sa1/obj_tiles/4bpp/a0145_f003.png | Bin .../sa1/obj_tiles/4bpp/a0145_f004.png | Bin .../sa1/obj_tiles/4bpp/a0145_f005.png | Bin .../sa1/obj_tiles/4bpp/a0145_f006.png | Bin .../sa1/obj_tiles/4bpp/a0145_f007.png | Bin .../sa1/obj_tiles/4bpp/a0145_f008.png | Bin .../sa1/obj_tiles/4bpp/a0146_f000.png | Bin .../sa1/obj_tiles/4bpp/a0146_f001.png | Bin .../sa1/obj_tiles/4bpp/a0147_f000.png | Bin .../sa1/obj_tiles/4bpp/a0147_f001.png | Bin .../sa1/obj_tiles/4bpp/a0147_f002.png | Bin .../sa1/obj_tiles/4bpp/a0147_f003.png | Bin .../sa1/obj_tiles/4bpp/a0147_f004.png | Bin .../sa1/obj_tiles/4bpp/a0147_f005.png | Bin .../sa1/obj_tiles/4bpp/a0147_f006.png | Bin .../sa1/obj_tiles/4bpp/a0147_f007.png | Bin .../sa1/obj_tiles/4bpp/a0147_f008.png | Bin .../sa1/obj_tiles/4bpp/a0149_f000.png | Bin .../sa1/obj_tiles/4bpp/a0149_f001.png | Bin .../sa1/obj_tiles/4bpp/a0149_f002.png | Bin .../sa1/obj_tiles/4bpp/a0149_f003.png | Bin .../sa1/obj_tiles/4bpp/a0149_f004.png | Bin .../sa1/obj_tiles/4bpp/a0149_f005.png | Bin .../sa1/obj_tiles/4bpp/a0149_f006.png | Bin .../sa1/obj_tiles/4bpp/a0149_f007.png | Bin .../sa1/obj_tiles/4bpp/a0149_f008.png | Bin .../sa1/obj_tiles/4bpp/a0155_f000.png | Bin .../sa1/obj_tiles/4bpp/a0155_f001.png | Bin .../sa1/obj_tiles/4bpp/a0155_f002.png | Bin .../sa1/obj_tiles/4bpp/a0155_f003.png | Bin .../sa1/obj_tiles/4bpp/a0155_f004.png | Bin .../sa1/obj_tiles/4bpp/a0155_f005.png | Bin .../sa1/obj_tiles/4bpp/a0155_f006.png | Bin .../sa1/obj_tiles/4bpp/a0155_f007.png | Bin .../sa1/obj_tiles/4bpp/a0155_f008.png | Bin .../sa1/obj_tiles/4bpp/a0155_f009.png | Bin .../sa1/obj_tiles/4bpp/a0155_f010.png | Bin .../sa1/obj_tiles/4bpp/a0156_f000.png | Bin .../sa1/obj_tiles/4bpp/a0156_f001.png | Bin .../sa1/obj_tiles/4bpp/a0157_f000.png | Bin .../sa1/obj_tiles/4bpp/a0157_f001.png | Bin .../sa1/obj_tiles/4bpp/a0157_f002.png | Bin .../sa1/obj_tiles/4bpp/a0157_f003.png | Bin .../sa1/obj_tiles/4bpp/a0157_f004.png | Bin .../sa1/obj_tiles/4bpp/a0157_f005.png | Bin .../sa1/obj_tiles/4bpp/a0157_f006.png | Bin .../sa1/obj_tiles/4bpp/a0157_f007.png | Bin .../sa1/obj_tiles/4bpp/a0157_f008.png | Bin .../sa1/obj_tiles/4bpp/a0157_f009.png | Bin .../sa1/obj_tiles/4bpp/a0158_f000.png | Bin .../sa1/obj_tiles/4bpp/a0158_f001.png | Bin .../sa1/obj_tiles/4bpp/a0158_f002.png | Bin .../sa1/obj_tiles/4bpp/a0158_f003.png | Bin .../sa1/obj_tiles/4bpp/a0158_f004.png | Bin .../sa1/obj_tiles/4bpp/a0158_f005.png | Bin .../sa1/obj_tiles/4bpp/a0158_f006.png | Bin .../sa1/obj_tiles/4bpp/a0180_f000.png | Bin .../sa1/obj_tiles/4bpp/a0180_f001.png | Bin .../sa1/obj_tiles/4bpp/a0180_f002.png | Bin .../sa1/obj_tiles/4bpp/a0181_f000.png | Bin .../sa1/obj_tiles/4bpp/a0181_f001.png | Bin .../sa1/obj_tiles/4bpp/a0181_f002.png | Bin .../sa1/obj_tiles/4bpp/a0182_f000.png | Bin .../sa1/obj_tiles/4bpp/a0182_f001.png | Bin .../sa1/obj_tiles/4bpp/a0182_f002.png | Bin .../sa1/obj_tiles/4bpp/a0184_f000.png | Bin .../sa1/obj_tiles/4bpp/a0184_f001.png | Bin .../sa1/obj_tiles/4bpp/a0185_f000.png | Bin .../sa1/obj_tiles/4bpp/a0185_f001.png | Bin .../sa1/obj_tiles/4bpp/a0185_f002.png | Bin .../sa1/obj_tiles/4bpp/a0186_f000.png | Bin .../sa1/obj_tiles/4bpp/a0186_f001.png | Bin .../sa1/obj_tiles/4bpp/a0186_f002.png | Bin .../sa1/obj_tiles/4bpp/a0186_f003.png | Bin .../sa1/obj_tiles/4bpp/a0186_f004.png | Bin .../sa1/obj_tiles/4bpp/a0186_f005.png | Bin .../sa1/obj_tiles/4bpp/a0186_f006.png | Bin .../sa1/obj_tiles/4bpp/a0186_f007.png | Bin .../sa1/obj_tiles/4bpp/a0187_f000.png | Bin .../sa1/obj_tiles/4bpp/a0187_f001.png | Bin .../sa1/obj_tiles/4bpp/a0187_f002.png | Bin .../sa1/obj_tiles/4bpp/a0187_f003.png | Bin .../sa1/obj_tiles/4bpp/a0187_f004.png | Bin .../sa1/obj_tiles/4bpp/a0188_f000.png | Bin .../sa1/obj_tiles/4bpp/a0188_f001.png | Bin .../sa1/obj_tiles/4bpp/a0188_f002.png | Bin .../sa1/obj_tiles/4bpp/a0188_f003.png | Bin .../sa1/obj_tiles/4bpp/a0190_f000.png | Bin .../sa1/obj_tiles/4bpp/a0190_f001.png | Bin .../sa1/obj_tiles/4bpp/a0191_f000.png | Bin .../sa1/obj_tiles/4bpp/a0191_f001.png | Bin .../sa1/obj_tiles/4bpp/a0191_f002.png | Bin .../sa1/obj_tiles/4bpp/a0191_f003.png | Bin .../sa1/obj_tiles/4bpp/a0191_f004.png | Bin .../sa1/obj_tiles/4bpp/a0192_f000.png | Bin .../sa1/obj_tiles/4bpp/a0192_f001.png | Bin .../sa1/obj_tiles/4bpp/a0192_f002.png | Bin .../sa1/obj_tiles/4bpp/a0192_f003.png | Bin .../sa1/obj_tiles/4bpp/a0192_f004.png | Bin .../sa1/obj_tiles/4bpp/a0192_f005.png | Bin .../sa1/obj_tiles/4bpp/a0192_f006.png | Bin .../sa1/obj_tiles/4bpp/a0192_f007.png | Bin .../sa1/obj_tiles/4bpp/a0195_f000.png | Bin .../sa1/obj_tiles/4bpp/a0195_f001.png | Bin .../sa1/obj_tiles/4bpp/a0195_f002.png | Bin .../sa1/obj_tiles/4bpp/a0195_f003.png | Bin .../sa1/obj_tiles/4bpp/a0196_f000.png | Bin .../sa1/obj_tiles/4bpp/a0196_f001.png | Bin .../sa1/obj_tiles/4bpp/a0196_f002.png | Bin .../sa1/obj_tiles/4bpp/a0197_f000.png | Bin .../sa1/obj_tiles/4bpp/a0198_f000.png | Bin .../sa1/obj_tiles/4bpp/a0198_f001.png | Bin .../sa1/obj_tiles/4bpp/a0198_f002.png | Bin .../sa1/obj_tiles/4bpp/a0198_f003.png | Bin .../sa1/obj_tiles/4bpp/a0199_f000.png | Bin .../sa1/obj_tiles/4bpp/a0199_f001.png | Bin .../sa1/obj_tiles/4bpp/a0199_f002.png | Bin .../sa1/obj_tiles/4bpp/a0199_f003.png | Bin .../sa1/obj_tiles/4bpp/a0199_f004.png | Bin .../sa1/obj_tiles/4bpp/a0199_f005.png | Bin .../sa1/obj_tiles/4bpp/a0199_f006.png | Bin .../sa1/obj_tiles/4bpp/a0199_f007.png | Bin .../sa1/obj_tiles/4bpp/a0199_f008.png | Bin .../sa1/obj_tiles/4bpp/a0199_f009.png | Bin .../sa1/obj_tiles/4bpp/a0199_f010.png | Bin .../sa1/obj_tiles/4bpp/a0199_f011.png | Bin .../sa1/obj_tiles/4bpp/a0199_f012.png | Bin .../sa1/obj_tiles/4bpp/a0199_f013.png | Bin .../sa1/obj_tiles/4bpp/a0200_f000.png | Bin .../sa1/obj_tiles/4bpp/a0200_f001.png | Bin .../sa1/obj_tiles/4bpp/a0200_f002.png | Bin .../sa1/obj_tiles/4bpp/a0200_f003.png | Bin .../sa1/obj_tiles/4bpp/a0200_f004.png | Bin .../sa1/obj_tiles/4bpp/a0200_f005.png | Bin .../sa1/obj_tiles/4bpp/a0200_f006.png | Bin .../sa1/obj_tiles/4bpp/a0200_f007.png | Bin .../sa1/obj_tiles/4bpp/a0200_f008.png | Bin .../sa1/obj_tiles/4bpp/a0200_f009.png | Bin .../sa1/obj_tiles/4bpp/a0200_f010.png | Bin .../sa1/obj_tiles/4bpp/a0200_f011.png | Bin .../sa1/obj_tiles/4bpp/a0200_f012.png | Bin .../sa1/obj_tiles/4bpp/a0201_f000.png | Bin .../sa1/obj_tiles/4bpp/a0201_f001.png | Bin .../sa1/obj_tiles/4bpp/a0201_f002.png | Bin .../sa1/obj_tiles/4bpp/a0202_f000.png | Bin .../sa1/obj_tiles/4bpp/a0202_f001.png | Bin .../sa1/obj_tiles/4bpp/a0202_f002.png | Bin .../sa1/obj_tiles/4bpp/a0202_f003.png | Bin .../sa1/obj_tiles/4bpp/a0203_f000.png | Bin .../sa1/obj_tiles/4bpp/a0203_f001.png | Bin .../sa1/obj_tiles/4bpp/a0203_f002.png | Bin .../sa1/obj_tiles/4bpp/a0203_f003.png | Bin .../sa1/obj_tiles/4bpp/a0203_f004.png | Bin .../sa1/obj_tiles/4bpp/a0203_f005.png | Bin .../sa1/obj_tiles/4bpp/a0203_f006.png | Bin .../sa1/obj_tiles/4bpp/a0203_f007.png | Bin .../sa1/obj_tiles/4bpp/a0204_f000.png | Bin .../sa1/obj_tiles/4bpp/a0204_f001.png | Bin .../sa1/obj_tiles/4bpp/a0204_f002.png | Bin .../sa1/obj_tiles/4bpp/a0204_f003.png | Bin .../sa1/obj_tiles/4bpp/a0204_f004.png | Bin .../sa1/obj_tiles/4bpp/a0204_f005.png | Bin .../sa1/obj_tiles/4bpp/a0204_f006.png | Bin .../sa1/obj_tiles/4bpp/a0204_f007.png | Bin .../sa1/obj_tiles/4bpp/a0205_f000.png | Bin .../sa1/obj_tiles/4bpp/a0205_f001.png | Bin .../sa1/obj_tiles/4bpp/a0206_f000.png | Bin .../sa1/obj_tiles/4bpp/a0206_f001.png | Bin .../sa1/obj_tiles/4bpp/a0206_f002.png | Bin .../sa1/obj_tiles/4bpp/a0206_f003.png | Bin .../sa1/obj_tiles/4bpp/a0207_f000.png | Bin .../sa1/obj_tiles/4bpp/a0207_f001.png | Bin .../sa1/obj_tiles/4bpp/a0207_f002.png | Bin .../sa1/obj_tiles/4bpp/a0207_f003.png | Bin .../sa1/obj_tiles/4bpp/a0208_f000.png | Bin .../sa1/obj_tiles/4bpp/a0208_f001.png | Bin .../sa1/obj_tiles/4bpp/a0208_f002.png | Bin .../sa1/obj_tiles/4bpp/a0208_f003.png | Bin .../sa1/obj_tiles/4bpp/a0209_f000.png | Bin .../sa1/obj_tiles/4bpp/a0209_f001.png | Bin .../sa1/obj_tiles/4bpp/a0209_f002.png | Bin .../sa1/obj_tiles/4bpp/a0209_f003.png | Bin .../sa1/obj_tiles/4bpp/a0209_f004.png | Bin .../sa1/obj_tiles/4bpp/a0209_f005.png | Bin .../sa1/obj_tiles/4bpp/a0209_f006.png | Bin .../sa1/obj_tiles/4bpp/a0209_f007.png | Bin .../sa1/obj_tiles/4bpp/a0209_f008.png | Bin .../sa1/obj_tiles/4bpp/a0209_f009.png | Bin .../sa1/obj_tiles/4bpp/a0209_f010.png | Bin .../sa1/obj_tiles/4bpp/a0209_f011.png | Bin .../sa1/obj_tiles/4bpp/a0209_f012.png | Bin .../sa1/obj_tiles/4bpp/a0209_f013.png | Bin .../sa1/obj_tiles/4bpp/a0209_f014.png | Bin .../sa1/obj_tiles/4bpp/a0209_f015.png | Bin .../sa1/obj_tiles/4bpp/a0210_f000.png | Bin .../sa1/obj_tiles/4bpp/a0210_f001.png | Bin .../sa1/obj_tiles/4bpp/a0210_f002.png | Bin .../sa1/obj_tiles/4bpp/a0210_f003.png | Bin .../sa1/obj_tiles/4bpp/a0210_f004.png | Bin .../sa1/obj_tiles/4bpp/a0210_f005.png | Bin .../sa1/obj_tiles/4bpp/a0210_f006.png | Bin .../sa1/obj_tiles/4bpp/a0210_f007.png | Bin .../sa1/obj_tiles/4bpp/a0210_f008.png | Bin .../sa1/obj_tiles/4bpp/a0210_f009.png | Bin .../sa1/obj_tiles/4bpp/a0210_f010.png | Bin .../sa1/obj_tiles/4bpp/a0211_f000.png | Bin .../sa1/obj_tiles/4bpp/a0211_f001.png | Bin .../sa1/obj_tiles/4bpp/a0211_f002.png | Bin .../sa1/obj_tiles/4bpp/a0211_f003.png | Bin .../sa1/obj_tiles/4bpp/a0211_f004.png | Bin .../sa1/obj_tiles/4bpp/a0211_f005.png | Bin .../sa1/obj_tiles/4bpp/a0211_f006.png | Bin .../sa1/obj_tiles/4bpp/a0211_f007.png | Bin .../sa1/obj_tiles/4bpp/a0211_f008.png | Bin .../sa1/obj_tiles/4bpp/a0212_f000.png | Bin .../sa1/obj_tiles/4bpp/a0212_f001.png | Bin .../sa1/obj_tiles/4bpp/a0212_f002.png | Bin .../sa1/obj_tiles/4bpp/a0212_f003.png | Bin .../sa1/obj_tiles/4bpp/a0212_f004.png | Bin .../sa1/obj_tiles/4bpp/a0212_f005.png | Bin .../sa1/obj_tiles/4bpp/a0212_f006.png | Bin .../sa1/obj_tiles/4bpp/a0212_f007.png | Bin .../sa1/obj_tiles/4bpp/a0213_f000.png | Bin .../sa1/obj_tiles/4bpp/a0213_f001.png | Bin .../sa1/obj_tiles/4bpp/a0213_f002.png | Bin .../sa1/obj_tiles/4bpp/a0213_f003.png | Bin .../sa1/obj_tiles/4bpp/a0213_f004.png | Bin .../sa1/obj_tiles/4bpp/a0213_f005.png | Bin .../sa1/obj_tiles/4bpp/a0213_f006.png | Bin .../sa1/obj_tiles/4bpp/a0213_f007.png | Bin .../sa1/obj_tiles/4bpp/a0216_f000.png | Bin .../sa1/obj_tiles/4bpp/a0216_f001.png | Bin .../sa1/obj_tiles/4bpp/a0217_f000.png | Bin .../sa1/obj_tiles/4bpp/a0217_f001.png | Bin .../sa1/obj_tiles/4bpp/a0217_f002.png | Bin .../sa1/obj_tiles/4bpp/a0217_f003.png | Bin .../sa1/obj_tiles/4bpp/a0217_f004.png | Bin .../sa1/obj_tiles/4bpp/a0217_f005.png | Bin .../sa1/obj_tiles/4bpp/a0217_f006.png | Bin .../sa1/obj_tiles/4bpp/a0217_f007.png | Bin .../sa1/obj_tiles/4bpp/a0218_f000.png | Bin .../sa1/obj_tiles/4bpp/a0218_f001.png | Bin .../sa1/obj_tiles/4bpp/a0218_f002.png | Bin .../sa1/obj_tiles/4bpp/a0218_f003.png | Bin .../sa1/obj_tiles/4bpp/a0218_f004.png | Bin .../sa1/obj_tiles/4bpp/a0220_f000.png | Bin .../sa1/obj_tiles/4bpp/a0220_f001.png | Bin .../sa1/obj_tiles/4bpp/a0220_f002.png | Bin .../sa1/obj_tiles/4bpp/a0220_f003.png | Bin .../sa1/obj_tiles/4bpp/a0220_f004.png | Bin .../sa1/obj_tiles/4bpp/a0221_f000.png | Bin .../sa1/obj_tiles/4bpp/a0221_f001.png | Bin .../sa1/obj_tiles/4bpp/a0221_f002.png | Bin .../sa1/obj_tiles/4bpp/a0221_f003.png | Bin .../sa1/obj_tiles/4bpp/a0221_f004.png | Bin .../sa1/obj_tiles/4bpp/a0221_f005.png | Bin .../sa1/obj_tiles/4bpp/a0221_f006.png | Bin .../sa1/obj_tiles/4bpp/a0221_f007.png | Bin .../sa1/obj_tiles/4bpp/a0221_f008.png | Bin .../sa1/obj_tiles/4bpp/a0221_f009.png | Bin .../sa1/obj_tiles/4bpp/a0221_f010.png | Bin .../sa1/obj_tiles/4bpp/a0221_f011.png | Bin .../sa1/obj_tiles/4bpp/a0221_f012.png | Bin .../sa1/obj_tiles/4bpp/a0221_f013.png | Bin .../sa1/obj_tiles/4bpp/a0221_f014.png | Bin .../sa1/obj_tiles/4bpp/a0221_f015.png | Bin .../sa1/obj_tiles/4bpp/a0222_f000.png | Bin .../sa1/obj_tiles/4bpp/a0222_f001.png | Bin .../sa1/obj_tiles/4bpp/a0222_f002.png | Bin .../sa1/obj_tiles/4bpp/a0222_f003.png | Bin .../sa1/obj_tiles/4bpp/a0222_f004.png | Bin .../sa1/obj_tiles/4bpp/a0222_f005.png | Bin .../sa1/obj_tiles/4bpp/a0222_f006.png | Bin .../sa1/obj_tiles/4bpp/a0222_f007.png | Bin .../sa1/obj_tiles/4bpp/a0222_f008.png | Bin .../sa1/obj_tiles/4bpp/a0222_f009.png | Bin .../sa1/obj_tiles/4bpp/a0222_f010.png | Bin .../sa1/obj_tiles/4bpp/a0222_f011.png | Bin .../sa1/obj_tiles/4bpp/a0222_f012.png | Bin .../sa1/obj_tiles/4bpp/a0222_f013.png | Bin .../sa1/obj_tiles/4bpp/a0222_f014.png | Bin .../sa1/obj_tiles/4bpp/a0222_f015.png | Bin .../sa1/obj_tiles/4bpp/a0223_f000.png | Bin .../sa1/obj_tiles/4bpp/a0223_f001.png | Bin .../sa1/obj_tiles/4bpp/a0223_f002.png | Bin .../sa1/obj_tiles/4bpp/a0223_f003.png | Bin .../sa1/obj_tiles/4bpp/a0223_f004.png | Bin .../sa1/obj_tiles/4bpp/a0223_f005.png | Bin .../sa1/obj_tiles/4bpp/a0223_f006.png | Bin .../sa1/obj_tiles/4bpp/a0223_f007.png | Bin .../sa1/obj_tiles/4bpp/a0223_f008.png | Bin .../sa1/obj_tiles/4bpp/a0223_f009.png | Bin .../sa1/obj_tiles/4bpp/a0223_f010.png | Bin .../sa1/obj_tiles/4bpp/a0223_f011.png | Bin .../sa1/obj_tiles/4bpp/a0223_f012.png | Bin .../sa1/obj_tiles/4bpp/a0223_f013.png | Bin .../sa1/obj_tiles/4bpp/a0224_f000.png | Bin .../sa1/obj_tiles/4bpp/a0224_f001.png | Bin .../sa1/obj_tiles/4bpp/a0224_f002.png | Bin .../sa1/obj_tiles/4bpp/a0224_f003.png | Bin .../sa1/obj_tiles/4bpp/a0225_f000.png | Bin .../sa1/obj_tiles/4bpp/a0225_f001.png | Bin .../sa1/obj_tiles/4bpp/a0225_f002.png | Bin .../sa1/obj_tiles/4bpp/a0225_f003.png | Bin .../sa1/obj_tiles/4bpp/a0225_f004.png | Bin .../sa1/obj_tiles/4bpp/a0225_f005.png | Bin .../sa1/obj_tiles/4bpp/a0225_f006.png | Bin .../sa1/obj_tiles/4bpp/a0225_f007.png | Bin .../sa1/obj_tiles/4bpp/a0225_f008.png | Bin .../sa1/obj_tiles/4bpp/a0226_f000.png | Bin .../sa1/obj_tiles/4bpp/a0226_f001.png | Bin .../sa1/obj_tiles/4bpp/a0226_f002.png | Bin .../sa1/obj_tiles/4bpp/a0226_f003.png | Bin .../sa1/obj_tiles/4bpp/a0226_f004.png | Bin .../sa1/obj_tiles/4bpp/a0226_f005.png | Bin .../sa1/obj_tiles/4bpp/a0226_f006.png | Bin .../sa1/obj_tiles/4bpp/a0226_f007.png | Bin .../sa1/obj_tiles/4bpp/a0226_f008.png | Bin .../sa1/obj_tiles/4bpp/a0226_f009.png | Bin .../sa1/obj_tiles/4bpp/a0226_f010.png | Bin .../sa1/obj_tiles/4bpp/a0226_f011.png | Bin .../sa1/obj_tiles/4bpp/a0226_f012.png | Bin .../sa1/obj_tiles/4bpp/a0226_f013.png | Bin .../sa1/obj_tiles/4bpp/a0226_f014.png | Bin .../sa1/obj_tiles/4bpp/a0226_f015.png | Bin .../sa1/obj_tiles/4bpp/a0226_f016.png | Bin .../sa1/obj_tiles/4bpp/a0226_f017.png | Bin .../sa1/obj_tiles/4bpp/a0227_f000.png | Bin .../sa1/obj_tiles/4bpp/a0227_f001.png | Bin .../sa1/obj_tiles/4bpp/a0227_f002.png | Bin .../sa1/obj_tiles/4bpp/a0227_f003.png | Bin .../sa1/obj_tiles/4bpp/a0227_f004.png | Bin .../sa1/obj_tiles/4bpp/a0227_f005.png | Bin .../sa1/obj_tiles/4bpp/a0227_f006.png | Bin .../sa1/obj_tiles/4bpp/a0227_f007.png | Bin .../sa1/obj_tiles/4bpp/a0227_f008.png | Bin .../sa1/obj_tiles/4bpp/a0227_f009.png | Bin .../sa1/obj_tiles/4bpp/a0227_f010.png | Bin .../sa1/obj_tiles/4bpp/a0227_f011.png | Bin .../sa1/obj_tiles/4bpp/a0227_f012.png | Bin .../sa1/obj_tiles/4bpp/a0227_f013.png | Bin .../sa1/obj_tiles/4bpp/a0227_f014.png | Bin .../sa1/obj_tiles/4bpp/a0228_f000.png | Bin .../sa1/obj_tiles/4bpp/a0228_f001.png | Bin .../sa1/obj_tiles/4bpp/a0228_f002.png | Bin .../sa1/obj_tiles/4bpp/a0229_f000.png | Bin .../sa1/obj_tiles/4bpp/a0229_f001.png | Bin .../sa1/obj_tiles/4bpp/a0229_f002.png | Bin .../sa1/obj_tiles/4bpp/a0229_f003.png | Bin .../sa1/obj_tiles/4bpp/a0229_f004.png | Bin .../sa1/obj_tiles/4bpp/a0229_f005.png | Bin .../sa1/obj_tiles/4bpp/a0229_f006.png | Bin .../sa1/obj_tiles/4bpp/a0229_f007.png | Bin .../sa1/obj_tiles/4bpp/a0229_f008.png | Bin .../sa1/obj_tiles/4bpp/a0229_f009.png | Bin .../sa1/obj_tiles/4bpp/a0229_f010.png | Bin .../sa1/obj_tiles/4bpp/a0230_f000.png | Bin .../sa1/obj_tiles/4bpp/a0230_f001.png | Bin .../sa1/obj_tiles/4bpp/a0230_f002.png | Bin .../sa1/obj_tiles/4bpp/a0230_f003.png | Bin .../sa1/obj_tiles/4bpp/a0230_f004.png | Bin .../sa1/obj_tiles/4bpp/a0230_f005.png | Bin .../sa1/obj_tiles/4bpp/a0230_f006.png | Bin .../sa1/obj_tiles/4bpp/a0230_f007.png | Bin .../sa1/obj_tiles/4bpp/a0230_f008.png | Bin .../sa1/obj_tiles/4bpp/a0230_f009.png | Bin .../sa1/obj_tiles/4bpp/a0230_f010.png | Bin .../sa1/obj_tiles/4bpp/a0230_f011.png | Bin .../sa1/obj_tiles/4bpp/a0230_f012.png | Bin .../sa1/obj_tiles/4bpp/a0230_f013.png | Bin .../sa1/obj_tiles/4bpp/a0231_f000.png | Bin .../sa1/obj_tiles/4bpp/a0231_f001.png | Bin .../sa1/obj_tiles/4bpp/a0231_f002.png | Bin .../sa1/obj_tiles/4bpp/a0231_f003.png | Bin .../sa1/obj_tiles/4bpp/a0231_f004.png | Bin .../sa1/obj_tiles/4bpp/a0231_f005.png | Bin .../sa1/obj_tiles/4bpp/a0231_f006.png | Bin .../sa1/obj_tiles/4bpp/a0232_f000.png | Bin .../sa1/obj_tiles/4bpp/a0232_f001.png | Bin .../sa1/obj_tiles/4bpp/a0232_f002.png | Bin .../sa1/obj_tiles/4bpp/a0233_f000.png | Bin .../sa1/obj_tiles/4bpp/a0233_f001.png | Bin .../sa1/obj_tiles/4bpp/a0233_f002.png | Bin .../sa1/obj_tiles/4bpp/a0233_f003.png | Bin .../sa1/obj_tiles/4bpp/a0233_f004.png | Bin .../sa1/obj_tiles/4bpp/a0233_f005.png | Bin .../sa1/obj_tiles/4bpp/a0233_f006.png | Bin .../sa1/obj_tiles/4bpp/a0233_f007.png | Bin .../sa1/obj_tiles/4bpp/a0234_f000.png | Bin .../sa1/obj_tiles/4bpp/a0234_f001.png | Bin .../sa1/obj_tiles/4bpp/a0234_f002.png | Bin .../sa1/obj_tiles/4bpp/a0234_f003.png | Bin .../sa1/obj_tiles/4bpp/a0234_f004.png | Bin .../sa1/obj_tiles/4bpp/a0234_f005.png | Bin .../sa1/obj_tiles/4bpp/a0234_f006.png | Bin .../sa1/obj_tiles/4bpp/a0234_f007.png | Bin .../sa1/obj_tiles/4bpp/a0235_f000.png | Bin .../sa1/obj_tiles/4bpp/a0235_f001.png | Bin .../sa1/obj_tiles/4bpp/a0235_f002.png | Bin .../sa1/obj_tiles/4bpp/a0235_f003.png | Bin .../sa1/obj_tiles/4bpp/a0235_f004.png | Bin .../sa1/obj_tiles/4bpp/a0235_f005.png | Bin .../sa1/obj_tiles/4bpp/a0235_f006.png | Bin .../sa1/obj_tiles/4bpp/a0235_f007.png | Bin .../sa1/obj_tiles/4bpp/a0235_f008.png | Bin .../sa1/obj_tiles/4bpp/a0235_f009.png | Bin .../sa1/obj_tiles/4bpp/a0235_f010.png | Bin .../sa1/obj_tiles/4bpp/a0235_f011.png | Bin .../sa1/obj_tiles/4bpp/a0235_f012.png | Bin .../sa1/obj_tiles/4bpp/a0235_f013.png | Bin .../sa1/obj_tiles/4bpp/a0235_f014.png | Bin .../sa1/obj_tiles/4bpp/a0235_f015.png | Bin .../sa1/obj_tiles/4bpp/a0235_f016.png | Bin .../sa1/obj_tiles/4bpp/a0235_f017.png | Bin .../sa1/obj_tiles/4bpp/a0235_f018.png | Bin .../sa1/obj_tiles/4bpp/a0235_f019.png | Bin .../sa1/obj_tiles/4bpp/a0235_f020.png | Bin .../sa1/obj_tiles/4bpp/a0235_f021.png | Bin .../sa1/obj_tiles/4bpp/a0235_f022.png | Bin .../sa1/obj_tiles/4bpp/a0235_f023.png | Bin .../sa1/obj_tiles/4bpp/a0236_f000.png | Bin .../sa1/obj_tiles/4bpp/a0236_f001.png | Bin .../sa1/obj_tiles/4bpp/a0236_f002.png | Bin .../sa1/obj_tiles/4bpp/a0236_f003.png | Bin .../sa1/obj_tiles/4bpp/a0236_f004.png | Bin .../sa1/obj_tiles/4bpp/a0236_f005.png | Bin .../sa1/obj_tiles/4bpp/a0236_f006.png | Bin .../sa1/obj_tiles/4bpp/a0236_f007.png | Bin .../sa1/obj_tiles/4bpp/a0237_f000.png | Bin .../sa1/obj_tiles/4bpp/a0237_f001.png | Bin .../sa1/obj_tiles/4bpp/a0237_f002.png | Bin .../sa1/obj_tiles/4bpp/a0237_f003.png | Bin .../sa1/obj_tiles/4bpp/a0237_f004.png | Bin .../sa1/obj_tiles/4bpp/a0238_f000.png | Bin .../sa1/obj_tiles/4bpp/a0238_f001.png | Bin .../sa1/obj_tiles/4bpp/a0238_f002.png | Bin .../sa1/obj_tiles/4bpp/a0238_f003.png | Bin .../sa1/obj_tiles/4bpp/a0239_f000.png | Bin .../sa1/obj_tiles/4bpp/a0239_f001.png | Bin .../sa1/obj_tiles/4bpp/a0239_f002.png | Bin .../sa1/obj_tiles/4bpp/a0239_f003.png | Bin .../sa1/obj_tiles/4bpp/a0239_f004.png | Bin .../sa1/obj_tiles/4bpp/a0239_f005.png | Bin .../sa1/obj_tiles/4bpp/a0239_f006.png | Bin .../sa1/obj_tiles/4bpp/a0239_f007.png | Bin .../sa1/obj_tiles/4bpp/a0239_f008.png | Bin .../sa1/obj_tiles/4bpp/a0239_f009.png | Bin .../sa1/obj_tiles/4bpp/a0239_f010.png | Bin .../sa1/obj_tiles/4bpp/a0239_f011.png | Bin .../sa1/obj_tiles/4bpp/a0239_f012.png | Bin .../sa1/obj_tiles/4bpp/a0239_f013.png | Bin .../sa1/obj_tiles/4bpp/a0239_f014.png | Bin .../sa1/obj_tiles/4bpp/a0239_f015.png | Bin .../sa1/obj_tiles/4bpp/a0239_f016.png | Bin .../sa1/obj_tiles/4bpp/a0239_f017.png | Bin .../sa1/obj_tiles/4bpp/a0239_f018.png | Bin .../sa1/obj_tiles/4bpp/a0239_f019.png | Bin .../sa1/obj_tiles/4bpp/a0240_f000.png | Bin .../sa1/obj_tiles/4bpp/a0240_f001.png | Bin .../sa1/obj_tiles/4bpp/a0240_f002.png | Bin .../sa1/obj_tiles/4bpp/a0240_f003.png | Bin .../sa1/obj_tiles/4bpp/a0240_f004.png | Bin .../sa1/obj_tiles/4bpp/a0240_f005.png | Bin .../sa1/obj_tiles/4bpp/a0241_f000.png | Bin .../sa1/obj_tiles/4bpp/a0241_f001.png | Bin .../sa1/obj_tiles/4bpp/a0241_f002.png | Bin .../sa1/obj_tiles/4bpp/a0241_f003.png | Bin .../sa1/obj_tiles/4bpp/a0241_f004.png | Bin .../sa1/obj_tiles/4bpp/a0241_f005.png | Bin .../sa1/obj_tiles/4bpp/a0241_f006.png | Bin .../sa1/obj_tiles/4bpp/a0241_f007.png | Bin .../sa1/obj_tiles/4bpp/a0242_f000.png | Bin .../sa1/obj_tiles/4bpp/a0242_f001.png | Bin .../sa1/obj_tiles/4bpp/a0242_f002.png | Bin .../sa1/obj_tiles/4bpp/a0245_f000.png | Bin .../sa1/obj_tiles/4bpp/a0245_f001.png | Bin .../sa1/obj_tiles/4bpp/a0245_f002.png | Bin .../sa1/obj_tiles/4bpp/a0245_f003.png | Bin .../sa1/obj_tiles/4bpp/a0245_f004.png | Bin .../sa1/obj_tiles/4bpp/a0245_f005.png | Bin .../sa1/obj_tiles/4bpp/a0246_f000.png | Bin .../sa1/obj_tiles/4bpp/a0246_f001.png | Bin .../sa1/obj_tiles/4bpp/a0246_f002.png | Bin .../sa1/obj_tiles/4bpp/a0246_f003.png | Bin .../sa1/obj_tiles/4bpp/a0249_f000.png | Bin .../sa1/obj_tiles/4bpp/a0249_f001.png | Bin .../sa1/obj_tiles/4bpp/a0249_f002.png | Bin .../sa1/obj_tiles/4bpp/a0249_f003.png | Bin .../sa1/obj_tiles/4bpp/a0249_f004.png | Bin .../sa1/obj_tiles/4bpp/a0249_f005.png | Bin .../sa1/obj_tiles/4bpp/a0249_f006.png | Bin .../sa1/obj_tiles/4bpp/a0249_f007.png | Bin .../sa1/obj_tiles/4bpp/a0250_f000.png | Bin .../sa1/obj_tiles/4bpp/a0250_f001.png | Bin .../sa1/obj_tiles/4bpp/a0250_f002.png | Bin .../sa1/obj_tiles/4bpp/a0250_f003.png | Bin .../sa1/obj_tiles/4bpp/a0250_f004.png | Bin .../sa1/obj_tiles/4bpp/a0250_f005.png | Bin .../sa1/obj_tiles/4bpp/a0250_f006.png | Bin .../sa1/obj_tiles/4bpp/a0250_f007.png | Bin .../sa1/obj_tiles/4bpp/a0250_f008.png | Bin .../sa1/obj_tiles/4bpp/a0250_f009.png | Bin .../sa1/obj_tiles/4bpp/a0250_f010.png | Bin .../sa1/obj_tiles/4bpp/a0250_f011.png | Bin .../sa1/obj_tiles/4bpp/a0250_f012.png | Bin .../sa1/obj_tiles/4bpp/a0250_f013.png | Bin .../sa1/obj_tiles/4bpp/a0250_f014.png | Bin .../sa1/obj_tiles/4bpp/a0250_f015.png | Bin .../sa1/obj_tiles/4bpp/a0250_f016.png | Bin .../sa1/obj_tiles/4bpp/a0250_f017.png | Bin .../sa1/obj_tiles/4bpp/a0250_f018.png | Bin .../sa1/obj_tiles/4bpp/a0260_f000.png | Bin .../sa1/obj_tiles/4bpp/a0260_f001.png | Bin .../sa1/obj_tiles/4bpp/a0261_f000.png | Bin .../sa1/obj_tiles/4bpp/a0261_f001.png | Bin .../sa1/obj_tiles/4bpp/a0261_f002.png | Bin .../sa1/obj_tiles/4bpp/a0261_f003.png | Bin .../sa1/obj_tiles/4bpp/a0262_f000.png | Bin .../sa1/obj_tiles/4bpp/a0262_f001.png | Bin .../sa1/obj_tiles/4bpp/a0263_f000.png | Bin .../sa1/obj_tiles/4bpp/a0263_f001.png | Bin .../sa1/obj_tiles/4bpp/a0263_f002.png | Bin .../sa1/obj_tiles/4bpp/a0263_f003.png | Bin .../sa1/obj_tiles/4bpp/a0263_f004.png | Bin .../sa1/obj_tiles/4bpp/a0263_f005.png | Bin .../sa1/obj_tiles/4bpp/a0263_f006.png | Bin .../sa1/obj_tiles/4bpp/a0263_f007.png | Bin .../sa1/obj_tiles/4bpp/a0263_f008.png | Bin .../sa1/obj_tiles/4bpp/a0263_f009.png | Bin .../sa1/obj_tiles/4bpp/a0263_f010.png | Bin .../sa1/obj_tiles/4bpp/a0264_f000.png | Bin .../sa1/obj_tiles/4bpp/a0264_f001.png | Bin .../sa1/obj_tiles/4bpp/a0264_f002.png | Bin .../sa1/obj_tiles/4bpp/a0265_f000.png | Bin .../sa1/obj_tiles/4bpp/a0265_f001.png | Bin .../sa1/obj_tiles/4bpp/a0265_f002.png | Bin .../sa1/obj_tiles/4bpp/a0265_f003.png | Bin .../sa1/obj_tiles/4bpp/a0265_f004.png | Bin .../sa1/obj_tiles/4bpp/a0265_f005.png | Bin .../sa1/obj_tiles/4bpp/a0265_f006.png | Bin .../sa1/obj_tiles/4bpp/a0265_f007.png | Bin .../sa1/obj_tiles/4bpp/a0265_f008.png | Bin .../sa1/obj_tiles/4bpp/a0265_f009.png | Bin .../sa1/obj_tiles/4bpp/a0265_f010.png | Bin .../sa1/obj_tiles/4bpp/a0265_f011.png | Bin .../sa1/obj_tiles/4bpp/a0265_f012.png | Bin .../sa1/obj_tiles/4bpp/a0265_f013.png | Bin .../sa1/obj_tiles/4bpp/a0269_f000.png | Bin .../sa1/obj_tiles/4bpp/a0269_f001.png | Bin .../sa1/obj_tiles/4bpp/a0269_f002.png | Bin .../sa1/obj_tiles/4bpp/a0269_f003.png | Bin .../sa1/obj_tiles/4bpp/a0269_f004.png | Bin .../sa1/obj_tiles/4bpp/a0269_f005.png | Bin .../sa1/obj_tiles/4bpp/a0270_f000.png | Bin .../sa1/obj_tiles/4bpp/a0270_f001.png | Bin .../sa1/obj_tiles/4bpp/a0271_f000.png | Bin .../sa1/obj_tiles/4bpp/a0271_f001.png | Bin .../sa1/obj_tiles/4bpp/a0271_f002.png | Bin .../sa1/obj_tiles/4bpp/a0271_f003.png | Bin .../sa1/obj_tiles/4bpp/a0271_f004.png | Bin .../sa1/obj_tiles/4bpp/a0271_f005.png | Bin .../sa1/obj_tiles/4bpp/a0280_f000.png | Bin .../sa1/obj_tiles/4bpp/a0280_f001.png | Bin .../sa1/obj_tiles/4bpp/a0280_f002.png | Bin .../sa1/obj_tiles/4bpp/a0280_f003.png | Bin .../sa1/obj_tiles/4bpp/a0281_f000.png | Bin .../sa1/obj_tiles/4bpp/a0281_f001.png | Bin .../sa1/obj_tiles/4bpp/a0281_f002.png | Bin .../sa1/obj_tiles/4bpp/a0281_f003.png | Bin .../sa1/obj_tiles/4bpp/a0282_f000.png | Bin .../sa1/obj_tiles/4bpp/a0282_f001.png | Bin .../sa1/obj_tiles/4bpp/a0282_f002.png | Bin .../sa1/obj_tiles/4bpp/a0282_f003.png | Bin .../sa1/obj_tiles/4bpp/a0284_f000.png | Bin .../sa1/obj_tiles/4bpp/a0284_f001.png | Bin .../sa1/obj_tiles/4bpp/a0285_f000.png | Bin .../sa1/obj_tiles/4bpp/a0285_f001.png | Bin .../sa1/obj_tiles/4bpp/a0285_f002.png | Bin .../sa1/obj_tiles/4bpp/a0286_f000.png | Bin .../sa1/obj_tiles/4bpp/a0286_f001.png | Bin .../sa1/obj_tiles/4bpp/a0287_f000.png | Bin .../sa1/obj_tiles/4bpp/a0287_f001.png | Bin .../sa1/obj_tiles/4bpp/a0287_f002.png | Bin .../sa1/obj_tiles/4bpp/a0287_f003.png | Bin .../sa1/obj_tiles/4bpp/a0287_f004.png | Bin .../sa1/obj_tiles/4bpp/a0288_f000.png | Bin .../sa1/obj_tiles/4bpp/a0288_f001.png | Bin .../sa1/obj_tiles/4bpp/a0288_f002.png | Bin .../sa1/obj_tiles/4bpp/a0288_f003.png | Bin .../sa1/obj_tiles/4bpp/a0292_f000.png | Bin .../sa1/obj_tiles/4bpp/a0292_f001.png | Bin .../sa1/obj_tiles/4bpp/a0292_f002.png | Bin .../sa1/obj_tiles/4bpp/a0292_f003.png | Bin .../sa1/obj_tiles/4bpp/a0292_f004.png | Bin .../sa1/obj_tiles/4bpp/a0292_f005.png | Bin .../sa1/obj_tiles/4bpp/a0292_f006.png | Bin .../sa1/obj_tiles/4bpp/a0292_f007.png | Bin .../sa1/obj_tiles/4bpp/a0295_f000.png | Bin .../sa1/obj_tiles/4bpp/a0295_f001.png | Bin .../sa1/obj_tiles/4bpp/a0295_f002.png | Bin .../sa1/obj_tiles/4bpp/a0295_f003.png | Bin .../sa1/obj_tiles/4bpp/a0296_f000.png | Bin .../sa1/obj_tiles/4bpp/a0296_f001.png | Bin .../sa1/obj_tiles/4bpp/a0296_f002.png | Bin .../sa1/obj_tiles/4bpp/a0297_f000.png | Bin .../sa1/obj_tiles/4bpp/a0298_f000.png | Bin .../sa1/obj_tiles/4bpp/a0298_f001.png | Bin .../sa1/obj_tiles/4bpp/a0298_f002.png | Bin .../sa1/obj_tiles/4bpp/a0298_f003.png | Bin .../sa1/obj_tiles/4bpp/a0298_f004.png | Bin .../sa1/obj_tiles/4bpp/a0298_f005.png | Bin .../sa1/obj_tiles/4bpp/a0298_f006.png | Bin .../sa1/obj_tiles/4bpp/a0298_f007.png | Bin .../sa1/obj_tiles/4bpp/a0298_f008.png | Bin .../sa1/obj_tiles/4bpp/a0298_f009.png | Bin .../sa1/obj_tiles/4bpp/a0298_f010.png | Bin .../sa1/obj_tiles/4bpp/a0299_f000.png | Bin .../sa1/obj_tiles/4bpp/a0299_f001.png | Bin .../sa1/obj_tiles/4bpp/a0299_f002.png | Bin .../sa1/obj_tiles/4bpp/a0299_f003.png | Bin .../sa1/obj_tiles/4bpp/a0299_f004.png | Bin .../sa1/obj_tiles/4bpp/a0299_f005.png | Bin .../sa1/obj_tiles/4bpp/a0299_f006.png | Bin .../sa1/obj_tiles/4bpp/a0299_f007.png | Bin .../sa1/obj_tiles/4bpp/a0299_f008.png | Bin .../sa1/obj_tiles/4bpp/a0299_f009.png | Bin .../sa1/obj_tiles/4bpp/a0299_f010.png | Bin .../sa1/obj_tiles/4bpp/a0299_f011.png | Bin .../sa1/obj_tiles/4bpp/a0299_f012.png | Bin .../sa1/obj_tiles/4bpp/a0299_f013.png | Bin .../sa1/obj_tiles/4bpp/a0299_f014.png | Bin .../sa1/obj_tiles/4bpp/a0299_f015.png | Bin .../sa1/obj_tiles/4bpp/a0299_f016.png | Bin .../sa1/obj_tiles/4bpp/a0299_f017.png | Bin .../sa1/obj_tiles/4bpp/a0299_f018.png | Bin .../sa1/obj_tiles/4bpp/a0299_f019.png | Bin .../sa1/obj_tiles/4bpp/a0299_f020.png | Bin .../sa1/obj_tiles/4bpp/a0299_f021.png | Bin .../sa1/obj_tiles/4bpp/a0299_f022.png | Bin .../sa1/obj_tiles/4bpp/a0299_f023.png | Bin .../sa1/obj_tiles/4bpp/a0299_f024.png | Bin .../sa1/obj_tiles/4bpp/a0299_f025.png | Bin .../sa1/obj_tiles/4bpp/a0299_f026.png | Bin .../sa1/obj_tiles/4bpp/a0299_f027.png | Bin .../sa1/obj_tiles/4bpp/a0299_f028.png | Bin .../sa1/obj_tiles/4bpp/a0299_f029.png | Bin .../sa1/obj_tiles/4bpp/a0299_f030.png | Bin .../sa1/obj_tiles/4bpp/a0300_f000.png | Bin .../sa1/obj_tiles/4bpp/a0300_f001.png | Bin .../sa1/obj_tiles/4bpp/a0300_f002.png | Bin .../sa1/obj_tiles/4bpp/a0300_f003.png | Bin .../sa1/obj_tiles/4bpp/a0300_f004.png | Bin .../sa1/obj_tiles/4bpp/a0301_f000.png | Bin .../sa1/obj_tiles/4bpp/a0301_f001.png | Bin .../sa1/obj_tiles/4bpp/a0301_f002.png | Bin .../sa1/obj_tiles/4bpp/a0301_f003.png | Bin .../sa1/obj_tiles/4bpp/a0301_f004.png | Bin .../sa1/obj_tiles/4bpp/a0302_f000.png | Bin .../sa1/obj_tiles/4bpp/a0302_f001.png | Bin .../sa1/obj_tiles/4bpp/a0302_f002.png | Bin .../sa1/obj_tiles/4bpp/a0302_f003.png | Bin .../sa1/obj_tiles/4bpp/a0302_f004.png | Bin .../sa1/obj_tiles/4bpp/a0302_f005.png | Bin .../sa1/obj_tiles/4bpp/a0302_f006.png | Bin .../sa1/obj_tiles/4bpp/a0302_f007.png | Bin .../sa1/obj_tiles/4bpp/a0302_f008.png | Bin .../sa1/obj_tiles/4bpp/a0302_f009.png | Bin .../sa1/obj_tiles/4bpp/a0302_f010.png | Bin .../sa1/obj_tiles/4bpp/a0303_f000.png | Bin .../sa1/obj_tiles/4bpp/a0303_f001.png | Bin .../sa1/obj_tiles/4bpp/a0303_f002.png | Bin .../sa1/obj_tiles/4bpp/a0303_f003.png | Bin .../sa1/obj_tiles/4bpp/a0303_f004.png | Bin .../sa1/obj_tiles/4bpp/a0303_f005.png | Bin .../sa1/obj_tiles/4bpp/a0304_f000.png | Bin .../sa1/obj_tiles/4bpp/a0304_f001.png | Bin .../sa1/obj_tiles/4bpp/a0305_f000.png | Bin .../sa1/obj_tiles/4bpp/a0305_f001.png | Bin .../sa1/obj_tiles/4bpp/a0305_f002.png | Bin .../sa1/obj_tiles/4bpp/a0305_f003.png | Bin .../sa1/obj_tiles/4bpp/a0306_f000.png | Bin .../sa1/obj_tiles/4bpp/a0306_f001.png | Bin .../sa1/obj_tiles/4bpp/a0306_f002.png | Bin .../sa1/obj_tiles/4bpp/a0306_f003.png | Bin .../sa1/obj_tiles/4bpp/a0307_f000.png | Bin .../sa1/obj_tiles/4bpp/a0307_f001.png | Bin .../sa1/obj_tiles/4bpp/a0307_f002.png | Bin .../sa1/obj_tiles/4bpp/a0307_f003.png | Bin .../sa1/obj_tiles/4bpp/a0308_f000.png | Bin .../sa1/obj_tiles/4bpp/a0308_f001.png | Bin .../sa1/obj_tiles/4bpp/a0308_f002.png | Bin .../sa1/obj_tiles/4bpp/a0308_f003.png | Bin .../sa1/obj_tiles/4bpp/a0308_f004.png | Bin .../sa1/obj_tiles/4bpp/a0308_f005.png | Bin .../sa1/obj_tiles/4bpp/a0308_f006.png | Bin .../sa1/obj_tiles/4bpp/a0308_f007.png | Bin .../sa1/obj_tiles/4bpp/a0308_f008.png | Bin .../sa1/obj_tiles/4bpp/a0308_f009.png | Bin .../sa1/obj_tiles/4bpp/a0308_f010.png | Bin .../sa1/obj_tiles/4bpp/a0308_f011.png | Bin .../sa1/obj_tiles/4bpp/a0308_f012.png | Bin .../sa1/obj_tiles/4bpp/a0308_f013.png | Bin .../sa1/obj_tiles/4bpp/a0308_f014.png | Bin .../sa1/obj_tiles/4bpp/a0309_f000.png | Bin .../sa1/obj_tiles/4bpp/a0309_f001.png | Bin .../sa1/obj_tiles/4bpp/a0309_f002.png | Bin .../sa1/obj_tiles/4bpp/a0309_f003.png | Bin .../sa1/obj_tiles/4bpp/a0309_f004.png | Bin .../sa1/obj_tiles/4bpp/a0309_f005.png | Bin .../sa1/obj_tiles/4bpp/a0309_f006.png | Bin .../sa1/obj_tiles/4bpp/a0309_f007.png | Bin .../sa1/obj_tiles/4bpp/a0309_f008.png | Bin .../sa1/obj_tiles/4bpp/a0309_f009.png | Bin .../sa1/obj_tiles/4bpp/a0309_f010.png | Bin .../sa1/obj_tiles/4bpp/a0310_f000.png | Bin .../sa1/obj_tiles/4bpp/a0310_f001.png | Bin .../sa1/obj_tiles/4bpp/a0310_f002.png | Bin .../sa1/obj_tiles/4bpp/a0310_f003.png | Bin .../sa1/obj_tiles/4bpp/a0310_f004.png | Bin .../sa1/obj_tiles/4bpp/a0310_f005.png | Bin .../sa1/obj_tiles/4bpp/a0310_f006.png | Bin .../sa1/obj_tiles/4bpp/a0310_f007.png | Bin .../sa1/obj_tiles/4bpp/a0310_f008.png | Bin .../sa1/obj_tiles/4bpp/a0311_f000.png | Bin .../sa1/obj_tiles/4bpp/a0311_f001.png | Bin .../sa1/obj_tiles/4bpp/a0311_f002.png | Bin .../sa1/obj_tiles/4bpp/a0311_f003.png | Bin .../sa1/obj_tiles/4bpp/a0311_f004.png | Bin .../sa1/obj_tiles/4bpp/a0311_f005.png | Bin .../sa1/obj_tiles/4bpp/a0311_f006.png | Bin .../sa1/obj_tiles/4bpp/a0311_f007.png | Bin .../sa1/obj_tiles/4bpp/a0311_f008.png | Bin .../sa1/obj_tiles/4bpp/a0312_f000.png | Bin .../sa1/obj_tiles/4bpp/a0312_f001.png | Bin .../sa1/obj_tiles/4bpp/a0312_f002.png | Bin .../sa1/obj_tiles/4bpp/a0312_f003.png | Bin .../sa1/obj_tiles/4bpp/a0312_f004.png | Bin .../sa1/obj_tiles/4bpp/a0312_f005.png | Bin .../sa1/obj_tiles/4bpp/a0312_f006.png | Bin .../sa1/obj_tiles/4bpp/a0312_f007.png | Bin .../sa1/obj_tiles/4bpp/a0312_f008.png | Bin .../sa1/obj_tiles/4bpp/a0315_f000.png | Bin .../sa1/obj_tiles/4bpp/a0315_f001.png | Bin .../sa1/obj_tiles/4bpp/a0317_f000.png | Bin .../sa1/obj_tiles/4bpp/a0317_f001.png | Bin .../sa1/obj_tiles/4bpp/a0317_f002.png | Bin .../sa1/obj_tiles/4bpp/a0317_f003.png | Bin .../sa1/obj_tiles/4bpp/a0319_f000.png | Bin .../sa1/obj_tiles/4bpp/a0319_f001.png | Bin .../sa1/obj_tiles/4bpp/a0319_f002.png | Bin .../sa1/obj_tiles/4bpp/a0319_f003.png | Bin .../sa1/obj_tiles/4bpp/a0319_f004.png | Bin .../sa1/obj_tiles/4bpp/a0320_f000.png | Bin .../sa1/obj_tiles/4bpp/a0320_f001.png | Bin .../sa1/obj_tiles/4bpp/a0320_f002.png | Bin .../sa1/obj_tiles/4bpp/a0320_f003.png | Bin .../sa1/obj_tiles/4bpp/a0320_f004.png | Bin .../sa1/obj_tiles/4bpp/a0320_f005.png | Bin .../sa1/obj_tiles/4bpp/a0320_f006.png | Bin .../sa1/obj_tiles/4bpp/a0320_f007.png | Bin .../sa1/obj_tiles/4bpp/a0320_f008.png | Bin .../sa1/obj_tiles/4bpp/a0320_f009.png | Bin .../sa1/obj_tiles/4bpp/a0320_f010.png | Bin .../sa1/obj_tiles/4bpp/a0320_f011.png | Bin .../sa1/obj_tiles/4bpp/a0320_f012.png | Bin .../sa1/obj_tiles/4bpp/a0320_f013.png | Bin .../sa1/obj_tiles/4bpp/a0320_f014.png | Bin .../sa1/obj_tiles/4bpp/a0321_f000.png | Bin .../sa1/obj_tiles/4bpp/a0321_f001.png | Bin .../sa1/obj_tiles/4bpp/a0321_f002.png | Bin .../sa1/obj_tiles/4bpp/a0321_f003.png | Bin .../sa1/obj_tiles/4bpp/a0321_f004.png | Bin .../sa1/obj_tiles/4bpp/a0321_f005.png | Bin .../sa1/obj_tiles/4bpp/a0321_f006.png | Bin .../sa1/obj_tiles/4bpp/a0321_f007.png | Bin .../sa1/obj_tiles/4bpp/a0321_f008.png | Bin .../sa1/obj_tiles/4bpp/a0321_f009.png | Bin .../sa1/obj_tiles/4bpp/a0321_f010.png | Bin .../sa1/obj_tiles/4bpp/a0321_f011.png | Bin .../sa1/obj_tiles/4bpp/a0321_f012.png | Bin .../sa1/obj_tiles/4bpp/a0321_f013.png | Bin .../sa1/obj_tiles/4bpp/a0321_f014.png | Bin .../sa1/obj_tiles/4bpp/a0321_f015.png | Bin .../sa1/obj_tiles/4bpp/a0321_f016.png | Bin .../sa1/obj_tiles/4bpp/a0321_f017.png | Bin .../sa1/obj_tiles/4bpp/a0321_f018.png | Bin .../sa1/obj_tiles/4bpp/a0321_f019.png | Bin .../sa1/obj_tiles/4bpp/a0321_f020.png | Bin .../sa1/obj_tiles/4bpp/a0321_f021.png | Bin .../sa1/obj_tiles/4bpp/a0321_f022.png | Bin .../sa1/obj_tiles/4bpp/a0321_f023.png | Bin .../sa1/obj_tiles/4bpp/a0321_f024.png | Bin .../sa1/obj_tiles/4bpp/a0321_f025.png | Bin .../sa1/obj_tiles/4bpp/a0321_f026.png | Bin .../sa1/obj_tiles/4bpp/a0321_f027.png | Bin .../sa1/obj_tiles/4bpp/a0321_f028.png | Bin .../sa1/obj_tiles/4bpp/a0321_f029.png | Bin .../sa1/obj_tiles/4bpp/a0322_f000.png | Bin .../sa1/obj_tiles/4bpp/a0322_f001.png | Bin .../sa1/obj_tiles/4bpp/a0322_f002.png | Bin .../sa1/obj_tiles/4bpp/a0322_f003.png | Bin .../sa1/obj_tiles/4bpp/a0322_f004.png | Bin .../sa1/obj_tiles/4bpp/a0322_f005.png | Bin .../sa1/obj_tiles/4bpp/a0322_f006.png | Bin .../sa1/obj_tiles/4bpp/a0322_f007.png | Bin .../sa1/obj_tiles/4bpp/a0322_f008.png | Bin .../sa1/obj_tiles/4bpp/a0322_f009.png | Bin .../sa1/obj_tiles/4bpp/a0323_f000.png | Bin .../sa1/obj_tiles/4bpp/a0323_f001.png | Bin .../sa1/obj_tiles/4bpp/a0323_f002.png | Bin .../sa1/obj_tiles/4bpp/a0323_f003.png | Bin .../sa1/obj_tiles/4bpp/a0324_f000.png | Bin .../sa1/obj_tiles/4bpp/a0324_f001.png | Bin .../sa1/obj_tiles/4bpp/a0324_f002.png | Bin .../sa1/obj_tiles/4bpp/a0324_f003.png | Bin .../sa1/obj_tiles/4bpp/a0324_f004.png | Bin .../sa1/obj_tiles/4bpp/a0324_f005.png | Bin .../sa1/obj_tiles/4bpp/a0324_f006.png | Bin .../sa1/obj_tiles/4bpp/a0324_f007.png | Bin .../sa1/obj_tiles/4bpp/a0324_f008.png | Bin .../sa1/obj_tiles/4bpp/a0325_f000.png | Bin .../sa1/obj_tiles/4bpp/a0325_f001.png | Bin .../sa1/obj_tiles/4bpp/a0325_f002.png | Bin .../sa1/obj_tiles/4bpp/a0325_f003.png | Bin .../sa1/obj_tiles/4bpp/a0325_f004.png | Bin .../sa1/obj_tiles/4bpp/a0325_f005.png | Bin .../sa1/obj_tiles/4bpp/a0325_f006.png | Bin .../sa1/obj_tiles/4bpp/a0325_f007.png | Bin .../sa1/obj_tiles/4bpp/a0325_f008.png | Bin .../sa1/obj_tiles/4bpp/a0325_f009.png | Bin .../sa1/obj_tiles/4bpp/a0325_f010.png | Bin .../sa1/obj_tiles/4bpp/a0325_f011.png | Bin .../sa1/obj_tiles/4bpp/a0325_f012.png | Bin .../sa1/obj_tiles/4bpp/a0325_f013.png | Bin .../sa1/obj_tiles/4bpp/a0325_f014.png | Bin .../sa1/obj_tiles/4bpp/a0325_f015.png | Bin .../sa1/obj_tiles/4bpp/a0325_f016.png | Bin .../sa1/obj_tiles/4bpp/a0325_f017.png | Bin .../sa1/obj_tiles/4bpp/a0326_f000.png | Bin .../sa1/obj_tiles/4bpp/a0326_f001.png | Bin .../sa1/obj_tiles/4bpp/a0326_f002.png | Bin .../sa1/obj_tiles/4bpp/a0326_f003.png | Bin .../sa1/obj_tiles/4bpp/a0326_f004.png | Bin .../sa1/obj_tiles/4bpp/a0326_f005.png | Bin .../sa1/obj_tiles/4bpp/a0326_f006.png | Bin .../sa1/obj_tiles/4bpp/a0326_f007.png | Bin .../sa1/obj_tiles/4bpp/a0326_f008.png | Bin .../sa1/obj_tiles/4bpp/a0326_f009.png | Bin .../sa1/obj_tiles/4bpp/a0326_f010.png | Bin .../sa1/obj_tiles/4bpp/a0326_f011.png | Bin .../sa1/obj_tiles/4bpp/a0326_f012.png | Bin .../sa1/obj_tiles/4bpp/a0326_f013.png | Bin .../sa1/obj_tiles/4bpp/a0326_f014.png | Bin .../sa1/obj_tiles/4bpp/a0326_f015.png | Bin .../sa1/obj_tiles/4bpp/a0327_f000.png | Bin .../sa1/obj_tiles/4bpp/a0327_f001.png | Bin .../sa1/obj_tiles/4bpp/a0327_f002.png | Bin .../sa1/obj_tiles/4bpp/a0328_f000.png | Bin .../sa1/obj_tiles/4bpp/a0328_f001.png | Bin .../sa1/obj_tiles/4bpp/a0328_f002.png | Bin .../sa1/obj_tiles/4bpp/a0328_f003.png | Bin .../sa1/obj_tiles/4bpp/a0328_f004.png | Bin .../sa1/obj_tiles/4bpp/a0328_f005.png | Bin .../sa1/obj_tiles/4bpp/a0328_f006.png | Bin .../sa1/obj_tiles/4bpp/a0328_f007.png | Bin .../sa1/obj_tiles/4bpp/a0328_f008.png | Bin .../sa1/obj_tiles/4bpp/a0328_f009.png | Bin .../sa1/obj_tiles/4bpp/a0328_f010.png | Bin .../sa1/obj_tiles/4bpp/a0329_f000.png | Bin .../sa1/obj_tiles/4bpp/a0329_f001.png | Bin .../sa1/obj_tiles/4bpp/a0329_f002.png | Bin .../sa1/obj_tiles/4bpp/a0329_f003.png | Bin .../sa1/obj_tiles/4bpp/a0329_f004.png | Bin .../sa1/obj_tiles/4bpp/a0329_f005.png | Bin .../sa1/obj_tiles/4bpp/a0329_f006.png | Bin .../sa1/obj_tiles/4bpp/a0329_f007.png | Bin .../sa1/obj_tiles/4bpp/a0329_f008.png | Bin .../sa1/obj_tiles/4bpp/a0329_f009.png | Bin .../sa1/obj_tiles/4bpp/a0329_f010.png | Bin .../sa1/obj_tiles/4bpp/a0329_f011.png | Bin .../sa1/obj_tiles/4bpp/a0329_f012.png | Bin .../sa1/obj_tiles/4bpp/a0329_f013.png | Bin .../sa1/obj_tiles/4bpp/a0330_f000.png | Bin .../sa1/obj_tiles/4bpp/a0330_f001.png | Bin .../sa1/obj_tiles/4bpp/a0330_f002.png | Bin .../sa1/obj_tiles/4bpp/a0330_f003.png | Bin .../sa1/obj_tiles/4bpp/a0330_f004.png | Bin .../sa1/obj_tiles/4bpp/a0330_f005.png | Bin .../sa1/obj_tiles/4bpp/a0330_f006.png | Bin .../sa1/obj_tiles/4bpp/a0331_f000.png | Bin .../sa1/obj_tiles/4bpp/a0331_f001.png | Bin .../sa1/obj_tiles/4bpp/a0331_f002.png | Bin .../sa1/obj_tiles/4bpp/a0331_f003.png | Bin .../sa1/obj_tiles/4bpp/a0331_f004.png | Bin .../sa1/obj_tiles/4bpp/a0331_f005.png | Bin .../sa1/obj_tiles/4bpp/a0332_f000.png | Bin .../sa1/obj_tiles/4bpp/a0332_f001.png | Bin .../sa1/obj_tiles/4bpp/a0332_f002.png | Bin .../sa1/obj_tiles/4bpp/a0332_f003.png | Bin .../sa1/obj_tiles/4bpp/a0332_f004.png | Bin .../sa1/obj_tiles/4bpp/a0332_f005.png | Bin .../sa1/obj_tiles/4bpp/a0332_f006.png | Bin .../sa1/obj_tiles/4bpp/a0332_f007.png | Bin .../sa1/obj_tiles/4bpp/a0333_f000.png | Bin .../sa1/obj_tiles/4bpp/a0333_f001.png | Bin .../sa1/obj_tiles/4bpp/a0333_f002.png | Bin .../sa1/obj_tiles/4bpp/a0333_f003.png | Bin .../sa1/obj_tiles/4bpp/a0333_f004.png | Bin .../sa1/obj_tiles/4bpp/a0333_f005.png | Bin .../sa1/obj_tiles/4bpp/a0333_f006.png | Bin .../sa1/obj_tiles/4bpp/a0333_f007.png | Bin .../sa1/obj_tiles/4bpp/a0333_f008.png | Bin .../sa1/obj_tiles/4bpp/a0333_f009.png | Bin .../sa1/obj_tiles/4bpp/a0333_f010.png | Bin .../sa1/obj_tiles/4bpp/a0333_f011.png | Bin .../sa1/obj_tiles/4bpp/a0333_f012.png | Bin .../sa1/obj_tiles/4bpp/a0333_f013.png | Bin .../sa1/obj_tiles/4bpp/a0334_f000.png | Bin .../sa1/obj_tiles/4bpp/a0334_f001.png | Bin .../sa1/obj_tiles/4bpp/a0334_f002.png | Bin .../sa1/obj_tiles/4bpp/a0334_f003.png | Bin .../sa1/obj_tiles/4bpp/a0334_f004.png | Bin .../sa1/obj_tiles/4bpp/a0334_f005.png | Bin .../sa1/obj_tiles/4bpp/a0334_f006.png | Bin .../sa1/obj_tiles/4bpp/a0334_f007.png | Bin .../sa1/obj_tiles/4bpp/a0334_f008.png | Bin .../sa1/obj_tiles/4bpp/a0334_f009.png | Bin .../sa1/obj_tiles/4bpp/a0334_f010.png | Bin .../sa1/obj_tiles/4bpp/a0334_f011.png | Bin .../sa1/obj_tiles/4bpp/a0334_f012.png | Bin .../sa1/obj_tiles/4bpp/a0334_f013.png | Bin .../sa1/obj_tiles/4bpp/a0334_f014.png | Bin .../sa1/obj_tiles/4bpp/a0334_f015.png | Bin .../sa1/obj_tiles/4bpp/a0334_f016.png | Bin .../sa1/obj_tiles/4bpp/a0334_f017.png | Bin .../sa1/obj_tiles/4bpp/a0334_f018.png | Bin .../sa1/obj_tiles/4bpp/a0334_f019.png | Bin .../sa1/obj_tiles/4bpp/a0334_f020.png | Bin .../sa1/obj_tiles/4bpp/a0334_f021.png | Bin .../sa1/obj_tiles/4bpp/a0334_f022.png | Bin .../sa1/obj_tiles/4bpp/a0334_f023.png | Bin .../sa1/obj_tiles/4bpp/a0335_f000.png | Bin .../sa1/obj_tiles/4bpp/a0335_f001.png | Bin .../sa1/obj_tiles/4bpp/a0335_f002.png | Bin .../sa1/obj_tiles/4bpp/a0335_f003.png | Bin .../sa1/obj_tiles/4bpp/a0335_f004.png | Bin .../sa1/obj_tiles/4bpp/a0335_f005.png | Bin .../sa1/obj_tiles/4bpp/a0335_f006.png | Bin .../sa1/obj_tiles/4bpp/a0335_f007.png | Bin .../sa1/obj_tiles/4bpp/a0336_f000.png | Bin .../sa1/obj_tiles/4bpp/a0336_f001.png | Bin .../sa1/obj_tiles/4bpp/a0336_f002.png | Bin .../sa1/obj_tiles/4bpp/a0336_f003.png | Bin .../sa1/obj_tiles/4bpp/a0336_f004.png | Bin .../sa1/obj_tiles/4bpp/a0337_f000.png | Bin .../sa1/obj_tiles/4bpp/a0337_f001.png | Bin .../sa1/obj_tiles/4bpp/a0337_f002.png | Bin .../sa1/obj_tiles/4bpp/a0337_f003.png | Bin .../sa1/obj_tiles/4bpp/a0338_f000.png | Bin .../sa1/obj_tiles/4bpp/a0338_f001.png | Bin .../sa1/obj_tiles/4bpp/a0338_f002.png | Bin .../sa1/obj_tiles/4bpp/a0338_f003.png | Bin .../sa1/obj_tiles/4bpp/a0338_f004.png | Bin .../sa1/obj_tiles/4bpp/a0338_f005.png | Bin .../sa1/obj_tiles/4bpp/a0338_f006.png | Bin .../sa1/obj_tiles/4bpp/a0338_f007.png | Bin .../sa1/obj_tiles/4bpp/a0338_f008.png | Bin .../sa1/obj_tiles/4bpp/a0338_f009.png | Bin .../sa1/obj_tiles/4bpp/a0338_f010.png | Bin .../sa1/obj_tiles/4bpp/a0338_f011.png | Bin .../sa1/obj_tiles/4bpp/a0338_f012.png | Bin .../sa1/obj_tiles/4bpp/a0338_f013.png | Bin .../sa1/obj_tiles/4bpp/a0338_f014.png | Bin .../sa1/obj_tiles/4bpp/a0338_f015.png | Bin .../sa1/obj_tiles/4bpp/a0338_f016.png | Bin .../sa1/obj_tiles/4bpp/a0338_f017.png | Bin .../sa1/obj_tiles/4bpp/a0338_f018.png | Bin .../sa1/obj_tiles/4bpp/a0338_f019.png | Bin .../sa1/obj_tiles/4bpp/a0339_f000.png | Bin .../sa1/obj_tiles/4bpp/a0339_f001.png | Bin .../sa1/obj_tiles/4bpp/a0339_f002.png | Bin .../sa1/obj_tiles/4bpp/a0339_f003.png | Bin .../sa1/obj_tiles/4bpp/a0339_f004.png | Bin .../sa1/obj_tiles/4bpp/a0339_f005.png | Bin .../sa1/obj_tiles/4bpp/a0340_f000.png | Bin .../sa1/obj_tiles/4bpp/a0340_f001.png | Bin .../sa1/obj_tiles/4bpp/a0340_f002.png | Bin .../sa1/obj_tiles/4bpp/a0340_f003.png | Bin .../sa1/obj_tiles/4bpp/a0340_f004.png | Bin .../sa1/obj_tiles/4bpp/a0340_f005.png | Bin .../sa1/obj_tiles/4bpp/a0340_f006.png | Bin .../sa1/obj_tiles/4bpp/a0340_f007.png | Bin .../sa1/obj_tiles/4bpp/a0341_f000.png | Bin .../sa1/obj_tiles/4bpp/a0341_f001.png | Bin .../sa1/obj_tiles/4bpp/a0341_f002.png | Bin .../sa1/obj_tiles/4bpp/a0342_f000.png | Bin .../sa1/obj_tiles/4bpp/a0342_f001.png | Bin .../sa1/obj_tiles/4bpp/a0342_f002.png | Bin .../sa1/obj_tiles/4bpp/a0342_f003.png | Bin .../sa1/obj_tiles/4bpp/a0343_f000.png | Bin .../sa1/obj_tiles/4bpp/a0343_f001.png | Bin .../sa1/obj_tiles/4bpp/a0343_f002.png | Bin .../sa1/obj_tiles/4bpp/a0343_f003.png | Bin .../sa1/obj_tiles/4bpp/a0343_f004.png | Bin .../sa1/obj_tiles/4bpp/a0343_f005.png | Bin .../sa1/obj_tiles/4bpp/a0343_f006.png | Bin .../sa1/obj_tiles/4bpp/a0343_f007.png | Bin .../sa1/obj_tiles/4bpp/a0343_f008.png | Bin .../sa1/obj_tiles/4bpp/a0343_f009.png | Bin .../sa1/obj_tiles/4bpp/a0348_f000.png | Bin .../sa1/obj_tiles/4bpp/a0348_f001.png | Bin .../sa1/obj_tiles/4bpp/a0348_f002.png | Bin .../sa1/obj_tiles/4bpp/a0348_f003.png | Bin .../sa1/obj_tiles/4bpp/a0348_f004.png | Bin .../sa1/obj_tiles/4bpp/a0348_f005.png | Bin .../sa1/obj_tiles/4bpp/a0348_f006.png | Bin .../sa1/obj_tiles/4bpp/a0348_f007.png | Bin .../sa1/obj_tiles/4bpp/a0348_f008.png | Bin .../sa1/obj_tiles/4bpp/a0348_f009.png | Bin .../sa1/obj_tiles/4bpp/a0348_f010.png | Bin .../sa1/obj_tiles/4bpp/a0348_f011.png | Bin .../sa1/obj_tiles/4bpp/a0348_f012.png | Bin .../sa1/obj_tiles/4bpp/a0348_f013.png | Bin .../sa1/obj_tiles/4bpp/a0348_f014.png | Bin .../sa1/obj_tiles/4bpp/a0353_f000.png | Bin .../sa1/obj_tiles/4bpp/a0353_f001.png | Bin .../sa1/obj_tiles/4bpp/a0353_f002.png | Bin .../sa1/obj_tiles/4bpp/a0353_f003.png | Bin .../sa1/obj_tiles/4bpp/a0353_f004.png | Bin .../sa1/obj_tiles/4bpp/a0353_f005.png | Bin .../sa1/obj_tiles/4bpp/a0353_f006.png | Bin .../sa1/obj_tiles/4bpp/a0353_f007.png | Bin .../sa1/obj_tiles/4bpp/a0353_f008.png | Bin .../sa1/obj_tiles/4bpp/a0353_f009.png | Bin .../sa1/obj_tiles/4bpp/a0353_f010.png | Bin .../sa1/obj_tiles/4bpp/a0353_f011.png | Bin .../sa1/obj_tiles/4bpp/a0353_f012.png | Bin .../sa1/obj_tiles/4bpp/a0353_f013.png | Bin .../sa1/obj_tiles/4bpp/a0353_f014.png | Bin .../sa1/obj_tiles/4bpp/a0353_f015.png | Bin .../sa1/obj_tiles/4bpp/a0353_f016.png | Bin .../sa1/obj_tiles/4bpp/a0353_f017.png | Bin .../sa1/obj_tiles/4bpp/a0373_f000.png | Bin .../sa1/obj_tiles/4bpp/a0373_f001.png | Bin .../sa1/obj_tiles/4bpp/a0373_f002.png | Bin .../sa1/obj_tiles/4bpp/a0373_f003.png | Bin .../sa1/obj_tiles/4bpp/a0373_f004.png | Bin .../sa1/obj_tiles/4bpp/a0373_f005.png | Bin .../sa1/obj_tiles/4bpp/a0373_f006.png | Bin .../sa1/obj_tiles/4bpp/a0373_f007.png | Bin .../sa1/obj_tiles/4bpp/a0373_f008.png | Bin .../sa1/obj_tiles/4bpp/a0373_f009.png | Bin .../sa1/obj_tiles/4bpp/a0373_f010.png | Bin .../sa1/obj_tiles/4bpp/a0373_f011.png | Bin .../sa1/obj_tiles/4bpp/a0373_f012.png | Bin .../sa1/obj_tiles/4bpp/a0373_f013.png | Bin .../sa1/obj_tiles/4bpp/a0373_f014.png | Bin .../sa1/obj_tiles/4bpp/a0374_f000.png | Bin .../sa1/obj_tiles/4bpp/a0374_f001.png | Bin .../sa1/obj_tiles/4bpp/a0374_f002.png | Bin .../sa1/obj_tiles/4bpp/a0374_f003.png | Bin .../sa1/obj_tiles/4bpp/a0374_f004.png | Bin .../sa1/obj_tiles/4bpp/a0374_f005.png | Bin .../sa1/obj_tiles/4bpp/a0374_f006.png | Bin .../sa1/obj_tiles/4bpp/a0374_f007.png | Bin .../sa1/obj_tiles/4bpp/a0374_f008.png | Bin .../sa1/obj_tiles/4bpp/a0374_f009.png | Bin .../sa1/obj_tiles/4bpp/a0375_f000.png | Bin .../sa1/obj_tiles/4bpp/a0375_f001.png | Bin .../sa1/obj_tiles/4bpp/a0375_f002.png | Bin .../sa1/obj_tiles/4bpp/a0375_f003.png | Bin .../sa1/obj_tiles/4bpp/a0375_f004.png | Bin .../sa1/obj_tiles/4bpp/a0375_f005.png | Bin .../sa1/obj_tiles/4bpp/a0375_f006.png | Bin .../sa1/obj_tiles/4bpp/a0375_f007.png | Bin .../sa1/obj_tiles/4bpp/a0375_f008.png | Bin .../sa1/obj_tiles/4bpp/a0375_f009.png | Bin .../sa1/obj_tiles/4bpp/a0375_f010.png | Bin .../sa1/obj_tiles/4bpp/a0375_f011.png | Bin .../sa1/obj_tiles/4bpp/a0375_f012.png | Bin .../sa1/obj_tiles/4bpp/a0376_f000.png | Bin .../sa1/obj_tiles/4bpp/a0376_f001.png | Bin .../sa1/obj_tiles/4bpp/a0376_f002.png | Bin .../sa1/obj_tiles/4bpp/a0376_f003.png | Bin .../sa1/obj_tiles/4bpp/a0376_f004.png | Bin .../sa1/obj_tiles/4bpp/a0376_f005.png | Bin .../sa1/obj_tiles/4bpp/a0376_f006.png | Bin .../sa1/obj_tiles/4bpp/a0376_f007.png | Bin .../sa1/obj_tiles/4bpp/a0376_f008.png | Bin .../sa1/obj_tiles/4bpp/a0376_f009.png | Bin .../sa1/obj_tiles/4bpp/a0376_f010.png | Bin .../sa1/obj_tiles/4bpp/a0376_f011.png | Bin .../sa1/obj_tiles/4bpp/a0376_f012.png | Bin .../sa1/obj_tiles/4bpp/a0376_f013.png | Bin .../sa1/obj_tiles/4bpp/a0377_f000.png | Bin .../sa1/obj_tiles/4bpp/a0377_f001.png | Bin .../sa1/obj_tiles/4bpp/a0377_f002.png | Bin .../sa1/obj_tiles/4bpp/a0377_f003.png | Bin .../sa1/obj_tiles/4bpp/a0377_f004.png | Bin .../sa1/obj_tiles/4bpp/a0377_f005.png | Bin .../sa1/obj_tiles/4bpp/a0377_f006.png | Bin .../sa1/obj_tiles/4bpp/a0377_f007.png | Bin .../sa1/obj_tiles/4bpp/a0377_f008.png | Bin .../sa1/obj_tiles/4bpp/a0377_f009.png | Bin .../sa1/obj_tiles/4bpp/a0377_f010.png | Bin .../sa1/obj_tiles/4bpp/a0377_f011.png | Bin .../sa1/obj_tiles/4bpp/a0377_f012.png | Bin .../sa1/obj_tiles/4bpp/a0379_f000.png | Bin .../sa1/obj_tiles/4bpp/a0379_f001.png | Bin .../sa1/obj_tiles/4bpp/a0379_f002.png | Bin .../sa1/obj_tiles/4bpp/a0380_f000.png | Bin .../sa1/obj_tiles/4bpp/a0380_f001.png | Bin .../sa1/obj_tiles/4bpp/a0380_f002.png | Bin .../sa1/obj_tiles/4bpp/a0381_f000.png | Bin .../sa1/obj_tiles/4bpp/a0381_f001.png | Bin .../sa1/obj_tiles/4bpp/a0381_f002.png | Bin .../sa1/obj_tiles/4bpp/a0383_f000.png | Bin .../sa1/obj_tiles/4bpp/a0383_f001.png | Bin .../sa1/obj_tiles/4bpp/a0384_f000.png | Bin .../sa1/obj_tiles/4bpp/a0384_f001.png | Bin .../sa1/obj_tiles/4bpp/a0384_f002.png | Bin .../sa1/obj_tiles/4bpp/a0385_f000.png | Bin .../sa1/obj_tiles/4bpp/a0385_f001.png | Bin .../sa1/obj_tiles/4bpp/a0386_f000.png | Bin .../sa1/obj_tiles/4bpp/a0386_f001.png | Bin .../sa1/obj_tiles/4bpp/a0386_f002.png | Bin .../sa1/obj_tiles/4bpp/a0387_f000.png | Bin .../sa1/obj_tiles/4bpp/a0387_f001.png | Bin .../sa1/obj_tiles/4bpp/a0387_f002.png | Bin .../sa1/obj_tiles/4bpp/a0387_f003.png | Bin .../sa1/obj_tiles/4bpp/a0391_f000.png | Bin .../sa1/obj_tiles/4bpp/a0391_f001.png | Bin .../sa1/obj_tiles/4bpp/a0391_f002.png | Bin .../sa1/obj_tiles/4bpp/a0391_f003.png | Bin .../sa1/obj_tiles/4bpp/a0391_f004.png | Bin .../sa1/obj_tiles/4bpp/a0391_f005.png | Bin .../sa1/obj_tiles/4bpp/a0391_f006.png | Bin .../sa1/obj_tiles/4bpp/a0391_f007.png | Bin .../sa1/obj_tiles/4bpp/a0392_f000.png | Bin .../sa1/obj_tiles/4bpp/a0392_f001.png | Bin .../sa1/obj_tiles/4bpp/a0392_f002.png | Bin .../sa1/obj_tiles/4bpp/a0392_f003.png | Bin .../sa1/obj_tiles/4bpp/a0393_f000.png | Bin .../sa1/obj_tiles/4bpp/a0393_f001.png | Bin .../sa1/obj_tiles/4bpp/a0393_f002.png | Bin .../sa1/obj_tiles/4bpp/a0394_f000.png | Bin .../sa1/obj_tiles/4bpp/a0394_f001.png | Bin .../sa1/obj_tiles/4bpp/a0394_f002.png | Bin .../sa1/obj_tiles/4bpp/a0394_f003.png | Bin .../sa1/obj_tiles/4bpp/a0394_f004.png | Bin .../sa1/obj_tiles/4bpp/a0394_f005.png | Bin .../sa1/obj_tiles/4bpp/a0394_f006.png | Bin .../sa1/obj_tiles/4bpp/a0394_f007.png | Bin .../sa1/obj_tiles/4bpp/a0394_f008.png | Bin .../sa1/obj_tiles/4bpp/a0394_f009.png | Bin .../sa1/obj_tiles/4bpp/a0396_f000.png | Bin .../sa1/obj_tiles/4bpp/a0397_f000.png | Bin .../sa1/obj_tiles/4bpp/a0397_f001.png | Bin .../sa1/obj_tiles/4bpp/a0397_f002.png | Bin .../sa1/obj_tiles/4bpp/a0398_f000.png | Bin .../sa1/obj_tiles/4bpp/a0398_f001.png | Bin .../sa1/obj_tiles/4bpp/a0398_f002.png | Bin .../sa1/obj_tiles/4bpp/a0398_f003.png | Bin .../sa1/obj_tiles/4bpp/a0398_f004.png | Bin .../sa1/obj_tiles/4bpp/a0398_f005.png | Bin .../sa1/obj_tiles/4bpp/a0398_f006.png | Bin .../sa1/obj_tiles/4bpp/a0398_f007.png | Bin .../sa1/obj_tiles/4bpp/a0398_f008.png | Bin .../sa1/obj_tiles/4bpp/a0398_f009.png | Bin .../sa1/obj_tiles/4bpp/a0398_f010.png | Bin .../sa1/obj_tiles/4bpp/a0398_f011.png | Bin .../sa1/obj_tiles/4bpp/a0398_f012.png | Bin .../sa1/obj_tiles/4bpp/a0398_f013.png | Bin .../sa1/obj_tiles/4bpp/a0398_f014.png | Bin .../sa1/obj_tiles/4bpp/a0399_f000.png | Bin .../sa1/obj_tiles/4bpp/a0399_f001.png | Bin .../sa1/obj_tiles/4bpp/a0399_f002.png | Bin .../sa1/obj_tiles/4bpp/a0399_f003.png | Bin .../sa1/obj_tiles/4bpp/a0399_f004.png | Bin .../sa1/obj_tiles/4bpp/a0399_f005.png | Bin .../sa1/obj_tiles/4bpp/a0399_f006.png | Bin .../sa1/obj_tiles/4bpp/a0399_f007.png | Bin .../sa1/obj_tiles/4bpp/a0399_f008.png | Bin .../sa1/obj_tiles/4bpp/a0400_f000.png | Bin .../sa1/obj_tiles/4bpp/a0400_f001.png | Bin .../sa1/obj_tiles/4bpp/a0400_f002.png | Bin .../sa1/obj_tiles/4bpp/a0400_f003.png | Bin .../sa1/obj_tiles/4bpp/a0400_f004.png | Bin .../sa1/obj_tiles/4bpp/a0400_f005.png | Bin .../sa1/obj_tiles/4bpp/a0400_f006.png | Bin .../sa1/obj_tiles/4bpp/a0401_f000.png | Bin .../sa1/obj_tiles/4bpp/a0401_f001.png | Bin .../sa1/obj_tiles/4bpp/a0401_f002.png | Bin .../sa1/obj_tiles/4bpp/a0401_f003.png | Bin .../sa1/obj_tiles/4bpp/a0401_f004.png | Bin .../sa1/obj_tiles/4bpp/a0401_f005.png | Bin .../sa1/obj_tiles/4bpp/a0402_f000.png | Bin .../sa1/obj_tiles/4bpp/a0402_f001.png | Bin .../sa1/obj_tiles/4bpp/a0402_f002.png | Bin .../sa1/obj_tiles/4bpp/a0402_f003.png | Bin .../sa1/obj_tiles/4bpp/a0403_f000.png | Bin .../sa1/obj_tiles/4bpp/a0403_f001.png | Bin .../sa1/obj_tiles/4bpp/a0403_f002.png | Bin .../sa1/obj_tiles/4bpp/a0403_f003.png | Bin .../sa1/obj_tiles/4bpp/a0403_f004.png | Bin .../sa1/obj_tiles/4bpp/a0404_f000.png | Bin .../sa1/obj_tiles/4bpp/a0404_f001.png | Bin .../sa1/obj_tiles/4bpp/a0404_f002.png | Bin .../sa1/obj_tiles/4bpp/a0404_f003.png | Bin .../sa1/obj_tiles/4bpp/a0404_f004.png | Bin .../sa1/obj_tiles/4bpp/a0405_f000.png | Bin .../sa1/obj_tiles/4bpp/a0405_f001.png | Bin .../sa1/obj_tiles/4bpp/a0405_f002.png | Bin .../sa1/obj_tiles/4bpp/a0405_f003.png | Bin .../sa1/obj_tiles/4bpp/a0405_f004.png | Bin .../sa1/obj_tiles/4bpp/a0405_f005.png | Bin .../sa1/obj_tiles/4bpp/a0406_f000.png | Bin .../sa1/obj_tiles/4bpp/a0406_f001.png | Bin .../sa1/obj_tiles/4bpp/a0406_f002.png | Bin .../sa1/obj_tiles/4bpp/a0406_f003.png | Bin .../sa1/obj_tiles/4bpp/a0406_f004.png | Bin .../sa1/obj_tiles/4bpp/a0406_f005.png | Bin .../sa1/obj_tiles/4bpp/a0407_f000.png | Bin .../sa1/obj_tiles/4bpp/a0407_f001.png | Bin .../sa1/obj_tiles/4bpp/a0407_f002.png | Bin .../sa1/obj_tiles/4bpp/a0407_f003.png | Bin .../sa1/obj_tiles/4bpp/a0408_f000.png | Bin .../sa1/obj_tiles/4bpp/a0409_f000.png | Bin .../sa1/obj_tiles/4bpp/a0410_f000.png | Bin .../sa1/obj_tiles/4bpp/a0410_f001.png | Bin .../sa1/obj_tiles/4bpp/a0411_f000.png | Bin .../sa1/obj_tiles/4bpp/a0411_f001.png | Bin .../sa1/obj_tiles/4bpp/a0411_f002.png | Bin .../sa1/obj_tiles/4bpp/a0411_f003.png | Bin .../sa1/obj_tiles/4bpp/a0412_f000.png | Bin .../sa1/obj_tiles/4bpp/a0412_f001.png | Bin .../sa1/obj_tiles/4bpp/a0412_f002.png | Bin .../sa1/obj_tiles/4bpp/a0412_f003.png | Bin .../sa1/obj_tiles/4bpp/a0413_f000.png | Bin .../sa1/obj_tiles/4bpp/a0413_f001.png | Bin .../sa1/obj_tiles/4bpp/a0413_f002.png | Bin .../sa1/obj_tiles/4bpp/a0413_f003.png | Bin .../sa1/obj_tiles/4bpp/a0413_f004.png | Bin .../sa1/obj_tiles/4bpp/a0414_f000.png | Bin .../sa1/obj_tiles/4bpp/a0414_f001.png | Bin .../sa1/obj_tiles/4bpp/a0415_f000.png | Bin .../sa1/obj_tiles/4bpp/a0415_f001.png | Bin .../sa1/obj_tiles/4bpp/a0415_f002.png | Bin .../sa1/obj_tiles/4bpp/a0415_f003.png | Bin .../sa1/obj_tiles/4bpp/a0416_f000.png | Bin .../sa1/obj_tiles/4bpp/a0416_f001.png | Bin .../sa1/obj_tiles/4bpp/a0416_f002.png | Bin .../sa1/obj_tiles/4bpp/a0416_f003.png | Bin .../sa1/obj_tiles/4bpp/a0416_f004.png | Bin .../sa1/obj_tiles/4bpp/a0417_f000.png | Bin .../sa1/obj_tiles/4bpp/a0417_f001.png | Bin .../sa1/obj_tiles/4bpp/a0417_f002.png | Bin .../sa1/obj_tiles/4bpp/a0417_f003.png | Bin .../sa1/obj_tiles/4bpp/a0417_f004.png | Bin .../sa1/obj_tiles/4bpp/a0417_f005.png | Bin .../sa1/obj_tiles/4bpp/a0418_f000.png | Bin .../sa1/obj_tiles/4bpp/a0418_f001.png | Bin .../sa1/obj_tiles/4bpp/a0418_f002.png | Bin .../sa1/obj_tiles/4bpp/a0418_f003.png | Bin .../sa1/obj_tiles/4bpp/a0419_f000.png | Bin .../sa1/obj_tiles/4bpp/a0419_f001.png | Bin .../sa1/obj_tiles/4bpp/a0420_f000.png | Bin .../sa1/obj_tiles/4bpp/a0421_f000.png | Bin .../sa1/obj_tiles/4bpp/a0422_f000.png | Bin .../sa1/obj_tiles/4bpp/a0422_f001.png | Bin .../sa1/obj_tiles/4bpp/a0422_f002.png | Bin .../sa1/obj_tiles/4bpp/a0422_f003.png | Bin .../sa1/obj_tiles/4bpp/a0422_f004.png | Bin .../sa1/obj_tiles/4bpp/a0423_f000.png | Bin .../sa1/obj_tiles/4bpp/a0423_f001.png | Bin .../sa1/obj_tiles/4bpp/a0423_f002.png | Bin .../sa1/obj_tiles/4bpp/a0423_f003.png | Bin .../sa1/obj_tiles/4bpp/a0423_f004.png | Bin .../sa1/obj_tiles/4bpp/a0424_f000.png | Bin .../sa1/obj_tiles/4bpp/a0424_f001.png | Bin .../sa1/obj_tiles/4bpp/a0424_f002.png | Bin .../sa1/obj_tiles/4bpp/a0425_f000.png | Bin .../sa1/obj_tiles/4bpp/a0425_f001.png | Bin .../sa1/obj_tiles/4bpp/a0425_f002.png | Bin .../sa1/obj_tiles/4bpp/a0425_f003.png | Bin .../sa1/obj_tiles/4bpp/a0425_f004.png | Bin .../sa1/obj_tiles/4bpp/a0425_f005.png | Bin .../sa1/obj_tiles/4bpp/a0426_f000.png | Bin .../sa1/obj_tiles/4bpp/a0426_f001.png | Bin .../sa1/obj_tiles/4bpp/a0426_f002.png | Bin .../sa1/obj_tiles/4bpp/a0426_f003.png | Bin .../sa1/obj_tiles/4bpp/a0426_f004.png | Bin .../sa1/obj_tiles/4bpp/a0427_f000.png | Bin .../sa1/obj_tiles/4bpp/a0428_f000.png | Bin .../sa1/obj_tiles/4bpp/a0429_f000.png | Bin .../sa1/obj_tiles/4bpp/a0429_f001.png | Bin .../sa1/obj_tiles/4bpp/a0430_f000.png | Bin .../sa1/obj_tiles/4bpp/a0430_f001.png | Bin .../sa1/obj_tiles/4bpp/a0430_f002.png | Bin .../sa1/obj_tiles/4bpp/a0430_f003.png | Bin .../sa1/obj_tiles/4bpp/a0430_f004.png | Bin .../sa1/obj_tiles/4bpp/a0430_f005.png | Bin .../sa1/obj_tiles/4bpp/a0430_f006.png | Bin .../sa1/obj_tiles/4bpp/a0430_f007.png | Bin .../sa1/obj_tiles/4bpp/a0431_f000.png | Bin .../sa1/obj_tiles/4bpp/a0431_f001.png | Bin .../sa1/obj_tiles/4bpp/a0431_f002.png | Bin .../sa1/obj_tiles/4bpp/a0432_f000.png | Bin .../sa1/obj_tiles/4bpp/a0432_f001.png | Bin .../sa1/obj_tiles/4bpp/a0432_f002.png | Bin .../sa1/obj_tiles/4bpp/a0432_f003.png | Bin .../sa1/obj_tiles/4bpp/a0432_f004.png | Bin .../sa1/obj_tiles/4bpp/a0433_f000.png | Bin .../sa1/obj_tiles/4bpp/a0433_f001.png | Bin .../sa1/obj_tiles/4bpp/a0433_f002.png | Bin .../sa1/obj_tiles/4bpp/a0433_f003.png | Bin .../sa1/obj_tiles/4bpp/a0433_f004.png | Bin .../sa1/obj_tiles/4bpp/a0434_f000.png | Bin .../sa1/obj_tiles/4bpp/a0434_f001.png | Bin .../sa1/obj_tiles/4bpp/a0434_f002.png | Bin .../sa1/obj_tiles/4bpp/a0434_f003.png | Bin .../sa1/obj_tiles/4bpp/a0435_f000.png | Bin .../sa1/obj_tiles/4bpp/a0435_f001.png | Bin .../sa1/obj_tiles/4bpp/a0436_f000.png | Bin .../sa1/obj_tiles/4bpp/a0436_f001.png | Bin .../sa1/obj_tiles/4bpp/a0437_f000.png | Bin .../sa1/obj_tiles/4bpp/a0437_f001.png | Bin .../sa1/obj_tiles/4bpp/a0437_f002.png | Bin .../sa1/obj_tiles/4bpp/a0438_f000.png | Bin .../sa1/obj_tiles/4bpp/a0438_f001.png | Bin .../sa1/obj_tiles/4bpp/a0438_f002.png | Bin .../sa1/obj_tiles/4bpp/a0439_f000.png | Bin .../sa1/obj_tiles/4bpp/a0439_f001.png | Bin .../sa1/obj_tiles/4bpp/a0439_f002.png | Bin .../sa1/obj_tiles/4bpp/a0440_f000.png | Bin .../sa1/obj_tiles/4bpp/a0440_f001.png | Bin .../sa1/obj_tiles/4bpp/a0440_f002.png | Bin .../sa1/obj_tiles/4bpp/a0441_f000.png | Bin .../sa1/obj_tiles/4bpp/a0441_f001.png | Bin .../sa1/obj_tiles/4bpp/a0441_f002.png | Bin .../sa1/obj_tiles/4bpp/a0442_f000.png | Bin .../sa1/obj_tiles/4bpp/a0442_f001.png | Bin .../sa1/obj_tiles/4bpp/a0442_f002.png | Bin .../sa1/obj_tiles/4bpp/a0443_f000.png | Bin .../sa1/obj_tiles/4bpp/a0443_f001.png | Bin .../sa1/obj_tiles/4bpp/a0443_f002.png | Bin .../sa1/obj_tiles/4bpp/a0444_f000.png | Bin .../sa1/obj_tiles/4bpp/a0444_f001.png | Bin .../sa1/obj_tiles/4bpp/a0444_f002.png | Bin .../sa1/obj_tiles/4bpp/a0445_f000.png | Bin .../sa1/obj_tiles/4bpp/a0445_f001.png | Bin .../sa1/obj_tiles/4bpp/a0445_f002.png | Bin .../sa1/obj_tiles/4bpp/a0446_f000.png | Bin .../sa1/obj_tiles/4bpp/a0446_f001.png | Bin .../sa1/obj_tiles/4bpp/a0446_f002.png | Bin .../sa1/obj_tiles/4bpp/a0447_f000.png | Bin .../sa1/obj_tiles/4bpp/a0447_f001.png | Bin .../sa1/obj_tiles/4bpp/a0447_f002.png | Bin .../sa1/obj_tiles/4bpp/a0448_f000.png | Bin .../sa1/obj_tiles/4bpp/a0448_f001.png | Bin .../sa1/obj_tiles/4bpp/a0448_f002.png | Bin .../sa1/obj_tiles/4bpp/a0449_f000.png | Bin .../sa1/obj_tiles/4bpp/a0449_f001.png | Bin .../sa1/obj_tiles/4bpp/a0449_f002.png | Bin .../sa1/obj_tiles/4bpp/a0450_f000.png | Bin .../sa1/obj_tiles/4bpp/a0450_f001.png | Bin .../sa1/obj_tiles/4bpp/a0450_f002.png | Bin .../sa1/obj_tiles/4bpp/a0451_f000.png | Bin .../sa1/obj_tiles/4bpp/a0451_f001.png | Bin .../sa1/obj_tiles/4bpp/a0451_f002.png | Bin .../sa1/obj_tiles/4bpp/a0452_f000.png | Bin .../sa1/obj_tiles/4bpp/a0452_f001.png | Bin .../sa1/obj_tiles/4bpp/a0452_f002.png | Bin .../sa1/obj_tiles/4bpp/a0452_f003.png | Bin .../sa1/obj_tiles/4bpp/a0452_f004.png | Bin .../sa1/obj_tiles/4bpp/a0452_f005.png | Bin .../sa1/obj_tiles/4bpp/a0452_f006.png | Bin .../sa1/obj_tiles/4bpp/a0453_f000.png | Bin .../sa1/obj_tiles/4bpp/a0453_f001.png | Bin .../sa1/obj_tiles/4bpp/a0453_f002.png | Bin .../sa1/obj_tiles/4bpp/a0453_f003.png | Bin .../sa1/obj_tiles/4bpp/a0453_f004.png | Bin .../sa1/obj_tiles/4bpp/a0453_f005.png | Bin .../sa1/obj_tiles/4bpp/a0453_f006.png | Bin .../sa1/obj_tiles/4bpp/a0454_f000.png | Bin .../sa1/obj_tiles/4bpp/a0454_f001.png | Bin .../sa1/obj_tiles/4bpp/a0454_f002.png | Bin .../sa1/obj_tiles/4bpp/a0454_f003.png | Bin .../sa1/obj_tiles/4bpp/a0455_f000.png | Bin .../sa1/obj_tiles/4bpp/a0455_f001.png | Bin .../sa1/obj_tiles/4bpp/a0455_f002.png | Bin .../sa1/obj_tiles/4bpp/a0455_f003.png | Bin .../sa1/obj_tiles/4bpp/a0455_f004.png | Bin .../sa1/obj_tiles/4bpp/a0455_f005.png | Bin .../sa1/obj_tiles/4bpp/a0455_f006.png | Bin .../sa1/obj_tiles/4bpp/a0455_f007.png | Bin .../sa1/obj_tiles/4bpp/a0455_f008.png | Bin .../sa1/obj_tiles/4bpp/a0455_f009.png | Bin .../sa1/obj_tiles/4bpp/a0455_f010.png | Bin .../sa1/obj_tiles/4bpp/a0455_f011.png | Bin .../sa1/obj_tiles/4bpp/a0455_f012.png | Bin .../sa1/obj_tiles/4bpp/a0455_f013.png | Bin .../sa1/obj_tiles/4bpp/a0455_f014.png | Bin .../sa1/obj_tiles/4bpp/a0455_f015.png | Bin .../sa1/obj_tiles/4bpp/a0455_f016.png | Bin .../sa1/obj_tiles/4bpp/a0455_f017.png | Bin .../sa1/obj_tiles/4bpp/a0455_f018.png | Bin .../sa1/obj_tiles/4bpp/a0455_f019.png | Bin .../sa1/obj_tiles/4bpp/a0456_f000.png | Bin .../sa1/obj_tiles/4bpp/a0457_f000.png | Bin .../sa1/obj_tiles/4bpp/a0457_f001.png | Bin .../sa1/obj_tiles/4bpp/a0457_f002.png | Bin .../sa1/obj_tiles/4bpp/a0457_f003.png | Bin .../sa1/obj_tiles/4bpp/a0458_f000.png | Bin .../sa1/obj_tiles/4bpp/a0459_f000.png | Bin .../sa1/obj_tiles/4bpp/a0460_f000.png | Bin .../sa1/obj_tiles/4bpp/a0461_f000.png | Bin .../sa1/obj_tiles/4bpp/a0461_f001.png | Bin .../sa1/obj_tiles/4bpp/a0461_f002.png | Bin .../sa1/obj_tiles/4bpp/a0461_f003.png | Bin .../sa1/obj_tiles/4bpp/a0461_f004.png | Bin .../sa1/obj_tiles/4bpp/a0461_f005.png | Bin .../sa1/obj_tiles/4bpp/a0461_f006.png | Bin .../sa1/obj_tiles/4bpp/a0462_f000.png | Bin .../sa1/obj_tiles/4bpp/a0463_f000.png | Bin .../sa1/obj_tiles/4bpp/a0464_f000.png | Bin .../sa1/obj_tiles/4bpp/a0464_f001.png | Bin .../sa1/obj_tiles/4bpp/a0464_f002.png | Bin .../sa1/obj_tiles/4bpp/a0465_f000.png | Bin .../sa1/obj_tiles/4bpp/a0465_f001.png | Bin .../sa1/obj_tiles/4bpp/a0465_f002.png | Bin .../sa1/obj_tiles/4bpp/a0465_f003.png | Bin .../sa1/obj_tiles/4bpp/a0465_f004.png | Bin .../sa1/obj_tiles/4bpp/a0465_f005.png | Bin .../sa1/obj_tiles/4bpp/a0465_f006.png | Bin .../sa1/obj_tiles/4bpp/a0465_f007.png | Bin .../sa1/obj_tiles/4bpp/a0465_f008.png | Bin .../sa1/obj_tiles/4bpp/a0466_f000.png | Bin .../sa1/obj_tiles/4bpp/a0467_f000.png | Bin .../sa1/obj_tiles/4bpp/a0467_f001.png | Bin .../sa1/obj_tiles/4bpp/a0467_f002.png | Bin .../sa1/obj_tiles/4bpp/a0467_f003.png | Bin .../sa1/obj_tiles/4bpp/a0467_f004.png | Bin .../sa1/obj_tiles/4bpp/a0467_f005.png | Bin .../sa1/obj_tiles/4bpp/a0467_f006.png | Bin .../sa1/obj_tiles/4bpp/a0468_f000.png | Bin .../sa1/obj_tiles/4bpp/a0468_f001.png | Bin .../sa1/obj_tiles/4bpp/a0468_f002.png | Bin .../sa1/obj_tiles/4bpp/a0468_f003.png | Bin .../sa1/obj_tiles/4bpp/a0468_f004.png | Bin .../sa1/obj_tiles/4bpp/a0469_f000.png | Bin .../sa1/obj_tiles/4bpp/a0469_f001.png | Bin .../sa1/obj_tiles/4bpp/a0469_f002.png | Bin .../sa1/obj_tiles/4bpp/a0469_f003.png | Bin .../sa1/obj_tiles/4bpp/a0469_f004.png | Bin .../sa1/obj_tiles/4bpp/a0469_f005.png | Bin .../sa1/obj_tiles/4bpp/a0470_f000.png | Bin .../sa1/obj_tiles/4bpp/a0470_f001.png | Bin .../sa1/obj_tiles/4bpp/a0470_f002.png | Bin .../sa1/obj_tiles/4bpp/a0470_f003.png | Bin .../sa1/obj_tiles/4bpp/a0470_f004.png | Bin .../sa1/obj_tiles/4bpp/a0471_f000.png | Bin .../sa1/obj_tiles/4bpp/a0471_f001.png | Bin .../sa1/obj_tiles/4bpp/a0471_f002.png | Bin .../sa1/obj_tiles/4bpp/a0471_f003.png | Bin .../sa1/obj_tiles/4bpp/a0471_f004.png | Bin .../sa1/obj_tiles/4bpp/a0471_f005.png | Bin .../sa1/obj_tiles/4bpp/a0471_f006.png | Bin .../sa1/obj_tiles/4bpp/a0471_f007.png | Bin .../sa1/obj_tiles/4bpp/a0471_f008.png | Bin .../sa1/obj_tiles/4bpp/a0472_f000.png | Bin .../sa1/obj_tiles/4bpp/a0472_f001.png | Bin .../sa1/obj_tiles/4bpp/a0472_f002.png | Bin .../sa1/obj_tiles/4bpp/a0473_f000.png | Bin .../sa1/obj_tiles/4bpp/a0473_f001.png | Bin .../sa1/obj_tiles/4bpp/a0473_f002.png | Bin .../sa1/obj_tiles/4bpp/a0474_f000.png | Bin .../sa1/obj_tiles/4bpp/a0474_f001.png | Bin .../sa1/obj_tiles/4bpp/a0474_f002.png | Bin .../sa1/obj_tiles/4bpp/a0475_f000.png | Bin .../sa1/obj_tiles/4bpp/a0476_f000.png | Bin .../sa1/obj_tiles/4bpp/a0477_f000.png | Bin .../sa1/obj_tiles/4bpp/a0478_f000.png | Bin .../sa1/obj_tiles/4bpp/a0478_f001.png | Bin .../sa1/obj_tiles/4bpp/a0478_f002.png | Bin .../sa1/obj_tiles/4bpp/a0478_f003.png | Bin .../sa1/obj_tiles/4bpp/a0478_f004.png | Bin .../sa1/obj_tiles/4bpp/a0478_f005.png | Bin .../sa1/obj_tiles/4bpp/a0479_f000.png | Bin .../sa1/obj_tiles/4bpp/a0479_f001.png | Bin .../sa1/obj_tiles/4bpp/a0479_f002.png | Bin .../sa1/obj_tiles/4bpp/a0479_f003.png | Bin .../sa1/obj_tiles/4bpp/a0479_f004.png | Bin .../sa1/obj_tiles/4bpp/a0479_f005.png | Bin .../sa1/obj_tiles/4bpp/a0479_f006.png | Bin .../sa1/obj_tiles/4bpp/a0479_f007.png | Bin .../sa1/obj_tiles/4bpp/a0479_f008.png | Bin .../sa1/obj_tiles/4bpp/a0480_f000.png | Bin .../sa1/obj_tiles/4bpp/a0480_f001.png | Bin .../sa1/obj_tiles/4bpp/a0480_f002.png | Bin .../sa1/obj_tiles/4bpp/a0480_f003.png | Bin .../sa1/obj_tiles/4bpp/a0480_f004.png | Bin .../sa1/obj_tiles/4bpp/a0480_f005.png | Bin .../sa1/obj_tiles/4bpp/a0480_f006.png | Bin .../sa1/obj_tiles/4bpp/a0480_f007.png | Bin .../sa1/obj_tiles/4bpp/a0480_f008.png | Bin .../sa1/obj_tiles/4bpp/a0481_f000.png | Bin .../sa1/obj_tiles/4bpp/a0481_f001.png | Bin .../sa1/obj_tiles/4bpp/a0481_f002.png | Bin .../sa1/obj_tiles/4bpp/a0481_f003.png | Bin .../sa1/obj_tiles/4bpp/a0481_f004.png | Bin .../sa1/obj_tiles/4bpp/a0481_f005.png | Bin .../sa1/obj_tiles/4bpp/a0481_f006.png | Bin .../sa1/obj_tiles/4bpp/a0481_f007.png | Bin .../sa1/obj_tiles/4bpp/a0481_f008.png | Bin .../sa1/obj_tiles/4bpp/a0482_f000.png | Bin .../sa1/obj_tiles/4bpp/a0482_f001.png | Bin .../sa1/obj_tiles/4bpp/a0482_f002.png | Bin .../sa1/obj_tiles/4bpp/a0482_f003.png | Bin .../sa1/obj_tiles/4bpp/a0482_f004.png | Bin .../sa1/obj_tiles/4bpp/a0483_f000.png | Bin .../sa1/obj_tiles/4bpp/a0483_f001.png | Bin .../sa1/obj_tiles/4bpp/a0483_f002.png | Bin .../sa1/obj_tiles/4bpp/a0483_f003.png | Bin .../sa1/obj_tiles/4bpp/a0483_f004.png | Bin .../sa1/obj_tiles/4bpp/a0484_f000.png | Bin .../sa1/obj_tiles/4bpp/a0485_f000.png | Bin .../sa1/obj_tiles/4bpp/a0486_f000.png | Bin .../sa1/obj_tiles/4bpp/a0486_f001.png | Bin .../sa1/obj_tiles/4bpp/a0487_f000.png | Bin .../sa1/obj_tiles/4bpp/a0487_f001.png | Bin .../sa1/obj_tiles/4bpp/a0488_f000.png | Bin .../sa1/obj_tiles/4bpp/a0489_f000.png | Bin .../sa1/obj_tiles/4bpp/a0490_f000.png | Bin .../sa1/obj_tiles/4bpp/a0491_f000.png | Bin .../sa1/obj_tiles/4bpp/a0492_f000.png | Bin .../sa1/obj_tiles/4bpp/a0492_f001.png | Bin .../sa1/obj_tiles/4bpp/a0492_f002.png | Bin .../sa1/obj_tiles/4bpp/a0492_f003.png | Bin .../sa1/obj_tiles/4bpp/a0492_f004.png | Bin .../sa1/obj_tiles/4bpp/a0492_f005.png | Bin .../sa1/obj_tiles/4bpp/a0492_f006.png | Bin .../sa1/obj_tiles/4bpp/a0492_f007.png | Bin .../sa1/obj_tiles/4bpp/a0492_f008.png | Bin .../sa1/obj_tiles/4bpp/a0492_f009.png | Bin .../sa1/obj_tiles/4bpp/a0492_f010.png | Bin .../sa1/obj_tiles/4bpp/a0492_f011.png | Bin .../sa1/obj_tiles/4bpp/a0492_f012.png | Bin .../sa1/obj_tiles/4bpp/a0492_f013.png | Bin .../sa1/obj_tiles/4bpp/a0492_f014.png | Bin .../sa1/obj_tiles/4bpp/a0492_f015.png | Bin .../sa1/obj_tiles/4bpp/a0492_f016.png | Bin .../sa1/obj_tiles/4bpp/a0492_f017.png | Bin .../sa1/obj_tiles/4bpp/a0492_f018.png | Bin .../sa1/obj_tiles/4bpp/a0492_f019.png | Bin .../sa1/obj_tiles/4bpp/a0492_f020.png | Bin .../sa1/obj_tiles/4bpp/a0492_f021.png | Bin .../sa1/obj_tiles/4bpp/a0492_f022.png | Bin .../sa1/obj_tiles/4bpp/a0492_f023.png | Bin .../sa1/obj_tiles/4bpp/a0492_f024.png | Bin .../sa1/obj_tiles/4bpp/a0492_f025.png | Bin .../sa1/obj_tiles/4bpp/a0492_f026.png | Bin .../sa1/obj_tiles/4bpp/a0492_f027.png | Bin .../sa1/obj_tiles/4bpp/a0492_f028.png | Bin .../sa1/obj_tiles/4bpp/a0492_f029.png | Bin .../sa1/obj_tiles/4bpp/a0492_f030.png | Bin .../sa1/obj_tiles/4bpp/a0492_f031.png | Bin .../sa1/obj_tiles/4bpp/a0492_f032.png | Bin .../sa1/obj_tiles/4bpp/a0492_f033.png | Bin .../sa1/obj_tiles/4bpp/a0492_f034.png | Bin .../sa1/obj_tiles/4bpp/a0492_f035.png | Bin .../sa1/obj_tiles/4bpp/a0492_f036.png | Bin .../sa1/obj_tiles/4bpp/a0492_f037.png | Bin .../sa1/obj_tiles/4bpp/a0492_f038.png | Bin .../sa1/obj_tiles/4bpp/a0492_f039.png | Bin .../sa1/obj_tiles/4bpp/a0493_f000.png | Bin .../sa1/obj_tiles/4bpp/a0494_f000.png | Bin .../sa1/obj_tiles/4bpp/a0495_f000.png | Bin .../sa1/obj_tiles/4bpp/a0496_f000.png | Bin .../sa1/obj_tiles/4bpp/a0496_f001.png | Bin .../sa1/obj_tiles/4bpp/a0496_f002.png | Bin .../sa1/obj_tiles/4bpp/a0496_f003.png | Bin .../sa1/obj_tiles/4bpp/a0496_f004.png | Bin .../sa1/obj_tiles/4bpp/a0496_f005.png | Bin .../sa1/obj_tiles/4bpp/a0497_f000.png | Bin .../sa1/obj_tiles/4bpp/a0497_f001.png | Bin .../sa1/obj_tiles/4bpp/a0497_f002.png | Bin .../sa1/obj_tiles/4bpp/a0497_f003.png | Bin .../sa1/obj_tiles/4bpp/a0497_f004.png | Bin .../sa1/obj_tiles/4bpp/a0497_f005.png | Bin .../sa1/obj_tiles/4bpp/a0498_f000.png | Bin .../sa1/obj_tiles/4bpp/a0498_f001.png | Bin .../sa1/obj_tiles/4bpp/a0498_f002.png | Bin .../sa1/obj_tiles/4bpp/a0498_f003.png | Bin .../sa1/obj_tiles/4bpp/a0499_f000.png | Bin .../sa1/obj_tiles/4bpp/a0501_f000.png | Bin .../sa1/obj_tiles/4bpp/a0501_f001.png | Bin .../sa1/obj_tiles/4bpp/a0501_f002.png | Bin .../sa1/obj_tiles/4bpp/a0501_f003.png | Bin .../sa1/obj_tiles/4bpp/a0501_f004.png | Bin .../sa1/obj_tiles/4bpp/a0501_f005.png | Bin .../sa1/obj_tiles/4bpp/a0501_f006.png | Bin .../sa1/obj_tiles/4bpp/a0502_f000.png | Bin .../sa1/obj_tiles/4bpp/a0503_f000.png | Bin .../sa1/obj_tiles/4bpp/a0503_f001.png | Bin .../sa1/obj_tiles/4bpp/a0503_f002.png | Bin .../sa1/obj_tiles/4bpp/a0504_f000.png | Bin .../sa1/obj_tiles/4bpp/a0504_f001.png | Bin .../sa1/obj_tiles/4bpp/a0505_f000.png | Bin .../sa1/obj_tiles/4bpp/a0505_f001.png | Bin .../sa1/obj_tiles/4bpp/a0505_f002.png | Bin .../sa1/obj_tiles/4bpp/a0505_f003.png | Bin .../sa1/obj_tiles/4bpp/a0505_f004.png | Bin .../sa1/obj_tiles/4bpp/a0505_f005.png | Bin .../sa1/obj_tiles/4bpp/a0505_f006.png | Bin .../sa1/obj_tiles/4bpp/a0506_f000.png | Bin .../sa1/obj_tiles/4bpp/a0507_f000.png | Bin .../sa1/obj_tiles/4bpp/a0508_f000.png | Bin .../sa1/obj_tiles/4bpp/a0508_f001.png | Bin .../sa1/obj_tiles/4bpp/a0508_f002.png | Bin .../sa1/obj_tiles/4bpp/a0508_f003.png | Bin .../sa1/obj_tiles/4bpp/a0509_f000.png | Bin .../sa1/obj_tiles/4bpp/a0509_f001.png | Bin .../sa1/obj_tiles/4bpp/a0509_f002.png | Bin .../sa1/obj_tiles/4bpp/a0509_f003.png | Bin .../sa1/obj_tiles/4bpp/a0510_f000.png | Bin .../sa1/obj_tiles/4bpp/a0511_f000.png | Bin .../sa1/obj_tiles/4bpp/a0511_f001.png | Bin .../sa1/obj_tiles/4bpp/a0511_f002.png | Bin .../sa1/obj_tiles/4bpp/a0512_f000.png | Bin .../sa1/obj_tiles/4bpp/a0512_f001.png | Bin .../sa1/obj_tiles/4bpp/a0512_f002.png | Bin .../sa1/obj_tiles/4bpp/a0513_f000.png | Bin .../sa1/obj_tiles/4bpp/a0514_f000.png | Bin .../sa1/obj_tiles/4bpp/a0514_f001.png | Bin .../sa1/obj_tiles/4bpp/a0515_f000.png | Bin .../sa1/obj_tiles/4bpp/a0515_f001.png | Bin .../sa1/obj_tiles/4bpp/a0515_f002.png | Bin .../sa1/obj_tiles/4bpp/a0515_f003.png | Bin .../sa1/obj_tiles/4bpp/a0516_f000.png | Bin .../sa1/obj_tiles/4bpp/a0516_f001.png | Bin .../sa1/obj_tiles/4bpp/a0516_f002.png | Bin .../sa1/obj_tiles/4bpp/a0516_f003.png | Bin .../sa1/obj_tiles/4bpp/a0516_f004.png | Bin .../sa1/obj_tiles/4bpp/a0516_f005.png | Bin .../sa1/obj_tiles/4bpp/a0516_f006.png | Bin .../sa1/obj_tiles/4bpp/a0516_f007.png | Bin .../sa1/obj_tiles/4bpp/a0517_f000.png | Bin .../sa1/obj_tiles/4bpp/a0518_f000.png | Bin .../sa1/obj_tiles/4bpp/a0519_f000.png | Bin .../sa1/obj_tiles/4bpp/a0520_f000.png | Bin .../sa1/obj_tiles/4bpp/a0521_f000.png | Bin .../sa1/obj_tiles/4bpp/a0522_f000.png | Bin .../sa1/obj_tiles/4bpp/a0522_f001.png | Bin .../sa1/obj_tiles/4bpp/a0522_f002.png | Bin .../sa1/obj_tiles/4bpp/a0522_f003.png | Bin .../sa1/obj_tiles/4bpp/a0523_f000.png | Bin .../sa1/obj_tiles/4bpp/a0524_f000.png | Bin .../sa1/obj_tiles/4bpp/a0525_f000.png | Bin .../sa1/obj_tiles/4bpp/a0526_f000.png | Bin .../sa1/obj_tiles/4bpp/a0526_f001.png | Bin .../sa1/obj_tiles/4bpp/a0526_f002.png | Bin .../sa1/obj_tiles/4bpp/a0526_f003.png | Bin .../sa1/obj_tiles/4bpp/a0526_f004.png | Bin .../sa1/obj_tiles/4bpp/a0527_f000.png | Bin .../sa1/obj_tiles/4bpp/a0528_f000.png | Bin .../sa1/obj_tiles/4bpp/a0529_f000.png | Bin .../sa1/obj_tiles/4bpp/a0530_f000.png | Bin .../sa1/obj_tiles/4bpp/a0531_f000.png | Bin .../sa1/obj_tiles/4bpp/a0532_f000.png | Bin .../sa1/obj_tiles/4bpp/a0532_f001.png | Bin .../sa1/obj_tiles/4bpp/a0532_f002.png | Bin .../sa1/obj_tiles/4bpp/a0532_f003.png | Bin .../sa1/obj_tiles/4bpp/a0532_f004.png | Bin .../sa1/obj_tiles/4bpp/a0532_f005.png | Bin .../sa1/obj_tiles/4bpp/a0532_f006.png | Bin .../sa1/obj_tiles/4bpp/a0533_f000.png | Bin .../sa1/obj_tiles/4bpp/a0533_f001.png | Bin .../sa1/obj_tiles/4bpp/a0534_f000.png | Bin .../sa1/obj_tiles/4bpp/a0535_f000.png | Bin .../sa1/obj_tiles/4bpp/a0536_f000.png | Bin .../sa1/obj_tiles/4bpp/a0537_f000.png | Bin .../sa1/obj_tiles/4bpp/a0538_f000.png | Bin .../sa1/obj_tiles/4bpp/a0539_f000.png | Bin .../sa1/obj_tiles/4bpp/a0540_f000.png | Bin .../sa1/obj_tiles/4bpp/a0540_f001.png | Bin .../sa1/obj_tiles/4bpp/a0540_f002.png | Bin .../sa1/obj_tiles/4bpp/a0540_f003.png | Bin .../sa1/obj_tiles/4bpp/a0540_f004.png | Bin .../sa1/obj_tiles/4bpp/a0541_f000.png | Bin .../sa1/obj_tiles/4bpp/a0542_f000.png | Bin .../sa1/obj_tiles/4bpp/a0542_f001.png | Bin .../sa1/obj_tiles/4bpp/a0542_f002.png | Bin .../sa1/obj_tiles/4bpp/a0542_f003.png | Bin .../sa1/obj_tiles/4bpp/a0543_f000.png | Bin .../sa1/obj_tiles/4bpp/a0544_f000.png | Bin .../sa1/obj_tiles/4bpp/a0545_f000.png | Bin .../sa1/obj_tiles/4bpp/a0545_f001.png | Bin .../sa1/obj_tiles/4bpp/a0546_f000.png | Bin .../sa1/obj_tiles/4bpp/a0546_f001.png | Bin .../sa1/obj_tiles/4bpp/a0547_f000.png | Bin .../sa1/obj_tiles/4bpp/a0548_f000.png | Bin .../sa1/obj_tiles/4bpp/a0549_f000.png | Bin .../sa1/obj_tiles/4bpp/a0550_f000.png | Bin .../sa1/obj_tiles/4bpp/a0551_f000.png | Bin .../sa1/obj_tiles/4bpp/a0552_f000.png | Bin .../sa1/obj_tiles/4bpp/a0552_f001.png | Bin .../sa1/obj_tiles/4bpp/a0552_f002.png | Bin .../sa1/obj_tiles/4bpp/a0553_f000.png | Bin .../sa1/obj_tiles/4bpp/a0554_f000.png | Bin .../sa1/obj_tiles/4bpp/a0555_f000.png | Bin .../sa1/obj_tiles/4bpp/a0556_f000.png | Bin .../sa1/obj_tiles/4bpp/a0557_f000.png | Bin .../sa1/obj_tiles/4bpp/a0558_f000.png | Bin .../sa1/obj_tiles/4bpp/a0558_f001.png | Bin .../sa1/obj_tiles/4bpp/a0558_f002.png | Bin .../sa1/obj_tiles/4bpp/a0558_f003.png | Bin .../sa1/obj_tiles/4bpp/a0559_f000.png | Bin .../sa1/obj_tiles/4bpp/a0560_f000.png | Bin .../sa1/obj_tiles/4bpp/a0560_f001.png | Bin .../sa1/obj_tiles/4bpp/a0561_f000.png | Bin .../sa1/obj_tiles/4bpp/a0561_f001.png | Bin .../sa1/obj_tiles/4bpp/a0561_f002.png | Bin .../sa1/obj_tiles/4bpp/a0562_f000.png | Bin .../sa1/obj_tiles/4bpp/a0562_f001.png | Bin .../sa1/obj_tiles/4bpp/a0562_f002.png | Bin .../sa1/obj_tiles/4bpp/a0563_f000.png | Bin .../sa1/obj_tiles/4bpp/a0563_f001.png | Bin .../sa1/obj_tiles/4bpp/a0563_f002.png | Bin .../sa1/obj_tiles/4bpp/a0564_f000.png | Bin .../sa1/obj_tiles/4bpp/a0564_f001.png | Bin .../sa1/obj_tiles/4bpp/a0564_f002.png | Bin .../sa1/obj_tiles/4bpp/a0564_f003.png | Bin .../sa1/obj_tiles/4bpp/a0564_f004.png | Bin .../sa1/obj_tiles/4bpp/a0564_f005.png | Bin .../sa1/obj_tiles/4bpp/a0564_f006.png | Bin .../sa1/obj_tiles/4bpp/a0564_f007.png | Bin .../sa1/obj_tiles/4bpp/a0565_f000.png | Bin .../sa1/obj_tiles/4bpp/a0565_f001.png | Bin .../sa1/obj_tiles/4bpp/a0565_f002.png | Bin .../sa1/obj_tiles/4bpp/a0565_f003.png | Bin .../sa1/obj_tiles/4bpp/a0565_f004.png | Bin .../sa1/obj_tiles/4bpp/a0565_f005.png | Bin .../sa1/obj_tiles/4bpp/a0565_f006.png | Bin .../sa1/obj_tiles/4bpp/a0565_f007.png | Bin .../sa1/obj_tiles/4bpp/a0566_f000.png | Bin .../sa1/obj_tiles/4bpp/a0566_f001.png | Bin .../sa1/obj_tiles/4bpp/a0566_f002.png | Bin .../sa1/obj_tiles/4bpp/a0566_f003.png | Bin .../sa1/obj_tiles/4bpp/a0566_f004.png | Bin .../sa1/obj_tiles/4bpp/a0566_f005.png | Bin .../sa1/obj_tiles/4bpp/a0566_f006.png | Bin .../sa1/obj_tiles/4bpp/a0566_f007.png | Bin .../sa1/obj_tiles/4bpp/a0567_f000.png | Bin .../sa1/obj_tiles/4bpp/a0567_f001.png | Bin .../sa1/obj_tiles/4bpp/a0567_f002.png | Bin .../sa1/obj_tiles/4bpp/a0567_f003.png | Bin .../sa1/obj_tiles/4bpp/a0567_f004.png | Bin .../sa1/obj_tiles/4bpp/a0567_f005.png | Bin .../sa1/obj_tiles/4bpp/a0567_f006.png | Bin .../sa1/obj_tiles/4bpp/a0567_f007.png | Bin .../sa1/obj_tiles/4bpp/a0567_f008.png | Bin .../sa1/obj_tiles/4bpp/a0567_f009.png | Bin .../sa1/obj_tiles/4bpp/a0568_f000.png | Bin .../sa1/obj_tiles/4bpp/a0568_f001.png | Bin .../sa1/obj_tiles/4bpp/a0568_f002.png | Bin .../sa1/obj_tiles/4bpp/a0569_f000.png | Bin .../sa1/obj_tiles/4bpp/a0570_f000.png | Bin .../sa1/obj_tiles/4bpp/a0570_f001.png | Bin .../sa1/obj_tiles/4bpp/a0570_f002.png | Bin .../sa1/obj_tiles/4bpp/a0571_f000.png | Bin .../sa1/obj_tiles/4bpp/a0571_f001.png | Bin .../sa1/obj_tiles/4bpp/a0571_f002.png | Bin .../sa1/obj_tiles/4bpp/a0572_f000.png | Bin .../sa1/obj_tiles/4bpp/a0572_f001.png | Bin .../sa1/obj_tiles/4bpp/a0572_f002.png | Bin .../sa1/obj_tiles/4bpp/a0572_f003.png | Bin .../sa1/obj_tiles/4bpp/a0572_f004.png | Bin .../sa1/obj_tiles/4bpp/a0573_f000.png | Bin .../sa1/obj_tiles/4bpp/a0574_f000.png | Bin .../sa1/obj_tiles/4bpp/a0575_f000.png | Bin .../sa1/obj_tiles/4bpp/a0575_f001.png | Bin .../sa1/obj_tiles/4bpp/a0575_f002.png | Bin .../sa1/obj_tiles/4bpp/a0576_f000.png | Bin .../sa1/obj_tiles/4bpp/a0577_f000.png | Bin .../sa1/obj_tiles/4bpp/a0578_f000.png | Bin .../sa1/obj_tiles/4bpp/a0579_f000.png | Bin .../sa1/obj_tiles/4bpp/a0580_f000.png | Bin .../sa1/obj_tiles/4bpp/a0581_f000.png | Bin .../sa1/obj_tiles/4bpp/a0581_f001.png | Bin .../sa1/obj_tiles/4bpp/a0581_f002.png | Bin .../sa1/obj_tiles/4bpp/a0581_f003.png | Bin .../sa1/obj_tiles/4bpp/a0582_f000.png | Bin .../sa1/obj_tiles/4bpp/a0582_f001.png | Bin .../sa1/obj_tiles/4bpp/a0582_f002.png | Bin .../sa1/obj_tiles/4bpp/a0582_f003.png | Bin .../sa1/obj_tiles/4bpp/a0582_f004.png | Bin .../sa1/obj_tiles/4bpp/a0583_f000.png | Bin .../sa1/obj_tiles/4bpp/a0584_f000.png | Bin .../sa1/obj_tiles/4bpp/a0584_f001.png | Bin .../sa1/obj_tiles/4bpp/a0584_f002.png | Bin .../sa1/obj_tiles/4bpp/a0584_f003.png | Bin .../sa1/obj_tiles/4bpp/a0585_f000.png | Bin .../sa1/obj_tiles/4bpp/a0585_f001.png | Bin .../sa1/obj_tiles/4bpp/a0585_f002.png | Bin .../sa1/obj_tiles/4bpp/a0585_f003.png | Bin .../sa1/obj_tiles/4bpp/a0586_f000.png | Bin .../sa1/obj_tiles/4bpp/a0586_f001.png | Bin .../sa1/obj_tiles/4bpp/a0586_f002.png | Bin .../sa1/obj_tiles/4bpp/a0586_f003.png | Bin .../sa1/obj_tiles/4bpp/a0587_f000.png | Bin .../sa1/obj_tiles/4bpp/a0587_f001.png | Bin .../sa1/obj_tiles/4bpp/a0587_f002.png | Bin .../sa1/obj_tiles/4bpp/a0587_f003.png | Bin .../sa1/obj_tiles/4bpp/a0588_f000.png | Bin .../sa1/obj_tiles/4bpp/a0588_f001.png | Bin .../sa1/obj_tiles/4bpp/a0588_f002.png | Bin .../sa1/obj_tiles/4bpp/a0588_f003.png | Bin .../sa1/obj_tiles/4bpp/a0588_f004.png | Bin .../sa1/obj_tiles/4bpp/a0588_f005.png | Bin .../sa1/obj_tiles/4bpp/a0589_f000.png | Bin .../sa1/obj_tiles/4bpp/a0589_f001.png | Bin .../sa1/obj_tiles/4bpp/a0589_f002.png | Bin .../sa1/obj_tiles/4bpp/a0589_f003.png | Bin .../sa1/obj_tiles/4bpp/a0589_f004.png | Bin .../sa1/obj_tiles/4bpp/a0589_f005.png | Bin .../sa1/obj_tiles/4bpp/a0590_f000.png | Bin .../sa1/obj_tiles/4bpp/a0590_f001.png | Bin .../sa1/obj_tiles/4bpp/a0590_f002.png | Bin .../sa1/obj_tiles/4bpp/a0590_f003.png | Bin .../sa1/obj_tiles/4bpp/a0590_f004.png | Bin .../sa1/obj_tiles/4bpp/a0590_f005.png | Bin .../sa1/obj_tiles/4bpp/a0590_f006.png | Bin .../sa1/obj_tiles/4bpp/a0590_f007.png | Bin .../sa1/obj_tiles/4bpp/a0591_f000.png | Bin .../sa1/obj_tiles/4bpp/a0591_f001.png | Bin .../sa1/obj_tiles/4bpp/a0591_f002.png | Bin .../sa1/obj_tiles/4bpp/a0591_f003.png | Bin .../sa1/obj_tiles/4bpp/a0591_f004.png | Bin .../sa1/obj_tiles/4bpp/a0591_f005.png | Bin .../sa1/obj_tiles/4bpp/a0591_f006.png | Bin .../sa1/obj_tiles/4bpp/a0591_f007.png | Bin .../sa1/obj_tiles/4bpp/a0592_f000.png | Bin .../sa1/obj_tiles/4bpp/a0593_f000.png | Bin .../sa1/obj_tiles/4bpp/a0593_f001.png | Bin .../sa1/obj_tiles/4bpp/a0593_f002.png | Bin .../sa1/obj_tiles/4bpp/a0593_f003.png | Bin .../sa1/obj_tiles/4bpp/a0594_f000.png | Bin .../sa1/obj_tiles/4bpp/a0595_f000.png | Bin .../sa1/obj_tiles/4bpp/a0596_f000.png | Bin .../sa1/obj_tiles/4bpp/a0597_f000.png | Bin .../sa1/obj_tiles/4bpp/a0597_f001.png | Bin .../sa1/obj_tiles/4bpp/a0597_f002.png | Bin .../sa1/obj_tiles/4bpp/a0597_f003.png | Bin .../sa1/obj_tiles/4bpp/a0598_f000.png | Bin .../sa1/obj_tiles/4bpp/a0599_f000.png | Bin .../sa1/obj_tiles/4bpp/a0600_f000.png | Bin .../sa1/obj_tiles/4bpp/a0601_f000.png | Bin .../sa1/obj_tiles/4bpp/a0602_f000.png | Bin .../sa1/obj_tiles/4bpp/a0603_f000.png | Bin .../sa1/obj_tiles/4bpp/a0603_f001.png | Bin .../sa1/obj_tiles/4bpp/a0603_f002.png | Bin .../sa1/obj_tiles/4bpp/a0603_f003.png | Bin .../sa1/obj_tiles/4bpp/a0604_f000.png | Bin .../sa1/obj_tiles/4bpp/a0604_f001.png | Bin .../sa1/obj_tiles/4bpp/a0604_f002.png | Bin .../sa1/obj_tiles/4bpp/a0604_f003.png | Bin .../sa1/obj_tiles/4bpp/a0605_f000.png | Bin .../sa1/obj_tiles/4bpp/a0606_f000.png | Bin .../sa1/obj_tiles/4bpp/a0607_f000.png | Bin .../sa1/obj_tiles/4bpp/a0607_f001.png | Bin .../sa1/obj_tiles/4bpp/a0607_f002.png | Bin .../sa1/obj_tiles/4bpp/a0608_f000.png | Bin .../sa1/obj_tiles/4bpp/a0609_f000.png | Bin .../sa1/obj_tiles/4bpp/a0610_f000.png | Bin .../sa1/obj_tiles/4bpp/a0610_f001.png | Bin .../sa1/obj_tiles/4bpp/a0610_f002.png | Bin .../sa1/obj_tiles/4bpp/a0610_f003.png | Bin .../sa1/obj_tiles/4bpp/a0610_f004.png | Bin .../sa1/obj_tiles/4bpp/a0611_f000.png | Bin .../sa1/obj_tiles/4bpp/a0611_f001.png | Bin .../sa1/obj_tiles/4bpp/a0611_f002.png | Bin .../sa1/obj_tiles/4bpp/a0611_f003.png | Bin .../sa1/obj_tiles/4bpp/a0611_f004.png | Bin .../sa1/obj_tiles/4bpp/a0612_f000.png | Bin .../sa1/obj_tiles/4bpp/a0613_f000.png | Bin .../sa1/obj_tiles/4bpp/a0614_f000.png | Bin .../sa1/obj_tiles/4bpp/a0615_f000.png | Bin .../sa1/obj_tiles/4bpp/a0616_f000.png | Bin .../sa1/obj_tiles/4bpp/a0617_f000.png | Bin .../sa1/obj_tiles/4bpp/a0618_f000.png | Bin .../sa1/obj_tiles/4bpp/a0618_f001.png | Bin .../sa1/obj_tiles/4bpp/a0618_f002.png | Bin .../sa1/obj_tiles/4bpp/a0618_f003.png | Bin .../sa1/obj_tiles/4bpp/a0618_f004.png | Bin .../sa1/obj_tiles/4bpp/a0619_f000.png | Bin .../sa1/obj_tiles/4bpp/a0620_f000.png | Bin .../sa1/obj_tiles/4bpp/a0620_f001.png | Bin .../sa1/obj_tiles/4bpp/a0620_f002.png | Bin .../sa1/obj_tiles/4bpp/a0620_f003.png | Bin .../sa1/obj_tiles/4bpp/a0620_f004.png | Bin .../sa1/obj_tiles/4bpp/a0620_f005.png | Bin .../sa1/obj_tiles/4bpp/a0621_f000.png | Bin .../sa1/obj_tiles/4bpp/a0622_f000.png | Bin .../sa1/obj_tiles/4bpp/a0622_f001.png | Bin .../sa1/obj_tiles/4bpp/a0622_f002.png | Bin .../sa1/obj_tiles/4bpp/a0622_f003.png | Bin .../sa1/obj_tiles/4bpp/a0622_f004.png | Bin .../sa1/obj_tiles/4bpp/a0623_f000.png | Bin .../sa1/obj_tiles/4bpp/a0624_f000.png | Bin .../sa1/obj_tiles/4bpp/a0624_f001.png | Bin .../sa1/obj_tiles/4bpp/a0624_f002.png | Bin .../sa1/obj_tiles/4bpp/a0624_f003.png | Bin .../sa1/obj_tiles/4bpp/a0625_f000.png | Bin .../sa1/obj_tiles/4bpp/a0625_f001.png | Bin .../sa1/obj_tiles/4bpp/a0626_f000.png | Bin .../sa1/obj_tiles/4bpp/a0627_f000.png | Bin .../sa1/obj_tiles/4bpp/a0627_f001.png | Bin .../sa1/obj_tiles/4bpp/a0628_f000.png | Bin .../sa1/obj_tiles/4bpp/a0628_f001.png | Bin .../sa1/obj_tiles/4bpp/a0628_f002.png | Bin .../sa1/obj_tiles/4bpp/a0628_f003.png | Bin .../sa1/obj_tiles/4bpp/a0628_f004.png | Bin .../sa1/obj_tiles/4bpp/a0628_f005.png | Bin .../sa1/obj_tiles/4bpp/a0629_f000.png | Bin .../sa1/obj_tiles/4bpp/a0629_f001.png | Bin .../sa1/obj_tiles/4bpp/a0629_f002.png | Bin .../sa1/obj_tiles/4bpp/a0629_f003.png | Bin .../sa1/obj_tiles/4bpp/a0630_f000.png | Bin .../sa1/obj_tiles/4bpp/a0631_f000.png | Bin .../sa1/obj_tiles/4bpp/a0631_f001.png | Bin .../sa1/obj_tiles/4bpp/a0631_f002.png | Bin .../sa1/obj_tiles/4bpp/a0631_f003.png | Bin .../sa1/obj_tiles/4bpp/a0631_f004.png | Bin .../sa1/obj_tiles/4bpp/a0631_f005.png | Bin .../sa1/obj_tiles/4bpp/a0631_f006.png | Bin .../sa1/obj_tiles/4bpp/a0631_f007.png | Bin .../sa1/obj_tiles/4bpp/a0632_f000.png | Bin .../sa1/obj_tiles/4bpp/a0632_f001.png | Bin .../sa1/obj_tiles/4bpp/a0632_f002.png | Bin .../sa1/obj_tiles/4bpp/a0632_f003.png | Bin .../sa1/obj_tiles/4bpp/a0632_f004.png | Bin .../sa1/obj_tiles/4bpp/a0632_f005.png | Bin .../sa1/obj_tiles/4bpp/a0633_f000.png | Bin .../sa1/obj_tiles/4bpp/a0633_f001.png | Bin .../sa1/obj_tiles/4bpp/a0634_f000.png | Bin .../sa1/obj_tiles/4bpp/a0634_f001.png | Bin .../sa1/obj_tiles/4bpp/a0634_f002.png | Bin .../sa1/obj_tiles/4bpp/a0634_f003.png | Bin .../sa1/obj_tiles/4bpp/a0634_f004.png | Bin .../sa1/obj_tiles/4bpp/a0635_f000.png | Bin .../sa1/obj_tiles/4bpp/a0635_f001.png | Bin .../sa1/obj_tiles/4bpp/a0635_f002.png | Bin .../sa1/obj_tiles/4bpp/a0635_f003.png | Bin .../sa1/obj_tiles/4bpp/a0635_f004.png | Bin .../sa1/obj_tiles/4bpp/a0635_f005.png | Bin .../sa1/obj_tiles/4bpp/a0636_f000.png | Bin .../sa1/obj_tiles/4bpp/a0636_f001.png | Bin .../sa1/obj_tiles/4bpp/a0636_f002.png | Bin .../sa1/obj_tiles/4bpp/a0636_f003.png | Bin .../sa1/obj_tiles/4bpp/a0637_f000.png | Bin .../sa1/obj_tiles/4bpp/a0637_f001.png | Bin .../sa1/obj_tiles/4bpp/a0637_f002.png | Bin .../sa1/obj_tiles/4bpp/a0637_f003.png | Bin .../sa1/obj_tiles/4bpp/a0637_f004.png | Bin .../sa1/obj_tiles/4bpp/a0637_f005.png | Bin .../sa1/obj_tiles/4bpp/a0637_f006.png | Bin .../sa1/obj_tiles/4bpp/a0637_f007.png | Bin .../sa1/obj_tiles/4bpp/a0638_f000.png | Bin .../sa1/obj_tiles/4bpp/a0638_f001.png | Bin .../sa1/obj_tiles/4bpp/a0639_f000.png | Bin .../sa1/obj_tiles/4bpp/a0639_f001.png | Bin .../sa1/obj_tiles/4bpp/a0639_f002.png | Bin .../sa1/obj_tiles/4bpp/a0639_f003.png | Bin .../sa1/obj_tiles/4bpp/a0640_f000.png | Bin .../sa1/obj_tiles/4bpp/a0640_f001.png | Bin .../sa1/obj_tiles/4bpp/a0640_f002.png | Bin .../sa1/obj_tiles/4bpp/a0640_f003.png | Bin .../sa1/obj_tiles/4bpp/a0640_f004.png | Bin .../sa1/obj_tiles/4bpp/a0640_f005.png | Bin .../sa1/obj_tiles/4bpp/a0640_f006.png | Bin .../sa1/obj_tiles/4bpp/a0640_f007.png | Bin .../sa1/obj_tiles/4bpp/a0640_f008.png | Bin .../sa1/obj_tiles/4bpp/a0640_f009.png | Bin .../sa1/obj_tiles/4bpp/a0640_f010.png | Bin .../sa1/obj_tiles/4bpp/a0641_f000.png | Bin .../sa1/obj_tiles/4bpp/a0641_f001.png | Bin .../sa1/obj_tiles/4bpp/a0642_f000.png | Bin .../sa1/obj_tiles/4bpp/a0642_f001.png | Bin .../sa1/obj_tiles/4bpp/a0642_f002.png | Bin .../sa1/obj_tiles/4bpp/a0642_f003.png | Bin .../sa1/obj_tiles/4bpp/a0643_f000.png | Bin .../sa1/obj_tiles/4bpp/a0643_f001.png | Bin .../sa1/obj_tiles/4bpp/a0643_f002.png | Bin .../sa1/obj_tiles/4bpp/a0643_f003.png | Bin .../sa1/obj_tiles/4bpp/a0643_f004.png | Bin .../sa1/obj_tiles/4bpp/a0643_f005.png | Bin .../sa1/obj_tiles/4bpp/a0643_f006.png | Bin .../sa1/obj_tiles/4bpp/a0643_f007.png | Bin .../sa1/obj_tiles/4bpp/a0644_f000.png | Bin .../sa1/obj_tiles/4bpp/a0644_f001.png | Bin .../sa1/obj_tiles/4bpp/a0644_f002.png | Bin .../sa1/obj_tiles/4bpp/a0644_f003.png | Bin .../sa1/obj_tiles/4bpp/a0644_f004.png | Bin .../sa1/obj_tiles/4bpp/a0644_f005.png | Bin .../sa1/obj_tiles/4bpp/a0645_f000.png | Bin .../sa1/obj_tiles/4bpp/a0645_f001.png | Bin .../sa1/obj_tiles/4bpp/a0646_f000.png | Bin .../sa1/obj_tiles/4bpp/a0646_f001.png | Bin .../sa1/obj_tiles/4bpp/a0646_f002.png | Bin .../sa1/obj_tiles/4bpp/a0646_f003.png | Bin .../sa1/obj_tiles/4bpp/a0646_f004.png | Bin .../sa1/obj_tiles/4bpp/a0647_f000.png | Bin .../sa1/obj_tiles/4bpp/a0647_f001.png | Bin .../sa1/obj_tiles/4bpp/a0647_f002.png | Bin .../sa1/obj_tiles/4bpp/a0647_f003.png | Bin .../sa1/obj_tiles/4bpp/a0647_f004.png | Bin .../sa1/obj_tiles/4bpp/a0647_f005.png | Bin .../sa1/obj_tiles/4bpp/a0648_f000.png | Bin .../sa1/obj_tiles/4bpp/a0648_f001.png | Bin .../sa1/obj_tiles/4bpp/a0648_f002.png | Bin .../sa1/obj_tiles/4bpp/a0648_f003.png | Bin .../sa1/obj_tiles/4bpp/a0649_f000.png | Bin .../sa1/obj_tiles/4bpp/a0649_f001.png | Bin .../sa1/obj_tiles/4bpp/a0649_f002.png | Bin .../sa1/obj_tiles/4bpp/a0649_f003.png | Bin .../sa1/obj_tiles/4bpp/a0649_f004.png | Bin .../sa1/obj_tiles/4bpp/a0649_f005.png | Bin .../sa1/obj_tiles/4bpp/a0649_f006.png | Bin .../sa1/obj_tiles/4bpp/a0649_f007.png | Bin .../sa1/obj_tiles/4bpp/a0650_f000.png | Bin .../sa1/obj_tiles/4bpp/a0650_f001.png | Bin .../sa1/obj_tiles/4bpp/a0651_f000.png | Bin .../sa1/obj_tiles/4bpp/a0651_f001.png | Bin .../sa1/obj_tiles/4bpp/a0651_f002.png | Bin .../sa1/obj_tiles/4bpp/a0651_f003.png | Bin .../sa1/obj_tiles/4bpp/a0652_f000.png | Bin .../sa1/obj_tiles/4bpp/a0652_f001.png | Bin .../sa1/obj_tiles/4bpp/a0652_f002.png | Bin .../sa1/obj_tiles/4bpp/a0652_f003.png | Bin .../sa1/obj_tiles/4bpp/a0652_f004.png | Bin .../sa1/obj_tiles/4bpp/a0652_f005.png | Bin .../sa1/obj_tiles/4bpp/a0652_f006.png | Bin .../sa1/obj_tiles/4bpp/a0652_f007.png | Bin .../sa1/obj_tiles/4bpp/a0652_f008.png | Bin .../sa1/obj_tiles/4bpp/a0652_f009.png | Bin .../sa1/obj_tiles/4bpp/a0652_f010.png | Bin .../sa1/obj_tiles/4bpp/a0653_f000.png | Bin .../sa1/obj_tiles/4bpp/a0653_f001.png | Bin .../sa1/obj_tiles/4bpp/a0654_f000.png | Bin .../sa1/obj_tiles/4bpp/a0654_f001.png | Bin .../sa1/obj_tiles/4bpp/a0654_f002.png | Bin .../sa1/obj_tiles/4bpp/a0654_f003.png | Bin .../sa1/obj_tiles/4bpp/a0655_f000.png | Bin .../sa1/obj_tiles/4bpp/a0655_f001.png | Bin .../sa1/obj_tiles/4bpp/a0655_f002.png | Bin .../sa1/obj_tiles/4bpp/a0655_f003.png | Bin .../sa1/obj_tiles/4bpp/a0655_f004.png | Bin .../sa1/obj_tiles/4bpp/a0655_f005.png | Bin .../sa1/obj_tiles/4bpp/a0655_f006.png | Bin .../sa1/obj_tiles/4bpp/a0655_f007.png | Bin .../sa1/obj_tiles/4bpp/a0656_f000.png | Bin .../sa1/obj_tiles/4bpp/a0656_f001.png | Bin .../sa1/obj_tiles/4bpp/a0657_f000.png | Bin .../sa1/obj_tiles/4bpp/a0657_f001.png | Bin .../sa1/obj_tiles/4bpp/a0657_f002.png | Bin .../sa1/obj_tiles/4bpp/a0657_f003.png | Bin .../sa1/obj_tiles/4bpp/a0657_f004.png | Bin .../sa1/obj_tiles/4bpp/a0657_f005.png | Bin .../sa1/obj_tiles/4bpp/a0658_f000.png | Bin .../sa1/obj_tiles/4bpp/a0658_f001.png | Bin .../sa1/obj_tiles/4bpp/a0658_f002.png | Bin .../sa1/obj_tiles/4bpp/a0658_f003.png | Bin .../sa1/obj_tiles/4bpp/a0658_f004.png | Bin .../sa1/obj_tiles/4bpp/a0658_f005.png | Bin .../sa1/obj_tiles/4bpp/a0659_f000.png | Bin .../sa1/obj_tiles/4bpp/a0660_f000.png | Bin .../sa1/obj_tiles/4bpp/a0660_f001.png | Bin .../sa1/obj_tiles/4bpp/a0660_f002.png | Bin .../sa1/obj_tiles/4bpp/a0660_f003.png | Bin .../sa1/obj_tiles/4bpp/a0660_f004.png | Bin .../sa1/obj_tiles/4bpp/a0660_f005.png | Bin .../sa1/obj_tiles/4bpp/a0660_f006.png | Bin .../sa1/obj_tiles/4bpp/a0660_f007.png | Bin .../sa1/obj_tiles/4bpp/a0660_f008.png | Bin .../sa1/obj_tiles/4bpp/a0660_f009.png | Bin .../sa1/obj_tiles/4bpp/a0661_f000.png | Bin .../sa1/obj_tiles/4bpp/a0662_f000.png | Bin .../sa1/obj_tiles/4bpp/a0662_f002.png | Bin .../sa1/obj_tiles/4bpp/a0662_f004.png | Bin .../sa1/obj_tiles/4bpp/a0663_f000.png | Bin .../sa1/obj_tiles/4bpp/a0663_f001.png | Bin .../sa1/obj_tiles/4bpp/a0664_f000.png | Bin .../sa1/obj_tiles/4bpp/a0664_f001.png | Bin .../sa1/obj_tiles/4bpp/a0665_f000.png | Bin .../sa1/obj_tiles/4bpp/a0665_f001.png | Bin .../sa1/obj_tiles/4bpp/a0667_f000.png | Bin .../sa1/obj_tiles/4bpp/a0667_f001.png | Bin .../sa1/obj_tiles/4bpp/a0667_f002.png | Bin .../sa1/obj_tiles/4bpp/a0667_f003.png | Bin .../sa1/obj_tiles/4bpp/a0667_f004.png | Bin .../sa1/obj_tiles/4bpp/a0668_f000.png | Bin .../sa1/obj_tiles/4bpp/a0668_f001.png | Bin .../sa1/obj_tiles/4bpp/a0668_f002.png | Bin .../sa1/obj_tiles/4bpp/a0668_f003.png | Bin .../sa1/obj_tiles/4bpp/a0669_f000.png | Bin .../sa1/obj_tiles/4bpp/a0670_f000.png | Bin .../sa1/obj_tiles/4bpp/a0670_f001.png | Bin .../sa1/obj_tiles/4bpp/a0670_f002.png | Bin .../sa1/obj_tiles/4bpp/a0670_f003.png | Bin .../sa1/obj_tiles/4bpp/a0670_f004.png | Bin .../sa1/obj_tiles/4bpp/a0670_f005.png | Bin .../sa1/obj_tiles/4bpp/a0670_f006.png | Bin .../sa1/obj_tiles/4bpp/a0670_f007.png | Bin .../sa1/obj_tiles/4bpp/a0671_f000.png | Bin .../sa1/obj_tiles/4bpp/a0672_f000.png | Bin .../sa1/obj_tiles/4bpp/a0672_f001.png | Bin .../sa1/obj_tiles/4bpp/a0672_f002.png | Bin .../sa1/obj_tiles/4bpp/a0672_f003.png | Bin .../sa1/obj_tiles/4bpp/a0672_f004.png | Bin .../sa1/obj_tiles/4bpp/a0673_f000.png | Bin .../sa1/obj_tiles/4bpp/a0673_f001.png | Bin .../sa1/obj_tiles/4bpp/a0674_f000.png | Bin .../sa1/obj_tiles/4bpp/a0675_f000.png | Bin .../sa1/obj_tiles/4bpp/a0675_f001.png | Bin .../sa1/obj_tiles/4bpp/a0676_f000.png | Bin .../sa1/obj_tiles/4bpp/a0677_f000.png | Bin .../sa1/obj_tiles/4bpp/a0678_f000.png | Bin .../sa1/obj_tiles/4bpp/a0679_f000.png | Bin .../sa1/obj_tiles/4bpp/a0679_f001.png | Bin .../sa1/obj_tiles/4bpp/a0680_f000.png | Bin .../sa1/obj_tiles/4bpp/a0680_f001.png | Bin .../sa1/obj_tiles/4bpp/a0680_f002.png | Bin .../sa1/obj_tiles/4bpp/a0680_f003.png | Bin .../sa1/obj_tiles/4bpp/a0680_f004.png | Bin .../sa1/obj_tiles/4bpp/a0681_f000.png | Bin .../sa1/obj_tiles/4bpp/a0681_f001.png | Bin .../sa1/obj_tiles/4bpp/a0681_f002.png | Bin .../sa1/obj_tiles/4bpp/a0681_f003.png | Bin .../sa1/obj_tiles/4bpp/a0681_f004.png | Bin .../sa1/obj_tiles/4bpp/a0681_f005.png | Bin .../sa1/obj_tiles/4bpp/a0681_f006.png | Bin .../sa1/obj_tiles/4bpp/a0681_f007.png | Bin .../sa1/obj_tiles/4bpp/a0682_f000.png | Bin .../sa1/obj_tiles/4bpp/a0683_f000.png | Bin .../sa1/obj_tiles/4bpp/a0683_f001.png | Bin .../sa1/obj_tiles/4bpp/a0683_f002.png | Bin .../sa1/obj_tiles/4bpp/a0683_f003.png | Bin .../sa1/obj_tiles/4bpp/a0683_f004.png | Bin .../sa1/obj_tiles/4bpp/a0684_f000.png | Bin .../sa1/obj_tiles/4bpp/a0685_f000.png | Bin .../sa1/obj_tiles/4bpp/a0685_f001.png | Bin .../sa1/obj_tiles/4bpp/a0686_f000.png | Bin .../sa1/obj_tiles/4bpp/a0686_f001.png | Bin .../sa1/obj_tiles/4bpp/a0686_f002.png | Bin .../sa1/obj_tiles/4bpp/a0686_f003.png | Bin .../sa1/obj_tiles/4bpp/a0686_f004.png | Bin .../sa1/obj_tiles/4bpp/a0687_f000.png | Bin .../sa1/obj_tiles/4bpp/a0687_f001.png | Bin .../sa1/obj_tiles/4bpp/a0688_f000.png | Bin .../sa1/obj_tiles/4bpp/a0688_f001.png | Bin .../sa1/obj_tiles/4bpp/a0688_f002.png | Bin .../sa1/obj_tiles/4bpp/a0688_f003.png | Bin .../sa1/obj_tiles/4bpp/a0688_f004.png | Bin .../sa1/obj_tiles/4bpp/a0688_f005.png | Bin .../sa1/obj_tiles/4bpp/a0688_f006.png | Bin .../sa1/obj_tiles/4bpp/a0688_f007.png | Bin .../sa1/obj_tiles/4bpp/a0688_f008.png | Bin .../sa1/obj_tiles/4bpp/a0688_f009.png | Bin .../sa1/obj_tiles/4bpp/a0688_f010.png | Bin .../sa1/obj_tiles/4bpp/a0688_f011.png | Bin .../sa1/obj_tiles/4bpp/a0688_f012.png | Bin .../sa1/obj_tiles/4bpp/a0688_f013.png | Bin .../sa1/obj_tiles/4bpp/a0688_f014.png | Bin .../sa1/obj_tiles/4bpp/a0688_f015.png | Bin .../sa1/obj_tiles/4bpp/a0688_f016.png | Bin .../sa1/obj_tiles/4bpp/a0688_f017.png | Bin .../sa1/obj_tiles/4bpp/a0688_f018.png | Bin .../sa1/obj_tiles/4bpp/a0688_f019.png | Bin .../sa1/obj_tiles/4bpp/a0688_f020.png | Bin .../sa1/obj_tiles/4bpp/a0688_f021.png | Bin .../sa1/obj_tiles/4bpp/a0688_f022.png | Bin .../sa1/obj_tiles/4bpp/a0688_f023.png | Bin .../sa1/obj_tiles/4bpp/a0688_f024.png | Bin .../sa1/obj_tiles/4bpp/a0688_f025.png | Bin .../sa1/obj_tiles/4bpp/a0688_f026.png | Bin .../sa1/obj_tiles/4bpp/a0689_f000.png | Bin .../sa1/obj_tiles/4bpp/a0689_f001.png | Bin .../sa1/obj_tiles/4bpp/a0689_f002.png | Bin .../sa1/obj_tiles/4bpp/a0689_f003.png | Bin .../sa1/obj_tiles/4bpp/a0690_f000.png | Bin .../sa1/obj_tiles/4bpp/a0690_f001.png | Bin .../sa1/obj_tiles/4bpp/a0691_f000.png | Bin .../sa1/obj_tiles/4bpp/a0691_f001.png | Bin .../sa1/obj_tiles/4bpp/a0691_f002.png | Bin .../sa1/obj_tiles/4bpp/a0691_f003.png | Bin .../sa1/obj_tiles/4bpp/a0691_f004.png | Bin .../sa1/obj_tiles/4bpp/a0691_f005.png | Bin .../sa1/obj_tiles/4bpp/a0691_f006.png | Bin .../sa1/obj_tiles/4bpp/a0692_f000.png | Bin .../sa1/obj_tiles/4bpp/a0693_f000.png | Bin .../sa1/obj_tiles/4bpp/a0693_f001.png | Bin .../sa1/obj_tiles/4bpp/a0693_f002.png | Bin .../sa1/obj_tiles/4bpp/a0693_f003.png | Bin .../sa1/obj_tiles/4bpp/a0694_f000.png | Bin .../sa1/obj_tiles/4bpp/a0694_f001.png | Bin .../sa1/obj_tiles/4bpp/a0694_f002.png | Bin .../sa1/obj_tiles/4bpp/a0694_f003.png | Bin .../sa1/obj_tiles/4bpp/a0694_f004.png | Bin .../sa1/obj_tiles/4bpp/a0694_f005.png | Bin .../sa1/obj_tiles/4bpp/a0694_f006.png | Bin .../sa1/obj_tiles/4bpp/a0694_f007.png | Bin .../sa1/obj_tiles/4bpp/a0694_f008.png | Bin .../sa1/obj_tiles/4bpp/a0694_f009.png | Bin .../sa1/obj_tiles/4bpp/a0694_f010.png | Bin .../sa1/obj_tiles/4bpp/a0694_f011.png | Bin .../sa1/obj_tiles/4bpp/a0694_f012.png | Bin .../sa1/obj_tiles/4bpp/a0694_f013.png | Bin .../sa1/obj_tiles/4bpp/a0694_f014.png | Bin .../sa1/obj_tiles/4bpp/a0694_f015.png | Bin .../sa1/obj_tiles/4bpp/a0694_f016.png | Bin .../sa1/obj_tiles/4bpp/a0695_f000.png | Bin .../sa1/obj_tiles/4bpp/a0695_f001.png | Bin .../sa1/obj_tiles/4bpp/a0696_f000.png | Bin .../sa1/obj_tiles/4bpp/a0696_f001.png | Bin .../sa1/obj_tiles/4bpp/a0697_f000.png | Bin .../sa1/obj_tiles/4bpp/a0697_f001.png | Bin .../sa1/obj_tiles/4bpp/a0698_f000.png | Bin .../sa1/obj_tiles/4bpp/a0698_f001.png | Bin .../sa1/obj_tiles/4bpp/a0698_f002.png | Bin .../sa1/obj_tiles/4bpp/a0698_f003.png | Bin .../sa1/obj_tiles/4bpp/a0699_f000.png | Bin .../sa1/obj_tiles/4bpp/a0699_f001.png | Bin .../sa1/obj_tiles/4bpp/a0699_f002.png | Bin .../sa1/obj_tiles/4bpp/a0699_f003.png | Bin .../sa1/obj_tiles/4bpp/a0700_f000.png | Bin .../sa1/obj_tiles/4bpp/a0701_f000.png | Bin .../sa1/obj_tiles/4bpp/a0701_f001.png | Bin .../sa1/obj_tiles/4bpp/a0702_f000.png | Bin .../sa1/obj_tiles/4bpp/a0702_f001.png | Bin .../sa1/obj_tiles/4bpp/a0702_f002.png | Bin .../sa1/obj_tiles/4bpp/a0702_f003.png | Bin .../sa1/obj_tiles/4bpp/a0702_f004.png | Bin .../sa1/obj_tiles/4bpp/a0703_f000.png | Bin .../sa1/obj_tiles/4bpp/a0703_f001.png | Bin .../sa1/obj_tiles/4bpp/a0703_f002.png | Bin .../sa1/obj_tiles/4bpp/a0703_f003.png | Bin .../sa1/obj_tiles/4bpp/a0703_f004.png | Bin .../sa1/obj_tiles/4bpp/a0704_f000.png | Bin .../sa1/obj_tiles/4bpp/a0704_f001.png | Bin .../sa1/obj_tiles/4bpp/a0704_f002.png | Bin .../sa1/obj_tiles/4bpp/a0704_f003.png | Bin .../sa1/obj_tiles/4bpp/a0704_f004.png | Bin .../sa1/obj_tiles/4bpp/a0705_f000.png | Bin .../sa1/obj_tiles/4bpp/a0706_f000.png | Bin .../sa1/obj_tiles/4bpp/a0706_f001.png | Bin .../sa1/obj_tiles/4bpp/a0706_f002.png | Bin .../sa1/obj_tiles/4bpp/a0706_f003.png | Bin .../sa1/obj_tiles/4bpp/a0706_f004.png | Bin .../sa1/obj_tiles/4bpp/a0706_f005.png | Bin .../sa1/obj_tiles/4bpp/a0706_f006.png | Bin .../sa1/obj_tiles/4bpp/a0706_f007.png | Bin .../sa1/obj_tiles/4bpp/a0706_f008.png | Bin .../sa1/obj_tiles/4bpp/a0706_f009.png | Bin .../sa1/obj_tiles/4bpp/a0706_f010.png | Bin .../sa1/obj_tiles/4bpp/a0706_f011.png | Bin .../sa1/obj_tiles/4bpp/a0706_f012.png | Bin .../sa1/obj_tiles/4bpp/a0706_f013.png | Bin .../sa1/obj_tiles/4bpp/a0706_f014.png | Bin .../sa1/obj_tiles/4bpp/a0706_f015.png | Bin .../sa1/obj_tiles/4bpp/a0706_f016.png | Bin .../sa1/obj_tiles/4bpp/a0707_f000.png | Bin .../sa1/obj_tiles/4bpp/a0707_f001.png | Bin .../sa1/obj_tiles/4bpp/a0707_f002.png | Bin .../sa1/obj_tiles/4bpp/a0707_f003.png | Bin .../sa1/obj_tiles/4bpp/a0708_f000.png | Bin .../sa1/obj_tiles/4bpp/a0708_f001.png | Bin .../sa1/obj_tiles/4bpp/a0708_f002.png | Bin .../sa1/obj_tiles/4bpp/a0708_f003.png | Bin .../sa1/obj_tiles/4bpp/a0709_f000.png | Bin .../sa1/obj_tiles/4bpp/a0709_f001.png | Bin .../sa1/obj_tiles/4bpp/a0709_f002.png | Bin .../sa1/obj_tiles/4bpp/a0709_f003.png | Bin .../sa1/obj_tiles/4bpp/a0709_f004.png | Bin .../sa1/obj_tiles/4bpp/a0710_f000.png | Bin .../sa1/obj_tiles/4bpp/a0710_f001.png | Bin .../sa1/obj_tiles/4bpp/a0710_f002.png | Bin .../sa1/obj_tiles/4bpp/a0710_f003.png | Bin .../sa1/obj_tiles/4bpp/a0710_f004.png | Bin .../sa1/obj_tiles/4bpp/a0710_f005.png | Bin .../sa1/obj_tiles/4bpp/a0710_f006.png | Bin .../sa1/obj_tiles/4bpp/a0710_f007.png | Bin .../sa1/obj_tiles/4bpp/a0710_f008.png | Bin .../sa1/obj_tiles/4bpp/a0710_f009.png | Bin .../sa1/obj_tiles/4bpp/a0711_f000.png | Bin .../sa1/obj_tiles/4bpp/a0711_f001.png | Bin .../sa1/obj_tiles/4bpp/a0712_f000.png | Bin .../sa1/obj_tiles/4bpp/a0713_f000.png | Bin .../sa1/obj_tiles/4bpp/a0713_f001.png | Bin .../sa1/obj_tiles/4bpp/a0713_f002.png | Bin .../sa1/obj_tiles/4bpp/a0713_f003.png | Bin .../sa1/obj_tiles/4bpp/a0714_f000.png | Bin .../sa1/obj_tiles/4bpp/a0715_f000.png | Bin .../sa1/obj_tiles/4bpp/a0715_f001.png | Bin .../sa1/obj_tiles/4bpp/a0715_f002.png | Bin .../sa1/obj_tiles/4bpp/a0715_f003.png | Bin .../sa1/obj_tiles/4bpp/a0715_f004.png | Bin .../sa1/obj_tiles/4bpp/a0716_f000.png | Bin .../sa1/obj_tiles/4bpp/a0717_f000.png | Bin .../sa1/obj_tiles/4bpp/a0717_f001.png | Bin .../sa1/obj_tiles/4bpp/a0717_f002.png | Bin .../sa1/obj_tiles/4bpp/a0718_f000.png | Bin .../sa1/obj_tiles/4bpp/a0719_f000.png | Bin .../sa1/obj_tiles/4bpp/a0719_f001.png | Bin .../sa1/obj_tiles/4bpp/a0719_f002.png | Bin .../sa1/obj_tiles/4bpp/a0719_f003.png | Bin .../sa1/obj_tiles/4bpp/a0720_f000.png | Bin .../sa1/obj_tiles/4bpp/a0721_f000.png | Bin .../sa1/obj_tiles/4bpp/a0722_f000.png | Bin .../sa1/obj_tiles/4bpp/a0722_f001.png | Bin .../sa1/obj_tiles/4bpp/a0722_f002.png | Bin .../sa1/obj_tiles/4bpp/a0722_f003.png | Bin .../sa1/obj_tiles/4bpp/a0722_f004.png | Bin .../sa1/obj_tiles/4bpp/a0722_f005.png | Bin .../sa1/obj_tiles/4bpp/a0722_f006.png | Bin .../sa1/obj_tiles/4bpp/a0722_f007.png | Bin .../sa1/obj_tiles/4bpp/a0722_f008.png | Bin .../sa1/obj_tiles/4bpp/a0722_f009.png | Bin .../sa1/obj_tiles/4bpp/a0722_f010.png | Bin .../sa1/obj_tiles/4bpp/a0722_f011.png | Bin .../sa1/obj_tiles/4bpp/a0722_f012.png | Bin .../sa1/obj_tiles/4bpp/a0722_f013.png | Bin .../sa1/obj_tiles/4bpp/a0722_f014.png | Bin .../sa1/obj_tiles/4bpp/a0722_f015.png | Bin .../sa1/obj_tiles/4bpp/a0722_f016.png | Bin .../sa1/obj_tiles/4bpp/a0722_f017.png | Bin .../sa1/obj_tiles/4bpp/a0722_f018.png | Bin .../sa1/obj_tiles/4bpp/a0722_f019.png | Bin .../sa1/obj_tiles/4bpp/a0722_f020.png | Bin .../sa1/obj_tiles/4bpp/a0722_f021.png | Bin .../sa1/obj_tiles/4bpp/a0723_f000.png | Bin .../sa1/obj_tiles/4bpp/a0723_f001.png | Bin .../sa1/obj_tiles/4bpp/a0723_f002.png | Bin .../sa1/obj_tiles/4bpp/a0723_f003.png | Bin .../sa1/obj_tiles/4bpp/a0724_f000.png | Bin .../sa1/obj_tiles/4bpp/a0724_f001.png | Bin .../sa1/obj_tiles/4bpp/a0724_f002.png | Bin .../sa1/obj_tiles/4bpp/a0724_f003.png | Bin .../sa1/obj_tiles/4bpp/a0724_f004.png | Bin .../sa1/obj_tiles/4bpp/a0724_f005.png | Bin .../sa1/obj_tiles/4bpp/a0724_f006.png | Bin .../sa1/obj_tiles/4bpp/a0724_f007.png | Bin .../sa1/obj_tiles/4bpp/a0724_f008.png | Bin .../sa1/obj_tiles/4bpp/a0724_f009.png | Bin .../sa1/obj_tiles/4bpp/a0724_f010.png | Bin .../sa1/obj_tiles/4bpp/a0724_f011.png | Bin .../sa1/obj_tiles/4bpp/a0724_f012.png | Bin .../sa1/obj_tiles/4bpp/a0724_f013.png | Bin .../sa1/obj_tiles/4bpp/a0724_f014.png | Bin .../sa1/obj_tiles/4bpp/a0724_f015.png | Bin .../sa1/obj_tiles/4bpp/a0724_f016.png | Bin .../sa1/obj_tiles/4bpp/a0724_f017.png | Bin .../sa1/obj_tiles/4bpp/a0725_f000.png | Bin .../sa1/obj_tiles/4bpp/a0726_f000.png | Bin .../sa1/obj_tiles/4bpp/a0727_f000.png | Bin .../sa1/obj_tiles/4bpp/a0728_f000.png | Bin .../sa1/obj_tiles/4bpp/a0729_f000.png | Bin .../sa1/obj_tiles/4bpp/a0730_f000.png | Bin .../sa1/obj_tiles/4bpp/a0731_f000.png | Bin .../sa1/obj_tiles/4bpp/a0731_f001.png | Bin .../sa1/obj_tiles/4bpp/a0731_f002.png | Bin .../sa1/obj_tiles/4bpp/a0731_f003.png | Bin .../sa1/obj_tiles/4bpp/a0732_f000.png | Bin .../sa1/obj_tiles/4bpp/a0732_f001.png | Bin .../sa1/obj_tiles/4bpp/a0732_f002.png | Bin .../sa1/obj_tiles/4bpp/a0732_f003.png | Bin .../sa1/obj_tiles/4bpp/a0733_f000.png | Bin .../sa1/obj_tiles/4bpp/a0733_f001.png | Bin .../sa1/obj_tiles/4bpp/a0734_f000.png | Bin .../sa1/obj_tiles/4bpp/a0734_f001.png | Bin .../sa1/obj_tiles/4bpp/a0735_f000.png | Bin .../sa1/obj_tiles/4bpp/a0735_f001.png | Bin .../sa1/obj_tiles/4bpp/a0736_f000.png | Bin .../sa1/obj_tiles/4bpp/a0736_f001.png | Bin .../sa1/obj_tiles/4bpp/a0739_f000.png | Bin .../sa1/obj_tiles/4bpp/a0739_f001.png | Bin .../sa1/obj_tiles/4bpp/a0740_f000.png | Bin .../sa1/obj_tiles/4bpp/a0740_f001.png | Bin .../sa1/obj_tiles/4bpp/a0740_f002.png | Bin .../sa1/obj_tiles/4bpp/a0740_f003.png | Bin .../sa1/obj_tiles/4bpp/a0741_f000.png | Bin .../sa1/obj_tiles/4bpp/a0741_f001.png | Bin .../sa1/obj_tiles/4bpp/a0742_f000.png | Bin .../sa1/obj_tiles/4bpp/a0743_f000.png | Bin .../sa1/obj_tiles/4bpp/a0744_f000.png | Bin .../sa1/obj_tiles/4bpp/a0745_f000.png | Bin .../sa1/obj_tiles/4bpp/a0745_f001.png | Bin .../sa1/obj_tiles/4bpp/a0745_f002.png | Bin .../sa1/obj_tiles/4bpp/a0745_f003.png | Bin .../sa1/obj_tiles/4bpp/a0745_f004.png | Bin .../sa1/obj_tiles/4bpp/a0746_f000.png | Bin .../sa1/obj_tiles/4bpp/a0746_f001.png | Bin .../sa1/obj_tiles/4bpp/a0746_f002.png | Bin .../sa1/obj_tiles/4bpp/a0746_f003.png | Bin .../sa1/obj_tiles/4bpp/a0746_f004.png | Bin .../sa1/obj_tiles/4bpp/a0746_f005.png | Bin .../sa1/obj_tiles/4bpp/a0746_f006.png | Bin .../sa1/obj_tiles/4bpp/a0746_f007.png | Bin .../sa1/obj_tiles/4bpp/a0747_f000.png | Bin .../sa1/obj_tiles/4bpp/a0747_f001.png | Bin .../sa1/obj_tiles/4bpp/a0747_f002.png | Bin .../sa1/obj_tiles/4bpp/a0747_f003.png | Bin .../sa1/obj_tiles/4bpp/a0748_f000.png | Bin .../sa1/obj_tiles/4bpp/a0748_f001.png | Bin .../sa1/obj_tiles/4bpp/a0748_f002.png | Bin .../sa1/obj_tiles/4bpp/a0748_f003.png | Bin .../sa1/obj_tiles/4bpp/a0748_f004.png | Bin .../sa1/obj_tiles/4bpp/a0748_f005.png | Bin .../sa1/obj_tiles/4bpp/a0748_f006.png | Bin .../sa1/obj_tiles/4bpp/a0748_f007.png | Bin .../sa1/obj_tiles/4bpp/a0749_f000.png | Bin .../sa1/obj_tiles/4bpp/a0749_f001.png | Bin .../sa1/obj_tiles/4bpp/a0749_f002.png | Bin .../sa1/obj_tiles/4bpp/a0749_f003.png | Bin .../sa1/obj_tiles/4bpp/a0749_f004.png | Bin .../sa1/obj_tiles/4bpp/a0749_f005.png | Bin .../sa1/obj_tiles/4bpp/a0749_f006.png | Bin .../sa1/obj_tiles/4bpp/a0749_f007.png | Bin .../sa1/obj_tiles/4bpp/a0750_f000.png | Bin .../sa1/obj_tiles/4bpp/a0750_f001.png | Bin .../sa1/obj_tiles/4bpp/a0750_f002.png | Bin .../sa1/obj_tiles/4bpp/a0750_f003.png | Bin .../sa1/obj_tiles/4bpp/a0750_f004.png | Bin .../sa1/obj_tiles/4bpp/a0750_f005.png | Bin .../sa1/obj_tiles/4bpp/a0751_f000.png | Bin .../sa1/obj_tiles/4bpp/a0751_f001.png | Bin .../sa1/obj_tiles/4bpp/a0751_f002.png | Bin .../sa1/obj_tiles/4bpp/a0751_f003.png | Bin .../sa1/obj_tiles/4bpp/a0751_f004.png | Bin .../sa1/obj_tiles/4bpp/a0751_f005.png | Bin .../sa1/obj_tiles/4bpp/a0751_f006.png | Bin .../sa1/obj_tiles/4bpp/a0751_f007.png | Bin .../sa1/obj_tiles/4bpp/a0752_f000.png | Bin .../sa1/obj_tiles/4bpp/a0752_f001.png | Bin .../sa1/obj_tiles/4bpp/a0752_f002.png | Bin .../sa1/obj_tiles/4bpp/a0752_f003.png | Bin .../sa1/obj_tiles/4bpp/a0752_f004.png | Bin .../sa1/obj_tiles/4bpp/a0752_f005.png | Bin .../sa1/obj_tiles/4bpp/a0752_f006.png | Bin .../sa1/obj_tiles/4bpp/a0752_f007.png | Bin .../sa1/obj_tiles/4bpp/a0752_f008.png | Bin .../sa1/obj_tiles/4bpp/a0752_f009.png | Bin .../sa1/obj_tiles/4bpp/a0752_f010.png | Bin .../sa1/obj_tiles/4bpp/a0752_f011.png | Bin .../sa1/obj_tiles/4bpp/a0752_f012.png | Bin .../sa1/obj_tiles/4bpp/a0752_f013.png | Bin .../sa1/obj_tiles/4bpp/a0752_f014.png | Bin .../sa1/obj_tiles/4bpp/a0752_f015.png | Bin .../sa1/obj_tiles/4bpp/a0752_f016.png | Bin .../sa1/obj_tiles/4bpp/a0752_f017.png | Bin .../sa1/obj_tiles/4bpp/a0753_f000.png | Bin .../sa1/obj_tiles/4bpp/a0753_f001.png | Bin .../sa1/obj_tiles/4bpp/a0753_f002.png | Bin .../sa1/obj_tiles/4bpp/a0753_f003.png | Bin .../sa1/obj_tiles/4bpp/a0754_f000.png | Bin .../sa1/obj_tiles/4bpp/a0754_f001.png | Bin .../sa1/obj_tiles/4bpp/a0754_f002.png | Bin .../sa1/obj_tiles/4bpp/a0754_f003.png | Bin .../sa1/obj_tiles/4bpp/a0755_f000.png | Bin .../sa1/obj_tiles/4bpp/a0755_f001.png | Bin .../sa1/obj_tiles/4bpp/a0755_f002.png | Bin .../sa1/obj_tiles/4bpp/a0755_f003.png | Bin .../sa1/obj_tiles/4bpp/a0756_f000.png | Bin .../sa1/obj_tiles/4bpp/a0756_f001.png | Bin .../sa1/obj_tiles/4bpp/a0756_f002.png | Bin .../sa1/obj_tiles/4bpp/a0756_f003.png | Bin .../sa1/obj_tiles/4bpp/a0756_f004.png | Bin .../sa1/obj_tiles/4bpp/a0757_f000.png | Bin .../sa1/obj_tiles/4bpp/a0757_f001.png | Bin .../sa1/obj_tiles/4bpp/a0757_f002.png | Bin .../sa1/obj_tiles/4bpp/a0757_f003.png | Bin .../sa1/obj_tiles/4bpp/a0757_f004.png | Bin .../sa1/obj_tiles/4bpp/a0758_f000.png | Bin .../sa1/obj_tiles/4bpp/a0758_f001.png | Bin .../sa1/obj_tiles/4bpp/a0758_f002.png | Bin .../sa1/obj_tiles/4bpp/a0758_f003.png | Bin .../sa1/obj_tiles/4bpp/a0758_f004.png | Bin .../sa1/obj_tiles/4bpp/a0759_f000.png | Bin .../sa1/obj_tiles/4bpp/a0759_f001.png | Bin .../sa1/obj_tiles/4bpp/a0759_f002.png | Bin .../sa1/obj_tiles/4bpp/a0759_f003.png | Bin .../sa1/obj_tiles/4bpp/a0759_f004.png | Bin .../sa1/obj_tiles/4bpp/a0760_f000.png | Bin .../sa1/obj_tiles/4bpp/a0760_f001.png | Bin .../sa1/obj_tiles/4bpp/a0760_f002.png | Bin .../sa1/obj_tiles/4bpp/a0760_f003.png | Bin .../sa1/obj_tiles/4bpp/a0760_f004.png | Bin .../sa1/obj_tiles/4bpp/a0761_f000.png | Bin .../sa1/obj_tiles/4bpp/a0761_f001.png | Bin .../sa1/obj_tiles/4bpp/a0761_f002.png | Bin .../sa1/obj_tiles/4bpp/a0761_f003.png | Bin .../sa1/obj_tiles/4bpp/a0761_f004.png | Bin .../sa1/obj_tiles/4bpp/a0762_f000.png | Bin .../sa1/obj_tiles/4bpp/a0762_f001.png | Bin .../sa1/obj_tiles/4bpp/a0762_f002.png | Bin .../sa1/obj_tiles/4bpp/a0762_f003.png | Bin .../sa1/obj_tiles/4bpp/a0762_f004.png | Bin .../sa1/obj_tiles/4bpp/a0762_f005.png | Bin .../sa1/obj_tiles/4bpp/a0762_f006.png | Bin .../sa1/obj_tiles/4bpp/a0762_f007.png | Bin .../sa1/obj_tiles/4bpp/a0763_f000.png | Bin .../sa1/obj_tiles/4bpp/a0763_f001.png | Bin .../sa1/obj_tiles/4bpp/a0763_f002.png | Bin .../sa1/obj_tiles/4bpp/a0763_f003.png | Bin .../sa1/obj_tiles/4bpp/a0763_f004.png | Bin .../sa1/obj_tiles/4bpp/a0764_f000.png | Bin .../sa1/obj_tiles/4bpp/a0764_f001.png | Bin .../sa1/obj_tiles/4bpp/a0764_f002.png | Bin .../sa1/obj_tiles/4bpp/a0764_f003.png | Bin .../sa1/obj_tiles/4bpp/a0764_f004.png | Bin .../sa1/obj_tiles/4bpp/a0764_f005.png | Bin .../sa1/obj_tiles/4bpp/a0765_f000.png | Bin .../sa1/obj_tiles/4bpp/a0765_f001.png | Bin .../sa1/obj_tiles/4bpp/a0765_f002.png | Bin .../sa1/obj_tiles/4bpp/a0765_f003.png | Bin .../sa1/obj_tiles/4bpp/a0765_f004.png | Bin .../sa1/obj_tiles/4bpp/a0765_f005.png | Bin .../sa1/obj_tiles/4bpp/a0765_f006.png | Bin .../sa1/obj_tiles/4bpp/a0766_f000.png | Bin .../sa1/obj_tiles/4bpp/a0766_f001.png | Bin .../sa1/obj_tiles/4bpp/a0766_f002.png | Bin .../sa1/obj_tiles/4bpp/a0766_f003.png | Bin .../sa1/obj_tiles/4bpp/a0766_f004.png | Bin .../sa1/obj_tiles/4bpp/a0766_f005.png | Bin .../sa1/obj_tiles/4bpp/a0766_f006.png | Bin .../sa1/obj_tiles/4bpp/a0766_f007.png | Bin .../sa1/obj_tiles/4bpp/a0766_f008.png | Bin .../sa1/obj_tiles/4bpp/a0766_f009.png | Bin .../sa1/obj_tiles/4bpp/a0766_f010.png | Bin .../sa1/obj_tiles/4bpp/a0766_f011.png | Bin .../sa1/obj_tiles/4bpp/a0767_f000.png | Bin .../sa1/obj_tiles/4bpp/a0767_f001.png | Bin .../sa1/obj_tiles/4bpp/a0767_f002.png | Bin .../sa1/obj_tiles/4bpp/a0767_f003.png | Bin .../sa1/obj_tiles/4bpp/a0767_f004.png | Bin .../sa1/obj_tiles/4bpp/a0767_f005.png | Bin .../sa1/obj_tiles/4bpp/a0767_f006.png | Bin .../sa1/obj_tiles/4bpp/a0767_f007.png | Bin .../sa1/obj_tiles/4bpp/a0768_f000.png | Bin .../sa1/obj_tiles/4bpp/a0768_f001.png | Bin .../sa1/obj_tiles/4bpp/a0768_f002.png | Bin .../sa1/obj_tiles/4bpp/a0768_f003.png | Bin .../sa1/obj_tiles/4bpp/a0768_f004.png | Bin .../sa1/obj_tiles/4bpp/a0768_f005.png | Bin .../sa1/obj_tiles/4bpp/a0768_f006.png | Bin .../sa1/obj_tiles/4bpp/a0768_f007.png | Bin .../sa1/obj_tiles/4bpp/a0768_f008.png | Bin .../sa1/obj_tiles/4bpp/a0768_f009.png | Bin .../sa1/obj_tiles/4bpp/a0768_f010.png | Bin .../sa1/obj_tiles/4bpp/a0768_f011.png | Bin .../sa1/obj_tiles/4bpp/a0768_f012.png | Bin .../sa1/obj_tiles/4bpp/a0768_f013.png | Bin .../sa1/obj_tiles/4bpp/a0768_f014.png | Bin .../sa1/obj_tiles/4bpp/a0768_f015.png | Bin .../sa1/obj_tiles/4bpp/a0768_f016.png | Bin .../sa1/obj_tiles/4bpp/a0768_f017.png | Bin .../sa1/obj_tiles/4bpp/a0768_f018.png | Bin .../sa1/obj_tiles/4bpp/a0768_f019.png | Bin .../sa1/obj_tiles/4bpp/a0768_f020.png | Bin .../sa1/obj_tiles/4bpp/a0769_f000.png | Bin .../sa1/obj_tiles/4bpp/a0769_f001.png | Bin .../sa1/obj_tiles/4bpp/a0769_f002.png | Bin .../sa1/obj_tiles/4bpp/a0769_f003.png | Bin .../sa1/obj_tiles/4bpp/a0770_f000.png | Bin .../sa1/obj_tiles/4bpp/a0770_f001.png | Bin .../sa1/obj_tiles/4bpp/a0770_f002.png | Bin .../sa1/obj_tiles/4bpp/a0770_f003.png | Bin .../sa1/obj_tiles/4bpp/a0770_f004.png | Bin .../sa1/obj_tiles/4bpp/a0770_f005.png | Bin .../sa1/obj_tiles/4bpp/a0771_f000.png | Bin .../sa1/obj_tiles/4bpp/a0771_f001.png | Bin .../sa1/obj_tiles/4bpp/a0771_f002.png | Bin .../sa1/obj_tiles/4bpp/a0771_f003.png | Bin .../sa1/obj_tiles/4bpp/a0771_f004.png | Bin .../sa1/obj_tiles/4bpp/a0771_f005.png | Bin .../sa1/obj_tiles/4bpp/a0772_f000.png | Bin .../sa1/obj_tiles/4bpp/a0772_f001.png | Bin .../sa1/obj_tiles/4bpp/a0772_f002.png | Bin .../sa1/obj_tiles/4bpp/a0772_f003.png | Bin .../sa1/obj_tiles/4bpp/a0772_f004.png | Bin .../sa1/obj_tiles/4bpp/a0772_f005.png | Bin .../sa1/obj_tiles/4bpp/a0772_f006.png | Bin .../sa1/obj_tiles/4bpp/a0772_f007.png | Bin .../sa1/obj_tiles/4bpp/a0772_f008.png | Bin .../sa1/obj_tiles/4bpp/a0773_f000.png | Bin .../sa1/obj_tiles/4bpp/a0773_f001.png | Bin .../sa1/obj_tiles/4bpp/a0773_f002.png | Bin .../sa1/obj_tiles/4bpp/a0773_f003.png | Bin .../sa1/obj_tiles/4bpp/a0774_f000.png | Bin .../sa1/obj_tiles/4bpp/a0774_f001.png | Bin .../sa1/obj_tiles/4bpp/a0774_f002.png | Bin .../sa1/obj_tiles/4bpp/a0774_f003.png | Bin .../sa1/obj_tiles/4bpp/a0775_f000.png | Bin .../sa1/obj_tiles/4bpp/a0775_f001.png | Bin .../sa1/obj_tiles/4bpp/a0775_f002.png | Bin .../sa1/obj_tiles/4bpp/a0775_f003.png | Bin .../sa1/obj_tiles/4bpp/a0775_f004.png | Bin .../sa1/obj_tiles/4bpp/a0775_f005.png | Bin .../sa1/obj_tiles/4bpp/a0775_f006.png | Bin .../sa1/obj_tiles/4bpp/a0775_f007.png | Bin .../sa1/obj_tiles/4bpp/a0775_f008.png | Bin .../sa1/obj_tiles/4bpp/a0775_f009.png | Bin .../sa1/obj_tiles/4bpp/a0775_f010.png | Bin .../sa1/obj_tiles/4bpp/a0777_f000.png | Bin .../sa1/obj_tiles/4bpp/a0777_f001.png | Bin .../sa1/obj_tiles/4bpp/a0777_f002.png | Bin .../sa1/obj_tiles/4bpp/a0777_f003.png | Bin .../sa1/obj_tiles/4bpp/a0778_f000.png | Bin .../sa1/obj_tiles/4bpp/a0778_f001.png | Bin .../sa1/obj_tiles/4bpp/a0778_f002.png | Bin .../sa1/obj_tiles/4bpp/a0778_f003.png | Bin .../sa1/obj_tiles/4bpp/a0778_f004.png | Bin .../sa1/obj_tiles/4bpp/a0778_f005.png | Bin .../sa1/obj_tiles/4bpp/a0779_f000.png | Bin .../sa1/obj_tiles/4bpp/a0779_f001.png | Bin .../sa1/obj_tiles/4bpp/a0779_f002.png | Bin .../sa1/obj_tiles/4bpp/a0779_f003.png | Bin .../sa1/obj_tiles/4bpp/a0779_f004.png | Bin .../sa1/obj_tiles/4bpp/a0779_f005.png | Bin .../sa1/obj_tiles/4bpp/a0780_f000.png | Bin .../sa1/obj_tiles/4bpp/a0780_f001.png | Bin .../sa1/obj_tiles/4bpp/a0781_f000.png | Bin .../sa1/obj_tiles/4bpp/a0781_f001.png | Bin .../sa1/obj_tiles/4bpp/a0781_f002.png | Bin .../sa1/obj_tiles/4bpp/a0781_f003.png | Bin .../sa1/obj_tiles/4bpp/a0781_f004.png | Bin .../sa1/obj_tiles/4bpp/a0781_f005.png | Bin .../sa1/obj_tiles/4bpp/a0782_f000.png | Bin .../sa1/obj_tiles/4bpp/a0782_f001.png | Bin .../sa1/obj_tiles/4bpp/a0782_f002.png | Bin .../sa1/obj_tiles/4bpp/a0782_f003.png | Bin .../sa1/obj_tiles/4bpp/a0783_f000.png | Bin .../sa1/obj_tiles/4bpp/a0784_f000.png | Bin .../sa1/obj_tiles/4bpp/a0785_f000.png | Bin .../sa1/obj_tiles/4bpp/a0785_f001.png | Bin .../sa1/obj_tiles/4bpp/a0785_f002.png | Bin .../sa1/obj_tiles/4bpp/a0786_f000.png | Bin .../sa1/obj_tiles/4bpp/a0787_f000.png | Bin .../sa1/obj_tiles/4bpp/a0788_f000.png | Bin .../sa1/obj_tiles/4bpp/a0788_f001.png | Bin .../sa1/obj_tiles/4bpp/a0788_f002.png | Bin .../sa1/obj_tiles/4bpp/a0789_f000.png | Bin .../sa1/obj_tiles/4bpp/a0789_f001.png | Bin .../sa1/obj_tiles/4bpp/a0789_f002.png | Bin .../sa1/obj_tiles/4bpp/a0790_f000.png | Bin .../sa1/obj_tiles/4bpp/a0791_f000.png | Bin .../sa1/obj_tiles/4bpp/a0792_f000.png | Bin .../sa1/obj_tiles/4bpp/a0793_f000.png | Bin .../sa1/obj_tiles/4bpp/a0794_f000.png | Bin .../sa1/obj_tiles/4bpp/a0794_f001.png | Bin .../sa1/obj_tiles/4bpp/a0794_f002.png | Bin .../sa1/obj_tiles/4bpp/a0794_f003.png | Bin .../sa1/obj_tiles/4bpp/a0794_f004.png | Bin .../sa1/obj_tiles/4bpp/a0794_f005.png | Bin .../sa1/obj_tiles/4bpp/a0795_f000.png | Bin .../sa1/obj_tiles/4bpp/a0795_f001.png | Bin .../sa1/obj_tiles/4bpp/a0795_f002.png | Bin .../sa1/obj_tiles/4bpp/a0795_f003.png | Bin .../sa1/obj_tiles/4bpp/a0796_f000.png | Bin .../sa1/obj_tiles/4bpp/a0796_f001.png | Bin .../sa1/obj_tiles/4bpp/a0796_f002.png | Bin .../sa1/obj_tiles/4bpp/a0796_f003.png | Bin .../sa1/obj_tiles/4bpp/a0797_f000.png | Bin .../sa1/obj_tiles/4bpp/a0797_f001.png | Bin .../sa1/obj_tiles/4bpp/a0797_f002.png | Bin .../sa1/obj_tiles/4bpp/a0797_f003.png | Bin .../sa1/obj_tiles/4bpp/a0797_f004.png | Bin .../sa1/obj_tiles/4bpp/a0797_f005.png | Bin .../sa1/obj_tiles/4bpp/a0797_f006.png | Bin .../sa1/obj_tiles/4bpp/a0798_f000.png | Bin .../sa1/obj_tiles/4bpp/a0798_f001.png | Bin .../sa1/obj_tiles/4bpp/a0798_f002.png | Bin .../sa1/obj_tiles/4bpp/a0798_f003.png | Bin .../sa1/obj_tiles/4bpp/a0798_f004.png | Bin .../sa1/obj_tiles/4bpp/a0798_f005.png | Bin .../sa1/obj_tiles/4bpp/a0799_f000.png | Bin .../sa1/obj_tiles/4bpp/a0799_f001.png | Bin .../sa1/obj_tiles/4bpp/a0799_f002.png | Bin .../sa1/obj_tiles/4bpp/a0799_f003.png | Bin .../sa1/obj_tiles/4bpp/a0799_f004.png | Bin .../sa1/obj_tiles/4bpp/a0799_f005.png | Bin .../sa1/obj_tiles/4bpp/a0799_f006.png | Bin .../sa1/obj_tiles/4bpp/a0799_f007.png | Bin .../sa1/obj_tiles/4bpp/a0799_f008.png | Bin .../sa1/obj_tiles/4bpp/a0799_f009.png | Bin .../sa1/obj_tiles/4bpp/a0799_f010.png | Bin .../sa1/obj_tiles/4bpp/a0799_f011.png | Bin .../sa1/obj_tiles/4bpp/a0799_f012.png | Bin .../sa1/obj_tiles/4bpp/a0799_f013.png | Bin .../sa1/obj_tiles/4bpp/a0799_f014.png | Bin .../sa1/obj_tiles/4bpp/a0799_f015.png | Bin .../sa1/obj_tiles/4bpp/a0799_f016.png | Bin .../sa1/obj_tiles/4bpp/a0799_f017.png | Bin .../sa1/obj_tiles/4bpp/a0799_f018.png | Bin .../sa1/obj_tiles/4bpp/a0799_f019.png | Bin .../sa1/obj_tiles/4bpp/a0799_f020.png | Bin .../sa1/obj_tiles/4bpp/a0799_f021.png | Bin .../sa1/obj_tiles/4bpp/a0799_f022.png | Bin .../sa1/obj_tiles/4bpp/a0799_f023.png | Bin .../sa1/obj_tiles/4bpp/a0800_f000.png | Bin .../sa1/obj_tiles/4bpp/a0800_f001.png | Bin .../sa1/obj_tiles/4bpp/a0800_f002.png | Bin .../sa1/obj_tiles/4bpp/a0800_f003.png | Bin .../sa1/obj_tiles/4bpp/a0800_f004.png | Bin .../sa1/obj_tiles/4bpp/a0800_f005.png | Bin .../sa1/obj_tiles/4bpp/a0800_f006.png | Bin .../sa1/obj_tiles/4bpp/a0800_f007.png | Bin .../sa1/obj_tiles/4bpp/a0800_f008.png | Bin .../sa1/obj_tiles/4bpp/a0800_f009.png | Bin .../sa1/obj_tiles/4bpp/a0801_f000.png | Bin .../sa1/obj_tiles/4bpp/a0801_f001.png | Bin .../sa1/obj_tiles/4bpp/a0802_f000.png | Bin .../sa1/obj_tiles/4bpp/a0802_f001.png | Bin .../sa1/obj_tiles/4bpp/a0802_f002.png | Bin .../sa1/obj_tiles/4bpp/a0802_f003.png | Bin .../sa1/obj_tiles/4bpp/a0802_f004.png | Bin .../sa1/obj_tiles/4bpp/a0805_f000.png | Bin .../sa1/obj_tiles/4bpp/a0805_f001.png | Bin .../sa1/obj_tiles/4bpp/a0805_f002.png | Bin .../sa1/obj_tiles/4bpp/a0805_f003.png | Bin .../sa1/obj_tiles/4bpp/a0806_f000.png | Bin .../sa1/obj_tiles/4bpp/a0806_f001.png | Bin .../sa1/obj_tiles/4bpp/a0806_f002.png | Bin .../sa1/obj_tiles/4bpp/a0807_f000.png | Bin .../sa1/obj_tiles/4bpp/a0807_f001.png | Bin .../sa1/obj_tiles/4bpp/a0807_f002.png | Bin .../sa1/obj_tiles/4bpp/a0807_f003.png | Bin .../sa1/obj_tiles/4bpp/a0807_f004.png | Bin .../sa1/obj_tiles/4bpp/a0807_f005.png | Bin .../sa1/obj_tiles/4bpp/a0807_f006.png | Bin .../sa1/obj_tiles/4bpp/a0807_f007.png | Bin .../sa1/obj_tiles/4bpp/a0807_f008.png | Bin .../sa1/obj_tiles/4bpp/a0808_f000.png | Bin .../sa1/obj_tiles/4bpp/a0808_f001.png | Bin .../sa1/obj_tiles/4bpp/a0808_f002.png | Bin .../sa1/obj_tiles/4bpp/a0808_f003.png | Bin .../sa1/obj_tiles/4bpp/a0808_f004.png | Bin .../sa1/obj_tiles/4bpp/a0809_f000.png | Bin .../sa1/obj_tiles/4bpp/a0810_f000.png | Bin .../sa1/obj_tiles/4bpp/a0810_f001.png | Bin .../sa1/obj_tiles/4bpp/a0811_f000.png | Bin .../sa1/obj_tiles/4bpp/a0812_f000.png | Bin .../sa1/obj_tiles/4bpp/a0812_f001.png | Bin .../sa1/obj_tiles/4bpp/a0812_f002.png | Bin .../sa1/obj_tiles/4bpp/a0813_f000.png | Bin .../sa1/obj_tiles/4bpp/a0813_f001.png | Bin .../sa1/obj_tiles/4bpp/a0816_f000.png | Bin .../sa1/obj_tiles/4bpp/a0817_f000.png | Bin .../sa1/obj_tiles/4bpp/a0818_f000.png | Bin .../sa1/obj_tiles/4bpp/a0819_f000.png | Bin .../sa1/obj_tiles/4bpp/a0820_f000.png | Bin .../sa1/obj_tiles/4bpp/a0853_f000.png | Bin .../sa1/obj_tiles/4bpp/a0853_f001.png | Bin .../sa1/obj_tiles/4bpp/a0853_f002.png | Bin .../sa1/obj_tiles/4bpp/a0853_f003.png | Bin .../sa1/obj_tiles/4bpp/a0853_f004.png | Bin .../sa1/obj_tiles/4bpp/a0853_f005.png | Bin .../sa1/obj_tiles/4bpp/a0853_f006.png | Bin .../sa1/obj_tiles/4bpp/a0854_f000.png | Bin .../sa1/obj_tiles/4bpp/a0854_f001.png | Bin .../sa1/obj_tiles/4bpp/a0854_f002.png | Bin .../sa1/obj_tiles/4bpp/a0854_f003.png | Bin .../sa1/obj_tiles/4bpp/a0854_f004.png | Bin .../sa1/obj_tiles/4bpp/a0854_f005.png | Bin .../sa1/obj_tiles/4bpp/a0854_f006.png | Bin .../sa1/obj_tiles/4bpp/a0854_f007.png | Bin .../sa1/obj_tiles/4bpp/a0854_f008.png | Bin .../sa1/obj_tiles/4bpp/a0854_f009.png | Bin .../sa1/obj_tiles/4bpp/a0854_f010.png | Bin .../sa1/obj_tiles/4bpp/a0854_f011.png | Bin .../sa1/obj_tiles/4bpp/a0854_f012.png | Bin .../sa1/obj_tiles/4bpp/a0854_f013.png | Bin .../sa1/obj_tiles/4bpp/a0854_f014.png | Bin .../sa1/obj_tiles/4bpp/a0855_f000.png | Bin .../sa1/obj_tiles/4bpp/a0855_f001.png | Bin .../sa1/obj_tiles/4bpp/a0855_f002.png | Bin .../sa1/obj_tiles/4bpp/a0855_f003.png | Bin .../sa1/obj_tiles/4bpp/a0855_f004.png | Bin .../sa1/obj_tiles/4bpp/a0855_f005.png | Bin .../sa1/obj_tiles/4bpp/a0855_f006.png | Bin .../sa1/obj_tiles/4bpp/a0855_f007.png | Bin .../sa1/obj_tiles/4bpp/a0855_f008.png | Bin .../sa1/obj_tiles/4bpp/a0856_f000.png | Bin .../sa1/obj_tiles/4bpp/a0856_f001.png | Bin .../sa1/obj_tiles/4bpp/a0856_f002.png | Bin .../sa1/obj_tiles/4bpp/a0856_f003.png | Bin .../sa1/obj_tiles/4bpp/a0856_f004.png | Bin .../sa1/obj_tiles/4bpp/a0857_f000.png | Bin .../sa1/obj_tiles/4bpp/a0858_f000.png | Bin .../sa1/obj_tiles/4bpp/a0858_f001.png | Bin .../sa1/obj_tiles/4bpp/a0858_f002.png | Bin .../sa1/obj_tiles/4bpp/a0858_f003.png | Bin .../sa1/obj_tiles/4bpp/a0859_f000.png | Bin .../sa1/obj_tiles/4bpp/a0860_f000.png | Bin .../sa1/obj_tiles/4bpp/a0861_f000.png | Bin .../sa1/obj_tiles/4bpp/a0861_f001.png | Bin .../sa1/obj_tiles/4bpp/a0861_f002.png | Bin .../sa1/obj_tiles/4bpp/a0861_f003.png | Bin .../sa1/obj_tiles/4bpp/a0862_f000.png | Bin .../sa1/obj_tiles/4bpp/a0862_f001.png | Bin .../sa1/obj_tiles/4bpp/a0862_f002.png | Bin .../sa1/obj_tiles/4bpp/a0862_f003.png | Bin .../sa1/obj_tiles/4bpp/a0863_f000.png | Bin .../sa1/obj_tiles/4bpp/a0863_f001.png | Bin .../sa1/obj_tiles/4bpp/a0863_f002.png | Bin .../sa1/obj_tiles/4bpp/a0863_f003.png | Bin .../sa1/obj_tiles/4bpp/a0863_f004.png | Bin .../sa1/obj_tiles/4bpp/a0863_f005.png | Bin .../sa1/obj_tiles/4bpp/a0863_f006.png | Bin .../sa1/obj_tiles/4bpp/a0863_f007.png | Bin .../sa1/obj_tiles/4bpp/a0863_f008.png | Bin .../sa1/obj_tiles/4bpp/a0863_f009.png | Bin .../sa1/obj_tiles/4bpp/a0863_f010.png | Bin .../sa1/obj_tiles/4bpp/a0863_f011.png | Bin .../sa1/obj_tiles/4bpp/a0863_f012.png | Bin .../sa1/obj_tiles/4bpp/a0863_f013.png | Bin .../sa1/obj_tiles/4bpp/a0864_f000.png | Bin .../sa1/obj_tiles/4bpp/a0864_f001.png | Bin .../sa1/obj_tiles/4bpp/a0864_f002.png | Bin .../sa1/obj_tiles/4bpp/a0865_f000.png | Bin .../sa1/obj_tiles/4bpp/a0865_f001.png | Bin .../sa1/obj_tiles/4bpp/a0866_f000.png | Bin .../sa1/obj_tiles/4bpp/a0866_f001.png | Bin .../sa1/obj_tiles/4bpp/a0866_f002.png | Bin .../sa1/obj_tiles/4bpp/a0866_f003.png | Bin .../sa1/obj_tiles/4bpp/a0866_f004.png | Bin .../sa1/obj_tiles/4bpp/a0866_f005.png | Bin .../sa1/obj_tiles/4bpp/a0866_f006.png | Bin .../sa1/obj_tiles/4bpp/a0866_f007.png | Bin .../sa1/obj_tiles/4bpp/a0866_f008.png | Bin .../sa1/obj_tiles/4bpp/a0866_f009.png | Bin .../sa1/obj_tiles/4bpp/a0866_f010.png | Bin .../sa1/obj_tiles/4bpp/a0866_f011.png | Bin .../sa1/obj_tiles/4bpp/a0866_f012.png | Bin .../sa1/obj_tiles/4bpp/a0866_f013.png | Bin .../sa1/obj_tiles/4bpp/a0866_f014.png | Bin .../sa1/obj_tiles/4bpp/a0867_f000.png | Bin .../sa1/obj_tiles/4bpp/a0868_f000.png | Bin .../sa1/obj_tiles/4bpp/a0868_f001.png | Bin .../sa1/obj_tiles/4bpp/a0868_f002.png | Bin .../sa1/obj_tiles/4bpp/a0869_f000.png | Bin .../sa1/obj_tiles/4bpp/a0869_f001.png | Bin .../sa1/obj_tiles/4bpp/a0869_f002.png | Bin .../sa1/obj_tiles/4bpp/a0870_f000.png | Bin .../sa1/obj_tiles/4bpp/a0870_f001.png | Bin .../sa1/obj_tiles/4bpp/a0870_f002.png | Bin .../sa1/obj_tiles/4bpp/a0871_f000.png | Bin .../sa1/obj_tiles/4bpp/a0872_f000.png | Bin .../sa1/obj_tiles/4bpp/a0873_f000.png | Bin .../sa1/obj_tiles/4bpp/a0874_f000.png | Bin .../sa1/obj_tiles/4bpp/a0875_f000.png | Bin .../sa1/obj_tiles/4bpp/a0876_f000.png | Bin .../sa1/obj_tiles/4bpp/a0877_f000.png | Bin .../sa1/obj_tiles/4bpp/a0877_f001.png | Bin .../sa1/obj_tiles/4bpp/a0877_f002.png | Bin .../sa1/obj_tiles/4bpp/a0877_f003.png | Bin .../sa1/obj_tiles/4bpp/a0878_f000.png | Bin .../sa1/obj_tiles/4bpp/a0878_f001.png | Bin .../sa1/obj_tiles/4bpp/a0878_f002.png | Bin .../sa1/obj_tiles/4bpp/a0879_f000.png | Bin .../sa1/obj_tiles/4bpp/a0879_f001.png | Bin .../sa1/obj_tiles/4bpp/a0879_f002.png | Bin .../sa1/obj_tiles/4bpp/a0880_f000.png | Bin .../sa1/obj_tiles/4bpp/a0880_f001.png | Bin .../sa1/obj_tiles/4bpp/a0880_f002.png | Bin .../sa1/obj_tiles/4bpp/a0880_f003.png | Bin .../sa1/obj_tiles/4bpp/a0880_f004.png | Bin .../sa1/obj_tiles/4bpp/a0880_f005.png | Bin .../sa1/obj_tiles/4bpp/a0880_f006.png | Bin .../sa1/obj_tiles/4bpp/a0880_f007.png | Bin .../sa1/obj_tiles/4bpp/a0880_f008.png | Bin .../sa1/obj_tiles/4bpp/a0880_f009.png | Bin .../sa1/obj_tiles/4bpp/a0880_f010.png | Bin .../sa1/obj_tiles/4bpp/a0880_f011.png | Bin .../sa1/obj_tiles/4bpp/a0880_f012.png | Bin .../sa1/obj_tiles/4bpp/a0881_f000.png | Bin .../sa1/obj_tiles/4bpp/a0881_f001.png | Bin .../sa1/obj_tiles/4bpp/a0881_f002.png | Bin .../sa1/obj_tiles/4bpp/a0881_f003.png | Bin .../sa1/obj_tiles/4bpp/a0881_f004.png | Bin .../sa1/obj_tiles/4bpp/a0881_f005.png | Bin .../sa1/obj_tiles/4bpp/a0881_f006.png | Bin .../sa1/obj_tiles/4bpp/a0881_f007.png | Bin .../sa1/obj_tiles/4bpp/a0881_f008.png | Bin .../sa1/obj_tiles/4bpp/a0881_f009.png | Bin .../sa1/obj_tiles/4bpp/a0881_f010.png | Bin .../sa1/obj_tiles/4bpp/a0881_f011.png | Bin .../sa1/obj_tiles/4bpp/a0882_f000.png | Bin .../sa1/obj_tiles/4bpp/a0882_f001.png | Bin .../sa1/obj_tiles/4bpp/a0883_f000.png | Bin .../sa1/obj_tiles/4bpp/a0883_f001.png | Bin .../sa1/obj_tiles/4bpp/a0883_f002.png | Bin .../sa1/obj_tiles/4bpp/a0883_f003.png | Bin .../sa1/obj_tiles/4bpp/a0883_f004.png | Bin .../sa1/obj_tiles/4bpp/a0883_f005.png | Bin .../sa1/obj_tiles/4bpp/a0883_f006.png | Bin .../sa1/obj_tiles/4bpp/a0883_f007.png | Bin .../sa1/obj_tiles/4bpp/a0883_f008.png | Bin .../sa1/obj_tiles/4bpp/a0883_f009.png | Bin .../sa1/obj_tiles/4bpp/a0883_f010.png | Bin .../sa1/obj_tiles/4bpp/a0883_f011.png | Bin .../sa1/obj_tiles/4bpp/a0883_f012.png | Bin .../sa1/obj_tiles/4bpp/a0884_f000.png | Bin .../sa1/obj_tiles/4bpp/a0884_f001.png | Bin .../sa1/obj_tiles/4bpp/a0884_f002.png | Bin .../sa1/obj_tiles/4bpp/a0884_f003.png | Bin .../sa1/obj_tiles/4bpp/a0884_f004.png | Bin .../sa1/obj_tiles/4bpp/a0885_f000.png | Bin .../sa1/obj_tiles/4bpp/a0885_f001.png | Bin .../sa1/obj_tiles/4bpp/a0885_f002.png | Bin .../sa1/obj_tiles/4bpp/a0885_f003.png | Bin .../sa1/obj_tiles/4bpp/a0885_f004.png | Bin .../sa1/obj_tiles/4bpp/a0885_f005.png | Bin .../sa1/obj_tiles/4bpp/a0885_f006.png | Bin .../sa1/obj_tiles/4bpp/a0885_f007.png | Bin .../sa1/obj_tiles/4bpp/a0885_f008.png | Bin .../sa1/obj_tiles/4bpp/a0885_f009.png | Bin .../sa1/obj_tiles/4bpp/a0885_f010.png | Bin .../sa1/obj_tiles/4bpp/a0886_f000.png | Bin .../sa1/obj_tiles/4bpp/a0887_f000.png | Bin .../sa1/obj_tiles/4bpp/a0887_f001.png | Bin .../sa1/obj_tiles/4bpp/a0887_f002.png | Bin .../sa1/obj_tiles/4bpp/a0887_f003.png | Bin .../sa1/obj_tiles/4bpp/a0887_f004.png | Bin .../sa1/obj_tiles/4bpp/a0887_f005.png | Bin .../sa1/obj_tiles/4bpp/a0887_f006.png | Bin .../sa1/obj_tiles/4bpp/a0887_f007.png | Bin .../sa1/obj_tiles/4bpp/a0887_f008.png | Bin .../sa1/obj_tiles/4bpp/a0887_f009.png | Bin .../sa1/obj_tiles/4bpp/a0887_f010.png | Bin .../sa1/obj_tiles/4bpp/a0887_f011.png | Bin .../sa1/obj_tiles/4bpp/a0887_f012.png | Bin .../sa1/obj_tiles/4bpp/a0887_f013.png | Bin .../sa1/obj_tiles/4bpp/a0887_f014.png | Bin .../sa1/obj_tiles/4bpp/a0887_f015.png | Bin .../sa1/obj_tiles/4bpp/a0887_f016.png | Bin .../sa1/obj_tiles/4bpp/a0887_f017.png | Bin .../sa1/obj_tiles/4bpp/a0887_f018.png | Bin .../sa1/obj_tiles/4bpp/a0888_f000.png | Bin .../sa1/obj_tiles/4bpp/a0888_f001.png | Bin .../sa1/obj_tiles/4bpp/a0888_f002.png | Bin .../sa1/obj_tiles/4bpp/a0888_f003.png | Bin .../sa1/obj_tiles/4bpp/a0888_f004.png | Bin .../sa1/obj_tiles/4bpp/a0888_f005.png | Bin .../sa1/obj_tiles/4bpp/a0888_f006.png | Bin .../sa1/obj_tiles/4bpp/a0888_f007.png | Bin .../sa1/obj_tiles/4bpp/a0888_f008.png | Bin .../sa1/obj_tiles/4bpp/a0888_f009.png | Bin .../sa1/obj_tiles/4bpp/a0888_f010.png | Bin .../sa1/obj_tiles/4bpp/a0888_f011.png | Bin .../sa1/obj_tiles/4bpp/a0889_f000.png | Bin .../sa1/obj_tiles/4bpp/a0890_f000.png | Bin .../sa1/obj_tiles/4bpp/a0891_f000.png | Bin .../sa1/obj_tiles/4bpp/a0891_f001.png | Bin .../sa1/obj_tiles/4bpp/a0891_f002.png | Bin .../sa1/obj_tiles/4bpp/a0891_f003.png | Bin .../sa1/obj_tiles/4bpp/a0891_f004.png | Bin .../sa1/obj_tiles/4bpp/a0891_f005.png | Bin .../sa1/obj_tiles/4bpp/a0891_f006.png | Bin .../sa1/obj_tiles/4bpp/a0891_f007.png | Bin .../sa1/obj_tiles/4bpp/a0891_f008.png | Bin .../sa1/obj_tiles/4bpp/a0891_f009.png | Bin .../sa1/obj_tiles/4bpp/a0892_f000.png | Bin .../sa1/obj_tiles/4bpp/a0892_f001.png | Bin .../sa1/obj_tiles/4bpp/a0892_f002.png | Bin .../sa1/obj_tiles/4bpp/a0892_f003.png | Bin .../sa1/obj_tiles/4bpp/a0893_f000.png | Bin .../sa1/obj_tiles/4bpp/a0894_f000.png | Bin .../sa1/obj_tiles/4bpp/a0894_f001.png | Bin .../sa1/obj_tiles/4bpp/a0894_f002.png | Bin .../sa1/obj_tiles/4bpp/a0894_f003.png | Bin .../sa1/obj_tiles/4bpp/a0894_f004.png | Bin .../sa1/obj_tiles/4bpp/a0894_f005.png | Bin .../sa1/obj_tiles/4bpp/a0894_f006.png | Bin .../sa1/obj_tiles/4bpp/a0894_f007.png | Bin .../sa1/obj_tiles/4bpp/a0894_f008.png | Bin .../sa1/obj_tiles/4bpp/a0895_f000.png | Bin .../sa1/obj_tiles/4bpp/a0895_f001.png | Bin .../sa1/obj_tiles/4bpp/a0896_f000.png | Bin .../sa1/obj_tiles/4bpp/a0896_f001.png | Bin .../sa1/obj_tiles/4bpp/a0896_f002.png | Bin .../sa1/obj_tiles/4bpp/a0896_f003.png | Bin .../sa1/obj_tiles/4bpp/a0896_f004.png | Bin .../sa1/obj_tiles/4bpp/a0896_f005.png | Bin .../sa1/obj_tiles/4bpp/a0896_f006.png | Bin .../sa1/obj_tiles/4bpp/a0896_f007.png | Bin .../sa1/obj_tiles/4bpp/a0896_f008.png | Bin .../sa1/obj_tiles/4bpp/a0896_f009.png | Bin .../sa1/obj_tiles/4bpp/a0896_f010.png | Bin .../sa1/obj_tiles/4bpp/a0896_f011.png | Bin .../sa1/obj_tiles/4bpp/a0896_f012.png | Bin .../sa1/obj_tiles/4bpp/a0896_f013.png | Bin .../sa1/obj_tiles/4bpp/a0897_f000.png | Bin .../sa1/obj_tiles/4bpp/a0897_f001.png | Bin .../sa1/obj_tiles/4bpp/a0898_f000.png | Bin .../sa1/obj_tiles/4bpp/a0898_f001.png | Bin .../sa1/obj_tiles/4bpp/a0898_f002.png | Bin .../sa1/obj_tiles/4bpp/a0898_f003.png | Bin .../sa1/obj_tiles/4bpp/a0899_f000.png | Bin .../sa1/obj_tiles/4bpp/a0899_f001.png | Bin .../sa1/obj_tiles/4bpp/a0899_f002.png | Bin .../sa1/obj_tiles/4bpp/a0899_f003.png | Bin .../sa1/obj_tiles/4bpp/a0899_f004.png | Bin .../sa1/obj_tiles/4bpp/a0899_f005.png | Bin .../sa1/obj_tiles/4bpp/a0899_f006.png | Bin .../sa1/obj_tiles/4bpp/a0899_f007.png | Bin .../sa1/obj_tiles/4bpp/a0899_f008.png | Bin .../sa1/obj_tiles/4bpp/a0899_f009.png | Bin .../sa1/obj_tiles/4bpp/a0899_f010.png | Bin .../sa1/obj_tiles/4bpp/a0900_f000.png | Bin .../sa1/obj_tiles/4bpp/a0900_f001.png | Bin .../sa1/obj_tiles/4bpp/a0900_f002.png | Bin .../sa1/obj_tiles/4bpp/a0901_f000.png | Bin .../sa1/obj_tiles/4bpp/a0901_f001.png | Bin .../sa1/obj_tiles/4bpp/a0902_f000.png | Bin .../sa1/obj_tiles/4bpp/a0902_f001.png | Bin .../sa1/obj_tiles/4bpp/a0902_f002.png | Bin .../sa1/obj_tiles/4bpp/a0902_f003.png | Bin .../sa1/obj_tiles/4bpp/a0903_f000.png | Bin .../sa1/obj_tiles/4bpp/a0903_f001.png | Bin .../sa1/obj_tiles/4bpp/a0903_f002.png | Bin .../sa1/obj_tiles/4bpp/a0903_f003.png | Bin .../sa1/obj_tiles/4bpp/a0904_f000.png | Bin .../sa1/obj_tiles/4bpp/a0904_f001.png | Bin .../sa1/obj_tiles/4bpp/a0904_f002.png | Bin .../sa1/obj_tiles/4bpp/a0904_f003.png | Bin .../sa1/obj_tiles/4bpp/a0904_f004.png | Bin .../sa1/obj_tiles/4bpp/a0904_f005.png | Bin .../sa1/obj_tiles/4bpp/a0904_f006.png | Bin .../sa1/obj_tiles/4bpp/a0905_f000.png | Bin .../sa1/obj_tiles/4bpp/a0906_f000.png | Bin .../sa1/obj_tiles/4bpp/a0907_f000.png | Bin .../sa1/obj_tiles/4bpp/a0907_f001.png | Bin .../sa1/obj_tiles/4bpp/a0907_f002.png | Bin .../sa1/obj_tiles/4bpp/a0907_f003.png | Bin .../sa1/obj_tiles/4bpp/a0907_f004.png | Bin .../sa1/obj_tiles/4bpp/a0907_f005.png | Bin .../sa1/obj_tiles/4bpp/a0907_f006.png | Bin .../sa1/obj_tiles/4bpp/a0907_f007.png | Bin .../sa1/obj_tiles/4bpp/a0907_f008.png | Bin .../sa1/obj_tiles/4bpp/a0907_f009.png | Bin .../sa1/obj_tiles/4bpp/a0907_f010.png | Bin .../sa1/obj_tiles/4bpp/a0907_f011.png | Bin .../sa1/obj_tiles/4bpp/a0907_f012.png | Bin .../sa1/obj_tiles/4bpp/a0907_f013.png | Bin .../sa1/obj_tiles/4bpp/a0907_f014.png | Bin .../sa1/obj_tiles/4bpp/a0907_f015.png | Bin .../sa1/obj_tiles/4bpp/a0907_f016.png | Bin .../sa1/obj_tiles/4bpp/a0907_f017.png | Bin .../sa1/obj_tiles/4bpp/a0907_f018.png | Bin .../sa1/obj_tiles/4bpp/a0907_f019.png | Bin .../sa1/obj_tiles/4bpp/a0907_f020.png | Bin .../sa1/obj_tiles/4bpp/a0907_f021.png | Bin .../sa1/obj_tiles/8bpp/a0666_f000.png | Bin .../sa1/obj_tiles/8bpp/a0666_f001.png | Bin .../sa1/obj_tiles/8bpp/a0737_f000.png | Bin .../sa1/obj_tiles/8bpp/a0737_f001.png | Bin .../sa1/obj_tiles/8bpp/a0737_f002.png | Bin .../sa1/obj_tiles/8bpp/a0737_f003.png | Bin .../sa1/obj_tiles/8bpp/a0738_f000.png | Bin .../sa1/obj_tiles/8bpp/a0738_f001.png | Bin .../sa1/obj_tiles/8bpp/a0738_f002.png | Bin .../sa1/obj_tiles/8bpp/a0738_f003.png | Bin .../sa1/obj_tiles/8bpp/a0776_f000.png | Bin .../sa1/obj_tiles_4bpp.inc | 0 .../sa1/obj_tiles_8bpp.inc | 0 .../sa1/tilemaps/egg_rocket_clouds/header.c | 0 .../tilemaps/egg_rocket_clouds/palette.pal | 0 .../egg_rocket_clouds/tilemap.tilemap2 | Bin .../sa1/tilemaps/egg_rocket_clouds/tiles.png | Bin .../sa1/tilemaps/ice_paradise_snow/header.c | 0 .../tilemaps/ice_paradise_snow/palette.pal | 0 .../ice_paradise_snow/tilemap.tilemap2 | Bin .../sa1/tilemaps/ice_paradise_snow/tiles.png | Bin .../intro_created_by_sonic_team/header.c | 0 .../intro_created_by_sonic_team/palette.pal | 0 .../tilemap.tilemap2 | Bin .../intro_created_by_sonic_team/tiles.png | Bin .../tilemaps/intro_presented_by_sega/header.c | 0 .../intro_presented_by_sega/palette.pal | 0 .../intro_presented_by_sega/tilemap.tilemap2 | Bin .../intro_presented_by_sega/tiles.png | Bin .../tilemaps/mp_choose_pak_type_en/header.c | 0 .../mp_choose_pak_type_en/palette.pal | 0 .../mp_choose_pak_type_en/tilemap.tilemap2 | Bin .../tilemaps/mp_choose_pak_type_en/tiles.png | Bin .../tilemaps/mp_choose_pak_type_jp/header.c | 0 .../mp_choose_pak_type_jp/palette.pal | 0 .../mp_choose_pak_type_jp/tilemap.tilemap2 | Bin .../tilemaps/mp_choose_pak_type_jp/tiles.png | Bin .../sa1/tilemaps/mp_connection_error/header.c | 0 .../tilemaps/mp_connection_error/palette.pal | 0 .../mp_connection_error/tilemap.tilemap2 | Bin .../tilemaps/mp_connection_error/tiles.png | Bin .../tilemaps/mp_connection_success/header.c | 0 .../mp_connection_success/palette.pal | 0 .../mp_connection_success/tilemap.tilemap2 | Bin .../tilemaps/mp_connection_success/tiles.png | Bin .../sa1/tilemaps/mp_continue_screen/header.c | 0 .../tilemaps/mp_continue_screen/palette.pal | 0 .../mp_continue_screen/tilemap.tilemap2 | Bin .../sa1/tilemaps/mp_continue_screen/tiles.png | Bin .../mp_multipak_player_overview/header.c | 0 .../mp_multipak_player_overview/palette.pal | 0 .../tilemap.tilemap2 | Bin .../mp_multipak_player_overview/tiles.png | Bin .../header.c | 0 .../palette.pal | 0 .../tilemap.tilemap2 | Bin .../tiles.png | Bin .../sa1/tilemaps/mp_team_play_screen/header.c | 0 .../tilemaps/mp_team_play_screen/palette.pal | 0 .../mp_team_play_screen/tilemap.tilemap2 | Bin .../tilemaps/mp_team_play_screen/tiles.png | Bin .../sa1/tilemaps/mp_vs_background/header.c | 0 .../sa1/tilemaps/mp_vs_background/palette.pal | 0 .../mp_vs_background/tilemap.tilemap2 | Bin .../sa1/tilemaps/mp_vs_background/tiles.png | Bin .../sa1/tilemaps/special_stage/header.c | 0 .../sa1/tilemaps/special_stage/palette.pal | 0 .../tilemaps/special_stage/tilemap.tilemap2 | Bin .../sa1/tilemaps/special_stage/tiles.png | Bin .../special_stage_bg_frame_0/palette.pal | 0 .../special_stage_bg_frame_0/tilemap.tilemap2 | Bin .../special_stage_bg_frame_0/tiles.png | Bin .../special_stage_bg_frame_1/palette.pal | 0 .../special_stage_bg_frame_1/tilemap.tilemap2 | Bin .../special_stage_bg_frame_1/tiles.png | Bin .../special_stage_bg_frame_10/palette.pal | 0 .../tilemap.tilemap2 | Bin .../special_stage_bg_frame_10/tiles.png | Bin .../special_stage_bg_frame_11/palette.pal | 0 .../tilemap.tilemap2 | Bin .../special_stage_bg_frame_11/tiles.png | Bin .../special_stage_bg_frame_12/palette.pal | 0 .../tilemap.tilemap2 | Bin .../special_stage_bg_frame_12/tiles.png | Bin .../special_stage_bg_frame_13/palette.pal | 0 .../tilemap.tilemap2 | Bin .../special_stage_bg_frame_13/tiles.png | Bin .../special_stage_bg_frame_14/palette.pal | 0 .../tilemap.tilemap2 | Bin .../special_stage_bg_frame_14/tiles.png | Bin .../special_stage_bg_frame_15/palette.pal | 0 .../tilemap.tilemap2 | Bin .../special_stage_bg_frame_15/tiles.png | Bin .../special_stage_bg_frame_2/palette.pal | 0 .../special_stage_bg_frame_2/tilemap.tilemap2 | Bin .../special_stage_bg_frame_2/tiles.png | Bin .../special_stage_bg_frame_3/palette.pal | 0 .../special_stage_bg_frame_3/tilemap.tilemap2 | Bin .../special_stage_bg_frame_3/tiles.png | Bin .../special_stage_bg_frame_4/palette.pal | 0 .../special_stage_bg_frame_4/tilemap.tilemap2 | Bin .../special_stage_bg_frame_4/tiles.png | Bin .../special_stage_bg_frame_5/palette.pal | 0 .../special_stage_bg_frame_5/tilemap.tilemap2 | Bin .../special_stage_bg_frame_5/tiles.png | Bin .../special_stage_bg_frame_6/palette.pal | 0 .../special_stage_bg_frame_6/tilemap.tilemap2 | Bin .../special_stage_bg_frame_6/tiles.png | Bin .../special_stage_bg_frame_7/palette.pal | 0 .../special_stage_bg_frame_7/tilemap.tilemap2 | Bin .../special_stage_bg_frame_7/tiles.png | Bin .../special_stage_bg_frame_8/palette.pal | 0 .../special_stage_bg_frame_8/tilemap.tilemap2 | Bin .../special_stage_bg_frame_8/tiles.png | Bin .../special_stage_bg_frame_9/palette.pal | 0 .../special_stage_bg_frame_9/tilemap.tilemap2 | Bin .../special_stage_bg_frame_9/tiles.png | Bin .../sa1/tilemaps/tilemap_73/header.c | 0 .../sa1/tilemaps/tilemap_73/tilemap.tilemap2 | Bin .../sa1/tilemaps/tilemap_73/tiles.png | Bin .../sa1/tilemaps/tilemap_74/header.c | 0 .../sa1/tilemaps/tilemap_74/tilemap.tilemap2 | Bin .../sa1/tilemaps/tilemap_74/tiles.png | Bin .../sa1/tilemaps/tilemap_75/header.c | 0 .../sa1/tilemaps/tilemap_75/tilemap.tilemap2 | Bin .../sa1/tilemaps/tilemap_75/tiles.png | Bin .../sa1/tilemaps/tilemap_84/header.c | 0 .../sa1/tilemaps/tilemap_84/palette.pal | 0 .../sa1/tilemaps/tilemap_84/tilemap.tilemap2 | Bin .../sa1/tilemaps/tilemap_84/tiles.png | Bin .../sa1/tilemaps/tilemap_85/header.c | 0 .../sa1/tilemaps/tilemap_85/palette.pal | 0 .../sa1/tilemaps/tilemap_85/tilemap.tilemap2 | Bin .../sa1/tilemaps/tilemap_85/tiles.png | Bin .../sa1/tilemaps/tilemap_89/header.c | 0 .../sa1/tilemaps/tilemap_89/palette.pal | 0 .../sa1/tilemaps/tilemap_89/tilemap.tilemap2 | Bin .../sa1/tilemaps/tilemap_89/tiles.png | Bin .../sa1/tilemaps/tilemap_unused_mp_1/header.c | 0 .../tilemaps/tilemap_unused_mp_1/palette.pal | 0 .../tilemap_unused_mp_1/tilemap.tilemap2 | Bin .../tilemaps/tilemap_unused_mp_1/tiles.png | Bin .../sa1/tilemaps/tilemap_unused_mp_2/header.c | 0 .../tilemaps/tilemap_unused_mp_2/palette.pal | 0 .../tilemap_unused_mp_2/tilemap.tilemap2 | Bin .../tilemaps/tilemap_unused_mp_2/tiles.png | Bin .../sa1/tilemaps/tilemap_unused_mp_3/header.c | 0 .../tilemaps/tilemap_unused_mp_3/palette.pal | 0 .../tilemap_unused_mp_3/tilemap.tilemap2 | Bin .../tilemaps/tilemap_unused_mp_3/tiles.png | Bin .../sa1/tilemaps/tilemap_unused_mp_4/header.c | 0 .../tilemaps/tilemap_unused_mp_4/palette.pal | 0 .../tilemap_unused_mp_4/tilemap.tilemap2 | Bin .../tilemaps/tilemap_unused_mp_4/tiles.png | Bin .../tilemap_unused_mp_player_bar/header.c | 0 .../tilemap_unused_mp_player_bar/palette.pal | 0 .../tilemap.tilemap2 | Bin .../tilemap_unused_mp_player_bar/tiles.png | Bin .../sa1/tilesets/debug_ascii/debug_ascii.png | Bin .../sa1/ui/character_select/Arrow.pal | 0 .../sa1/ui/character_select/Arrow.png | Bin .../sa1/ui/character_select/BlackBox.pal | 0 .../sa1/ui/character_select/BlackBox.png | Bin .../sa1/ui/character_select/BlackBox2.pal | 0 .../sa1/ui/character_select/BlackBox2.png | Bin .../sa1/ui/character_select/Names.pal | 0 .../sa1/ui/character_select/Names.png | Bin .../sa1/ui/character_select/OK.pal | 0 .../sa1/ui/character_select/OK.png | Bin .../ui/character_select/SelectACharacter.pal | 0 .../ui/character_select/SelectACharacter.png | Bin .../sa1/ui/character_select/ZigZag.pal | 0 .../sa1/ui/character_select/ZigZag.png | Bin .../sa1/ui/icon_lives/Amy.pal | 0 .../sa1/ui/icon_lives/Amy.png | Bin .../sa1/ui/icon_lives/Knuckles.pal | 0 .../sa1/ui/icon_lives/Knuckles.png | Bin .../sa1/ui/icon_lives/Sonic.pal | 0 .../sa1/ui/icon_lives/Sonic.png | Bin .../sa1/ui/icon_lives/Tails.pal | 0 .../sa1/ui/icon_lives/Tails.png | Bin .../sa1/ui/icon_ring/HudRing.pal | 0 .../sa1/ui/icon_ring/HudRing.png | Bin .../sa1/ui/options_overlays/Characters.pal | 0 .../sa1/ui/options_overlays/Characters.png | Bin .../sa1/ui/options_overlays/Cursors.pal | 0 .../sa1/ui/options_overlays/Cursors.png | Bin .../sa1/ui/options_overlays/EnterName.pal | 0 .../sa1/ui/options_overlays/EnterName.png | Bin .../sa1/ui/options_overlays/RedCorner.pal | 0 .../sa1/ui/options_overlays/RedCorner.png | Bin .../sa1/ui/sound_test/Background.pal | 0 .../sa1/ui/sound_test/Background.png | Bin .../sa1/ui/sound_test/Box2.pal | 0 .../sa1/ui/sound_test/Box2.png | Bin .../sa1/ui/sound_test/Box3.pal | 0 .../sa1/ui/sound_test/Box3.png | Bin .../sa1/ui/sound_test/Box4.pal | 0 .../sa1/ui/sound_test/Box4.png | Bin .../sa1/ui/special_stage/46.pal | 0 .../sa1/ui/special_stage/46.png | Bin .../sa1/ui/special_stage/53.pal | 0 .../sa1/ui/special_stage/53.png | Bin .../sa1/ui/special_stage/ChaosEmerald.pal | 0 .../sa1/ui/special_stage/ChaosEmerald.png | Bin .../ui/special_stage/TextGotAChaosEmerald.pal | 0 .../ui/special_stage/TextGotAChaosEmerald.png | Bin .../sa1/ui/special_stage/TextGotRings0.pal | 0 .../sa1/ui/special_stage/TextGotRings0.png | Bin .../sa1/ui/special_stage/TextGotRings1.pal | 0 .../sa1/ui/special_stage/TextGotRings1.png | Bin .../sa1/ui/special_stage/TextGotRings2.pal | 0 .../sa1/ui/special_stage/TextGotRings2.png | Bin .../sa1/ui/special_stage/TextSpecialStage.pal | 0 .../sa1/ui/special_stage/TextSpecialStage.png | Bin .../sa1/ui/special_stage/TextStart.pal | 0 .../sa1/ui/special_stage/TextStart.png | Bin .../sa1/ui/stage_intro/Amy.pal | 0 .../sa1/ui/stage_intro/Amy.png | Bin .../sa1/ui/stage_intro/AngelIslandZone.pal | 0 .../sa1/ui/stage_intro/AngelIslandZone.png | Bin .../sa1/ui/stage_intro/CasinoParadiseZone.pal | 0 .../sa1/ui/stage_intro/CasinoParadiseZone.png | Bin .../sa1/ui/stage_intro/CosmicAngelZone.pal | 0 .../sa1/ui/stage_intro/CosmicAngelZone.png | Bin .../sa1/ui/stage_intro/EggRocketZone.pal | 0 .../sa1/ui/stage_intro/EggRocketZone.png | Bin .../sa1/ui/stage_intro/FactoryChaoGarden.pal | 0 .../sa1/ui/stage_intro/FactoryChaoGarden.png | Bin .../sa1/ui/stage_intro/ForestChaoGarden.pal | 0 .../sa1/ui/stage_intro/ForestChaoGarden.png | Bin .../sa1/ui/stage_intro/IceMountainZone.pal | 0 .../sa1/ui/stage_intro/IceMountainZone.png | Bin .../sa1/ui/stage_intro/Japanese0.pal | 0 .../sa1/ui/stage_intro/Japanese0.png | Bin .../sa1/ui/stage_intro/Japanese1.pal | 0 .../sa1/ui/stage_intro/Japanese1.png | Bin .../sa1/ui/stage_intro/Knuckles.pal | 0 .../sa1/ui/stage_intro/Knuckles.png | Bin .../sa1/ui/stage_intro/NeoGreenHillZone.pal | 0 .../sa1/ui/stage_intro/NeoGreenHillZone.png | Bin .../sa1/ui/stage_intro/PinballChaoGarden.pal | 0 .../sa1/ui/stage_intro/PinballChaoGarden.png | Bin .../sa1/ui/stage_intro/SecretBaseZone.pal | 0 .../sa1/ui/stage_intro/SecretBaseZone.png | Bin .../sa1/ui/stage_intro/Sonic.pal | 0 .../sa1/ui/stage_intro/Sonic.png | Bin .../sa1/ui/stage_intro/SpaceChaoGarden.pal | 0 .../sa1/ui/stage_intro/SpaceChaoGarden.png | Bin .../sa1/ui/stage_intro/Tails.pal | 0 .../sa1/ui/stage_intro/Tails.png | Bin .../sa1/ui/stage_intro/TheMoonZone.pal | 0 .../sa1/ui/stage_intro/TheMoonZone.png | Bin .../sa1/ui/stage_intro/XZone.pal | 0 .../sa1/ui/stage_intro/XZone.png | Bin .../sa1/ui/stage_intro/char_names.pal | 0 .../sa1/ui/stage_intro/char_names.png | Bin .../sa1/ui/stage_result/Act12.pal | 0 .../sa1/ui/stage_result/Act12.png | Bin .../sa1/ui/stage_result/Amy.pal | 0 .../sa1/ui/stage_result/Amy.png | Bin .../sa1/ui/stage_result/GotThroughTexts.pal | 0 .../sa1/ui/stage_result/GotThroughTexts.png | Bin .../sa1/ui/stage_result/HeadlineBack.pal | 0 .../sa1/ui/stage_result/HeadlineBack.png | Bin .../sa1/ui/stage_result/Knuckles.pal | 0 .../sa1/ui/stage_result/Knuckles.png | Bin .../sa1/ui/stage_result/Sonic.pal | 0 .../sa1/ui/stage_result/Sonic.png | Bin .../sa1/ui/stage_result/Tails.pal | 0 .../sa1/ui/stage_result/Tails.png | Bin .../sa1/ui/stage_ui/AsciiChars.pal | 0 .../sa1/ui/stage_ui/AsciiChars.png | Bin .../sa1/ui/stage_ui/OK.pal | 0 .../sa1/ui/stage_ui/OK.png | Bin .../sa1/ui/stage_ui/TimerDigits.pal | 0 .../sa1/ui/stage_ui/TimerDigits.png | Bin .../sa1/ui/unknown/Transparent0.pal | 0 .../sa1/ui/unknown/Transparent0.png | Bin .../sa1/ui/unknown/Transparent1.pal | 0 .../sa1/ui/unknown/Transparent1.png | Bin .../sa1/ui/unknown/Transparent2.pal | 0 .../sa1/ui/unknown/Transparent2.png | Bin .../sa1/ui/unknown/Transparent3.pal | 0 .../sa1/ui/unknown/Transparent3.png | Bin .../sa1/ui/unknown/Transparent4.pal | 0 .../sa1/ui/unknown/Transparent4.png | Bin .../sa1/ui/unknown/Transparent5.pal | 0 .../sa1/ui/unknown/Transparent5.png | Bin sa1/sa1.sha1 => sa1.sha1 | 0 sa1/ldscript.txt | 635 ------------------ sa1/Makefile => sa1_Makefile | 322 ++------- sa1/config.mk => sa1_config.mk | 2 +- sa1_ldscript.txt | 635 ++++++++++++++++++ sa1/songs.mk => sa1_songs.mk | 0 sa1/sym_iwram.txt => sa1_sym_iwram.txt | 46 +- .../sound => sound}/sa1/direct_sound_data.inc | 0 .../sa1/direct_sound_samples/086DE134.aif | Bin .../sa1/direct_sound_samples/086DF608.aif | Bin .../sa1/direct_sound_samples/086E0A1C.aif | Bin .../sa1/direct_sound_samples/086E134C.aif | Bin .../sa1/direct_sound_samples/086E1ABC.aif | Bin .../sa1/direct_sound_samples/086E33B0.aif | Bin .../sa1/direct_sound_samples/086E64DC.aif | Bin .../sa1/direct_sound_samples/086E6B24.aif | Bin .../sa1/direct_sound_samples/086EA218.aif | Bin .../sa1/direct_sound_samples/086ED1F4.aif | Bin .../sa1/direct_sound_samples/086F0138.aif | Bin .../sa1/direct_sound_samples/086F1AC0.aif | Bin .../sa1/direct_sound_samples/086F1DC0.aif | Bin .../sa1/direct_sound_samples/086F2994.aif | Bin .../sa1/direct_sound_samples/086F5578.aif | Bin .../sa1/direct_sound_samples/086F836C.aif | Bin .../sa1/direct_sound_samples/086FA790.aif | Bin .../sa1/direct_sound_samples/086FAEA4.aif | Bin .../sa1/direct_sound_samples/086FBBD4.aif | Bin .../sa1/direct_sound_samples/086FE150.aif | Bin .../sa1/direct_sound_samples/086FE7E4.aif | Bin .../sa1/direct_sound_samples/086FF18C.aif | Bin .../sa1/direct_sound_samples/0870224C.aif | Bin .../sa1/direct_sound_samples/08702F60.aif | Bin .../sa1/direct_sound_samples/0870613C.aif | Bin .../sa1/direct_sound_samples/08708210.aif | Bin .../sa1/direct_sound_samples/0870A724.aif | Bin .../sa1/direct_sound_samples/0870CA4C.aif | Bin .../sa1/direct_sound_samples/0870D7EC.aif | Bin .../sa1/direct_sound_samples/0870DC84.aif | Bin .../sa1/direct_sound_samples/0870E60C.aif | Bin .../sa1/direct_sound_samples/0870EA00.aif | Bin .../sa1/direct_sound_samples/0870EE50.aif | Bin .../sa1/direct_sound_samples/0870F254.aif | Bin .../sa1/direct_sound_samples/0870FBC0.aif | Bin .../sa1/direct_sound_samples/0870FFA0.aif | Bin .../sa1/direct_sound_samples/087103F8.aif | Bin .../sa1/direct_sound_samples/08710D74.aif | Bin .../sa1/direct_sound_samples/087111D4.aif | Bin .../sa1/direct_sound_samples/08711640.aif | Bin .../sa1/direct_sound_samples/08711ACC.aif | Bin .../sa1/direct_sound_samples/087123F8.aif | Bin .../sa1/direct_sound_samples/08712950.aif | Bin .../sa1/direct_sound_samples/08712DB8.aif | Bin .../sa1/direct_sound_samples/0871375C.aif | Bin .../sa1/direct_sound_samples/0871AED4.aif | Bin .../sa1/direct_sound_samples/0871EF30.aif | Bin .../sa1/direct_sound_samples/08727348.aif | Bin .../sa1/direct_sound_samples/0872CF68.aif | Bin .../sa1/direct_sound_samples/0872E77C.aif | Bin .../sa1/direct_sound_samples/08730340.aif | Bin .../sa1/direct_sound_samples/08730BF0.aif | Bin .../sa1/direct_sound_samples/08731868.aif | Bin .../sa1/direct_sound_samples/08732A00.aif | Bin .../sa1/direct_sound_samples/08733304.aif | Bin .../sa1/direct_sound_samples/08733D74.aif | Bin .../sa1/direct_sound_samples/08737EB4.aif | Bin .../sa1/direct_sound_samples/0873BCBC.aif | Bin .../sa1/direct_sound_samples/0873C470.aif | Bin .../sa1/direct_sound_samples/0873CC80.aif | Bin .../sa1/direct_sound_samples/0873D430.aif | Bin .../sa1/direct_sound_samples/0873DF74.aif | Bin .../sa1/direct_sound_samples/0873ECE8.aif | Bin .../sa1/direct_sound_samples/0873F1C0.aif | Bin .../sa1/direct_sound_samples/0873F654.aif | Bin .../sa1/direct_sound_samples/0873FAB8.aif | Bin .../sa1/direct_sound_samples/0873FF64.aif | Bin .../sa1/direct_sound_samples/087403FC.aif | Bin .../sa1/direct_sound_samples/08740854.aif | Bin .../sa1/direct_sound_samples/08740D00.aif | Bin .../sa1/direct_sound_samples/08741248.aif | Bin .../sa1/direct_sound_samples/08741694.aif | Bin .../sa1/direct_sound_samples/08741B00.aif | Bin .../sa1/direct_sound_samples/0874216C.aif | Bin .../sa1/direct_sound_samples/087424D8.aif | Bin .../sa1/direct_sound_samples/0874267C.aif | Bin .../sa1/direct_sound_samples/08742E90.aif | Bin .../sa1/direct_sound_samples/087432F0.aif | Bin .../sa1/direct_sound_samples/087436FC.aif | Bin .../sa1/direct_sound_samples/08743BEC.aif | Bin .../sa1/direct_sound_samples/0874408C.aif | Bin .../sa1/direct_sound_samples/087444B4.aif | Bin .../sa1/direct_sound_samples/087449BC.aif | Bin .../sa1/direct_sound_samples/0874621C.aif | Bin .../sa1/direct_sound_samples/08746C04.aif | Bin .../sa1/direct_sound_samples/08747908.aif | Bin .../sa1/direct_sound_samples/08747D18.aif | Bin .../sa1/direct_sound_samples/08748108.aif | Bin .../sa1/direct_sound_samples/08748BD8.aif | Bin .../sa1/direct_sound_samples/087493A4.aif | Bin .../sa1/direct_sound_samples/08749864.aif | Bin .../sa1/direct_sound_samples/08749D20.aif | Bin .../sa1/direct_sound_samples/0874A750.aif | Bin .../sa1/direct_sound_samples/0874AAF8.aif | Bin .../sa1/direct_sound_samples/0874B5D0.aif | Bin .../sa1/direct_sound_samples/0874B844.aif | Bin .../sa1/direct_sound_samples/0874CAFC.aif | Bin .../sa1/direct_sound_samples/0874D4D0.aif | Bin .../sa1/direct_sound_samples/0874DDCC.aif | Bin .../sa1/direct_sound_samples/0874E228.aif | Bin .../sa1/direct_sound_samples/0874E6D0.aif | Bin .../sa1/direct_sound_samples/08753AEC.aif | Bin .../sa1/direct_sound_samples/08758BB4.aif | Bin .../sa1/direct_sound_samples/0875A76C.aif | Bin .../sa1/direct_sound_samples/0875E854.aif | Bin .../sa1/direct_sound_samples/087634B0.aif | Bin .../sa1/direct_sound_samples/08763F44.aif | Bin .../sa1/direct_sound_samples/087644B8.aif | Bin .../sa1/direct_sound_samples/08764A24.aif | Bin .../sa1/direct_sound_samples/08764EC8.aif | Bin .../sa1/direct_sound_samples/08765524.aif | Bin .../sa1/direct_sound_samples/08765FF0.aif | Bin .../sa1/direct_sound_samples/087665C8.aif | Bin .../sa1/direct_sound_samples/08766AE4.aif | Bin .../sa1/direct_sound_samples/0876701C.aif | Bin .../sa1/direct_sound_samples/08767588.aif | Bin .../sa1/direct_sound_samples/08767A20.aif | Bin .../sa1/direct_sound_samples/08768070.aif | Bin .../sa1/direct_sound_samples/08768BA0.aif | Bin .../sa1/direct_sound_samples/087692C0.aif | Bin .../sa1/direct_sound_samples/0876995C.aif | Bin .../sa1/direct_sound_samples/0876A058.aif | Bin .../sa1/direct_sound_samples/0876A7E8.aif | Bin .../sa1/direct_sound_samples/0876AE6C.aif | Bin .../sa1/direct_sound_samples/0876B5CC.aif | Bin .../sa1/direct_sound_samples/0876BCBC.aif | Bin .../sa1/direct_sound_samples/0876C1C4.aif | Bin .../sa1/direct_sound_samples/0876C974.aif | Bin .../sa1/direct_sound_samples/0876D0E8.aif | Bin .../sa1/direct_sound_samples/0876D79C.aif | Bin .../sa1/direct_sound_samples/0876DF8C.aif | Bin .../sa1/direct_sound_samples/0876E614.aif | Bin .../sa1/direct_sound_samples/0876ED88.aif | Bin .../sa1/direct_sound_samples/0876F47C.aif | Bin .../sa1/direct_sound_samples/0876FB20.aif | Bin .../sa1/direct_sound_samples/08771CC4.aif | Bin .../sa1/direct_sound_samples/08773848.aif | Bin .../sa1/direct_sound_samples/08775640.aif | Bin .../sa1/direct_sound_samples/08775E7C.aif | Bin .../sa1/direct_sound_samples/08778D48.aif | Bin .../sa1/direct_sound_samples/08779EDC.aif | Bin .../sa1/direct_sound_samples/0877AD00.aif | Bin .../sa1/direct_sound_samples/0877B9A0.aif | Bin .../sa1/direct_sound_samples/0877CF24.aif | Bin .../sa1/direct_sound_samples/0877F2A4.aif | Bin .../sa1/direct_sound_samples/0878306C.aif | Bin .../sa1/direct_sound_samples/08789214.aif | Bin .../sa1/direct_sound_samples/0878D964.aif | Bin .../sa1/direct_sound_samples/0878FAAC.aif | Bin .../sa1/direct_sound_samples/08797224.aif | Bin ..._partition_d__big_chord__big_min__c4_r.aif | Bin {sa1/sound => sound}/sa1/keysplit_tables.inc | 0 .../sa1/music_player_table.inc | 0 .../sa1/programmable_wave_data.inc | 0 .../programmable_wave_samples/086DD6D0.pcm | Bin .../programmable_wave_samples/086DD6E0.pcm | 0 .../programmable_wave_samples/086DD6F0.pcm | Bin .../programmable_wave_samples/086DD700.pcm | 0 .../programmable_wave_samples/086DD710.pcm | Bin .../programmable_wave_samples/086DD720.pcm | Bin .../programmable_wave_samples/086DD730.pcm | Bin .../programmable_wave_samples/086DD740.pcm | Bin .../programmable_wave_samples/086DD750.pcm | 0 {sa1/sound => sound}/sa1/song_table.inc | 0 .../sa1/songs/midi/mus_sp_stage_trick.mid | Bin .../sa1/songs/midi/non_matching/song001.mid | Bin .../sa1/songs/midi/non_matching/song017.mid | Bin .../sa1/songs/midi/non_matching/song020.mid | Bin .../sa1/songs/midi/non_matching/song030.mid | Bin .../sa1/songs/midi/non_matching/song039.mid | Bin .../sa1/songs/midi/non_matching/song040.mid | Bin .../sa1/songs/midi/se_ring_copy.mid | Bin .../sa1/songs/midi/song002.mid | Bin .../sa1/songs/midi/song003.mid | Bin .../sa1/songs/midi/song004.mid | Bin .../sa1/songs/midi/song005.mid | Bin .../sa1/songs/midi/song006.mid | Bin .../sa1/songs/midi/song007.mid | Bin .../sa1/songs/midi/song008.mid | Bin .../sa1/songs/midi/song009.mid | Bin .../sa1/songs/midi/song010.mid | Bin .../sa1/songs/midi/song011.mid | Bin .../sa1/songs/midi/song012.mid | Bin .../sa1/songs/midi/song013.mid | Bin .../sa1/songs/midi/song014.mid | Bin .../sa1/songs/midi/song015.mid | Bin .../sa1/songs/midi/song016.mid | Bin .../sa1/songs/midi/song018.mid | Bin .../sa1/songs/midi/song019.mid | Bin .../sa1/songs/midi/song021.mid | Bin .../sa1/songs/midi/song022.mid | Bin .../sa1/songs/midi/song023.mid | Bin .../sa1/songs/midi/song024.mid | Bin .../sa1/songs/midi/song025.mid | Bin .../sa1/songs/midi/song026.mid | Bin .../sa1/songs/midi/song027.mid | Bin .../sa1/songs/midi/song028.mid | Bin .../sa1/songs/midi/song029.mid | Bin .../sa1/songs/midi/song031.mid | Bin .../sa1/songs/midi/song032.mid | Bin .../sa1/songs/midi/song033.mid | Bin .../sa1/songs/midi/song034.mid | Bin .../sa1/songs/midi/song035.mid | Bin .../sa1/songs/midi/song036.mid | Bin .../sa1/songs/midi/song037.mid | Bin .../sa1/songs/midi/song038.mid | Bin .../sa1/songs/midi/song041.mid | Bin .../sa1/songs/midi/song042.mid | Bin .../sa1/songs/midi/song044.mid | Bin .../sa1/songs/midi/song045.mid | Bin .../sa1/songs/midi/song046.mid | Bin .../sa1/songs/midi/song047.mid | Bin .../sa1/songs/midi/song048.mid | Bin .../sa1/songs/midi/song049.mid | Bin .../sa1/songs/midi/song050.mid | Bin .../sa1/songs/midi/song051.mid | Bin .../sa1/songs/midi/song052.mid | Bin .../sa1/songs/midi/song053.mid | Bin .../sa1/songs/midi/song054.mid | Bin .../sa1/songs/midi/song102.mid | Bin .../sa1/songs/midi/song103.mid | Bin .../sa1/songs/midi/song104.mid | Bin .../sa1/songs/midi/song105.mid | Bin .../sa1/songs/midi/song106.mid | Bin .../sa1/songs/midi/song107.mid | Bin .../sa1/songs/midi/song108.mid | Bin .../sa1/songs/midi/song109.mid | Bin .../sa1/songs/midi/song110.mid | Bin .../sa1/songs/midi/song111.mid | Bin .../sa1/songs/midi/song112.mid | Bin .../sa1/songs/midi/song113.mid | Bin .../sa1/songs/midi/song114.mid | Bin .../sa1/songs/midi/song115.mid | Bin .../sa1/songs/midi/song116.mid | Bin .../sa1/songs/midi/song118.mid | Bin .../sa1/songs/midi/song119.mid | Bin .../sa1/songs/midi/song120.mid | Bin .../sa1/songs/midi/song121.mid | Bin .../sa1/songs/midi/song122.mid | Bin .../sa1/songs/midi/song123.mid | Bin .../sa1/songs/midi/song124.mid | Bin .../sa1/songs/midi/song125.mid | Bin .../sa1/songs/midi/song126.mid | Bin .../sa1/songs/midi/song127.mid | Bin .../sa1/songs/midi/song128.mid | Bin .../sa1/songs/midi/song129.mid | Bin .../sa1/songs/midi/song130.mid | Bin .../sa1/songs/midi/song131.mid | Bin .../sa1/songs/midi/song132.mid | Bin .../sa1/songs/midi/song133.mid | Bin .../sa1/songs/midi/song134.mid | Bin .../sa1/songs/midi/song135.mid | Bin .../sa1/songs/midi/song136.mid | Bin .../sa1/songs/midi/song137.mid | Bin .../sa1/songs/midi/song138.mid | Bin .../sa1/songs/midi/song139.mid | Bin .../sa1/songs/midi/song140.mid | Bin .../sa1/songs/midi/song141.mid | Bin .../sa1/songs/midi/song142.mid | Bin .../sa1/songs/midi/song143.mid | Bin .../sa1/songs/midi/song144.mid | Bin .../sa1/songs/midi/song145.mid | Bin .../sa1/songs/midi/song146.mid | Bin .../sa1/songs/midi/song147.mid | Bin .../sa1/songs/midi/song148.mid | Bin .../sa1/songs/midi/song149.mid | Bin .../sa1/songs/midi/song150.mid | Bin .../sa1/songs/midi/song151.mid | Bin .../sa1/songs/midi/song152.mid | Bin .../sa1/songs/midi/song153.mid | Bin .../sa1/songs/midi/song154.mid | Bin .../sa1/songs/midi/song155.mid | Bin .../sa1/songs/midi/song156.mid | Bin .../sa1/songs/midi/song157.mid | Bin .../sa1/songs/midi/song158.mid | Bin .../sa1/songs/midi/song159.mid | Bin .../sa1/songs/midi/song160.mid | Bin .../sa1/songs/midi/song161.mid | Bin .../sa1/songs/midi/song162.mid | Bin .../sa1/songs/midi/song163.mid | Bin .../sa1/songs/midi/song164.mid | Bin .../sa1/songs/midi/song166.mid | Bin .../sa1/songs/midi/song167.mid | Bin .../sa1/songs/midi/song168.mid | Bin .../sa1/songs/midi/song169.mid | Bin .../sa1/songs/midi/song170.mid | Bin .../sa1/songs/midi/song171.mid | Bin .../sa1/songs/midi/song172.mid | Bin .../sa1/songs/midi/song173.mid | Bin .../sa1/songs/midi/song174.mid | Bin .../sa1/songs/midi/song175.mid | Bin .../sa1/songs/midi/song176.mid | Bin .../sa1/songs/midi/song177.mid | Bin .../sa1/songs/midi/song178.mid | Bin .../sa1/songs/midi/song179.mid | Bin .../sa1/songs/midi/song180.mid | Bin .../sa1/songs/midi/song181.mid | Bin .../sa1/songs/midi/song182.mid | Bin .../sa1/songs/midi/song183.mid | Bin .../sa1/songs/midi/song184.mid | Bin .../sa1/songs/midi/song185.mid | Bin .../sa1/songs/midi/song188.mid | Bin .../sa1/songs/midi/song189.mid | Bin .../sa1/songs/midi/song190.mid | Bin .../sa1/songs/midi/song191.mid | Bin .../sa1/songs/midi/song192.mid | Bin .../sa1/songs/midi/song193.mid | Bin .../sa1/songs/midi/song194.mid | Bin .../sa1/songs/midi/song195.mid | Bin .../sa1/songs/midi/song196.mid | Bin .../sa1/songs/midi/song198.mid | Bin .../sa1/songs/midi/song199.mid | Bin .../sa1/songs/midi/song200.mid | Bin .../sa1/songs/midi/song201.mid | Bin .../sa1/songs/midi/song202.mid | Bin .../sa1/songs/midi/song203.mid | Bin .../sa1/songs/midi/song204.mid | Bin .../sa1/songs/midi/song205.mid | Bin .../sa1/songs/midi/song206.mid | Bin .../sa1/songs/midi/song207.mid | Bin .../sa1/songs/midi/song208.mid | Bin .../sa1/songs/midi/song209.mid | Bin .../sa1/songs/midi/song210.mid | Bin .../sa1/songs/midi/song211.mid | Bin .../sa1/songs/midi/song212.mid | Bin .../sa1/songs/midi/song213.mid | Bin .../sa1/songs/midi/song214.mid | Bin .../sa1/songs/midi/song215.mid | Bin .../sa1/songs/midi/song216.mid | Bin .../sa1/songs/midi/song217.mid | Bin .../sa1/songs/midi/song218.mid | Bin .../sa1/songs/midi/song219.mid | Bin .../sa1/songs/midi/song220.mid | Bin .../sa1/songs/midi/song221.mid | Bin .../sa1/songs/midi/song222.mid | Bin .../sa1/songs/midi/song223.mid | Bin .../sa1/songs/midi/song224.mid | Bin .../sa1/songs/midi/song301.mid | Bin .../sa1/songs/midi/song302.mid | Bin .../sa1/songs/midi/song303.mid | Bin .../sa1/songs/midi/song304.mid | Bin .../sa1/songs/midi/song305.mid | Bin .../sa1/songs/midi/song306.mid | Bin .../sa1/songs/midi/song307.mid | Bin {sa1/sound => sound}/sa1/songs/song001.s | 0 {sa1/sound => sound}/sa1/songs/song017.s | 0 {sa1/sound => sound}/sa1/songs/song020.s | 0 {sa1/sound => sound}/sa1/songs/song030.s | 0 {sa1/sound => sound}/sa1/songs/song039.s | 0 {sa1/sound => sound}/sa1/songs/song040.s | 0 {sa1/sound => sound}/sa1/voice_groups.inc | 0 .../sa1/voicegroups/voicegroup000.inc | 0 .../sa1/voicegroups/voicegroup001.inc | 0 .../sa1/voicegroups/voicegroup002.inc | 0 .../sa1/voicegroups/voicegroup003.inc | 0 .../sa1/voicegroups/voicegroup004.inc | 0 .../sa1/voicegroups/voicegroup005.inc | 0 .../sa1/voicegroups/voicegroup006.inc | 0 .../sa1/voicegroups/voicegroup007.inc | 0 .../data/sa1/animations/animation_table.c | 0 .../data/sa1/animations/animations.c | 0 {sa1/src => src}/data/sa1/credits.c | 0 {sa1/src => src}/data/sa1/entities.c | 0 {sa1/src => src}/data/sa1/entity_tables.c | 0 {sa1/src => src}/data/sa1/oam_data.c | 0 {sa1/src => src}/data/sa1/obj_palettes.c | 0 {sa1/src => src}/data/sa1/sprite_dimensions.c | 0 {sa1/src => src}/data/sa1/sprite_tables.c | 0 {sa1/src => src}/data/sa1/tilemap_data_0.c | 0 {sa1/src => src}/data/sa1/tilemap_data_2.c | 0 {sa1/src => src}/data/sa1/tilemap_data_3.c | 0 {sa1/src => src}/data/sa1/tilemap_table.c | 0 .../data/sa1/tilemaps_special_stage.c | 0 .../data/sa1/tileset_debug_ascii.c | 0 {sa1/src => src}/data/sa1/ui_graphics_data.c | 0 {sa1/src => src}/data/sa1/ui_graphics_table.c | 0 src/game/math.c | 3 + src/lib/agb_flash/agb_flash_512k.c | 2 + 5454 files changed, 715 insertions(+), 932 deletions(-) rename {sa1/data => data}/sa1/build_info.s (100%) rename {sa1/data => data}/sa1/chao_garden.s (100%) rename {sa1/data => data}/sa1/data1.s (100%) rename {sa1/data => data}/sa1/data1_1.s (100%) rename {sa1/data => data}/sa1/data_0_1_2.s (100%) rename {sa1/data => data}/sa1/data_0_1_4.s (100%) rename {sa1/data => data}/sa1/data_0_2.s (100%) rename {sa1/data => data}/sa1/data_0_3.s (100%) rename {sa1/data => data}/sa1/data_0_3_2.s (100%) rename {sa1/data => data}/sa1/data_0_4.s (100%) rename {sa1/data => data}/sa1/data_0_5.s (100%) rename {sa1/data => data}/sa1/data_0_5_0.s (100%) rename {sa1/data => data}/sa1/data_0_5_2.s (100%) rename {sa1/data => data}/sa1/data_0_6.s (100%) rename {sa1/data => data}/sa1/data_0_6_0.s (100%) rename {sa1/data => data}/sa1/data_0_6_1.s (100%) rename {sa1/data => data}/sa1/data_0_6_2.s (100%) rename {sa1/data => data}/sa1/data_0_7.s (100%) rename {sa1/data => data}/sa1/data_sound_test.s (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_1/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_2/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_3/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_4/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_5/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/metadata.txt (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_6/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_1/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/entities/enemies.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/entities/interactables.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/entities/itemboxes.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/entities/rings.csv (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/bg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/bg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/bg/tilemap.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/bg/tiles.png (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/flags.coll (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/header.c (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/height_map.coll (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/map_back.bin (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/map_front.bin (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/metatiles.tilemap2 (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/palette.pal (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/tile_rot.coll (100%) rename {sa1/data => data}/sa1/maps/zone_7/act_2/tilemaps/fg/tileset.png (100%) rename {sa1/data => data}/sa1/obj_gfx.s (100%) rename {sa1/data => data}/sa1/rom_header_old.s (100%) rename {sa1/data => data}/sa1/sound_data.s (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_000.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_001.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_002.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_003.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_004.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_005.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_006.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_007.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_008.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_009.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_010.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_011.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_012.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_013.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_014.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_015.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_016.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_017.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_018.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_019.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_020.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_021.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_022.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_023.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_024.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_025.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_026.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_027.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_028.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_029.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_030.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_031.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_032.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_033.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_034.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_035.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_036.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_037.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_038.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_039.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_040.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_041.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_042.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_043.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_044.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_045.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_046.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_047.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_048.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_049.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_050.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_051.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_052.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_053.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_054.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_055.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_056.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_057.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_058.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_059.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_060.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_061.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_062.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_063.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_064.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_065.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_066.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_067.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_068.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_069.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_070.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_071.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_072.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_073.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_074.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_075.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_076.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_077.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_078.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_079.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_080.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_081.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_082.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_083.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_084.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_085.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_086.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_087.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_088.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_089.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_090.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_091.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_092.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_093.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_094.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_095.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_096.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_097.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_098.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_099.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_100.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_101.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_102.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_103.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_104.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_105.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_106.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_107.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_108.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_109.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_110.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_111.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_112.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_113.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_114.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_115.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_116.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_117.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_118.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_119.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_120.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_121.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_122.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_123.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_124.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_125.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_126.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_127.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_128.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_129.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_130.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_131.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_132.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_133.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_134.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_135.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_136.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_137.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_138.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_139.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_140.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_141.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_142.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_143.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_144.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_145.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_146.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_147.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_148.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_149.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_150.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_151.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_152.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_153.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_154.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_155.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_156.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_157.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_158.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_159.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_160.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_161.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_162.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_163.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_164.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_165.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_166.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_167.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_168.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_169.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_170.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_171.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_172.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_173.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_174.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_175.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_176.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_177.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_178.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_179.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_180.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_181.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_182.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_183.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_184.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_185.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_186.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_187.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_188.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_189.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_190.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_191.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_192.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_193.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_194.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_195.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_196.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_197.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_198.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_199.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_200.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_201.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_202.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_203.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_204.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_205.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_206.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_207.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_208.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_209.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_210.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_211.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_212.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_213.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_214.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_215.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_216.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_217.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_218.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_219.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_220.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_221.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_222.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_223.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_224.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_225.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_226.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_227.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_228.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_229.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_230.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_231.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_232.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_233.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_234.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_235.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_236.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_237.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_238.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_239.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_240.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_241.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_242.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_243.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_244.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_245.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_246.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_247.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_248.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_249.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_250.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_251.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_252.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_253.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_254.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_255.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_256.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_257.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_258.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_259.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_260.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_261.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_262.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_263.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_264.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_265.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_266.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_267.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_268.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_269.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_270.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_271.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_272.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_273.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_274.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_275.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_276.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_277.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_278.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_279.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_280.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_281.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_282.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_283.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_284.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_285.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_286.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_287.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_288.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_289.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_290.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_291.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_292.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_293.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_294.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_295.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_296.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_297.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_298.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_299.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_300.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_301.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_302.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_303.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_304.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_305.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_306.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_307.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_308.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_309.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_310.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_311.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_312.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_313.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_314.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_315.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_316.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_317.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_318.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_319.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_320.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_321.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_322.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_323.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_324.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_325.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_326.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_327.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_328.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_329.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_330.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_331.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_332.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_333.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_334.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_335.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_336.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_337.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_338.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_339.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_340.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_341.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_342.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_343.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_344.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_345.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_346.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_347.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_348.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_349.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_350.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_351.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_352.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_353.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_354.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_355.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_356.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_357.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_358.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_359.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_360.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_361.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_362.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_363.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_364.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_365.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_366.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_367.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_368.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_369.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_370.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_371.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_372.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_373.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_374.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_375.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_376.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_377.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_378.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_379.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_380.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_381.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_382.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_383.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_384.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_385.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_386.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_387.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_388.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_389.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_390.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_391.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_392.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_393.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_394.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_395.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_396.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_397.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_398.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_399.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_400.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_401.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_402.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_403.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_404.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_405.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_406.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_407.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_408.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_409.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_410.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_411.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_412.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_413.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_414.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_415.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_416.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_417.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_418.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_419.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_420.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_421.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_422.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_423.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_424.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_425.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_426.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_427.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_428.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_429.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_430.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_431.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_432.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_433.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_434.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_435.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_436.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_437.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_438.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_439.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_440.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_441.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_442.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_443.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_444.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_445.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_446.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_447.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_448.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_449.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_450.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_451.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_452.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_453.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_454.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_455.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_456.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_457.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_458.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_459.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_460.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_461.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_462.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_palettes/pal_463.pal (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0000_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0001_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0002_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0002_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0002_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0002_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0002_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0003_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0003_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0003_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0003_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0004_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0005_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0005_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0005_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0005_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0006_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0006_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0007_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0007_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0007_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0007_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0008_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0008_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0008_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0008_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0009_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0009_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0009_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0010_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0011_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0012_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0013_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0014_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0017_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0017_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0018_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0019_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0019_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0019_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0019_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0019_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0021_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0021_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0021_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0021_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0021_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0022_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0023_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0024_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0024_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0024_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0024_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0024_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0024_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0025_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0025_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0025_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0025_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0026_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0027_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0028_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0029_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0029_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0029_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0030_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0031_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0032_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0033_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0033_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0033_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0034_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0035_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0036_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0037_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0038_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0038_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0038_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0038_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0038_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0039_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0039_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0039_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0039_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0040_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0041_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0041_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0041_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0041_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0041_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0042_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0043_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0043_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0043_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0044_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0044_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0044_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0044_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0045_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0049_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0050_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0051_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0051_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0051_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0051_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0052_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0053_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0053_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0053_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0053_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0053_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0053_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0055_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0055_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0055_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0055_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0081_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0081_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0081_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0081_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0082_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0082_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0082_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0082_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0083_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0083_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0083_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0083_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0084_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0084_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0084_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0084_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0085_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0085_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0086_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0086_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0086_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0087_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0087_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0088_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0088_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0088_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0088_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0088_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0089_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0089_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0089_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0089_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0089_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0091_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0091_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0093_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0096_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0096_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0096_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0096_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0097_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0097_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0097_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0098_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0099_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0100_f024.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0101_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0101_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0101_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0101_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0101_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0101_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0102_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0103_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0104_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0105_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0105_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0106_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0106_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0106_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0106_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0107_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0108_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0108_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0108_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0108_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0109_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0110_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0111_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0112_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0113_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0116_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0116_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0117_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0118_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0118_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0118_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0118_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0118_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0120_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0120_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0120_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0120_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0120_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0121_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f024.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f025.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f026.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0122_f027.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0123_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0124_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0124_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0124_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0124_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0125_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0126_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0127_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0128_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0128_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0128_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0129_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0130_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0131_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0132_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0133_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0134_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0135_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0136_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0137_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0137_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0137_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0137_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0137_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0138_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0139_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0140_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0140_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0140_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0140_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0140_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0140_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0141_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0142_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0142_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0142_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0145_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0146_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0146_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0147_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0149_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0155_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0156_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0156_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0157_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0158_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0180_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0180_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0180_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0181_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0181_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0181_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0182_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0182_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0182_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0184_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0184_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0185_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0185_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0185_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0186_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0187_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0187_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0187_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0187_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0187_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0188_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0188_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0188_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0188_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0190_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0190_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0191_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0191_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0191_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0191_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0191_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0192_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0195_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0195_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0195_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0195_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0196_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0196_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0196_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0197_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0198_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0198_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0198_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0198_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0199_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0200_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0201_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0201_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0201_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0202_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0202_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0202_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0202_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0203_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0204_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0205_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0205_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0206_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0206_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0206_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0206_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0207_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0207_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0207_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0207_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0208_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0208_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0208_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0208_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0209_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0210_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0211_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0212_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0213_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0216_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0216_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0217_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0218_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0218_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0218_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0218_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0218_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0220_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0220_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0220_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0220_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0220_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0221_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0222_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0223_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0224_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0224_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0224_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0224_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0225_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0226_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0227_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0228_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0228_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0228_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0229_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0230_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0231_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0232_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0232_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0232_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0233_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0234_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0235_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0236_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0237_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0237_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0237_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0237_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0237_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0238_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0238_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0238_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0238_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0239_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0240_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0240_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0240_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0240_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0240_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0240_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0241_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0242_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0242_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0242_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0245_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0245_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0245_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0245_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0245_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0245_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0246_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0246_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0246_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0246_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0249_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0250_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0260_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0260_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0261_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0261_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0261_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0261_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0262_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0262_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0263_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0264_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0264_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0264_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0265_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0269_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0269_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0269_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0269_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0269_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0269_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0270_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0270_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0271_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0271_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0271_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0271_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0271_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0271_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0280_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0280_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0280_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0280_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0281_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0281_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0281_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0281_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0282_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0282_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0282_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0282_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0284_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0284_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0285_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0285_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0285_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0286_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0286_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0287_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0287_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0287_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0287_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0287_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0288_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0288_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0288_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0288_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0292_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0295_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0295_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0295_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0295_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0296_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0296_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0296_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0297_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0298_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f024.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f025.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f026.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f027.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f028.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f029.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0299_f030.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0300_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0300_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0300_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0300_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0300_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0301_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0301_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0301_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0301_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0301_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0302_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0303_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0303_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0303_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0303_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0303_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0303_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0304_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0304_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0305_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0305_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0305_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0305_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0306_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0306_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0306_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0306_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0307_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0307_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0307_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0307_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0308_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0309_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0310_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0311_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0312_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0315_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0315_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0317_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0317_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0317_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0317_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0319_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0319_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0319_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0319_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0319_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0320_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f024.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f025.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f026.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f027.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f028.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0321_f029.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0322_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0323_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0323_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0323_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0323_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0324_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0325_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0326_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0327_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0327_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0327_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0328_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0329_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0330_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0331_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0331_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0331_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0331_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0331_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0331_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0332_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0333_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0334_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0335_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0336_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0336_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0336_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0336_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0336_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0337_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0337_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0337_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0337_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0338_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0339_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0339_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0339_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0339_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0339_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0339_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0340_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0341_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0341_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0341_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0342_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0342_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0342_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0342_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0343_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0348_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0353_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0373_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0374_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0375_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0376_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0377_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0379_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0379_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0379_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0380_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0380_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0380_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0381_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0381_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0381_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0383_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0383_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0384_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0384_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0384_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0385_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0385_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0386_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0386_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0386_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0387_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0387_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0387_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0387_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0391_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0392_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0392_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0392_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0392_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0393_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0393_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0393_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0394_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0396_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0397_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0397_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0397_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0398_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0399_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0400_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0401_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0401_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0401_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0401_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0401_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0401_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0402_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0402_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0402_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0402_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0403_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0403_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0403_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0403_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0403_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0404_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0404_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0404_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0404_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0404_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0405_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0405_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0405_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0405_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0405_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0405_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0406_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0406_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0406_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0406_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0406_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0406_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0407_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0407_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0407_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0407_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0408_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0409_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0410_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0410_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0411_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0411_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0411_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0411_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0412_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0412_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0412_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0412_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0413_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0413_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0413_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0413_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0413_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0414_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0414_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0415_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0415_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0415_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0415_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0416_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0416_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0416_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0416_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0416_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0417_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0417_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0417_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0417_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0417_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0417_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0418_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0418_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0418_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0418_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0419_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0419_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0420_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0421_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0422_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0422_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0422_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0422_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0422_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0423_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0423_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0423_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0423_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0423_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0424_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0424_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0424_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0425_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0425_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0425_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0425_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0425_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0425_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0426_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0426_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0426_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0426_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0426_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0427_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0428_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0429_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0429_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0430_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0431_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0431_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0431_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0432_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0432_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0432_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0432_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0432_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0433_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0433_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0433_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0433_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0433_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0434_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0434_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0434_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0434_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0435_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0435_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0436_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0436_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0437_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0437_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0437_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0438_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0438_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0438_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0439_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0439_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0439_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0440_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0440_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0440_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0441_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0441_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0441_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0442_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0442_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0442_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0443_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0443_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0443_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0444_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0444_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0444_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0445_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0445_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0445_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0446_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0446_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0446_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0447_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0447_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0447_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0448_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0448_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0448_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0449_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0449_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0449_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0450_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0450_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0450_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0451_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0451_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0451_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0452_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0453_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0454_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0454_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0454_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0454_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0455_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0456_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0457_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0457_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0457_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0457_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0458_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0459_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0460_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0461_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0462_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0463_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0464_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0464_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0464_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0465_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0466_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0467_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0468_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0468_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0468_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0468_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0468_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0469_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0469_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0469_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0469_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0469_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0469_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0470_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0470_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0470_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0470_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0470_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0471_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0472_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0472_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0472_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0473_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0473_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0473_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0474_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0474_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0474_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0475_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0476_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0477_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0478_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0478_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0478_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0478_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0478_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0478_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0479_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0480_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0481_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0482_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0482_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0482_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0482_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0482_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0483_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0483_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0483_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0483_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0483_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0484_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0485_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0486_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0486_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0487_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0487_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0488_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0489_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0490_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0491_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f024.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f025.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f026.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f027.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f028.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f029.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f030.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f031.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f032.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f033.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f034.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f035.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f036.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f037.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f038.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0492_f039.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0493_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0494_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0495_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0496_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0496_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0496_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0496_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0496_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0496_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0497_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0497_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0497_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0497_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0497_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0497_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0498_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0498_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0498_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0498_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0499_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0501_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0502_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0503_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0503_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0503_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0504_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0504_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0505_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0506_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0507_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0508_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0508_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0508_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0508_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0509_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0509_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0509_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0509_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0510_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0511_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0511_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0511_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0512_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0512_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0512_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0513_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0514_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0514_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0515_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0515_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0515_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0515_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0516_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0517_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0518_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0519_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0520_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0521_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0522_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0522_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0522_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0522_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0523_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0524_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0525_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0526_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0526_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0526_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0526_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0526_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0527_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0528_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0529_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0530_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0531_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0532_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0533_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0533_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0534_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0535_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0536_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0537_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0538_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0539_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0540_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0540_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0540_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0540_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0540_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0541_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0542_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0542_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0542_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0542_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0543_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0544_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0545_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0545_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0546_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0546_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0547_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0548_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0549_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0550_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0551_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0552_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0552_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0552_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0553_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0554_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0555_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0556_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0557_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0558_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0558_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0558_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0558_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0559_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0560_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0560_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0561_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0561_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0561_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0562_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0562_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0562_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0563_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0563_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0563_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0564_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0565_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0566_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0567_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0568_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0568_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0568_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0569_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0570_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0570_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0570_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0571_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0571_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0571_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0572_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0572_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0572_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0572_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0572_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0573_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0574_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0575_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0575_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0575_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0576_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0577_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0578_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0579_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0580_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0581_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0581_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0581_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0581_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0582_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0582_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0582_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0582_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0582_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0583_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0584_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0584_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0584_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0584_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0585_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0585_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0585_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0585_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0586_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0586_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0586_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0586_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0587_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0587_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0587_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0587_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0588_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0588_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0588_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0588_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0588_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0588_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0589_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0589_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0589_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0589_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0589_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0589_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0590_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0591_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0592_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0593_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0593_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0593_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0593_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0594_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0595_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0596_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0597_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0597_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0597_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0597_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0598_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0599_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0600_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0601_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0602_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0603_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0603_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0603_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0603_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0604_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0604_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0604_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0604_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0605_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0606_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0607_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0607_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0607_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0608_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0609_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0610_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0610_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0610_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0610_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0610_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0611_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0611_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0611_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0611_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0611_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0612_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0613_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0614_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0615_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0616_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0617_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0618_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0618_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0618_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0618_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0618_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0619_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0620_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0620_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0620_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0620_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0620_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0620_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0621_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0622_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0622_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0622_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0622_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0622_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0623_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0624_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0624_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0624_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0624_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0625_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0625_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0626_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0627_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0627_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0628_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0628_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0628_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0628_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0628_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0628_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0629_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0629_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0629_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0629_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0630_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0631_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0632_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0632_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0632_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0632_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0632_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0632_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0633_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0633_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0634_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0634_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0634_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0634_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0634_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0635_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0635_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0635_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0635_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0635_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0635_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0636_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0636_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0636_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0636_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0637_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0638_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0638_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0639_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0639_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0639_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0639_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0640_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0641_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0641_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0642_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0642_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0642_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0642_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0643_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0644_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0644_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0644_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0644_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0644_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0644_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0645_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0645_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0646_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0646_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0646_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0646_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0646_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0647_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0647_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0647_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0647_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0647_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0647_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0648_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0648_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0648_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0648_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0649_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0650_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0650_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0651_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0651_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0651_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0651_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0652_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0653_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0653_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0654_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0654_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0654_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0654_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0655_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0656_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0656_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0657_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0657_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0657_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0657_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0657_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0657_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0658_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0658_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0658_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0658_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0658_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0658_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0659_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0660_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0661_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0662_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0662_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0662_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0663_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0663_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0664_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0664_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0665_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0665_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0667_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0667_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0667_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0667_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0667_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0668_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0668_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0668_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0668_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0669_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0670_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0671_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0672_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0672_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0672_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0672_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0672_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0673_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0673_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0674_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0675_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0675_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0676_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0677_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0678_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0679_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0679_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0680_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0680_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0680_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0680_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0680_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0681_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0682_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0683_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0683_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0683_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0683_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0683_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0684_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0685_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0685_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0686_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0686_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0686_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0686_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0686_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0687_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0687_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f024.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f025.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0688_f026.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0689_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0689_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0689_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0689_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0690_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0690_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0691_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0692_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0693_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0693_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0693_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0693_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0694_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0695_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0695_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0696_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0696_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0697_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0697_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0698_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0698_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0698_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0698_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0699_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0699_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0699_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0699_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0700_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0701_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0701_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0702_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0702_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0702_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0702_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0702_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0703_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0703_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0703_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0703_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0703_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0704_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0704_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0704_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0704_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0704_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0705_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0706_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0707_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0707_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0707_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0707_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0708_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0708_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0708_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0708_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0709_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0709_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0709_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0709_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0709_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0710_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0711_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0711_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0712_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0713_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0713_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0713_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0713_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0714_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0715_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0715_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0715_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0715_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0715_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0716_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0717_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0717_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0717_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0718_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0719_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0719_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0719_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0719_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0720_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0721_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0722_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0723_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0723_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0723_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0723_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0724_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0725_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0726_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0727_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0728_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0729_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0730_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0731_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0731_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0731_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0731_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0732_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0732_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0732_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0732_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0733_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0733_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0734_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0734_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0735_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0735_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0736_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0736_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0739_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0739_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0740_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0740_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0740_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0740_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0741_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0741_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0742_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0743_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0744_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0745_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0745_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0745_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0745_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0745_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0746_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0747_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0747_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0747_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0747_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0748_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0749_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0750_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0750_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0750_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0750_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0750_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0750_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0751_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0752_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0753_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0753_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0753_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0753_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0754_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0754_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0754_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0754_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0755_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0755_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0755_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0755_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0756_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0756_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0756_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0756_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0756_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0757_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0757_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0757_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0757_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0757_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0758_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0758_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0758_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0758_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0758_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0759_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0759_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0759_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0759_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0759_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0760_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0760_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0760_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0760_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0760_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0761_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0761_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0761_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0761_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0761_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0762_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0763_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0763_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0763_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0763_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0763_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0764_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0764_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0764_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0764_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0764_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0764_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0765_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0766_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0767_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0768_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0769_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0769_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0769_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0769_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0770_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0770_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0770_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0770_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0770_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0770_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0771_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0771_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0771_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0771_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0771_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0771_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0772_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0773_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0773_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0773_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0773_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0774_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0774_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0774_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0774_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0775_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0777_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0777_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0777_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0777_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0778_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0778_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0778_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0778_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0778_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0778_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0779_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0779_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0779_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0779_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0779_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0779_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0780_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0780_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0781_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0781_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0781_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0781_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0781_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0781_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0782_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0782_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0782_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0782_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0783_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0784_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0785_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0785_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0785_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0786_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0787_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0788_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0788_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0788_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0789_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0789_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0789_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0790_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0791_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0792_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0793_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0794_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0794_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0794_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0794_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0794_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0794_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0795_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0795_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0795_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0795_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0796_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0796_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0796_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0796_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0797_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0798_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0798_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0798_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0798_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0798_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0798_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f022.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0799_f023.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0800_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0801_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0801_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0802_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0802_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0802_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0802_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0802_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0805_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0805_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0805_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0805_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0806_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0806_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0806_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0807_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0808_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0808_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0808_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0808_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0808_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0809_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0810_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0810_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0811_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0812_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0812_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0812_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0813_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0813_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0816_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0817_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0818_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0819_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0820_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0853_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0854_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0855_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0856_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0856_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0856_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0856_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0856_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0857_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0858_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0858_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0858_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0858_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0859_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0860_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0861_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0861_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0861_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0861_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0862_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0862_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0862_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0862_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0863_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0864_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0864_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0864_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0865_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0865_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0866_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0867_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0868_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0868_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0868_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0869_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0869_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0869_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0870_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0870_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0870_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0871_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0872_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0873_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0874_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0875_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0876_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0877_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0877_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0877_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0877_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0878_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0878_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0878_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0879_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0879_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0879_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0880_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0881_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0882_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0882_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0883_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0884_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0884_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0884_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0884_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0884_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0885_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0886_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0887_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0888_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0889_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0890_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0891_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0892_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0892_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0892_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0892_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0893_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0894_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0895_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0895_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0896_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0897_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0897_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0898_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0898_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0898_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0898_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0899_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0900_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0900_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0900_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0901_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0901_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0902_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0902_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0902_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0902_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0903_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0903_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0903_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0903_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0904_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0905_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0906_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f004.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f005.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f006.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f007.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f008.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f009.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f010.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f011.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f012.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f013.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f014.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f015.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f016.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f017.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f018.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f019.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f020.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/4bpp/a0907_f021.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0666_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0666_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0737_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0737_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0737_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0737_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0738_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0738_f001.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0738_f002.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0738_f003.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles/8bpp/a0776_f000.png (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles_4bpp.inc (100%) rename {sa1/graphics => graphics}/sa1/obj_tiles_8bpp.inc (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/egg_rocket_clouds/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/egg_rocket_clouds/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/egg_rocket_clouds/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/egg_rocket_clouds/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/ice_paradise_snow/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/ice_paradise_snow/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/ice_paradise_snow/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/ice_paradise_snow/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_created_by_sonic_team/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_created_by_sonic_team/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_created_by_sonic_team/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_created_by_sonic_team/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_presented_by_sega/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_presented_by_sega/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_presented_by_sega/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/intro_presented_by_sega/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_en/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_en/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_en/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_en/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_jp/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_jp/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_jp/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_choose_pak_type_jp/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_error/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_error/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_error/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_error/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_success/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_success/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_success/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_connection_success/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_continue_screen/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_continue_screen/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_continue_screen/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_continue_screen/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_multipak_player_overview/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_multipak_player_overview/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_multipak_player_overview/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_multipak_player_overview/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_singlepak_program_is_being_sent/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_singlepak_program_is_being_sent/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_singlepak_program_is_being_sent/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_singlepak_program_is_being_sent/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_team_play_screen/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_team_play_screen/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_team_play_screen/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_team_play_screen/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_vs_background/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_vs_background/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_vs_background/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/mp_vs_background/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_0/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_0/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_0/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_1/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_1/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_1/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_10/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_10/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_10/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_11/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_11/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_11/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_12/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_12/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_12/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_13/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_13/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_13/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_14/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_14/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_14/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_15/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_15/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_15/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_2/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_2/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_2/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_3/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_3/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_3/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_4/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_4/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_4/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_5/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_5/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_5/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_6/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_6/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_6/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_7/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_7/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_7/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_8/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_8/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_8/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_9/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_9/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/special_stage_bg_frame_9/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_73/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_73/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_73/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_74/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_74/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_74/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_75/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_75/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_75/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_84/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_84/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_84/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_84/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_85/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_85/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_85/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_85/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_89/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_89/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_89/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_89/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_1/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_1/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_1/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_1/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_2/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_2/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_2/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_2/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_3/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_3/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_3/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_3/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_4/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_4/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_4/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_4/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_player_bar/header.c (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_player_bar/palette.pal (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_player_bar/tilemap.tilemap2 (100%) rename {sa1/graphics => graphics}/sa1/tilemaps/tilemap_unused_mp_player_bar/tiles.png (100%) rename {sa1/graphics => graphics}/sa1/tilesets/debug_ascii/debug_ascii.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/Arrow.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/Arrow.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/BlackBox.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/BlackBox.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/BlackBox2.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/BlackBox2.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/Names.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/Names.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/OK.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/OK.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/SelectACharacter.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/SelectACharacter.png (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/ZigZag.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/character_select/ZigZag.png (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Amy.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Amy.png (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Knuckles.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Knuckles.png (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Sonic.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Sonic.png (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Tails.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_lives/Tails.png (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_ring/HudRing.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/icon_ring/HudRing.png (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/Characters.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/Characters.png (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/Cursors.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/Cursors.png (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/EnterName.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/EnterName.png (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/RedCorner.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/options_overlays/RedCorner.png (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Background.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Background.png (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Box2.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Box2.png (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Box3.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Box3.png (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Box4.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/sound_test/Box4.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/46.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/46.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/53.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/53.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/ChaosEmerald.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/ChaosEmerald.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotAChaosEmerald.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotAChaosEmerald.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotRings0.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotRings0.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotRings1.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotRings1.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotRings2.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextGotRings2.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextSpecialStage.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextSpecialStage.png (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextStart.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/special_stage/TextStart.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Amy.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Amy.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/AngelIslandZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/AngelIslandZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/CasinoParadiseZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/CasinoParadiseZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/CosmicAngelZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/CosmicAngelZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/EggRocketZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/EggRocketZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/FactoryChaoGarden.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/FactoryChaoGarden.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/ForestChaoGarden.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/ForestChaoGarden.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/IceMountainZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/IceMountainZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Japanese0.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Japanese0.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Japanese1.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Japanese1.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Knuckles.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Knuckles.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/NeoGreenHillZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/NeoGreenHillZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/PinballChaoGarden.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/PinballChaoGarden.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/SecretBaseZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/SecretBaseZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Sonic.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Sonic.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/SpaceChaoGarden.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/SpaceChaoGarden.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Tails.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/Tails.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/TheMoonZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/TheMoonZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/XZone.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/XZone.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/char_names.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_intro/char_names.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Act12.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Act12.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Amy.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Amy.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/GotThroughTexts.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/GotThroughTexts.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/HeadlineBack.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/HeadlineBack.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Knuckles.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Knuckles.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Sonic.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Sonic.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Tails.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_result/Tails.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_ui/AsciiChars.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_ui/AsciiChars.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_ui/OK.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_ui/OK.png (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_ui/TimerDigits.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/stage_ui/TimerDigits.png (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent0.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent0.png (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent1.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent1.png (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent2.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent2.png (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent3.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent3.png (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent4.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent4.png (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent5.pal (100%) rename {sa1/graphics => graphics}/sa1/ui/unknown/Transparent5.png (100%) rename sa1/sa1.sha1 => sa1.sha1 (100%) delete mode 100644 sa1/ldscript.txt rename sa1/Makefile => sa1_Makefile (59%) rename sa1/config.mk => sa1_config.mk (98%) create mode 100644 sa1_ldscript.txt rename sa1/songs.mk => sa1_songs.mk (100%) rename sa1/sym_iwram.txt => sa1_sym_iwram.txt (55%) rename {sa1/sound => sound}/sa1/direct_sound_data.inc (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086DE134.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086DF608.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086E0A1C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086E134C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086E1ABC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086E33B0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086E64DC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086E6B24.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086EA218.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086ED1F4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086F0138.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086F1AC0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086F1DC0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086F2994.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086F5578.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086F836C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086FA790.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086FAEA4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086FBBD4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086FE150.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086FE7E4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/086FF18C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870224C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08702F60.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870613C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08708210.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870A724.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870CA4C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870D7EC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870DC84.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870E60C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870EA00.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870EE50.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870F254.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870FBC0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0870FFA0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087103F8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08710D74.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087111D4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08711640.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08711ACC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087123F8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08712950.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08712DB8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0871375C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0871AED4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0871EF30.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08727348.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0872CF68.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0872E77C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08730340.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08730BF0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08731868.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08732A00.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08733304.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08733D74.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08737EB4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873BCBC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873C470.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873CC80.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873D430.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873DF74.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873ECE8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873F1C0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873F654.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873FAB8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0873FF64.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087403FC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08740854.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08740D00.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08741248.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08741694.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08741B00.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874216C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087424D8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874267C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08742E90.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087432F0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087436FC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08743BEC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874408C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087444B4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087449BC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874621C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08746C04.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08747908.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08747D18.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08748108.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08748BD8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087493A4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08749864.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08749D20.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874A750.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874AAF8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874B5D0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874B844.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874CAFC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874D4D0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874DDCC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874E228.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0874E6D0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08753AEC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08758BB4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0875A76C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0875E854.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087634B0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08763F44.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087644B8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08764A24.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08764EC8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08765524.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08765FF0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087665C8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08766AE4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876701C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08767588.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08767A20.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08768070.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08768BA0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/087692C0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876995C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876A058.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876A7E8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876AE6C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876B5CC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876BCBC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876C1C4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876C974.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876D0E8.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876D79C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876DF8C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876E614.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876ED88.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876F47C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0876FB20.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08771CC4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08773848.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08775640.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08775E7C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08778D48.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08779EDC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0877AD00.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0877B9A0.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0877CF24.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0877F2A4.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0878306C.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08789214.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0878D964.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/0878FAAC.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/08797224.aif (100%) rename {sa1/sound => sound}/sa1/direct_sound_samples/spectrasonics__symphony_of_voices__partition_d__big_chord__big_min__c4_r.aif (100%) rename {sa1/sound => sound}/sa1/keysplit_tables.inc (100%) rename {sa1/sound => sound}/sa1/music_player_table.inc (100%) rename {sa1/sound => sound}/sa1/programmable_wave_data.inc (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD6D0.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD6E0.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD6F0.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD700.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD710.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD720.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD730.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD740.pcm (100%) rename {sa1/sound => sound}/sa1/programmable_wave_samples/086DD750.pcm (100%) rename {sa1/sound => sound}/sa1/song_table.inc (100%) rename {sa1/sound => sound}/sa1/songs/midi/mus_sp_stage_trick.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/non_matching/song001.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/non_matching/song017.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/non_matching/song020.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/non_matching/song030.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/non_matching/song039.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/non_matching/song040.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/se_ring_copy.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song002.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song003.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song004.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song005.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song006.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song007.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song008.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song009.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song010.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song011.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song012.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song013.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song014.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song015.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song016.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song018.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song019.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song021.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song022.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song023.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song024.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song025.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song026.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song027.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song028.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song029.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song031.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song032.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song033.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song034.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song035.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song036.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song037.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song038.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song041.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song042.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song044.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song045.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song046.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song047.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song048.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song049.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song050.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song051.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song052.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song053.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song054.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song102.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song103.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song104.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song105.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song106.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song107.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song108.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song109.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song110.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song111.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song112.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song113.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song114.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song115.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song116.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song118.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song119.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song120.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song121.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song122.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song123.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song124.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song125.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song126.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song127.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song128.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song129.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song130.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song131.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song132.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song133.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song134.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song135.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song136.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song137.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song138.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song139.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song140.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song141.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song142.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song143.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song144.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song145.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song146.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song147.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song148.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song149.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song150.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song151.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song152.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song153.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song154.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song155.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song156.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song157.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song158.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song159.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song160.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song161.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song162.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song163.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song164.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song166.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song167.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song168.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song169.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song170.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song171.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song172.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song173.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song174.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song175.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song176.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song177.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song178.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song179.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song180.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song181.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song182.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song183.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song184.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song185.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song188.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song189.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song190.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song191.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song192.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song193.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song194.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song195.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song196.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song198.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song199.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song200.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song201.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song202.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song203.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song204.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song205.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song206.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song207.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song208.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song209.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song210.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song211.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song212.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song213.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song214.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song215.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song216.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song217.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song218.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song219.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song220.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song221.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song222.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song223.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song224.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song301.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song302.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song303.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song304.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song305.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song306.mid (100%) rename {sa1/sound => sound}/sa1/songs/midi/song307.mid (100%) rename {sa1/sound => sound}/sa1/songs/song001.s (100%) rename {sa1/sound => sound}/sa1/songs/song017.s (100%) rename {sa1/sound => sound}/sa1/songs/song020.s (100%) rename {sa1/sound => sound}/sa1/songs/song030.s (100%) rename {sa1/sound => sound}/sa1/songs/song039.s (100%) rename {sa1/sound => sound}/sa1/songs/song040.s (100%) rename {sa1/sound => sound}/sa1/voice_groups.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup000.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup001.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup002.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup003.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup004.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup005.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup006.inc (100%) rename {sa1/sound => sound}/sa1/voicegroups/voicegroup007.inc (100%) rename {sa1/src => src}/data/sa1/animations/animation_table.c (100%) rename {sa1/src => src}/data/sa1/animations/animations.c (100%) rename {sa1/src => src}/data/sa1/credits.c (100%) rename {sa1/src => src}/data/sa1/entities.c (100%) rename {sa1/src => src}/data/sa1/entity_tables.c (100%) rename {sa1/src => src}/data/sa1/oam_data.c (100%) rename {sa1/src => src}/data/sa1/obj_palettes.c (100%) rename {sa1/src => src}/data/sa1/sprite_dimensions.c (100%) rename {sa1/src => src}/data/sa1/sprite_tables.c (100%) rename {sa1/src => src}/data/sa1/tilemap_data_0.c (100%) rename {sa1/src => src}/data/sa1/tilemap_data_2.c (100%) rename {sa1/src => src}/data/sa1/tilemap_data_3.c (100%) rename {sa1/src => src}/data/sa1/tilemap_table.c (100%) rename {sa1/src => src}/data/sa1/tilemaps_special_stage.c (100%) rename {sa1/src => src}/data/sa1/tileset_debug_ascii.c (100%) rename {sa1/src => src}/data/sa1/ui_graphics_data.c (100%) rename {sa1/src => src}/data/sa1/ui_graphics_table.c (100%) diff --git a/Makefile b/Makefile index fea1deb851..8f800532a9 100644 --- a/Makefile +++ b/Makefile @@ -666,7 +666,7 @@ bribasa: @$(MAKE) -C tools/BriBaSA_ex sa1: - @$(MAKE) -C sa1 + @$(MAKE) -f sa1_Makefile $(TOOLDIRS): tool_libs @$(MAKE) -C $@ diff --git a/sa1/data/sa1/build_info.s b/data/sa1/build_info.s similarity index 100% rename from sa1/data/sa1/build_info.s rename to data/sa1/build_info.s diff --git a/sa1/data/sa1/chao_garden.s b/data/sa1/chao_garden.s similarity index 100% rename from sa1/data/sa1/chao_garden.s rename to data/sa1/chao_garden.s diff --git a/sa1/data/sa1/data1.s b/data/sa1/data1.s similarity index 100% rename from sa1/data/sa1/data1.s rename to data/sa1/data1.s diff --git a/sa1/data/sa1/data1_1.s b/data/sa1/data1_1.s similarity index 100% rename from sa1/data/sa1/data1_1.s rename to data/sa1/data1_1.s diff --git a/sa1/data/sa1/data_0_1_2.s b/data/sa1/data_0_1_2.s similarity index 100% rename from sa1/data/sa1/data_0_1_2.s rename to data/sa1/data_0_1_2.s diff --git a/sa1/data/sa1/data_0_1_4.s b/data/sa1/data_0_1_4.s similarity index 100% rename from sa1/data/sa1/data_0_1_4.s rename to data/sa1/data_0_1_4.s diff --git a/sa1/data/sa1/data_0_2.s b/data/sa1/data_0_2.s similarity index 100% rename from sa1/data/sa1/data_0_2.s rename to data/sa1/data_0_2.s diff --git a/sa1/data/sa1/data_0_3.s b/data/sa1/data_0_3.s similarity index 100% rename from sa1/data/sa1/data_0_3.s rename to data/sa1/data_0_3.s diff --git a/sa1/data/sa1/data_0_3_2.s b/data/sa1/data_0_3_2.s similarity index 100% rename from sa1/data/sa1/data_0_3_2.s rename to data/sa1/data_0_3_2.s diff --git a/sa1/data/sa1/data_0_4.s b/data/sa1/data_0_4.s similarity index 100% rename from sa1/data/sa1/data_0_4.s rename to data/sa1/data_0_4.s diff --git a/sa1/data/sa1/data_0_5.s b/data/sa1/data_0_5.s similarity index 100% rename from sa1/data/sa1/data_0_5.s rename to data/sa1/data_0_5.s diff --git a/sa1/data/sa1/data_0_5_0.s b/data/sa1/data_0_5_0.s similarity index 100% rename from sa1/data/sa1/data_0_5_0.s rename to data/sa1/data_0_5_0.s diff --git a/sa1/data/sa1/data_0_5_2.s b/data/sa1/data_0_5_2.s similarity index 100% rename from sa1/data/sa1/data_0_5_2.s rename to data/sa1/data_0_5_2.s diff --git a/sa1/data/sa1/data_0_6.s b/data/sa1/data_0_6.s similarity index 100% rename from sa1/data/sa1/data_0_6.s rename to data/sa1/data_0_6.s diff --git a/sa1/data/sa1/data_0_6_0.s b/data/sa1/data_0_6_0.s similarity index 100% rename from sa1/data/sa1/data_0_6_0.s rename to data/sa1/data_0_6_0.s diff --git a/sa1/data/sa1/data_0_6_1.s b/data/sa1/data_0_6_1.s similarity index 100% rename from sa1/data/sa1/data_0_6_1.s rename to data/sa1/data_0_6_1.s diff --git a/sa1/data/sa1/data_0_6_2.s b/data/sa1/data_0_6_2.s similarity index 100% rename from sa1/data/sa1/data_0_6_2.s rename to data/sa1/data_0_6_2.s diff --git a/sa1/data/sa1/data_0_7.s b/data/sa1/data_0_7.s similarity index 100% rename from sa1/data/sa1/data_0_7.s rename to data/sa1/data_0_7.s diff --git a/sa1/data/sa1/data_sound_test.s b/data/sa1/data_sound_test.s similarity index 100% rename from sa1/data/sa1/data_sound_test.s rename to data/sa1/data_sound_test.s diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/enemies.csv b/data/sa1/maps/chao_hunt/vs_zone_a/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/enemies.csv rename to data/sa1/maps/chao_hunt/vs_zone_a/entities/enemies.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/interactables.csv b/data/sa1/maps/chao_hunt/vs_zone_a/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/interactables.csv rename to data/sa1/maps/chao_hunt/vs_zone_a/entities/interactables.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/itemboxes.csv b/data/sa1/maps/chao_hunt/vs_zone_a/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/itemboxes.csv rename to data/sa1/maps/chao_hunt/vs_zone_a/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/rings.csv b/data/sa1/maps/chao_hunt/vs_zone_a/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/entities/rings.csv rename to data/sa1/maps/chao_hunt/vs_zone_a/entities/rings.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/header.c b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tiles.png b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tiles.png rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/flags.coll b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/flags.coll rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/header.c b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/height_map.coll b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/height_map.coll rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_back.bin b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_back.bin rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_front.bin b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_front.bin rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tile_rot.coll b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tileset.png b/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tileset.png rename to data/sa1/maps/chao_hunt/vs_zone_a/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/enemies.csv b/data/sa1/maps/chao_hunt/vs_zone_b/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/enemies.csv rename to data/sa1/maps/chao_hunt/vs_zone_b/entities/enemies.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/interactables.csv b/data/sa1/maps/chao_hunt/vs_zone_b/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/interactables.csv rename to data/sa1/maps/chao_hunt/vs_zone_b/entities/interactables.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/itemboxes.csv b/data/sa1/maps/chao_hunt/vs_zone_b/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/itemboxes.csv rename to data/sa1/maps/chao_hunt/vs_zone_b/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/rings.csv b/data/sa1/maps/chao_hunt/vs_zone_b/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/entities/rings.csv rename to data/sa1/maps/chao_hunt/vs_zone_b/entities/rings.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/header.c b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tiles.png b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tiles.png rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/flags.coll b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/flags.coll rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/header.c b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/height_map.coll b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/height_map.coll rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_back.bin b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_back.bin rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_front.bin b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_front.bin rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tile_rot.coll b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tileset.png b/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tileset.png rename to data/sa1/maps/chao_hunt/vs_zone_b/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/enemies.csv b/data/sa1/maps/chao_hunt/vs_zone_c/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/enemies.csv rename to data/sa1/maps/chao_hunt/vs_zone_c/entities/enemies.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/interactables.csv b/data/sa1/maps/chao_hunt/vs_zone_c/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/interactables.csv rename to data/sa1/maps/chao_hunt/vs_zone_c/entities/interactables.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/itemboxes.csv b/data/sa1/maps/chao_hunt/vs_zone_c/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/itemboxes.csv rename to data/sa1/maps/chao_hunt/vs_zone_c/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/rings.csv b/data/sa1/maps/chao_hunt/vs_zone_c/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/entities/rings.csv rename to data/sa1/maps/chao_hunt/vs_zone_c/entities/rings.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/header.c b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tiles.png b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tiles.png rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/flags.coll b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/flags.coll rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/header.c b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/height_map.coll b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/height_map.coll rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_back.bin b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_back.bin rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_front.bin b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_front.bin rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tile_rot.coll b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tileset.png b/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tileset.png rename to data/sa1/maps/chao_hunt/vs_zone_c/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/enemies.csv b/data/sa1/maps/chao_hunt/vs_zone_d/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/enemies.csv rename to data/sa1/maps/chao_hunt/vs_zone_d/entities/enemies.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/interactables.csv b/data/sa1/maps/chao_hunt/vs_zone_d/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/interactables.csv rename to data/sa1/maps/chao_hunt/vs_zone_d/entities/interactables.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/itemboxes.csv b/data/sa1/maps/chao_hunt/vs_zone_d/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/itemboxes.csv rename to data/sa1/maps/chao_hunt/vs_zone_d/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/rings.csv b/data/sa1/maps/chao_hunt/vs_zone_d/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/entities/rings.csv rename to data/sa1/maps/chao_hunt/vs_zone_d/entities/rings.csv diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/header.c b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tiles.png b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tiles.png rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/flags.coll b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/flags.coll rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/header.c b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/header.c rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/height_map.coll b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/height_map.coll rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_back.bin b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_back.bin rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_front.bin b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_front.bin rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/palette.pal b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/palette.pal rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tile_rot.coll b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tileset.png b/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tileset.png rename to data/sa1/maps/chao_hunt/vs_zone_d/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_1/act_1/entities/enemies.csv b/data/sa1/maps/zone_1/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/entities/enemies.csv rename to data/sa1/maps/zone_1/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_1/act_1/entities/interactables.csv b/data/sa1/maps/zone_1/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/entities/interactables.csv rename to data/sa1/maps/zone_1/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_1/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_1/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_1/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_1/act_1/entities/rings.csv b/data/sa1/maps/zone_1/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/entities/rings.csv rename to data/sa1/maps/zone_1/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_1/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_1/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_1/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_1/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_1/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_1/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_1/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_1/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_1/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_1/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_1/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_1/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_1/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_1/act_1/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_1/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_1/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_1/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_1/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_1/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_1/act_2/entities/enemies.csv b/data/sa1/maps/zone_1/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/entities/enemies.csv rename to data/sa1/maps/zone_1/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_1/act_2/entities/interactables.csv b/data/sa1/maps/zone_1/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/entities/interactables.csv rename to data/sa1/maps/zone_1/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_1/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_1/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_1/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_1/act_2/entities/rings.csv b/data/sa1/maps/zone_1/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/entities/rings.csv rename to data/sa1/maps/zone_1/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_1/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_1/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_1/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_1/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_1/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_1/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_1/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_1/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_1/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_1/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_1/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_1/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_1/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_1/act_2/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_1/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_1/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_1/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_1/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_1/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_1/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_2/act_1/entities/enemies.csv b/data/sa1/maps/zone_2/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/entities/enemies.csv rename to data/sa1/maps/zone_2/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_2/act_1/entities/interactables.csv b/data/sa1/maps/zone_2/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/entities/interactables.csv rename to data/sa1/maps/zone_2/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_2/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_2/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_2/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_2/act_1/entities/rings.csv b/data/sa1/maps/zone_2/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/entities/rings.csv rename to data/sa1/maps/zone_2/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_2/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_2/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_2/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_2/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_2/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_2/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_2/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_2/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_2/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_2/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_2/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_2/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_2/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_2/act_1/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_2/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_2/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_2/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_2/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_2/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_2/act_2/entities/enemies.csv b/data/sa1/maps/zone_2/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/entities/enemies.csv rename to data/sa1/maps/zone_2/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_2/act_2/entities/interactables.csv b/data/sa1/maps/zone_2/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/entities/interactables.csv rename to data/sa1/maps/zone_2/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_2/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_2/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_2/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_2/act_2/entities/rings.csv b/data/sa1/maps/zone_2/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/entities/rings.csv rename to data/sa1/maps/zone_2/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_2/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_2/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_2/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_2/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_2/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_2/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_2/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_2/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_2/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_2/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_2/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_2/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_2/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_2/act_2/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_2/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_2/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_2/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_2/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_2/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_2/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_3/act_1/entities/enemies.csv b/data/sa1/maps/zone_3/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/entities/enemies.csv rename to data/sa1/maps/zone_3/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_3/act_1/entities/interactables.csv b/data/sa1/maps/zone_3/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/entities/interactables.csv rename to data/sa1/maps/zone_3/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_3/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_3/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_3/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_3/act_1/entities/rings.csv b/data/sa1/maps/zone_3/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/entities/rings.csv rename to data/sa1/maps/zone_3/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_3/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_3/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_3/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_3/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_3/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_3/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_3/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_3/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_3/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_3/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_3/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_3/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_3/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_3/act_1/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_3/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_3/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_3/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_3/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_3/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_3/act_2/entities/enemies.csv b/data/sa1/maps/zone_3/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/entities/enemies.csv rename to data/sa1/maps/zone_3/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_3/act_2/entities/interactables.csv b/data/sa1/maps/zone_3/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/entities/interactables.csv rename to data/sa1/maps/zone_3/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_3/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_3/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_3/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_3/act_2/entities/rings.csv b/data/sa1/maps/zone_3/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/entities/rings.csv rename to data/sa1/maps/zone_3/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_3/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_3/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_3/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_3/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_3/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_3/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_3/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_3/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_3/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_3/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_3/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_3/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_3/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_3/act_2/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_3/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_3/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_3/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_3/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_3/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_3/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_4/act_1/entities/enemies.csv b/data/sa1/maps/zone_4/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/entities/enemies.csv rename to data/sa1/maps/zone_4/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_4/act_1/entities/interactables.csv b/data/sa1/maps/zone_4/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/entities/interactables.csv rename to data/sa1/maps/zone_4/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_4/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_4/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_4/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_4/act_1/entities/rings.csv b/data/sa1/maps/zone_4/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/entities/rings.csv rename to data/sa1/maps/zone_4/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_4/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_4/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_4/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_4/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_4/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_4/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_4/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_4/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_4/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_4/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_4/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_4/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_4/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_4/act_1/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_4/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_4/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_4/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_4/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_4/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_4/act_2/entities/enemies.csv b/data/sa1/maps/zone_4/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/entities/enemies.csv rename to data/sa1/maps/zone_4/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_4/act_2/entities/interactables.csv b/data/sa1/maps/zone_4/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/entities/interactables.csv rename to data/sa1/maps/zone_4/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_4/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_4/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_4/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_4/act_2/entities/rings.csv b/data/sa1/maps/zone_4/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/entities/rings.csv rename to data/sa1/maps/zone_4/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_4/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_4/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_4/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_4/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_4/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_4/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_4/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_4/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_4/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_4/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_4/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_4/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_4/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_4/act_2/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_4/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_4/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_4/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_4/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_4/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_4/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_5/act_1/entities/enemies.csv b/data/sa1/maps/zone_5/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/entities/enemies.csv rename to data/sa1/maps/zone_5/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_5/act_1/entities/interactables.csv b/data/sa1/maps/zone_5/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/entities/interactables.csv rename to data/sa1/maps/zone_5/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_5/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_5/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_5/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_5/act_1/entities/rings.csv b/data/sa1/maps/zone_5/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/entities/rings.csv rename to data/sa1/maps/zone_5/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_5/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_5/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_5/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_5/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_5/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_5/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_5/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_5/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_5/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_5/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_5/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_5/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_5/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_5/act_1/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_5/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_5/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_5/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_5/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_5/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_5/act_2/entities/enemies.csv b/data/sa1/maps/zone_5/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/entities/enemies.csv rename to data/sa1/maps/zone_5/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_5/act_2/entities/interactables.csv b/data/sa1/maps/zone_5/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/entities/interactables.csv rename to data/sa1/maps/zone_5/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_5/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_5/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_5/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_5/act_2/entities/rings.csv b/data/sa1/maps/zone_5/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/entities/rings.csv rename to data/sa1/maps/zone_5/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_5/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_5/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_5/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_5/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_5/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_5/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_5/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_5/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_5/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_5/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_5/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_5/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_5/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_5/act_2/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_5/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_5/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_5/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_5/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_5/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_5/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_6/act_1/entities/enemies.csv b/data/sa1/maps/zone_6/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/entities/enemies.csv rename to data/sa1/maps/zone_6/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_6/act_1/entities/interactables.csv b/data/sa1/maps/zone_6/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/entities/interactables.csv rename to data/sa1/maps/zone_6/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_6/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_6/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_6/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_6/act_1/entities/rings.csv b/data/sa1/maps/zone_6/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/entities/rings.csv rename to data/sa1/maps/zone_6/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_6/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_6/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_6/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_6/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_6/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_6/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_6/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_6/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_6/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_6/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_6/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_6/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_6/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_6/act_1/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_6/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_6/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_6/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_6/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_6/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_6/act_2/entities/enemies.csv b/data/sa1/maps/zone_6/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/entities/enemies.csv rename to data/sa1/maps/zone_6/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_6/act_2/entities/interactables.csv b/data/sa1/maps/zone_6/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/entities/interactables.csv rename to data/sa1/maps/zone_6/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_6/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_6/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_6/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_6/act_2/entities/rings.csv b/data/sa1/maps/zone_6/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/entities/rings.csv rename to data/sa1/maps/zone_6/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_6/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_6/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_6/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_6/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_6/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_6/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_6/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_6/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_6/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_6/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_6/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_6/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_6/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/metadata.txt b/data/sa1/maps/zone_6/act_2/tilemaps/fg/metadata.txt similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/metadata.txt rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/metadata.txt diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_6/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_6/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_6/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_6/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_6/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_6/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_7/act_1/entities/enemies.csv b/data/sa1/maps/zone_7/act_1/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/entities/enemies.csv rename to data/sa1/maps/zone_7/act_1/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_7/act_1/entities/interactables.csv b/data/sa1/maps/zone_7/act_1/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/entities/interactables.csv rename to data/sa1/maps/zone_7/act_1/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_7/act_1/entities/itemboxes.csv b/data/sa1/maps/zone_7/act_1/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/entities/itemboxes.csv rename to data/sa1/maps/zone_7/act_1/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_7/act_1/entities/rings.csv b/data/sa1/maps/zone_7/act_1/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/entities/rings.csv rename to data/sa1/maps/zone_7/act_1/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/header.c b/data/sa1/maps/zone_7/act_1/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/header.c rename to data/sa1/maps/zone_7/act_1/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/palette.pal b/data/sa1/maps/zone_7/act_1/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_7/act_1/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_7/act_1/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_7/act_1/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/tiles.png b/data/sa1/maps/zone_7/act_1/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_7/act_1/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/flags.coll b/data/sa1/maps/zone_7/act_1/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/header.c b/data/sa1/maps/zone_7/act_1/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/header.c rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_7/act_1/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_7/act_1/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_7/act_1/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_7/act_1/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/palette.pal b/data/sa1/maps/zone_7/act_1/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_7/act_1/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/tileset.png b/data/sa1/maps/zone_7/act_1/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_1/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_7/act_1/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/maps/zone_7/act_2/entities/enemies.csv b/data/sa1/maps/zone_7/act_2/entities/enemies.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/entities/enemies.csv rename to data/sa1/maps/zone_7/act_2/entities/enemies.csv diff --git a/sa1/data/sa1/maps/zone_7/act_2/entities/interactables.csv b/data/sa1/maps/zone_7/act_2/entities/interactables.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/entities/interactables.csv rename to data/sa1/maps/zone_7/act_2/entities/interactables.csv diff --git a/sa1/data/sa1/maps/zone_7/act_2/entities/itemboxes.csv b/data/sa1/maps/zone_7/act_2/entities/itemboxes.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/entities/itemboxes.csv rename to data/sa1/maps/zone_7/act_2/entities/itemboxes.csv diff --git a/sa1/data/sa1/maps/zone_7/act_2/entities/rings.csv b/data/sa1/maps/zone_7/act_2/entities/rings.csv similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/entities/rings.csv rename to data/sa1/maps/zone_7/act_2/entities/rings.csv diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/header.c b/data/sa1/maps/zone_7/act_2/tilemaps/bg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/header.c rename to data/sa1/maps/zone_7/act_2/tilemaps/bg/header.c diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/palette.pal b/data/sa1/maps/zone_7/act_2/tilemaps/bg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/palette.pal rename to data/sa1/maps/zone_7/act_2/tilemaps/bg/palette.pal diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/tilemap.tilemap2 b/data/sa1/maps/zone_7/act_2/tilemaps/bg/tilemap.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/tilemap.tilemap2 rename to data/sa1/maps/zone_7/act_2/tilemaps/bg/tilemap.tilemap2 diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/tiles.png b/data/sa1/maps/zone_7/act_2/tilemaps/bg/tiles.png similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/bg/tiles.png rename to data/sa1/maps/zone_7/act_2/tilemaps/bg/tiles.png diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/flags.coll b/data/sa1/maps/zone_7/act_2/tilemaps/fg/flags.coll similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/flags.coll rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/flags.coll diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/header.c b/data/sa1/maps/zone_7/act_2/tilemaps/fg/header.c similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/header.c rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/header.c diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/height_map.coll b/data/sa1/maps/zone_7/act_2/tilemaps/fg/height_map.coll similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/height_map.coll rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/height_map.coll diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/map_back.bin b/data/sa1/maps/zone_7/act_2/tilemaps/fg/map_back.bin similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/map_back.bin rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/map_back.bin diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/map_front.bin b/data/sa1/maps/zone_7/act_2/tilemaps/fg/map_front.bin similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/map_front.bin rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/map_front.bin diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/metatiles.tilemap2 b/data/sa1/maps/zone_7/act_2/tilemaps/fg/metatiles.tilemap2 similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/metatiles.tilemap2 rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/metatiles.tilemap2 diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/palette.pal b/data/sa1/maps/zone_7/act_2/tilemaps/fg/palette.pal similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/palette.pal rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/palette.pal diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/tile_rot.coll b/data/sa1/maps/zone_7/act_2/tilemaps/fg/tile_rot.coll similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/tile_rot.coll rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/tile_rot.coll diff --git a/sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/tileset.png b/data/sa1/maps/zone_7/act_2/tilemaps/fg/tileset.png similarity index 100% rename from sa1/data/sa1/maps/zone_7/act_2/tilemaps/fg/tileset.png rename to data/sa1/maps/zone_7/act_2/tilemaps/fg/tileset.png diff --git a/sa1/data/sa1/obj_gfx.s b/data/sa1/obj_gfx.s similarity index 100% rename from sa1/data/sa1/obj_gfx.s rename to data/sa1/obj_gfx.s diff --git a/sa1/data/sa1/rom_header_old.s b/data/sa1/rom_header_old.s similarity index 100% rename from sa1/data/sa1/rom_header_old.s rename to data/sa1/rom_header_old.s diff --git a/sa1/data/sa1/sound_data.s b/data/sa1/sound_data.s similarity index 100% rename from sa1/data/sa1/sound_data.s rename to data/sa1/sound_data.s diff --git a/sa1/graphics/sa1/obj_palettes/pal_000.pal b/graphics/sa1/obj_palettes/pal_000.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_000.pal rename to graphics/sa1/obj_palettes/pal_000.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_001.pal b/graphics/sa1/obj_palettes/pal_001.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_001.pal rename to graphics/sa1/obj_palettes/pal_001.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_002.pal b/graphics/sa1/obj_palettes/pal_002.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_002.pal rename to graphics/sa1/obj_palettes/pal_002.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_003.pal b/graphics/sa1/obj_palettes/pal_003.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_003.pal rename to graphics/sa1/obj_palettes/pal_003.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_004.pal b/graphics/sa1/obj_palettes/pal_004.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_004.pal rename to graphics/sa1/obj_palettes/pal_004.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_005.pal b/graphics/sa1/obj_palettes/pal_005.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_005.pal rename to graphics/sa1/obj_palettes/pal_005.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_006.pal b/graphics/sa1/obj_palettes/pal_006.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_006.pal rename to graphics/sa1/obj_palettes/pal_006.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_007.pal b/graphics/sa1/obj_palettes/pal_007.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_007.pal rename to graphics/sa1/obj_palettes/pal_007.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_008.pal b/graphics/sa1/obj_palettes/pal_008.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_008.pal rename to graphics/sa1/obj_palettes/pal_008.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_009.pal b/graphics/sa1/obj_palettes/pal_009.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_009.pal rename to graphics/sa1/obj_palettes/pal_009.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_010.pal b/graphics/sa1/obj_palettes/pal_010.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_010.pal rename to graphics/sa1/obj_palettes/pal_010.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_011.pal b/graphics/sa1/obj_palettes/pal_011.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_011.pal rename to graphics/sa1/obj_palettes/pal_011.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_012.pal b/graphics/sa1/obj_palettes/pal_012.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_012.pal rename to graphics/sa1/obj_palettes/pal_012.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_013.pal b/graphics/sa1/obj_palettes/pal_013.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_013.pal rename to graphics/sa1/obj_palettes/pal_013.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_014.pal b/graphics/sa1/obj_palettes/pal_014.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_014.pal rename to graphics/sa1/obj_palettes/pal_014.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_015.pal b/graphics/sa1/obj_palettes/pal_015.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_015.pal rename to graphics/sa1/obj_palettes/pal_015.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_016.pal b/graphics/sa1/obj_palettes/pal_016.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_016.pal rename to graphics/sa1/obj_palettes/pal_016.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_017.pal b/graphics/sa1/obj_palettes/pal_017.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_017.pal rename to graphics/sa1/obj_palettes/pal_017.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_018.pal b/graphics/sa1/obj_palettes/pal_018.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_018.pal rename to graphics/sa1/obj_palettes/pal_018.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_019.pal b/graphics/sa1/obj_palettes/pal_019.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_019.pal rename to graphics/sa1/obj_palettes/pal_019.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_020.pal b/graphics/sa1/obj_palettes/pal_020.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_020.pal rename to graphics/sa1/obj_palettes/pal_020.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_021.pal b/graphics/sa1/obj_palettes/pal_021.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_021.pal rename to graphics/sa1/obj_palettes/pal_021.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_022.pal b/graphics/sa1/obj_palettes/pal_022.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_022.pal rename to graphics/sa1/obj_palettes/pal_022.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_023.pal b/graphics/sa1/obj_palettes/pal_023.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_023.pal rename to graphics/sa1/obj_palettes/pal_023.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_024.pal b/graphics/sa1/obj_palettes/pal_024.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_024.pal rename to graphics/sa1/obj_palettes/pal_024.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_025.pal b/graphics/sa1/obj_palettes/pal_025.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_025.pal rename to graphics/sa1/obj_palettes/pal_025.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_026.pal b/graphics/sa1/obj_palettes/pal_026.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_026.pal rename to graphics/sa1/obj_palettes/pal_026.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_027.pal b/graphics/sa1/obj_palettes/pal_027.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_027.pal rename to graphics/sa1/obj_palettes/pal_027.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_028.pal b/graphics/sa1/obj_palettes/pal_028.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_028.pal rename to graphics/sa1/obj_palettes/pal_028.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_029.pal b/graphics/sa1/obj_palettes/pal_029.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_029.pal rename to graphics/sa1/obj_palettes/pal_029.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_030.pal b/graphics/sa1/obj_palettes/pal_030.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_030.pal rename to graphics/sa1/obj_palettes/pal_030.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_031.pal b/graphics/sa1/obj_palettes/pal_031.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_031.pal rename to graphics/sa1/obj_palettes/pal_031.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_032.pal b/graphics/sa1/obj_palettes/pal_032.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_032.pal rename to graphics/sa1/obj_palettes/pal_032.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_033.pal b/graphics/sa1/obj_palettes/pal_033.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_033.pal rename to graphics/sa1/obj_palettes/pal_033.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_034.pal b/graphics/sa1/obj_palettes/pal_034.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_034.pal rename to graphics/sa1/obj_palettes/pal_034.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_035.pal b/graphics/sa1/obj_palettes/pal_035.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_035.pal rename to graphics/sa1/obj_palettes/pal_035.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_036.pal b/graphics/sa1/obj_palettes/pal_036.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_036.pal rename to graphics/sa1/obj_palettes/pal_036.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_037.pal b/graphics/sa1/obj_palettes/pal_037.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_037.pal rename to graphics/sa1/obj_palettes/pal_037.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_038.pal b/graphics/sa1/obj_palettes/pal_038.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_038.pal rename to graphics/sa1/obj_palettes/pal_038.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_039.pal b/graphics/sa1/obj_palettes/pal_039.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_039.pal rename to graphics/sa1/obj_palettes/pal_039.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_040.pal b/graphics/sa1/obj_palettes/pal_040.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_040.pal rename to graphics/sa1/obj_palettes/pal_040.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_041.pal b/graphics/sa1/obj_palettes/pal_041.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_041.pal rename to graphics/sa1/obj_palettes/pal_041.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_042.pal b/graphics/sa1/obj_palettes/pal_042.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_042.pal rename to graphics/sa1/obj_palettes/pal_042.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_043.pal b/graphics/sa1/obj_palettes/pal_043.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_043.pal rename to graphics/sa1/obj_palettes/pal_043.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_044.pal b/graphics/sa1/obj_palettes/pal_044.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_044.pal rename to graphics/sa1/obj_palettes/pal_044.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_045.pal b/graphics/sa1/obj_palettes/pal_045.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_045.pal rename to graphics/sa1/obj_palettes/pal_045.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_046.pal b/graphics/sa1/obj_palettes/pal_046.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_046.pal rename to graphics/sa1/obj_palettes/pal_046.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_047.pal b/graphics/sa1/obj_palettes/pal_047.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_047.pal rename to graphics/sa1/obj_palettes/pal_047.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_048.pal b/graphics/sa1/obj_palettes/pal_048.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_048.pal rename to graphics/sa1/obj_palettes/pal_048.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_049.pal b/graphics/sa1/obj_palettes/pal_049.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_049.pal rename to graphics/sa1/obj_palettes/pal_049.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_050.pal b/graphics/sa1/obj_palettes/pal_050.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_050.pal rename to graphics/sa1/obj_palettes/pal_050.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_051.pal b/graphics/sa1/obj_palettes/pal_051.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_051.pal rename to graphics/sa1/obj_palettes/pal_051.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_052.pal b/graphics/sa1/obj_palettes/pal_052.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_052.pal rename to graphics/sa1/obj_palettes/pal_052.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_053.pal b/graphics/sa1/obj_palettes/pal_053.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_053.pal rename to graphics/sa1/obj_palettes/pal_053.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_054.pal b/graphics/sa1/obj_palettes/pal_054.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_054.pal rename to graphics/sa1/obj_palettes/pal_054.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_055.pal b/graphics/sa1/obj_palettes/pal_055.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_055.pal rename to graphics/sa1/obj_palettes/pal_055.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_056.pal b/graphics/sa1/obj_palettes/pal_056.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_056.pal rename to graphics/sa1/obj_palettes/pal_056.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_057.pal b/graphics/sa1/obj_palettes/pal_057.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_057.pal rename to graphics/sa1/obj_palettes/pal_057.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_058.pal b/graphics/sa1/obj_palettes/pal_058.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_058.pal rename to graphics/sa1/obj_palettes/pal_058.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_059.pal b/graphics/sa1/obj_palettes/pal_059.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_059.pal rename to graphics/sa1/obj_palettes/pal_059.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_060.pal b/graphics/sa1/obj_palettes/pal_060.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_060.pal rename to graphics/sa1/obj_palettes/pal_060.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_061.pal b/graphics/sa1/obj_palettes/pal_061.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_061.pal rename to graphics/sa1/obj_palettes/pal_061.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_062.pal b/graphics/sa1/obj_palettes/pal_062.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_062.pal rename to graphics/sa1/obj_palettes/pal_062.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_063.pal b/graphics/sa1/obj_palettes/pal_063.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_063.pal rename to graphics/sa1/obj_palettes/pal_063.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_064.pal b/graphics/sa1/obj_palettes/pal_064.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_064.pal rename to graphics/sa1/obj_palettes/pal_064.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_065.pal b/graphics/sa1/obj_palettes/pal_065.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_065.pal rename to graphics/sa1/obj_palettes/pal_065.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_066.pal b/graphics/sa1/obj_palettes/pal_066.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_066.pal rename to graphics/sa1/obj_palettes/pal_066.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_067.pal b/graphics/sa1/obj_palettes/pal_067.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_067.pal rename to graphics/sa1/obj_palettes/pal_067.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_068.pal b/graphics/sa1/obj_palettes/pal_068.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_068.pal rename to graphics/sa1/obj_palettes/pal_068.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_069.pal b/graphics/sa1/obj_palettes/pal_069.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_069.pal rename to graphics/sa1/obj_palettes/pal_069.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_070.pal b/graphics/sa1/obj_palettes/pal_070.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_070.pal rename to graphics/sa1/obj_palettes/pal_070.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_071.pal b/graphics/sa1/obj_palettes/pal_071.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_071.pal rename to graphics/sa1/obj_palettes/pal_071.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_072.pal b/graphics/sa1/obj_palettes/pal_072.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_072.pal rename to graphics/sa1/obj_palettes/pal_072.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_073.pal b/graphics/sa1/obj_palettes/pal_073.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_073.pal rename to graphics/sa1/obj_palettes/pal_073.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_074.pal b/graphics/sa1/obj_palettes/pal_074.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_074.pal rename to graphics/sa1/obj_palettes/pal_074.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_075.pal b/graphics/sa1/obj_palettes/pal_075.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_075.pal rename to graphics/sa1/obj_palettes/pal_075.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_076.pal b/graphics/sa1/obj_palettes/pal_076.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_076.pal rename to graphics/sa1/obj_palettes/pal_076.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_077.pal b/graphics/sa1/obj_palettes/pal_077.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_077.pal rename to graphics/sa1/obj_palettes/pal_077.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_078.pal b/graphics/sa1/obj_palettes/pal_078.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_078.pal rename to graphics/sa1/obj_palettes/pal_078.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_079.pal b/graphics/sa1/obj_palettes/pal_079.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_079.pal rename to graphics/sa1/obj_palettes/pal_079.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_080.pal b/graphics/sa1/obj_palettes/pal_080.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_080.pal rename to graphics/sa1/obj_palettes/pal_080.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_081.pal b/graphics/sa1/obj_palettes/pal_081.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_081.pal rename to graphics/sa1/obj_palettes/pal_081.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_082.pal b/graphics/sa1/obj_palettes/pal_082.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_082.pal rename to graphics/sa1/obj_palettes/pal_082.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_083.pal b/graphics/sa1/obj_palettes/pal_083.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_083.pal rename to graphics/sa1/obj_palettes/pal_083.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_084.pal b/graphics/sa1/obj_palettes/pal_084.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_084.pal rename to graphics/sa1/obj_palettes/pal_084.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_085.pal b/graphics/sa1/obj_palettes/pal_085.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_085.pal rename to graphics/sa1/obj_palettes/pal_085.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_086.pal b/graphics/sa1/obj_palettes/pal_086.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_086.pal rename to graphics/sa1/obj_palettes/pal_086.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_087.pal b/graphics/sa1/obj_palettes/pal_087.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_087.pal rename to graphics/sa1/obj_palettes/pal_087.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_088.pal b/graphics/sa1/obj_palettes/pal_088.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_088.pal rename to graphics/sa1/obj_palettes/pal_088.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_089.pal b/graphics/sa1/obj_palettes/pal_089.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_089.pal rename to graphics/sa1/obj_palettes/pal_089.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_090.pal b/graphics/sa1/obj_palettes/pal_090.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_090.pal rename to graphics/sa1/obj_palettes/pal_090.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_091.pal b/graphics/sa1/obj_palettes/pal_091.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_091.pal rename to graphics/sa1/obj_palettes/pal_091.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_092.pal b/graphics/sa1/obj_palettes/pal_092.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_092.pal rename to graphics/sa1/obj_palettes/pal_092.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_093.pal b/graphics/sa1/obj_palettes/pal_093.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_093.pal rename to graphics/sa1/obj_palettes/pal_093.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_094.pal b/graphics/sa1/obj_palettes/pal_094.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_094.pal rename to graphics/sa1/obj_palettes/pal_094.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_095.pal b/graphics/sa1/obj_palettes/pal_095.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_095.pal rename to graphics/sa1/obj_palettes/pal_095.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_096.pal b/graphics/sa1/obj_palettes/pal_096.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_096.pal rename to graphics/sa1/obj_palettes/pal_096.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_097.pal b/graphics/sa1/obj_palettes/pal_097.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_097.pal rename to graphics/sa1/obj_palettes/pal_097.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_098.pal b/graphics/sa1/obj_palettes/pal_098.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_098.pal rename to graphics/sa1/obj_palettes/pal_098.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_099.pal b/graphics/sa1/obj_palettes/pal_099.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_099.pal rename to graphics/sa1/obj_palettes/pal_099.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_100.pal b/graphics/sa1/obj_palettes/pal_100.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_100.pal rename to graphics/sa1/obj_palettes/pal_100.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_101.pal b/graphics/sa1/obj_palettes/pal_101.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_101.pal rename to graphics/sa1/obj_palettes/pal_101.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_102.pal b/graphics/sa1/obj_palettes/pal_102.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_102.pal rename to graphics/sa1/obj_palettes/pal_102.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_103.pal b/graphics/sa1/obj_palettes/pal_103.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_103.pal rename to graphics/sa1/obj_palettes/pal_103.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_104.pal b/graphics/sa1/obj_palettes/pal_104.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_104.pal rename to graphics/sa1/obj_palettes/pal_104.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_105.pal b/graphics/sa1/obj_palettes/pal_105.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_105.pal rename to graphics/sa1/obj_palettes/pal_105.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_106.pal b/graphics/sa1/obj_palettes/pal_106.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_106.pal rename to graphics/sa1/obj_palettes/pal_106.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_107.pal b/graphics/sa1/obj_palettes/pal_107.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_107.pal rename to graphics/sa1/obj_palettes/pal_107.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_108.pal b/graphics/sa1/obj_palettes/pal_108.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_108.pal rename to graphics/sa1/obj_palettes/pal_108.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_109.pal b/graphics/sa1/obj_palettes/pal_109.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_109.pal rename to graphics/sa1/obj_palettes/pal_109.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_110.pal b/graphics/sa1/obj_palettes/pal_110.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_110.pal rename to graphics/sa1/obj_palettes/pal_110.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_111.pal b/graphics/sa1/obj_palettes/pal_111.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_111.pal rename to graphics/sa1/obj_palettes/pal_111.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_112.pal b/graphics/sa1/obj_palettes/pal_112.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_112.pal rename to graphics/sa1/obj_palettes/pal_112.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_113.pal b/graphics/sa1/obj_palettes/pal_113.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_113.pal rename to graphics/sa1/obj_palettes/pal_113.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_114.pal b/graphics/sa1/obj_palettes/pal_114.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_114.pal rename to graphics/sa1/obj_palettes/pal_114.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_115.pal b/graphics/sa1/obj_palettes/pal_115.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_115.pal rename to graphics/sa1/obj_palettes/pal_115.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_116.pal b/graphics/sa1/obj_palettes/pal_116.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_116.pal rename to graphics/sa1/obj_palettes/pal_116.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_117.pal b/graphics/sa1/obj_palettes/pal_117.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_117.pal rename to graphics/sa1/obj_palettes/pal_117.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_118.pal b/graphics/sa1/obj_palettes/pal_118.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_118.pal rename to graphics/sa1/obj_palettes/pal_118.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_119.pal b/graphics/sa1/obj_palettes/pal_119.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_119.pal rename to graphics/sa1/obj_palettes/pal_119.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_120.pal b/graphics/sa1/obj_palettes/pal_120.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_120.pal rename to graphics/sa1/obj_palettes/pal_120.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_121.pal b/graphics/sa1/obj_palettes/pal_121.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_121.pal rename to graphics/sa1/obj_palettes/pal_121.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_122.pal b/graphics/sa1/obj_palettes/pal_122.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_122.pal rename to graphics/sa1/obj_palettes/pal_122.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_123.pal b/graphics/sa1/obj_palettes/pal_123.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_123.pal rename to graphics/sa1/obj_palettes/pal_123.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_124.pal b/graphics/sa1/obj_palettes/pal_124.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_124.pal rename to graphics/sa1/obj_palettes/pal_124.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_125.pal b/graphics/sa1/obj_palettes/pal_125.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_125.pal rename to graphics/sa1/obj_palettes/pal_125.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_126.pal b/graphics/sa1/obj_palettes/pal_126.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_126.pal rename to graphics/sa1/obj_palettes/pal_126.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_127.pal b/graphics/sa1/obj_palettes/pal_127.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_127.pal rename to graphics/sa1/obj_palettes/pal_127.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_128.pal b/graphics/sa1/obj_palettes/pal_128.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_128.pal rename to graphics/sa1/obj_palettes/pal_128.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_129.pal b/graphics/sa1/obj_palettes/pal_129.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_129.pal rename to graphics/sa1/obj_palettes/pal_129.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_130.pal b/graphics/sa1/obj_palettes/pal_130.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_130.pal rename to graphics/sa1/obj_palettes/pal_130.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_131.pal b/graphics/sa1/obj_palettes/pal_131.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_131.pal rename to graphics/sa1/obj_palettes/pal_131.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_132.pal b/graphics/sa1/obj_palettes/pal_132.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_132.pal rename to graphics/sa1/obj_palettes/pal_132.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_133.pal b/graphics/sa1/obj_palettes/pal_133.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_133.pal rename to graphics/sa1/obj_palettes/pal_133.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_134.pal b/graphics/sa1/obj_palettes/pal_134.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_134.pal rename to graphics/sa1/obj_palettes/pal_134.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_135.pal b/graphics/sa1/obj_palettes/pal_135.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_135.pal rename to graphics/sa1/obj_palettes/pal_135.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_136.pal b/graphics/sa1/obj_palettes/pal_136.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_136.pal rename to graphics/sa1/obj_palettes/pal_136.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_137.pal b/graphics/sa1/obj_palettes/pal_137.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_137.pal rename to graphics/sa1/obj_palettes/pal_137.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_138.pal b/graphics/sa1/obj_palettes/pal_138.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_138.pal rename to graphics/sa1/obj_palettes/pal_138.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_139.pal b/graphics/sa1/obj_palettes/pal_139.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_139.pal rename to graphics/sa1/obj_palettes/pal_139.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_140.pal b/graphics/sa1/obj_palettes/pal_140.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_140.pal rename to graphics/sa1/obj_palettes/pal_140.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_141.pal b/graphics/sa1/obj_palettes/pal_141.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_141.pal rename to graphics/sa1/obj_palettes/pal_141.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_142.pal b/graphics/sa1/obj_palettes/pal_142.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_142.pal rename to graphics/sa1/obj_palettes/pal_142.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_143.pal b/graphics/sa1/obj_palettes/pal_143.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_143.pal rename to graphics/sa1/obj_palettes/pal_143.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_144.pal b/graphics/sa1/obj_palettes/pal_144.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_144.pal rename to graphics/sa1/obj_palettes/pal_144.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_145.pal b/graphics/sa1/obj_palettes/pal_145.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_145.pal rename to graphics/sa1/obj_palettes/pal_145.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_146.pal b/graphics/sa1/obj_palettes/pal_146.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_146.pal rename to graphics/sa1/obj_palettes/pal_146.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_147.pal b/graphics/sa1/obj_palettes/pal_147.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_147.pal rename to graphics/sa1/obj_palettes/pal_147.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_148.pal b/graphics/sa1/obj_palettes/pal_148.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_148.pal rename to graphics/sa1/obj_palettes/pal_148.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_149.pal b/graphics/sa1/obj_palettes/pal_149.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_149.pal rename to graphics/sa1/obj_palettes/pal_149.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_150.pal b/graphics/sa1/obj_palettes/pal_150.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_150.pal rename to graphics/sa1/obj_palettes/pal_150.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_151.pal b/graphics/sa1/obj_palettes/pal_151.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_151.pal rename to graphics/sa1/obj_palettes/pal_151.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_152.pal b/graphics/sa1/obj_palettes/pal_152.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_152.pal rename to graphics/sa1/obj_palettes/pal_152.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_153.pal b/graphics/sa1/obj_palettes/pal_153.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_153.pal rename to graphics/sa1/obj_palettes/pal_153.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_154.pal b/graphics/sa1/obj_palettes/pal_154.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_154.pal rename to graphics/sa1/obj_palettes/pal_154.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_155.pal b/graphics/sa1/obj_palettes/pal_155.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_155.pal rename to graphics/sa1/obj_palettes/pal_155.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_156.pal b/graphics/sa1/obj_palettes/pal_156.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_156.pal rename to graphics/sa1/obj_palettes/pal_156.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_157.pal b/graphics/sa1/obj_palettes/pal_157.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_157.pal rename to graphics/sa1/obj_palettes/pal_157.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_158.pal b/graphics/sa1/obj_palettes/pal_158.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_158.pal rename to graphics/sa1/obj_palettes/pal_158.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_159.pal b/graphics/sa1/obj_palettes/pal_159.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_159.pal rename to graphics/sa1/obj_palettes/pal_159.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_160.pal b/graphics/sa1/obj_palettes/pal_160.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_160.pal rename to graphics/sa1/obj_palettes/pal_160.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_161.pal b/graphics/sa1/obj_palettes/pal_161.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_161.pal rename to graphics/sa1/obj_palettes/pal_161.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_162.pal b/graphics/sa1/obj_palettes/pal_162.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_162.pal rename to graphics/sa1/obj_palettes/pal_162.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_163.pal b/graphics/sa1/obj_palettes/pal_163.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_163.pal rename to graphics/sa1/obj_palettes/pal_163.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_164.pal b/graphics/sa1/obj_palettes/pal_164.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_164.pal rename to graphics/sa1/obj_palettes/pal_164.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_165.pal b/graphics/sa1/obj_palettes/pal_165.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_165.pal rename to graphics/sa1/obj_palettes/pal_165.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_166.pal b/graphics/sa1/obj_palettes/pal_166.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_166.pal rename to graphics/sa1/obj_palettes/pal_166.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_167.pal b/graphics/sa1/obj_palettes/pal_167.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_167.pal rename to graphics/sa1/obj_palettes/pal_167.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_168.pal b/graphics/sa1/obj_palettes/pal_168.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_168.pal rename to graphics/sa1/obj_palettes/pal_168.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_169.pal b/graphics/sa1/obj_palettes/pal_169.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_169.pal rename to graphics/sa1/obj_palettes/pal_169.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_170.pal b/graphics/sa1/obj_palettes/pal_170.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_170.pal rename to graphics/sa1/obj_palettes/pal_170.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_171.pal b/graphics/sa1/obj_palettes/pal_171.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_171.pal rename to graphics/sa1/obj_palettes/pal_171.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_172.pal b/graphics/sa1/obj_palettes/pal_172.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_172.pal rename to graphics/sa1/obj_palettes/pal_172.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_173.pal b/graphics/sa1/obj_palettes/pal_173.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_173.pal rename to graphics/sa1/obj_palettes/pal_173.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_174.pal b/graphics/sa1/obj_palettes/pal_174.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_174.pal rename to graphics/sa1/obj_palettes/pal_174.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_175.pal b/graphics/sa1/obj_palettes/pal_175.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_175.pal rename to graphics/sa1/obj_palettes/pal_175.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_176.pal b/graphics/sa1/obj_palettes/pal_176.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_176.pal rename to graphics/sa1/obj_palettes/pal_176.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_177.pal b/graphics/sa1/obj_palettes/pal_177.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_177.pal rename to graphics/sa1/obj_palettes/pal_177.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_178.pal b/graphics/sa1/obj_palettes/pal_178.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_178.pal rename to graphics/sa1/obj_palettes/pal_178.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_179.pal b/graphics/sa1/obj_palettes/pal_179.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_179.pal rename to graphics/sa1/obj_palettes/pal_179.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_180.pal b/graphics/sa1/obj_palettes/pal_180.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_180.pal rename to graphics/sa1/obj_palettes/pal_180.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_181.pal b/graphics/sa1/obj_palettes/pal_181.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_181.pal rename to graphics/sa1/obj_palettes/pal_181.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_182.pal b/graphics/sa1/obj_palettes/pal_182.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_182.pal rename to graphics/sa1/obj_palettes/pal_182.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_183.pal b/graphics/sa1/obj_palettes/pal_183.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_183.pal rename to graphics/sa1/obj_palettes/pal_183.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_184.pal b/graphics/sa1/obj_palettes/pal_184.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_184.pal rename to graphics/sa1/obj_palettes/pal_184.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_185.pal b/graphics/sa1/obj_palettes/pal_185.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_185.pal rename to graphics/sa1/obj_palettes/pal_185.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_186.pal b/graphics/sa1/obj_palettes/pal_186.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_186.pal rename to graphics/sa1/obj_palettes/pal_186.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_187.pal b/graphics/sa1/obj_palettes/pal_187.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_187.pal rename to graphics/sa1/obj_palettes/pal_187.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_188.pal b/graphics/sa1/obj_palettes/pal_188.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_188.pal rename to graphics/sa1/obj_palettes/pal_188.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_189.pal b/graphics/sa1/obj_palettes/pal_189.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_189.pal rename to graphics/sa1/obj_palettes/pal_189.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_190.pal b/graphics/sa1/obj_palettes/pal_190.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_190.pal rename to graphics/sa1/obj_palettes/pal_190.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_191.pal b/graphics/sa1/obj_palettes/pal_191.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_191.pal rename to graphics/sa1/obj_palettes/pal_191.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_192.pal b/graphics/sa1/obj_palettes/pal_192.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_192.pal rename to graphics/sa1/obj_palettes/pal_192.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_193.pal b/graphics/sa1/obj_palettes/pal_193.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_193.pal rename to graphics/sa1/obj_palettes/pal_193.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_194.pal b/graphics/sa1/obj_palettes/pal_194.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_194.pal rename to graphics/sa1/obj_palettes/pal_194.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_195.pal b/graphics/sa1/obj_palettes/pal_195.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_195.pal rename to graphics/sa1/obj_palettes/pal_195.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_196.pal b/graphics/sa1/obj_palettes/pal_196.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_196.pal rename to graphics/sa1/obj_palettes/pal_196.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_197.pal b/graphics/sa1/obj_palettes/pal_197.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_197.pal rename to graphics/sa1/obj_palettes/pal_197.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_198.pal b/graphics/sa1/obj_palettes/pal_198.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_198.pal rename to graphics/sa1/obj_palettes/pal_198.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_199.pal b/graphics/sa1/obj_palettes/pal_199.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_199.pal rename to graphics/sa1/obj_palettes/pal_199.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_200.pal b/graphics/sa1/obj_palettes/pal_200.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_200.pal rename to graphics/sa1/obj_palettes/pal_200.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_201.pal b/graphics/sa1/obj_palettes/pal_201.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_201.pal rename to graphics/sa1/obj_palettes/pal_201.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_202.pal b/graphics/sa1/obj_palettes/pal_202.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_202.pal rename to graphics/sa1/obj_palettes/pal_202.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_203.pal b/graphics/sa1/obj_palettes/pal_203.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_203.pal rename to graphics/sa1/obj_palettes/pal_203.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_204.pal b/graphics/sa1/obj_palettes/pal_204.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_204.pal rename to graphics/sa1/obj_palettes/pal_204.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_205.pal b/graphics/sa1/obj_palettes/pal_205.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_205.pal rename to graphics/sa1/obj_palettes/pal_205.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_206.pal b/graphics/sa1/obj_palettes/pal_206.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_206.pal rename to graphics/sa1/obj_palettes/pal_206.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_207.pal b/graphics/sa1/obj_palettes/pal_207.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_207.pal rename to graphics/sa1/obj_palettes/pal_207.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_208.pal b/graphics/sa1/obj_palettes/pal_208.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_208.pal rename to graphics/sa1/obj_palettes/pal_208.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_209.pal b/graphics/sa1/obj_palettes/pal_209.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_209.pal rename to graphics/sa1/obj_palettes/pal_209.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_210.pal b/graphics/sa1/obj_palettes/pal_210.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_210.pal rename to graphics/sa1/obj_palettes/pal_210.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_211.pal b/graphics/sa1/obj_palettes/pal_211.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_211.pal rename to graphics/sa1/obj_palettes/pal_211.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_212.pal b/graphics/sa1/obj_palettes/pal_212.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_212.pal rename to graphics/sa1/obj_palettes/pal_212.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_213.pal b/graphics/sa1/obj_palettes/pal_213.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_213.pal rename to graphics/sa1/obj_palettes/pal_213.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_214.pal b/graphics/sa1/obj_palettes/pal_214.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_214.pal rename to graphics/sa1/obj_palettes/pal_214.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_215.pal b/graphics/sa1/obj_palettes/pal_215.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_215.pal rename to graphics/sa1/obj_palettes/pal_215.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_216.pal b/graphics/sa1/obj_palettes/pal_216.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_216.pal rename to graphics/sa1/obj_palettes/pal_216.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_217.pal b/graphics/sa1/obj_palettes/pal_217.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_217.pal rename to graphics/sa1/obj_palettes/pal_217.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_218.pal b/graphics/sa1/obj_palettes/pal_218.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_218.pal rename to graphics/sa1/obj_palettes/pal_218.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_219.pal b/graphics/sa1/obj_palettes/pal_219.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_219.pal rename to graphics/sa1/obj_palettes/pal_219.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_220.pal b/graphics/sa1/obj_palettes/pal_220.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_220.pal rename to graphics/sa1/obj_palettes/pal_220.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_221.pal b/graphics/sa1/obj_palettes/pal_221.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_221.pal rename to graphics/sa1/obj_palettes/pal_221.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_222.pal b/graphics/sa1/obj_palettes/pal_222.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_222.pal rename to graphics/sa1/obj_palettes/pal_222.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_223.pal b/graphics/sa1/obj_palettes/pal_223.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_223.pal rename to graphics/sa1/obj_palettes/pal_223.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_224.pal b/graphics/sa1/obj_palettes/pal_224.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_224.pal rename to graphics/sa1/obj_palettes/pal_224.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_225.pal b/graphics/sa1/obj_palettes/pal_225.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_225.pal rename to graphics/sa1/obj_palettes/pal_225.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_226.pal b/graphics/sa1/obj_palettes/pal_226.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_226.pal rename to graphics/sa1/obj_palettes/pal_226.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_227.pal b/graphics/sa1/obj_palettes/pal_227.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_227.pal rename to graphics/sa1/obj_palettes/pal_227.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_228.pal b/graphics/sa1/obj_palettes/pal_228.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_228.pal rename to graphics/sa1/obj_palettes/pal_228.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_229.pal b/graphics/sa1/obj_palettes/pal_229.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_229.pal rename to graphics/sa1/obj_palettes/pal_229.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_230.pal b/graphics/sa1/obj_palettes/pal_230.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_230.pal rename to graphics/sa1/obj_palettes/pal_230.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_231.pal b/graphics/sa1/obj_palettes/pal_231.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_231.pal rename to graphics/sa1/obj_palettes/pal_231.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_232.pal b/graphics/sa1/obj_palettes/pal_232.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_232.pal rename to graphics/sa1/obj_palettes/pal_232.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_233.pal b/graphics/sa1/obj_palettes/pal_233.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_233.pal rename to graphics/sa1/obj_palettes/pal_233.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_234.pal b/graphics/sa1/obj_palettes/pal_234.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_234.pal rename to graphics/sa1/obj_palettes/pal_234.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_235.pal b/graphics/sa1/obj_palettes/pal_235.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_235.pal rename to graphics/sa1/obj_palettes/pal_235.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_236.pal b/graphics/sa1/obj_palettes/pal_236.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_236.pal rename to graphics/sa1/obj_palettes/pal_236.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_237.pal b/graphics/sa1/obj_palettes/pal_237.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_237.pal rename to graphics/sa1/obj_palettes/pal_237.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_238.pal b/graphics/sa1/obj_palettes/pal_238.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_238.pal rename to graphics/sa1/obj_palettes/pal_238.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_239.pal b/graphics/sa1/obj_palettes/pal_239.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_239.pal rename to graphics/sa1/obj_palettes/pal_239.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_240.pal b/graphics/sa1/obj_palettes/pal_240.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_240.pal rename to graphics/sa1/obj_palettes/pal_240.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_241.pal b/graphics/sa1/obj_palettes/pal_241.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_241.pal rename to graphics/sa1/obj_palettes/pal_241.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_242.pal b/graphics/sa1/obj_palettes/pal_242.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_242.pal rename to graphics/sa1/obj_palettes/pal_242.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_243.pal b/graphics/sa1/obj_palettes/pal_243.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_243.pal rename to graphics/sa1/obj_palettes/pal_243.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_244.pal b/graphics/sa1/obj_palettes/pal_244.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_244.pal rename to graphics/sa1/obj_palettes/pal_244.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_245.pal b/graphics/sa1/obj_palettes/pal_245.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_245.pal rename to graphics/sa1/obj_palettes/pal_245.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_246.pal b/graphics/sa1/obj_palettes/pal_246.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_246.pal rename to graphics/sa1/obj_palettes/pal_246.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_247.pal b/graphics/sa1/obj_palettes/pal_247.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_247.pal rename to graphics/sa1/obj_palettes/pal_247.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_248.pal b/graphics/sa1/obj_palettes/pal_248.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_248.pal rename to graphics/sa1/obj_palettes/pal_248.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_249.pal b/graphics/sa1/obj_palettes/pal_249.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_249.pal rename to graphics/sa1/obj_palettes/pal_249.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_250.pal b/graphics/sa1/obj_palettes/pal_250.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_250.pal rename to graphics/sa1/obj_palettes/pal_250.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_251.pal b/graphics/sa1/obj_palettes/pal_251.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_251.pal rename to graphics/sa1/obj_palettes/pal_251.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_252.pal b/graphics/sa1/obj_palettes/pal_252.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_252.pal rename to graphics/sa1/obj_palettes/pal_252.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_253.pal b/graphics/sa1/obj_palettes/pal_253.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_253.pal rename to graphics/sa1/obj_palettes/pal_253.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_254.pal b/graphics/sa1/obj_palettes/pal_254.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_254.pal rename to graphics/sa1/obj_palettes/pal_254.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_255.pal b/graphics/sa1/obj_palettes/pal_255.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_255.pal rename to graphics/sa1/obj_palettes/pal_255.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_256.pal b/graphics/sa1/obj_palettes/pal_256.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_256.pal rename to graphics/sa1/obj_palettes/pal_256.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_257.pal b/graphics/sa1/obj_palettes/pal_257.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_257.pal rename to graphics/sa1/obj_palettes/pal_257.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_258.pal b/graphics/sa1/obj_palettes/pal_258.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_258.pal rename to graphics/sa1/obj_palettes/pal_258.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_259.pal b/graphics/sa1/obj_palettes/pal_259.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_259.pal rename to graphics/sa1/obj_palettes/pal_259.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_260.pal b/graphics/sa1/obj_palettes/pal_260.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_260.pal rename to graphics/sa1/obj_palettes/pal_260.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_261.pal b/graphics/sa1/obj_palettes/pal_261.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_261.pal rename to graphics/sa1/obj_palettes/pal_261.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_262.pal b/graphics/sa1/obj_palettes/pal_262.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_262.pal rename to graphics/sa1/obj_palettes/pal_262.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_263.pal b/graphics/sa1/obj_palettes/pal_263.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_263.pal rename to graphics/sa1/obj_palettes/pal_263.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_264.pal b/graphics/sa1/obj_palettes/pal_264.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_264.pal rename to graphics/sa1/obj_palettes/pal_264.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_265.pal b/graphics/sa1/obj_palettes/pal_265.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_265.pal rename to graphics/sa1/obj_palettes/pal_265.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_266.pal b/graphics/sa1/obj_palettes/pal_266.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_266.pal rename to graphics/sa1/obj_palettes/pal_266.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_267.pal b/graphics/sa1/obj_palettes/pal_267.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_267.pal rename to graphics/sa1/obj_palettes/pal_267.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_268.pal b/graphics/sa1/obj_palettes/pal_268.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_268.pal rename to graphics/sa1/obj_palettes/pal_268.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_269.pal b/graphics/sa1/obj_palettes/pal_269.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_269.pal rename to graphics/sa1/obj_palettes/pal_269.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_270.pal b/graphics/sa1/obj_palettes/pal_270.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_270.pal rename to graphics/sa1/obj_palettes/pal_270.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_271.pal b/graphics/sa1/obj_palettes/pal_271.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_271.pal rename to graphics/sa1/obj_palettes/pal_271.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_272.pal b/graphics/sa1/obj_palettes/pal_272.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_272.pal rename to graphics/sa1/obj_palettes/pal_272.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_273.pal b/graphics/sa1/obj_palettes/pal_273.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_273.pal rename to graphics/sa1/obj_palettes/pal_273.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_274.pal b/graphics/sa1/obj_palettes/pal_274.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_274.pal rename to graphics/sa1/obj_palettes/pal_274.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_275.pal b/graphics/sa1/obj_palettes/pal_275.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_275.pal rename to graphics/sa1/obj_palettes/pal_275.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_276.pal b/graphics/sa1/obj_palettes/pal_276.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_276.pal rename to graphics/sa1/obj_palettes/pal_276.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_277.pal b/graphics/sa1/obj_palettes/pal_277.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_277.pal rename to graphics/sa1/obj_palettes/pal_277.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_278.pal b/graphics/sa1/obj_palettes/pal_278.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_278.pal rename to graphics/sa1/obj_palettes/pal_278.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_279.pal b/graphics/sa1/obj_palettes/pal_279.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_279.pal rename to graphics/sa1/obj_palettes/pal_279.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_280.pal b/graphics/sa1/obj_palettes/pal_280.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_280.pal rename to graphics/sa1/obj_palettes/pal_280.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_281.pal b/graphics/sa1/obj_palettes/pal_281.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_281.pal rename to graphics/sa1/obj_palettes/pal_281.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_282.pal b/graphics/sa1/obj_palettes/pal_282.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_282.pal rename to graphics/sa1/obj_palettes/pal_282.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_283.pal b/graphics/sa1/obj_palettes/pal_283.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_283.pal rename to graphics/sa1/obj_palettes/pal_283.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_284.pal b/graphics/sa1/obj_palettes/pal_284.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_284.pal rename to graphics/sa1/obj_palettes/pal_284.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_285.pal b/graphics/sa1/obj_palettes/pal_285.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_285.pal rename to graphics/sa1/obj_palettes/pal_285.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_286.pal b/graphics/sa1/obj_palettes/pal_286.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_286.pal rename to graphics/sa1/obj_palettes/pal_286.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_287.pal b/graphics/sa1/obj_palettes/pal_287.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_287.pal rename to graphics/sa1/obj_palettes/pal_287.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_288.pal b/graphics/sa1/obj_palettes/pal_288.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_288.pal rename to graphics/sa1/obj_palettes/pal_288.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_289.pal b/graphics/sa1/obj_palettes/pal_289.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_289.pal rename to graphics/sa1/obj_palettes/pal_289.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_290.pal b/graphics/sa1/obj_palettes/pal_290.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_290.pal rename to graphics/sa1/obj_palettes/pal_290.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_291.pal b/graphics/sa1/obj_palettes/pal_291.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_291.pal rename to graphics/sa1/obj_palettes/pal_291.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_292.pal b/graphics/sa1/obj_palettes/pal_292.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_292.pal rename to graphics/sa1/obj_palettes/pal_292.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_293.pal b/graphics/sa1/obj_palettes/pal_293.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_293.pal rename to graphics/sa1/obj_palettes/pal_293.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_294.pal b/graphics/sa1/obj_palettes/pal_294.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_294.pal rename to graphics/sa1/obj_palettes/pal_294.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_295.pal b/graphics/sa1/obj_palettes/pal_295.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_295.pal rename to graphics/sa1/obj_palettes/pal_295.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_296.pal b/graphics/sa1/obj_palettes/pal_296.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_296.pal rename to graphics/sa1/obj_palettes/pal_296.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_297.pal b/graphics/sa1/obj_palettes/pal_297.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_297.pal rename to graphics/sa1/obj_palettes/pal_297.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_298.pal b/graphics/sa1/obj_palettes/pal_298.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_298.pal rename to graphics/sa1/obj_palettes/pal_298.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_299.pal b/graphics/sa1/obj_palettes/pal_299.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_299.pal rename to graphics/sa1/obj_palettes/pal_299.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_300.pal b/graphics/sa1/obj_palettes/pal_300.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_300.pal rename to graphics/sa1/obj_palettes/pal_300.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_301.pal b/graphics/sa1/obj_palettes/pal_301.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_301.pal rename to graphics/sa1/obj_palettes/pal_301.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_302.pal b/graphics/sa1/obj_palettes/pal_302.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_302.pal rename to graphics/sa1/obj_palettes/pal_302.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_303.pal b/graphics/sa1/obj_palettes/pal_303.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_303.pal rename to graphics/sa1/obj_palettes/pal_303.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_304.pal b/graphics/sa1/obj_palettes/pal_304.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_304.pal rename to graphics/sa1/obj_palettes/pal_304.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_305.pal b/graphics/sa1/obj_palettes/pal_305.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_305.pal rename to graphics/sa1/obj_palettes/pal_305.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_306.pal b/graphics/sa1/obj_palettes/pal_306.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_306.pal rename to graphics/sa1/obj_palettes/pal_306.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_307.pal b/graphics/sa1/obj_palettes/pal_307.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_307.pal rename to graphics/sa1/obj_palettes/pal_307.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_308.pal b/graphics/sa1/obj_palettes/pal_308.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_308.pal rename to graphics/sa1/obj_palettes/pal_308.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_309.pal b/graphics/sa1/obj_palettes/pal_309.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_309.pal rename to graphics/sa1/obj_palettes/pal_309.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_310.pal b/graphics/sa1/obj_palettes/pal_310.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_310.pal rename to graphics/sa1/obj_palettes/pal_310.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_311.pal b/graphics/sa1/obj_palettes/pal_311.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_311.pal rename to graphics/sa1/obj_palettes/pal_311.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_312.pal b/graphics/sa1/obj_palettes/pal_312.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_312.pal rename to graphics/sa1/obj_palettes/pal_312.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_313.pal b/graphics/sa1/obj_palettes/pal_313.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_313.pal rename to graphics/sa1/obj_palettes/pal_313.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_314.pal b/graphics/sa1/obj_palettes/pal_314.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_314.pal rename to graphics/sa1/obj_palettes/pal_314.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_315.pal b/graphics/sa1/obj_palettes/pal_315.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_315.pal rename to graphics/sa1/obj_palettes/pal_315.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_316.pal b/graphics/sa1/obj_palettes/pal_316.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_316.pal rename to graphics/sa1/obj_palettes/pal_316.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_317.pal b/graphics/sa1/obj_palettes/pal_317.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_317.pal rename to graphics/sa1/obj_palettes/pal_317.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_318.pal b/graphics/sa1/obj_palettes/pal_318.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_318.pal rename to graphics/sa1/obj_palettes/pal_318.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_319.pal b/graphics/sa1/obj_palettes/pal_319.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_319.pal rename to graphics/sa1/obj_palettes/pal_319.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_320.pal b/graphics/sa1/obj_palettes/pal_320.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_320.pal rename to graphics/sa1/obj_palettes/pal_320.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_321.pal b/graphics/sa1/obj_palettes/pal_321.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_321.pal rename to graphics/sa1/obj_palettes/pal_321.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_322.pal b/graphics/sa1/obj_palettes/pal_322.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_322.pal rename to graphics/sa1/obj_palettes/pal_322.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_323.pal b/graphics/sa1/obj_palettes/pal_323.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_323.pal rename to graphics/sa1/obj_palettes/pal_323.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_324.pal b/graphics/sa1/obj_palettes/pal_324.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_324.pal rename to graphics/sa1/obj_palettes/pal_324.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_325.pal b/graphics/sa1/obj_palettes/pal_325.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_325.pal rename to graphics/sa1/obj_palettes/pal_325.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_326.pal b/graphics/sa1/obj_palettes/pal_326.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_326.pal rename to graphics/sa1/obj_palettes/pal_326.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_327.pal b/graphics/sa1/obj_palettes/pal_327.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_327.pal rename to graphics/sa1/obj_palettes/pal_327.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_328.pal b/graphics/sa1/obj_palettes/pal_328.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_328.pal rename to graphics/sa1/obj_palettes/pal_328.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_329.pal b/graphics/sa1/obj_palettes/pal_329.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_329.pal rename to graphics/sa1/obj_palettes/pal_329.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_330.pal b/graphics/sa1/obj_palettes/pal_330.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_330.pal rename to graphics/sa1/obj_palettes/pal_330.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_331.pal b/graphics/sa1/obj_palettes/pal_331.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_331.pal rename to graphics/sa1/obj_palettes/pal_331.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_332.pal b/graphics/sa1/obj_palettes/pal_332.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_332.pal rename to graphics/sa1/obj_palettes/pal_332.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_333.pal b/graphics/sa1/obj_palettes/pal_333.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_333.pal rename to graphics/sa1/obj_palettes/pal_333.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_334.pal b/graphics/sa1/obj_palettes/pal_334.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_334.pal rename to graphics/sa1/obj_palettes/pal_334.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_335.pal b/graphics/sa1/obj_palettes/pal_335.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_335.pal rename to graphics/sa1/obj_palettes/pal_335.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_336.pal b/graphics/sa1/obj_palettes/pal_336.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_336.pal rename to graphics/sa1/obj_palettes/pal_336.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_337.pal b/graphics/sa1/obj_palettes/pal_337.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_337.pal rename to graphics/sa1/obj_palettes/pal_337.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_338.pal b/graphics/sa1/obj_palettes/pal_338.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_338.pal rename to graphics/sa1/obj_palettes/pal_338.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_339.pal b/graphics/sa1/obj_palettes/pal_339.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_339.pal rename to graphics/sa1/obj_palettes/pal_339.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_340.pal b/graphics/sa1/obj_palettes/pal_340.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_340.pal rename to graphics/sa1/obj_palettes/pal_340.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_341.pal b/graphics/sa1/obj_palettes/pal_341.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_341.pal rename to graphics/sa1/obj_palettes/pal_341.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_342.pal b/graphics/sa1/obj_palettes/pal_342.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_342.pal rename to graphics/sa1/obj_palettes/pal_342.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_343.pal b/graphics/sa1/obj_palettes/pal_343.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_343.pal rename to graphics/sa1/obj_palettes/pal_343.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_344.pal b/graphics/sa1/obj_palettes/pal_344.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_344.pal rename to graphics/sa1/obj_palettes/pal_344.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_345.pal b/graphics/sa1/obj_palettes/pal_345.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_345.pal rename to graphics/sa1/obj_palettes/pal_345.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_346.pal b/graphics/sa1/obj_palettes/pal_346.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_346.pal rename to graphics/sa1/obj_palettes/pal_346.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_347.pal b/graphics/sa1/obj_palettes/pal_347.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_347.pal rename to graphics/sa1/obj_palettes/pal_347.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_348.pal b/graphics/sa1/obj_palettes/pal_348.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_348.pal rename to graphics/sa1/obj_palettes/pal_348.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_349.pal b/graphics/sa1/obj_palettes/pal_349.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_349.pal rename to graphics/sa1/obj_palettes/pal_349.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_350.pal b/graphics/sa1/obj_palettes/pal_350.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_350.pal rename to graphics/sa1/obj_palettes/pal_350.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_351.pal b/graphics/sa1/obj_palettes/pal_351.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_351.pal rename to graphics/sa1/obj_palettes/pal_351.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_352.pal b/graphics/sa1/obj_palettes/pal_352.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_352.pal rename to graphics/sa1/obj_palettes/pal_352.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_353.pal b/graphics/sa1/obj_palettes/pal_353.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_353.pal rename to graphics/sa1/obj_palettes/pal_353.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_354.pal b/graphics/sa1/obj_palettes/pal_354.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_354.pal rename to graphics/sa1/obj_palettes/pal_354.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_355.pal b/graphics/sa1/obj_palettes/pal_355.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_355.pal rename to graphics/sa1/obj_palettes/pal_355.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_356.pal b/graphics/sa1/obj_palettes/pal_356.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_356.pal rename to graphics/sa1/obj_palettes/pal_356.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_357.pal b/graphics/sa1/obj_palettes/pal_357.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_357.pal rename to graphics/sa1/obj_palettes/pal_357.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_358.pal b/graphics/sa1/obj_palettes/pal_358.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_358.pal rename to graphics/sa1/obj_palettes/pal_358.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_359.pal b/graphics/sa1/obj_palettes/pal_359.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_359.pal rename to graphics/sa1/obj_palettes/pal_359.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_360.pal b/graphics/sa1/obj_palettes/pal_360.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_360.pal rename to graphics/sa1/obj_palettes/pal_360.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_361.pal b/graphics/sa1/obj_palettes/pal_361.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_361.pal rename to graphics/sa1/obj_palettes/pal_361.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_362.pal b/graphics/sa1/obj_palettes/pal_362.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_362.pal rename to graphics/sa1/obj_palettes/pal_362.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_363.pal b/graphics/sa1/obj_palettes/pal_363.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_363.pal rename to graphics/sa1/obj_palettes/pal_363.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_364.pal b/graphics/sa1/obj_palettes/pal_364.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_364.pal rename to graphics/sa1/obj_palettes/pal_364.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_365.pal b/graphics/sa1/obj_palettes/pal_365.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_365.pal rename to graphics/sa1/obj_palettes/pal_365.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_366.pal b/graphics/sa1/obj_palettes/pal_366.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_366.pal rename to graphics/sa1/obj_palettes/pal_366.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_367.pal b/graphics/sa1/obj_palettes/pal_367.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_367.pal rename to graphics/sa1/obj_palettes/pal_367.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_368.pal b/graphics/sa1/obj_palettes/pal_368.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_368.pal rename to graphics/sa1/obj_palettes/pal_368.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_369.pal b/graphics/sa1/obj_palettes/pal_369.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_369.pal rename to graphics/sa1/obj_palettes/pal_369.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_370.pal b/graphics/sa1/obj_palettes/pal_370.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_370.pal rename to graphics/sa1/obj_palettes/pal_370.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_371.pal b/graphics/sa1/obj_palettes/pal_371.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_371.pal rename to graphics/sa1/obj_palettes/pal_371.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_372.pal b/graphics/sa1/obj_palettes/pal_372.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_372.pal rename to graphics/sa1/obj_palettes/pal_372.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_373.pal b/graphics/sa1/obj_palettes/pal_373.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_373.pal rename to graphics/sa1/obj_palettes/pal_373.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_374.pal b/graphics/sa1/obj_palettes/pal_374.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_374.pal rename to graphics/sa1/obj_palettes/pal_374.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_375.pal b/graphics/sa1/obj_palettes/pal_375.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_375.pal rename to graphics/sa1/obj_palettes/pal_375.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_376.pal b/graphics/sa1/obj_palettes/pal_376.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_376.pal rename to graphics/sa1/obj_palettes/pal_376.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_377.pal b/graphics/sa1/obj_palettes/pal_377.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_377.pal rename to graphics/sa1/obj_palettes/pal_377.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_378.pal b/graphics/sa1/obj_palettes/pal_378.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_378.pal rename to graphics/sa1/obj_palettes/pal_378.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_379.pal b/graphics/sa1/obj_palettes/pal_379.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_379.pal rename to graphics/sa1/obj_palettes/pal_379.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_380.pal b/graphics/sa1/obj_palettes/pal_380.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_380.pal rename to graphics/sa1/obj_palettes/pal_380.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_381.pal b/graphics/sa1/obj_palettes/pal_381.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_381.pal rename to graphics/sa1/obj_palettes/pal_381.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_382.pal b/graphics/sa1/obj_palettes/pal_382.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_382.pal rename to graphics/sa1/obj_palettes/pal_382.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_383.pal b/graphics/sa1/obj_palettes/pal_383.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_383.pal rename to graphics/sa1/obj_palettes/pal_383.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_384.pal b/graphics/sa1/obj_palettes/pal_384.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_384.pal rename to graphics/sa1/obj_palettes/pal_384.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_385.pal b/graphics/sa1/obj_palettes/pal_385.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_385.pal rename to graphics/sa1/obj_palettes/pal_385.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_386.pal b/graphics/sa1/obj_palettes/pal_386.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_386.pal rename to graphics/sa1/obj_palettes/pal_386.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_387.pal b/graphics/sa1/obj_palettes/pal_387.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_387.pal rename to graphics/sa1/obj_palettes/pal_387.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_388.pal b/graphics/sa1/obj_palettes/pal_388.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_388.pal rename to graphics/sa1/obj_palettes/pal_388.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_389.pal b/graphics/sa1/obj_palettes/pal_389.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_389.pal rename to graphics/sa1/obj_palettes/pal_389.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_390.pal b/graphics/sa1/obj_palettes/pal_390.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_390.pal rename to graphics/sa1/obj_palettes/pal_390.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_391.pal b/graphics/sa1/obj_palettes/pal_391.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_391.pal rename to graphics/sa1/obj_palettes/pal_391.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_392.pal b/graphics/sa1/obj_palettes/pal_392.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_392.pal rename to graphics/sa1/obj_palettes/pal_392.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_393.pal b/graphics/sa1/obj_palettes/pal_393.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_393.pal rename to graphics/sa1/obj_palettes/pal_393.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_394.pal b/graphics/sa1/obj_palettes/pal_394.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_394.pal rename to graphics/sa1/obj_palettes/pal_394.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_395.pal b/graphics/sa1/obj_palettes/pal_395.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_395.pal rename to graphics/sa1/obj_palettes/pal_395.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_396.pal b/graphics/sa1/obj_palettes/pal_396.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_396.pal rename to graphics/sa1/obj_palettes/pal_396.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_397.pal b/graphics/sa1/obj_palettes/pal_397.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_397.pal rename to graphics/sa1/obj_palettes/pal_397.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_398.pal b/graphics/sa1/obj_palettes/pal_398.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_398.pal rename to graphics/sa1/obj_palettes/pal_398.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_399.pal b/graphics/sa1/obj_palettes/pal_399.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_399.pal rename to graphics/sa1/obj_palettes/pal_399.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_400.pal b/graphics/sa1/obj_palettes/pal_400.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_400.pal rename to graphics/sa1/obj_palettes/pal_400.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_401.pal b/graphics/sa1/obj_palettes/pal_401.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_401.pal rename to graphics/sa1/obj_palettes/pal_401.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_402.pal b/graphics/sa1/obj_palettes/pal_402.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_402.pal rename to graphics/sa1/obj_palettes/pal_402.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_403.pal b/graphics/sa1/obj_palettes/pal_403.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_403.pal rename to graphics/sa1/obj_palettes/pal_403.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_404.pal b/graphics/sa1/obj_palettes/pal_404.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_404.pal rename to graphics/sa1/obj_palettes/pal_404.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_405.pal b/graphics/sa1/obj_palettes/pal_405.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_405.pal rename to graphics/sa1/obj_palettes/pal_405.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_406.pal b/graphics/sa1/obj_palettes/pal_406.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_406.pal rename to graphics/sa1/obj_palettes/pal_406.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_407.pal b/graphics/sa1/obj_palettes/pal_407.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_407.pal rename to graphics/sa1/obj_palettes/pal_407.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_408.pal b/graphics/sa1/obj_palettes/pal_408.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_408.pal rename to graphics/sa1/obj_palettes/pal_408.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_409.pal b/graphics/sa1/obj_palettes/pal_409.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_409.pal rename to graphics/sa1/obj_palettes/pal_409.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_410.pal b/graphics/sa1/obj_palettes/pal_410.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_410.pal rename to graphics/sa1/obj_palettes/pal_410.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_411.pal b/graphics/sa1/obj_palettes/pal_411.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_411.pal rename to graphics/sa1/obj_palettes/pal_411.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_412.pal b/graphics/sa1/obj_palettes/pal_412.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_412.pal rename to graphics/sa1/obj_palettes/pal_412.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_413.pal b/graphics/sa1/obj_palettes/pal_413.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_413.pal rename to graphics/sa1/obj_palettes/pal_413.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_414.pal b/graphics/sa1/obj_palettes/pal_414.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_414.pal rename to graphics/sa1/obj_palettes/pal_414.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_415.pal b/graphics/sa1/obj_palettes/pal_415.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_415.pal rename to graphics/sa1/obj_palettes/pal_415.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_416.pal b/graphics/sa1/obj_palettes/pal_416.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_416.pal rename to graphics/sa1/obj_palettes/pal_416.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_417.pal b/graphics/sa1/obj_palettes/pal_417.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_417.pal rename to graphics/sa1/obj_palettes/pal_417.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_418.pal b/graphics/sa1/obj_palettes/pal_418.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_418.pal rename to graphics/sa1/obj_palettes/pal_418.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_419.pal b/graphics/sa1/obj_palettes/pal_419.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_419.pal rename to graphics/sa1/obj_palettes/pal_419.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_420.pal b/graphics/sa1/obj_palettes/pal_420.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_420.pal rename to graphics/sa1/obj_palettes/pal_420.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_421.pal b/graphics/sa1/obj_palettes/pal_421.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_421.pal rename to graphics/sa1/obj_palettes/pal_421.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_422.pal b/graphics/sa1/obj_palettes/pal_422.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_422.pal rename to graphics/sa1/obj_palettes/pal_422.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_423.pal b/graphics/sa1/obj_palettes/pal_423.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_423.pal rename to graphics/sa1/obj_palettes/pal_423.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_424.pal b/graphics/sa1/obj_palettes/pal_424.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_424.pal rename to graphics/sa1/obj_palettes/pal_424.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_425.pal b/graphics/sa1/obj_palettes/pal_425.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_425.pal rename to graphics/sa1/obj_palettes/pal_425.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_426.pal b/graphics/sa1/obj_palettes/pal_426.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_426.pal rename to graphics/sa1/obj_palettes/pal_426.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_427.pal b/graphics/sa1/obj_palettes/pal_427.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_427.pal rename to graphics/sa1/obj_palettes/pal_427.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_428.pal b/graphics/sa1/obj_palettes/pal_428.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_428.pal rename to graphics/sa1/obj_palettes/pal_428.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_429.pal b/graphics/sa1/obj_palettes/pal_429.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_429.pal rename to graphics/sa1/obj_palettes/pal_429.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_430.pal b/graphics/sa1/obj_palettes/pal_430.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_430.pal rename to graphics/sa1/obj_palettes/pal_430.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_431.pal b/graphics/sa1/obj_palettes/pal_431.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_431.pal rename to graphics/sa1/obj_palettes/pal_431.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_432.pal b/graphics/sa1/obj_palettes/pal_432.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_432.pal rename to graphics/sa1/obj_palettes/pal_432.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_433.pal b/graphics/sa1/obj_palettes/pal_433.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_433.pal rename to graphics/sa1/obj_palettes/pal_433.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_434.pal b/graphics/sa1/obj_palettes/pal_434.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_434.pal rename to graphics/sa1/obj_palettes/pal_434.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_435.pal b/graphics/sa1/obj_palettes/pal_435.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_435.pal rename to graphics/sa1/obj_palettes/pal_435.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_436.pal b/graphics/sa1/obj_palettes/pal_436.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_436.pal rename to graphics/sa1/obj_palettes/pal_436.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_437.pal b/graphics/sa1/obj_palettes/pal_437.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_437.pal rename to graphics/sa1/obj_palettes/pal_437.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_438.pal b/graphics/sa1/obj_palettes/pal_438.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_438.pal rename to graphics/sa1/obj_palettes/pal_438.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_439.pal b/graphics/sa1/obj_palettes/pal_439.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_439.pal rename to graphics/sa1/obj_palettes/pal_439.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_440.pal b/graphics/sa1/obj_palettes/pal_440.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_440.pal rename to graphics/sa1/obj_palettes/pal_440.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_441.pal b/graphics/sa1/obj_palettes/pal_441.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_441.pal rename to graphics/sa1/obj_palettes/pal_441.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_442.pal b/graphics/sa1/obj_palettes/pal_442.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_442.pal rename to graphics/sa1/obj_palettes/pal_442.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_443.pal b/graphics/sa1/obj_palettes/pal_443.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_443.pal rename to graphics/sa1/obj_palettes/pal_443.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_444.pal b/graphics/sa1/obj_palettes/pal_444.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_444.pal rename to graphics/sa1/obj_palettes/pal_444.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_445.pal b/graphics/sa1/obj_palettes/pal_445.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_445.pal rename to graphics/sa1/obj_palettes/pal_445.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_446.pal b/graphics/sa1/obj_palettes/pal_446.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_446.pal rename to graphics/sa1/obj_palettes/pal_446.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_447.pal b/graphics/sa1/obj_palettes/pal_447.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_447.pal rename to graphics/sa1/obj_palettes/pal_447.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_448.pal b/graphics/sa1/obj_palettes/pal_448.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_448.pal rename to graphics/sa1/obj_palettes/pal_448.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_449.pal b/graphics/sa1/obj_palettes/pal_449.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_449.pal rename to graphics/sa1/obj_palettes/pal_449.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_450.pal b/graphics/sa1/obj_palettes/pal_450.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_450.pal rename to graphics/sa1/obj_palettes/pal_450.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_451.pal b/graphics/sa1/obj_palettes/pal_451.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_451.pal rename to graphics/sa1/obj_palettes/pal_451.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_452.pal b/graphics/sa1/obj_palettes/pal_452.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_452.pal rename to graphics/sa1/obj_palettes/pal_452.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_453.pal b/graphics/sa1/obj_palettes/pal_453.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_453.pal rename to graphics/sa1/obj_palettes/pal_453.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_454.pal b/graphics/sa1/obj_palettes/pal_454.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_454.pal rename to graphics/sa1/obj_palettes/pal_454.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_455.pal b/graphics/sa1/obj_palettes/pal_455.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_455.pal rename to graphics/sa1/obj_palettes/pal_455.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_456.pal b/graphics/sa1/obj_palettes/pal_456.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_456.pal rename to graphics/sa1/obj_palettes/pal_456.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_457.pal b/graphics/sa1/obj_palettes/pal_457.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_457.pal rename to graphics/sa1/obj_palettes/pal_457.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_458.pal b/graphics/sa1/obj_palettes/pal_458.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_458.pal rename to graphics/sa1/obj_palettes/pal_458.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_459.pal b/graphics/sa1/obj_palettes/pal_459.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_459.pal rename to graphics/sa1/obj_palettes/pal_459.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_460.pal b/graphics/sa1/obj_palettes/pal_460.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_460.pal rename to graphics/sa1/obj_palettes/pal_460.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_461.pal b/graphics/sa1/obj_palettes/pal_461.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_461.pal rename to graphics/sa1/obj_palettes/pal_461.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_462.pal b/graphics/sa1/obj_palettes/pal_462.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_462.pal rename to graphics/sa1/obj_palettes/pal_462.pal diff --git a/sa1/graphics/sa1/obj_palettes/pal_463.pal b/graphics/sa1/obj_palettes/pal_463.pal similarity index 100% rename from sa1/graphics/sa1/obj_palettes/pal_463.pal rename to graphics/sa1/obj_palettes/pal_463.pal diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f000.png b/graphics/sa1/obj_tiles/4bpp/a0000_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f001.png b/graphics/sa1/obj_tiles/4bpp/a0000_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f002.png b/graphics/sa1/obj_tiles/4bpp/a0000_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f003.png b/graphics/sa1/obj_tiles/4bpp/a0000_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f004.png b/graphics/sa1/obj_tiles/4bpp/a0000_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f005.png b/graphics/sa1/obj_tiles/4bpp/a0000_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f006.png b/graphics/sa1/obj_tiles/4bpp/a0000_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f007.png b/graphics/sa1/obj_tiles/4bpp/a0000_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f008.png b/graphics/sa1/obj_tiles/4bpp/a0000_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f009.png b/graphics/sa1/obj_tiles/4bpp/a0000_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f010.png b/graphics/sa1/obj_tiles/4bpp/a0000_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f011.png b/graphics/sa1/obj_tiles/4bpp/a0000_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0000_f012.png b/graphics/sa1/obj_tiles/4bpp/a0000_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0000_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0000_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f000.png b/graphics/sa1/obj_tiles/4bpp/a0001_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f001.png b/graphics/sa1/obj_tiles/4bpp/a0001_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f002.png b/graphics/sa1/obj_tiles/4bpp/a0001_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f003.png b/graphics/sa1/obj_tiles/4bpp/a0001_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f004.png b/graphics/sa1/obj_tiles/4bpp/a0001_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f005.png b/graphics/sa1/obj_tiles/4bpp/a0001_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f006.png b/graphics/sa1/obj_tiles/4bpp/a0001_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f007.png b/graphics/sa1/obj_tiles/4bpp/a0001_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f008.png b/graphics/sa1/obj_tiles/4bpp/a0001_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f009.png b/graphics/sa1/obj_tiles/4bpp/a0001_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f010.png b/graphics/sa1/obj_tiles/4bpp/a0001_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f011.png b/graphics/sa1/obj_tiles/4bpp/a0001_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f012.png b/graphics/sa1/obj_tiles/4bpp/a0001_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f013.png b/graphics/sa1/obj_tiles/4bpp/a0001_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f014.png b/graphics/sa1/obj_tiles/4bpp/a0001_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f015.png b/graphics/sa1/obj_tiles/4bpp/a0001_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f016.png b/graphics/sa1/obj_tiles/4bpp/a0001_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0001_f017.png b/graphics/sa1/obj_tiles/4bpp/a0001_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0001_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0001_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0002_f000.png b/graphics/sa1/obj_tiles/4bpp/a0002_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0002_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0002_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0002_f001.png b/graphics/sa1/obj_tiles/4bpp/a0002_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0002_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0002_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0002_f002.png b/graphics/sa1/obj_tiles/4bpp/a0002_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0002_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0002_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0002_f003.png b/graphics/sa1/obj_tiles/4bpp/a0002_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0002_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0002_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0002_f004.png b/graphics/sa1/obj_tiles/4bpp/a0002_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0002_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0002_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0003_f000.png b/graphics/sa1/obj_tiles/4bpp/a0003_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0003_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0003_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0003_f001.png b/graphics/sa1/obj_tiles/4bpp/a0003_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0003_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0003_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0003_f002.png b/graphics/sa1/obj_tiles/4bpp/a0003_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0003_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0003_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0003_f003.png b/graphics/sa1/obj_tiles/4bpp/a0003_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0003_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0003_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f000.png b/graphics/sa1/obj_tiles/4bpp/a0004_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f001.png b/graphics/sa1/obj_tiles/4bpp/a0004_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f002.png b/graphics/sa1/obj_tiles/4bpp/a0004_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f003.png b/graphics/sa1/obj_tiles/4bpp/a0004_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f004.png b/graphics/sa1/obj_tiles/4bpp/a0004_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f005.png b/graphics/sa1/obj_tiles/4bpp/a0004_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f006.png b/graphics/sa1/obj_tiles/4bpp/a0004_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0004_f007.png b/graphics/sa1/obj_tiles/4bpp/a0004_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0004_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0004_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0005_f000.png b/graphics/sa1/obj_tiles/4bpp/a0005_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0005_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0005_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0005_f001.png b/graphics/sa1/obj_tiles/4bpp/a0005_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0005_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0005_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0005_f002.png b/graphics/sa1/obj_tiles/4bpp/a0005_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0005_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0005_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0005_f003.png b/graphics/sa1/obj_tiles/4bpp/a0005_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0005_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0005_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0006_f000.png b/graphics/sa1/obj_tiles/4bpp/a0006_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0006_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0006_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0006_f001.png b/graphics/sa1/obj_tiles/4bpp/a0006_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0006_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0006_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0007_f000.png b/graphics/sa1/obj_tiles/4bpp/a0007_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0007_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0007_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0007_f001.png b/graphics/sa1/obj_tiles/4bpp/a0007_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0007_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0007_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0007_f002.png b/graphics/sa1/obj_tiles/4bpp/a0007_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0007_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0007_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0007_f003.png b/graphics/sa1/obj_tiles/4bpp/a0007_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0007_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0007_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0008_f000.png b/graphics/sa1/obj_tiles/4bpp/a0008_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0008_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0008_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0008_f001.png b/graphics/sa1/obj_tiles/4bpp/a0008_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0008_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0008_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0008_f002.png b/graphics/sa1/obj_tiles/4bpp/a0008_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0008_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0008_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0008_f003.png b/graphics/sa1/obj_tiles/4bpp/a0008_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0008_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0008_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0009_f000.png b/graphics/sa1/obj_tiles/4bpp/a0009_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0009_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0009_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0009_f001.png b/graphics/sa1/obj_tiles/4bpp/a0009_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0009_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0009_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0009_f002.png b/graphics/sa1/obj_tiles/4bpp/a0009_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0009_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0009_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f000.png b/graphics/sa1/obj_tiles/4bpp/a0010_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f001.png b/graphics/sa1/obj_tiles/4bpp/a0010_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f002.png b/graphics/sa1/obj_tiles/4bpp/a0010_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f003.png b/graphics/sa1/obj_tiles/4bpp/a0010_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f004.png b/graphics/sa1/obj_tiles/4bpp/a0010_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f005.png b/graphics/sa1/obj_tiles/4bpp/a0010_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f006.png b/graphics/sa1/obj_tiles/4bpp/a0010_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f007.png b/graphics/sa1/obj_tiles/4bpp/a0010_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f008.png b/graphics/sa1/obj_tiles/4bpp/a0010_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f009.png b/graphics/sa1/obj_tiles/4bpp/a0010_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f010.png b/graphics/sa1/obj_tiles/4bpp/a0010_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f011.png b/graphics/sa1/obj_tiles/4bpp/a0010_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f012.png b/graphics/sa1/obj_tiles/4bpp/a0010_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f013.png b/graphics/sa1/obj_tiles/4bpp/a0010_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0010_f014.png b/graphics/sa1/obj_tiles/4bpp/a0010_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0010_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0010_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f000.png b/graphics/sa1/obj_tiles/4bpp/a0011_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f001.png b/graphics/sa1/obj_tiles/4bpp/a0011_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f002.png b/graphics/sa1/obj_tiles/4bpp/a0011_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f003.png b/graphics/sa1/obj_tiles/4bpp/a0011_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f004.png b/graphics/sa1/obj_tiles/4bpp/a0011_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f005.png b/graphics/sa1/obj_tiles/4bpp/a0011_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f006.png b/graphics/sa1/obj_tiles/4bpp/a0011_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f007.png b/graphics/sa1/obj_tiles/4bpp/a0011_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f008.png b/graphics/sa1/obj_tiles/4bpp/a0011_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f009.png b/graphics/sa1/obj_tiles/4bpp/a0011_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0011_f010.png b/graphics/sa1/obj_tiles/4bpp/a0011_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0011_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0011_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f000.png b/graphics/sa1/obj_tiles/4bpp/a0012_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f001.png b/graphics/sa1/obj_tiles/4bpp/a0012_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f002.png b/graphics/sa1/obj_tiles/4bpp/a0012_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f003.png b/graphics/sa1/obj_tiles/4bpp/a0012_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f004.png b/graphics/sa1/obj_tiles/4bpp/a0012_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f005.png b/graphics/sa1/obj_tiles/4bpp/a0012_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f006.png b/graphics/sa1/obj_tiles/4bpp/a0012_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f007.png b/graphics/sa1/obj_tiles/4bpp/a0012_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0012_f008.png b/graphics/sa1/obj_tiles/4bpp/a0012_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0012_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0012_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f000.png b/graphics/sa1/obj_tiles/4bpp/a0013_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f001.png b/graphics/sa1/obj_tiles/4bpp/a0013_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f002.png b/graphics/sa1/obj_tiles/4bpp/a0013_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f003.png b/graphics/sa1/obj_tiles/4bpp/a0013_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f004.png b/graphics/sa1/obj_tiles/4bpp/a0013_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f005.png b/graphics/sa1/obj_tiles/4bpp/a0013_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f006.png b/graphics/sa1/obj_tiles/4bpp/a0013_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f007.png b/graphics/sa1/obj_tiles/4bpp/a0013_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f008.png b/graphics/sa1/obj_tiles/4bpp/a0013_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0013_f009.png b/graphics/sa1/obj_tiles/4bpp/a0013_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0013_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0013_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f000.png b/graphics/sa1/obj_tiles/4bpp/a0014_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f001.png b/graphics/sa1/obj_tiles/4bpp/a0014_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f002.png b/graphics/sa1/obj_tiles/4bpp/a0014_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f003.png b/graphics/sa1/obj_tiles/4bpp/a0014_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f004.png b/graphics/sa1/obj_tiles/4bpp/a0014_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f005.png b/graphics/sa1/obj_tiles/4bpp/a0014_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f006.png b/graphics/sa1/obj_tiles/4bpp/a0014_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f007.png b/graphics/sa1/obj_tiles/4bpp/a0014_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f008.png b/graphics/sa1/obj_tiles/4bpp/a0014_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0014_f009.png b/graphics/sa1/obj_tiles/4bpp/a0014_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0014_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0014_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0017_f000.png b/graphics/sa1/obj_tiles/4bpp/a0017_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0017_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0017_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0017_f001.png b/graphics/sa1/obj_tiles/4bpp/a0017_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0017_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0017_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f000.png b/graphics/sa1/obj_tiles/4bpp/a0018_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f001.png b/graphics/sa1/obj_tiles/4bpp/a0018_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f002.png b/graphics/sa1/obj_tiles/4bpp/a0018_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f003.png b/graphics/sa1/obj_tiles/4bpp/a0018_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f004.png b/graphics/sa1/obj_tiles/4bpp/a0018_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f005.png b/graphics/sa1/obj_tiles/4bpp/a0018_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f006.png b/graphics/sa1/obj_tiles/4bpp/a0018_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0018_f007.png b/graphics/sa1/obj_tiles/4bpp/a0018_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0018_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0018_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0019_f000.png b/graphics/sa1/obj_tiles/4bpp/a0019_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0019_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0019_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0019_f001.png b/graphics/sa1/obj_tiles/4bpp/a0019_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0019_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0019_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0019_f002.png b/graphics/sa1/obj_tiles/4bpp/a0019_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0019_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0019_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0019_f003.png b/graphics/sa1/obj_tiles/4bpp/a0019_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0019_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0019_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0019_f004.png b/graphics/sa1/obj_tiles/4bpp/a0019_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0019_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0019_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0021_f000.png b/graphics/sa1/obj_tiles/4bpp/a0021_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0021_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0021_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0021_f001.png b/graphics/sa1/obj_tiles/4bpp/a0021_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0021_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0021_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0021_f002.png b/graphics/sa1/obj_tiles/4bpp/a0021_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0021_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0021_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0021_f003.png b/graphics/sa1/obj_tiles/4bpp/a0021_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0021_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0021_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0021_f004.png b/graphics/sa1/obj_tiles/4bpp/a0021_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0021_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0021_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f000.png b/graphics/sa1/obj_tiles/4bpp/a0022_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f001.png b/graphics/sa1/obj_tiles/4bpp/a0022_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f002.png b/graphics/sa1/obj_tiles/4bpp/a0022_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f003.png b/graphics/sa1/obj_tiles/4bpp/a0022_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f004.png b/graphics/sa1/obj_tiles/4bpp/a0022_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f005.png b/graphics/sa1/obj_tiles/4bpp/a0022_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f006.png b/graphics/sa1/obj_tiles/4bpp/a0022_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f007.png b/graphics/sa1/obj_tiles/4bpp/a0022_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f008.png b/graphics/sa1/obj_tiles/4bpp/a0022_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f009.png b/graphics/sa1/obj_tiles/4bpp/a0022_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f010.png b/graphics/sa1/obj_tiles/4bpp/a0022_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f011.png b/graphics/sa1/obj_tiles/4bpp/a0022_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f012.png b/graphics/sa1/obj_tiles/4bpp/a0022_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f013.png b/graphics/sa1/obj_tiles/4bpp/a0022_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0022_f014.png b/graphics/sa1/obj_tiles/4bpp/a0022_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0022_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0022_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f000.png b/graphics/sa1/obj_tiles/4bpp/a0023_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f001.png b/graphics/sa1/obj_tiles/4bpp/a0023_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f002.png b/graphics/sa1/obj_tiles/4bpp/a0023_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f003.png b/graphics/sa1/obj_tiles/4bpp/a0023_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f004.png b/graphics/sa1/obj_tiles/4bpp/a0023_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f005.png b/graphics/sa1/obj_tiles/4bpp/a0023_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f006.png b/graphics/sa1/obj_tiles/4bpp/a0023_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f007.png b/graphics/sa1/obj_tiles/4bpp/a0023_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f008.png b/graphics/sa1/obj_tiles/4bpp/a0023_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f009.png b/graphics/sa1/obj_tiles/4bpp/a0023_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f010.png b/graphics/sa1/obj_tiles/4bpp/a0023_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f011.png b/graphics/sa1/obj_tiles/4bpp/a0023_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f012.png b/graphics/sa1/obj_tiles/4bpp/a0023_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f013.png b/graphics/sa1/obj_tiles/4bpp/a0023_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f014.png b/graphics/sa1/obj_tiles/4bpp/a0023_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f015.png b/graphics/sa1/obj_tiles/4bpp/a0023_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0023_f016.png b/graphics/sa1/obj_tiles/4bpp/a0023_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0023_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0023_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0024_f000.png b/graphics/sa1/obj_tiles/4bpp/a0024_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0024_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0024_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0024_f001.png b/graphics/sa1/obj_tiles/4bpp/a0024_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0024_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0024_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0024_f002.png b/graphics/sa1/obj_tiles/4bpp/a0024_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0024_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0024_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0024_f003.png b/graphics/sa1/obj_tiles/4bpp/a0024_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0024_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0024_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0024_f004.png b/graphics/sa1/obj_tiles/4bpp/a0024_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0024_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0024_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0024_f005.png b/graphics/sa1/obj_tiles/4bpp/a0024_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0024_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0024_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0025_f000.png b/graphics/sa1/obj_tiles/4bpp/a0025_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0025_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0025_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0025_f001.png b/graphics/sa1/obj_tiles/4bpp/a0025_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0025_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0025_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0025_f002.png b/graphics/sa1/obj_tiles/4bpp/a0025_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0025_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0025_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0025_f003.png b/graphics/sa1/obj_tiles/4bpp/a0025_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0025_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0025_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f000.png b/graphics/sa1/obj_tiles/4bpp/a0026_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f001.png b/graphics/sa1/obj_tiles/4bpp/a0026_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f002.png b/graphics/sa1/obj_tiles/4bpp/a0026_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f003.png b/graphics/sa1/obj_tiles/4bpp/a0026_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f004.png b/graphics/sa1/obj_tiles/4bpp/a0026_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f005.png b/graphics/sa1/obj_tiles/4bpp/a0026_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f006.png b/graphics/sa1/obj_tiles/4bpp/a0026_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f007.png b/graphics/sa1/obj_tiles/4bpp/a0026_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0026_f008.png b/graphics/sa1/obj_tiles/4bpp/a0026_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0026_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0026_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f000.png b/graphics/sa1/obj_tiles/4bpp/a0027_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f001.png b/graphics/sa1/obj_tiles/4bpp/a0027_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f002.png b/graphics/sa1/obj_tiles/4bpp/a0027_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f003.png b/graphics/sa1/obj_tiles/4bpp/a0027_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f004.png b/graphics/sa1/obj_tiles/4bpp/a0027_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f005.png b/graphics/sa1/obj_tiles/4bpp/a0027_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f006.png b/graphics/sa1/obj_tiles/4bpp/a0027_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f007.png b/graphics/sa1/obj_tiles/4bpp/a0027_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f008.png b/graphics/sa1/obj_tiles/4bpp/a0027_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f009.png b/graphics/sa1/obj_tiles/4bpp/a0027_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f010.png b/graphics/sa1/obj_tiles/4bpp/a0027_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f011.png b/graphics/sa1/obj_tiles/4bpp/a0027_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f012.png b/graphics/sa1/obj_tiles/4bpp/a0027_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f013.png b/graphics/sa1/obj_tiles/4bpp/a0027_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f014.png b/graphics/sa1/obj_tiles/4bpp/a0027_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f015.png b/graphics/sa1/obj_tiles/4bpp/a0027_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f016.png b/graphics/sa1/obj_tiles/4bpp/a0027_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0027_f017.png b/graphics/sa1/obj_tiles/4bpp/a0027_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0027_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0027_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f000.png b/graphics/sa1/obj_tiles/4bpp/a0028_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f001.png b/graphics/sa1/obj_tiles/4bpp/a0028_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f002.png b/graphics/sa1/obj_tiles/4bpp/a0028_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f003.png b/graphics/sa1/obj_tiles/4bpp/a0028_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f004.png b/graphics/sa1/obj_tiles/4bpp/a0028_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f005.png b/graphics/sa1/obj_tiles/4bpp/a0028_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f006.png b/graphics/sa1/obj_tiles/4bpp/a0028_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f007.png b/graphics/sa1/obj_tiles/4bpp/a0028_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f008.png b/graphics/sa1/obj_tiles/4bpp/a0028_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f009.png b/graphics/sa1/obj_tiles/4bpp/a0028_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f010.png b/graphics/sa1/obj_tiles/4bpp/a0028_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f011.png b/graphics/sa1/obj_tiles/4bpp/a0028_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f012.png b/graphics/sa1/obj_tiles/4bpp/a0028_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f013.png b/graphics/sa1/obj_tiles/4bpp/a0028_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f014.png b/graphics/sa1/obj_tiles/4bpp/a0028_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0028_f015.png b/graphics/sa1/obj_tiles/4bpp/a0028_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0028_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0028_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0029_f000.png b/graphics/sa1/obj_tiles/4bpp/a0029_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0029_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0029_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0029_f001.png b/graphics/sa1/obj_tiles/4bpp/a0029_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0029_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0029_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0029_f002.png b/graphics/sa1/obj_tiles/4bpp/a0029_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0029_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0029_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f000.png b/graphics/sa1/obj_tiles/4bpp/a0030_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f001.png b/graphics/sa1/obj_tiles/4bpp/a0030_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f002.png b/graphics/sa1/obj_tiles/4bpp/a0030_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f003.png b/graphics/sa1/obj_tiles/4bpp/a0030_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f004.png b/graphics/sa1/obj_tiles/4bpp/a0030_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f005.png b/graphics/sa1/obj_tiles/4bpp/a0030_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f006.png b/graphics/sa1/obj_tiles/4bpp/a0030_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f007.png b/graphics/sa1/obj_tiles/4bpp/a0030_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f008.png b/graphics/sa1/obj_tiles/4bpp/a0030_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f009.png b/graphics/sa1/obj_tiles/4bpp/a0030_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0030_f010.png b/graphics/sa1/obj_tiles/4bpp/a0030_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0030_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0030_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f000.png b/graphics/sa1/obj_tiles/4bpp/a0031_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f001.png b/graphics/sa1/obj_tiles/4bpp/a0031_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f002.png b/graphics/sa1/obj_tiles/4bpp/a0031_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f003.png b/graphics/sa1/obj_tiles/4bpp/a0031_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f004.png b/graphics/sa1/obj_tiles/4bpp/a0031_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f005.png b/graphics/sa1/obj_tiles/4bpp/a0031_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f006.png b/graphics/sa1/obj_tiles/4bpp/a0031_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f007.png b/graphics/sa1/obj_tiles/4bpp/a0031_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f008.png b/graphics/sa1/obj_tiles/4bpp/a0031_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f009.png b/graphics/sa1/obj_tiles/4bpp/a0031_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f010.png b/graphics/sa1/obj_tiles/4bpp/a0031_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f011.png b/graphics/sa1/obj_tiles/4bpp/a0031_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f012.png b/graphics/sa1/obj_tiles/4bpp/a0031_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0031_f013.png b/graphics/sa1/obj_tiles/4bpp/a0031_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0031_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0031_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f000.png b/graphics/sa1/obj_tiles/4bpp/a0032_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f001.png b/graphics/sa1/obj_tiles/4bpp/a0032_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f002.png b/graphics/sa1/obj_tiles/4bpp/a0032_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f003.png b/graphics/sa1/obj_tiles/4bpp/a0032_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f004.png b/graphics/sa1/obj_tiles/4bpp/a0032_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f005.png b/graphics/sa1/obj_tiles/4bpp/a0032_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0032_f006.png b/graphics/sa1/obj_tiles/4bpp/a0032_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0032_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0032_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0033_f000.png b/graphics/sa1/obj_tiles/4bpp/a0033_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0033_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0033_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0033_f001.png b/graphics/sa1/obj_tiles/4bpp/a0033_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0033_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0033_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0033_f002.png b/graphics/sa1/obj_tiles/4bpp/a0033_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0033_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0033_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f000.png b/graphics/sa1/obj_tiles/4bpp/a0034_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f001.png b/graphics/sa1/obj_tiles/4bpp/a0034_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f002.png b/graphics/sa1/obj_tiles/4bpp/a0034_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f003.png b/graphics/sa1/obj_tiles/4bpp/a0034_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f004.png b/graphics/sa1/obj_tiles/4bpp/a0034_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f005.png b/graphics/sa1/obj_tiles/4bpp/a0034_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f006.png b/graphics/sa1/obj_tiles/4bpp/a0034_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0034_f007.png b/graphics/sa1/obj_tiles/4bpp/a0034_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0034_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0034_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f000.png b/graphics/sa1/obj_tiles/4bpp/a0035_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f001.png b/graphics/sa1/obj_tiles/4bpp/a0035_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f002.png b/graphics/sa1/obj_tiles/4bpp/a0035_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f003.png b/graphics/sa1/obj_tiles/4bpp/a0035_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f004.png b/graphics/sa1/obj_tiles/4bpp/a0035_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f005.png b/graphics/sa1/obj_tiles/4bpp/a0035_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f006.png b/graphics/sa1/obj_tiles/4bpp/a0035_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f007.png b/graphics/sa1/obj_tiles/4bpp/a0035_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f008.png b/graphics/sa1/obj_tiles/4bpp/a0035_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0035_f009.png b/graphics/sa1/obj_tiles/4bpp/a0035_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0035_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0035_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f000.png b/graphics/sa1/obj_tiles/4bpp/a0036_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f001.png b/graphics/sa1/obj_tiles/4bpp/a0036_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f002.png b/graphics/sa1/obj_tiles/4bpp/a0036_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f003.png b/graphics/sa1/obj_tiles/4bpp/a0036_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f004.png b/graphics/sa1/obj_tiles/4bpp/a0036_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f005.png b/graphics/sa1/obj_tiles/4bpp/a0036_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f006.png b/graphics/sa1/obj_tiles/4bpp/a0036_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f007.png b/graphics/sa1/obj_tiles/4bpp/a0036_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f008.png b/graphics/sa1/obj_tiles/4bpp/a0036_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f009.png b/graphics/sa1/obj_tiles/4bpp/a0036_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f010.png b/graphics/sa1/obj_tiles/4bpp/a0036_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f011.png b/graphics/sa1/obj_tiles/4bpp/a0036_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f012.png b/graphics/sa1/obj_tiles/4bpp/a0036_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f013.png b/graphics/sa1/obj_tiles/4bpp/a0036_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f014.png b/graphics/sa1/obj_tiles/4bpp/a0036_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f015.png b/graphics/sa1/obj_tiles/4bpp/a0036_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f016.png b/graphics/sa1/obj_tiles/4bpp/a0036_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f017.png b/graphics/sa1/obj_tiles/4bpp/a0036_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f018.png b/graphics/sa1/obj_tiles/4bpp/a0036_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f019.png b/graphics/sa1/obj_tiles/4bpp/a0036_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f020.png b/graphics/sa1/obj_tiles/4bpp/a0036_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f021.png b/graphics/sa1/obj_tiles/4bpp/a0036_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f022.png b/graphics/sa1/obj_tiles/4bpp/a0036_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0036_f023.png b/graphics/sa1/obj_tiles/4bpp/a0036_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0036_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0036_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f000.png b/graphics/sa1/obj_tiles/4bpp/a0037_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f001.png b/graphics/sa1/obj_tiles/4bpp/a0037_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f002.png b/graphics/sa1/obj_tiles/4bpp/a0037_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f003.png b/graphics/sa1/obj_tiles/4bpp/a0037_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f004.png b/graphics/sa1/obj_tiles/4bpp/a0037_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f005.png b/graphics/sa1/obj_tiles/4bpp/a0037_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f006.png b/graphics/sa1/obj_tiles/4bpp/a0037_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0037_f007.png b/graphics/sa1/obj_tiles/4bpp/a0037_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0037_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0037_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0038_f000.png b/graphics/sa1/obj_tiles/4bpp/a0038_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0038_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0038_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0038_f001.png b/graphics/sa1/obj_tiles/4bpp/a0038_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0038_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0038_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0038_f002.png b/graphics/sa1/obj_tiles/4bpp/a0038_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0038_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0038_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0038_f003.png b/graphics/sa1/obj_tiles/4bpp/a0038_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0038_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0038_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0038_f004.png b/graphics/sa1/obj_tiles/4bpp/a0038_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0038_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0038_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0039_f000.png b/graphics/sa1/obj_tiles/4bpp/a0039_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0039_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0039_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0039_f001.png b/graphics/sa1/obj_tiles/4bpp/a0039_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0039_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0039_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0039_f002.png b/graphics/sa1/obj_tiles/4bpp/a0039_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0039_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0039_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0039_f003.png b/graphics/sa1/obj_tiles/4bpp/a0039_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0039_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0039_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f000.png b/graphics/sa1/obj_tiles/4bpp/a0040_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f001.png b/graphics/sa1/obj_tiles/4bpp/a0040_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f002.png b/graphics/sa1/obj_tiles/4bpp/a0040_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f003.png b/graphics/sa1/obj_tiles/4bpp/a0040_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f004.png b/graphics/sa1/obj_tiles/4bpp/a0040_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f005.png b/graphics/sa1/obj_tiles/4bpp/a0040_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f006.png b/graphics/sa1/obj_tiles/4bpp/a0040_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f007.png b/graphics/sa1/obj_tiles/4bpp/a0040_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f008.png b/graphics/sa1/obj_tiles/4bpp/a0040_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f009.png b/graphics/sa1/obj_tiles/4bpp/a0040_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f010.png b/graphics/sa1/obj_tiles/4bpp/a0040_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f011.png b/graphics/sa1/obj_tiles/4bpp/a0040_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f012.png b/graphics/sa1/obj_tiles/4bpp/a0040_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f013.png b/graphics/sa1/obj_tiles/4bpp/a0040_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f014.png b/graphics/sa1/obj_tiles/4bpp/a0040_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f015.png b/graphics/sa1/obj_tiles/4bpp/a0040_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f016.png b/graphics/sa1/obj_tiles/4bpp/a0040_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f017.png b/graphics/sa1/obj_tiles/4bpp/a0040_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f018.png b/graphics/sa1/obj_tiles/4bpp/a0040_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0040_f019.png b/graphics/sa1/obj_tiles/4bpp/a0040_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0040_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0040_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0041_f000.png b/graphics/sa1/obj_tiles/4bpp/a0041_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0041_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0041_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0041_f001.png b/graphics/sa1/obj_tiles/4bpp/a0041_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0041_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0041_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0041_f002.png b/graphics/sa1/obj_tiles/4bpp/a0041_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0041_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0041_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0041_f003.png b/graphics/sa1/obj_tiles/4bpp/a0041_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0041_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0041_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0041_f004.png b/graphics/sa1/obj_tiles/4bpp/a0041_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0041_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0041_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f000.png b/graphics/sa1/obj_tiles/4bpp/a0042_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f001.png b/graphics/sa1/obj_tiles/4bpp/a0042_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f002.png b/graphics/sa1/obj_tiles/4bpp/a0042_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f003.png b/graphics/sa1/obj_tiles/4bpp/a0042_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f004.png b/graphics/sa1/obj_tiles/4bpp/a0042_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f005.png b/graphics/sa1/obj_tiles/4bpp/a0042_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f006.png b/graphics/sa1/obj_tiles/4bpp/a0042_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0042_f007.png b/graphics/sa1/obj_tiles/4bpp/a0042_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0042_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0042_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0043_f000.png b/graphics/sa1/obj_tiles/4bpp/a0043_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0043_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0043_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0043_f001.png b/graphics/sa1/obj_tiles/4bpp/a0043_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0043_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0043_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0043_f002.png b/graphics/sa1/obj_tiles/4bpp/a0043_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0043_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0043_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0044_f000.png b/graphics/sa1/obj_tiles/4bpp/a0044_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0044_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0044_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0044_f001.png b/graphics/sa1/obj_tiles/4bpp/a0044_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0044_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0044_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0044_f002.png b/graphics/sa1/obj_tiles/4bpp/a0044_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0044_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0044_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0044_f003.png b/graphics/sa1/obj_tiles/4bpp/a0044_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0044_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0044_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f000.png b/graphics/sa1/obj_tiles/4bpp/a0045_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f001.png b/graphics/sa1/obj_tiles/4bpp/a0045_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f002.png b/graphics/sa1/obj_tiles/4bpp/a0045_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f003.png b/graphics/sa1/obj_tiles/4bpp/a0045_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f004.png b/graphics/sa1/obj_tiles/4bpp/a0045_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f005.png b/graphics/sa1/obj_tiles/4bpp/a0045_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f006.png b/graphics/sa1/obj_tiles/4bpp/a0045_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f007.png b/graphics/sa1/obj_tiles/4bpp/a0045_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f008.png b/graphics/sa1/obj_tiles/4bpp/a0045_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f009.png b/graphics/sa1/obj_tiles/4bpp/a0045_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f010.png b/graphics/sa1/obj_tiles/4bpp/a0045_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f011.png b/graphics/sa1/obj_tiles/4bpp/a0045_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f012.png b/graphics/sa1/obj_tiles/4bpp/a0045_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0045_f013.png b/graphics/sa1/obj_tiles/4bpp/a0045_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0045_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0045_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f000.png b/graphics/sa1/obj_tiles/4bpp/a0049_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f001.png b/graphics/sa1/obj_tiles/4bpp/a0049_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f002.png b/graphics/sa1/obj_tiles/4bpp/a0049_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f003.png b/graphics/sa1/obj_tiles/4bpp/a0049_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f004.png b/graphics/sa1/obj_tiles/4bpp/a0049_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f005.png b/graphics/sa1/obj_tiles/4bpp/a0049_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f006.png b/graphics/sa1/obj_tiles/4bpp/a0049_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f007.png b/graphics/sa1/obj_tiles/4bpp/a0049_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f008.png b/graphics/sa1/obj_tiles/4bpp/a0049_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0049_f009.png b/graphics/sa1/obj_tiles/4bpp/a0049_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0049_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0049_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f000.png b/graphics/sa1/obj_tiles/4bpp/a0050_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f001.png b/graphics/sa1/obj_tiles/4bpp/a0050_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f002.png b/graphics/sa1/obj_tiles/4bpp/a0050_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f003.png b/graphics/sa1/obj_tiles/4bpp/a0050_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f004.png b/graphics/sa1/obj_tiles/4bpp/a0050_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f005.png b/graphics/sa1/obj_tiles/4bpp/a0050_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f006.png b/graphics/sa1/obj_tiles/4bpp/a0050_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f007.png b/graphics/sa1/obj_tiles/4bpp/a0050_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f008.png b/graphics/sa1/obj_tiles/4bpp/a0050_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f009.png b/graphics/sa1/obj_tiles/4bpp/a0050_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f010.png b/graphics/sa1/obj_tiles/4bpp/a0050_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f011.png b/graphics/sa1/obj_tiles/4bpp/a0050_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f012.png b/graphics/sa1/obj_tiles/4bpp/a0050_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f013.png b/graphics/sa1/obj_tiles/4bpp/a0050_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f014.png b/graphics/sa1/obj_tiles/4bpp/a0050_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f015.png b/graphics/sa1/obj_tiles/4bpp/a0050_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f016.png b/graphics/sa1/obj_tiles/4bpp/a0050_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f017.png b/graphics/sa1/obj_tiles/4bpp/a0050_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f018.png b/graphics/sa1/obj_tiles/4bpp/a0050_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0050_f019.png b/graphics/sa1/obj_tiles/4bpp/a0050_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0050_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0050_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0051_f000.png b/graphics/sa1/obj_tiles/4bpp/a0051_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0051_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0051_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0051_f001.png b/graphics/sa1/obj_tiles/4bpp/a0051_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0051_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0051_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0051_f002.png b/graphics/sa1/obj_tiles/4bpp/a0051_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0051_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0051_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0051_f003.png b/graphics/sa1/obj_tiles/4bpp/a0051_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0051_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0051_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f000.png b/graphics/sa1/obj_tiles/4bpp/a0052_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f001.png b/graphics/sa1/obj_tiles/4bpp/a0052_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f002.png b/graphics/sa1/obj_tiles/4bpp/a0052_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f003.png b/graphics/sa1/obj_tiles/4bpp/a0052_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f004.png b/graphics/sa1/obj_tiles/4bpp/a0052_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f005.png b/graphics/sa1/obj_tiles/4bpp/a0052_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f006.png b/graphics/sa1/obj_tiles/4bpp/a0052_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f007.png b/graphics/sa1/obj_tiles/4bpp/a0052_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f008.png b/graphics/sa1/obj_tiles/4bpp/a0052_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f009.png b/graphics/sa1/obj_tiles/4bpp/a0052_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0052_f010.png b/graphics/sa1/obj_tiles/4bpp/a0052_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0052_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0052_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0053_f000.png b/graphics/sa1/obj_tiles/4bpp/a0053_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0053_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0053_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0053_f001.png b/graphics/sa1/obj_tiles/4bpp/a0053_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0053_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0053_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0053_f002.png b/graphics/sa1/obj_tiles/4bpp/a0053_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0053_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0053_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0053_f003.png b/graphics/sa1/obj_tiles/4bpp/a0053_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0053_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0053_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0053_f004.png b/graphics/sa1/obj_tiles/4bpp/a0053_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0053_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0053_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0053_f005.png b/graphics/sa1/obj_tiles/4bpp/a0053_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0053_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0053_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0055_f000.png b/graphics/sa1/obj_tiles/4bpp/a0055_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0055_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0055_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0055_f001.png b/graphics/sa1/obj_tiles/4bpp/a0055_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0055_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0055_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0055_f002.png b/graphics/sa1/obj_tiles/4bpp/a0055_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0055_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0055_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0055_f003.png b/graphics/sa1/obj_tiles/4bpp/a0055_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0055_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0055_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0081_f000.png b/graphics/sa1/obj_tiles/4bpp/a0081_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0081_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0081_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0081_f001.png b/graphics/sa1/obj_tiles/4bpp/a0081_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0081_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0081_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0081_f002.png b/graphics/sa1/obj_tiles/4bpp/a0081_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0081_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0081_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0081_f003.png b/graphics/sa1/obj_tiles/4bpp/a0081_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0081_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0081_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0082_f000.png b/graphics/sa1/obj_tiles/4bpp/a0082_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0082_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0082_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0082_f001.png b/graphics/sa1/obj_tiles/4bpp/a0082_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0082_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0082_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0082_f002.png b/graphics/sa1/obj_tiles/4bpp/a0082_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0082_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0082_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0082_f003.png b/graphics/sa1/obj_tiles/4bpp/a0082_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0082_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0082_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0083_f000.png b/graphics/sa1/obj_tiles/4bpp/a0083_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0083_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0083_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0083_f001.png b/graphics/sa1/obj_tiles/4bpp/a0083_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0083_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0083_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0083_f002.png b/graphics/sa1/obj_tiles/4bpp/a0083_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0083_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0083_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0083_f003.png b/graphics/sa1/obj_tiles/4bpp/a0083_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0083_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0083_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0084_f000.png b/graphics/sa1/obj_tiles/4bpp/a0084_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0084_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0084_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0084_f001.png b/graphics/sa1/obj_tiles/4bpp/a0084_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0084_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0084_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0084_f002.png b/graphics/sa1/obj_tiles/4bpp/a0084_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0084_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0084_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0084_f003.png b/graphics/sa1/obj_tiles/4bpp/a0084_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0084_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0084_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0085_f000.png b/graphics/sa1/obj_tiles/4bpp/a0085_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0085_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0085_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0085_f001.png b/graphics/sa1/obj_tiles/4bpp/a0085_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0085_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0085_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0086_f000.png b/graphics/sa1/obj_tiles/4bpp/a0086_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0086_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0086_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0086_f001.png b/graphics/sa1/obj_tiles/4bpp/a0086_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0086_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0086_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0086_f002.png b/graphics/sa1/obj_tiles/4bpp/a0086_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0086_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0086_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0087_f000.png b/graphics/sa1/obj_tiles/4bpp/a0087_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0087_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0087_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0087_f001.png b/graphics/sa1/obj_tiles/4bpp/a0087_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0087_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0087_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0088_f000.png b/graphics/sa1/obj_tiles/4bpp/a0088_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0088_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0088_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0088_f001.png b/graphics/sa1/obj_tiles/4bpp/a0088_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0088_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0088_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0088_f002.png b/graphics/sa1/obj_tiles/4bpp/a0088_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0088_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0088_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0088_f003.png b/graphics/sa1/obj_tiles/4bpp/a0088_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0088_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0088_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0088_f004.png b/graphics/sa1/obj_tiles/4bpp/a0088_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0088_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0088_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0089_f000.png b/graphics/sa1/obj_tiles/4bpp/a0089_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0089_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0089_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0089_f001.png b/graphics/sa1/obj_tiles/4bpp/a0089_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0089_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0089_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0089_f002.png b/graphics/sa1/obj_tiles/4bpp/a0089_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0089_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0089_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0089_f003.png b/graphics/sa1/obj_tiles/4bpp/a0089_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0089_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0089_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0089_f004.png b/graphics/sa1/obj_tiles/4bpp/a0089_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0089_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0089_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0091_f000.png b/graphics/sa1/obj_tiles/4bpp/a0091_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0091_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0091_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0091_f001.png b/graphics/sa1/obj_tiles/4bpp/a0091_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0091_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0091_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f000.png b/graphics/sa1/obj_tiles/4bpp/a0093_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f001.png b/graphics/sa1/obj_tiles/4bpp/a0093_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f002.png b/graphics/sa1/obj_tiles/4bpp/a0093_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f003.png b/graphics/sa1/obj_tiles/4bpp/a0093_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f004.png b/graphics/sa1/obj_tiles/4bpp/a0093_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f005.png b/graphics/sa1/obj_tiles/4bpp/a0093_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f006.png b/graphics/sa1/obj_tiles/4bpp/a0093_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0093_f007.png b/graphics/sa1/obj_tiles/4bpp/a0093_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0093_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0093_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0096_f000.png b/graphics/sa1/obj_tiles/4bpp/a0096_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0096_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0096_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0096_f001.png b/graphics/sa1/obj_tiles/4bpp/a0096_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0096_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0096_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0096_f002.png b/graphics/sa1/obj_tiles/4bpp/a0096_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0096_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0096_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0096_f003.png b/graphics/sa1/obj_tiles/4bpp/a0096_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0096_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0096_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0097_f000.png b/graphics/sa1/obj_tiles/4bpp/a0097_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0097_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0097_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0097_f001.png b/graphics/sa1/obj_tiles/4bpp/a0097_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0097_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0097_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0097_f002.png b/graphics/sa1/obj_tiles/4bpp/a0097_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0097_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0097_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0098_f000.png b/graphics/sa1/obj_tiles/4bpp/a0098_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0098_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0098_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f000.png b/graphics/sa1/obj_tiles/4bpp/a0099_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f001.png b/graphics/sa1/obj_tiles/4bpp/a0099_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f002.png b/graphics/sa1/obj_tiles/4bpp/a0099_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f003.png b/graphics/sa1/obj_tiles/4bpp/a0099_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f004.png b/graphics/sa1/obj_tiles/4bpp/a0099_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f005.png b/graphics/sa1/obj_tiles/4bpp/a0099_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f006.png b/graphics/sa1/obj_tiles/4bpp/a0099_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f007.png b/graphics/sa1/obj_tiles/4bpp/a0099_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f008.png b/graphics/sa1/obj_tiles/4bpp/a0099_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f009.png b/graphics/sa1/obj_tiles/4bpp/a0099_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0099_f010.png b/graphics/sa1/obj_tiles/4bpp/a0099_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0099_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0099_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f000.png b/graphics/sa1/obj_tiles/4bpp/a0100_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f001.png b/graphics/sa1/obj_tiles/4bpp/a0100_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f002.png b/graphics/sa1/obj_tiles/4bpp/a0100_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f003.png b/graphics/sa1/obj_tiles/4bpp/a0100_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f004.png b/graphics/sa1/obj_tiles/4bpp/a0100_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f005.png b/graphics/sa1/obj_tiles/4bpp/a0100_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f006.png b/graphics/sa1/obj_tiles/4bpp/a0100_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f007.png b/graphics/sa1/obj_tiles/4bpp/a0100_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f008.png b/graphics/sa1/obj_tiles/4bpp/a0100_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f009.png b/graphics/sa1/obj_tiles/4bpp/a0100_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f010.png b/graphics/sa1/obj_tiles/4bpp/a0100_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f011.png b/graphics/sa1/obj_tiles/4bpp/a0100_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f012.png b/graphics/sa1/obj_tiles/4bpp/a0100_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f013.png b/graphics/sa1/obj_tiles/4bpp/a0100_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f014.png b/graphics/sa1/obj_tiles/4bpp/a0100_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f015.png b/graphics/sa1/obj_tiles/4bpp/a0100_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f016.png b/graphics/sa1/obj_tiles/4bpp/a0100_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f017.png b/graphics/sa1/obj_tiles/4bpp/a0100_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f018.png b/graphics/sa1/obj_tiles/4bpp/a0100_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f019.png b/graphics/sa1/obj_tiles/4bpp/a0100_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f020.png b/graphics/sa1/obj_tiles/4bpp/a0100_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f021.png b/graphics/sa1/obj_tiles/4bpp/a0100_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f022.png b/graphics/sa1/obj_tiles/4bpp/a0100_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f023.png b/graphics/sa1/obj_tiles/4bpp/a0100_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0100_f024.png b/graphics/sa1/obj_tiles/4bpp/a0100_f024.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0100_f024.png rename to graphics/sa1/obj_tiles/4bpp/a0100_f024.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0101_f000.png b/graphics/sa1/obj_tiles/4bpp/a0101_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0101_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0101_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0101_f001.png b/graphics/sa1/obj_tiles/4bpp/a0101_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0101_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0101_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0101_f002.png b/graphics/sa1/obj_tiles/4bpp/a0101_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0101_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0101_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0101_f003.png b/graphics/sa1/obj_tiles/4bpp/a0101_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0101_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0101_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0101_f004.png b/graphics/sa1/obj_tiles/4bpp/a0101_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0101_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0101_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0101_f005.png b/graphics/sa1/obj_tiles/4bpp/a0101_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0101_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0101_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f000.png b/graphics/sa1/obj_tiles/4bpp/a0102_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f001.png b/graphics/sa1/obj_tiles/4bpp/a0102_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f002.png b/graphics/sa1/obj_tiles/4bpp/a0102_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f003.png b/graphics/sa1/obj_tiles/4bpp/a0102_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f004.png b/graphics/sa1/obj_tiles/4bpp/a0102_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f005.png b/graphics/sa1/obj_tiles/4bpp/a0102_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f006.png b/graphics/sa1/obj_tiles/4bpp/a0102_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f007.png b/graphics/sa1/obj_tiles/4bpp/a0102_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f008.png b/graphics/sa1/obj_tiles/4bpp/a0102_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f009.png b/graphics/sa1/obj_tiles/4bpp/a0102_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f010.png b/graphics/sa1/obj_tiles/4bpp/a0102_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f011.png b/graphics/sa1/obj_tiles/4bpp/a0102_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0102_f012.png b/graphics/sa1/obj_tiles/4bpp/a0102_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0102_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0102_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f000.png b/graphics/sa1/obj_tiles/4bpp/a0103_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f001.png b/graphics/sa1/obj_tiles/4bpp/a0103_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f002.png b/graphics/sa1/obj_tiles/4bpp/a0103_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f003.png b/graphics/sa1/obj_tiles/4bpp/a0103_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f004.png b/graphics/sa1/obj_tiles/4bpp/a0103_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f005.png b/graphics/sa1/obj_tiles/4bpp/a0103_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f006.png b/graphics/sa1/obj_tiles/4bpp/a0103_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f007.png b/graphics/sa1/obj_tiles/4bpp/a0103_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f008.png b/graphics/sa1/obj_tiles/4bpp/a0103_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f009.png b/graphics/sa1/obj_tiles/4bpp/a0103_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0103_f010.png b/graphics/sa1/obj_tiles/4bpp/a0103_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0103_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0103_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f000.png b/graphics/sa1/obj_tiles/4bpp/a0104_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f001.png b/graphics/sa1/obj_tiles/4bpp/a0104_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f002.png b/graphics/sa1/obj_tiles/4bpp/a0104_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f003.png b/graphics/sa1/obj_tiles/4bpp/a0104_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f004.png b/graphics/sa1/obj_tiles/4bpp/a0104_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f005.png b/graphics/sa1/obj_tiles/4bpp/a0104_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f006.png b/graphics/sa1/obj_tiles/4bpp/a0104_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f007.png b/graphics/sa1/obj_tiles/4bpp/a0104_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f008.png b/graphics/sa1/obj_tiles/4bpp/a0104_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f009.png b/graphics/sa1/obj_tiles/4bpp/a0104_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0104_f010.png b/graphics/sa1/obj_tiles/4bpp/a0104_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0104_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0104_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0105_f000.png b/graphics/sa1/obj_tiles/4bpp/a0105_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0105_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0105_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0105_f001.png b/graphics/sa1/obj_tiles/4bpp/a0105_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0105_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0105_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0106_f000.png b/graphics/sa1/obj_tiles/4bpp/a0106_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0106_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0106_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0106_f001.png b/graphics/sa1/obj_tiles/4bpp/a0106_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0106_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0106_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0106_f002.png b/graphics/sa1/obj_tiles/4bpp/a0106_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0106_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0106_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0106_f003.png b/graphics/sa1/obj_tiles/4bpp/a0106_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0106_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0106_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f000.png b/graphics/sa1/obj_tiles/4bpp/a0107_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f001.png b/graphics/sa1/obj_tiles/4bpp/a0107_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f002.png b/graphics/sa1/obj_tiles/4bpp/a0107_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f003.png b/graphics/sa1/obj_tiles/4bpp/a0107_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f004.png b/graphics/sa1/obj_tiles/4bpp/a0107_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f005.png b/graphics/sa1/obj_tiles/4bpp/a0107_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f006.png b/graphics/sa1/obj_tiles/4bpp/a0107_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f007.png b/graphics/sa1/obj_tiles/4bpp/a0107_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f008.png b/graphics/sa1/obj_tiles/4bpp/a0107_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f009.png b/graphics/sa1/obj_tiles/4bpp/a0107_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f010.png b/graphics/sa1/obj_tiles/4bpp/a0107_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0107_f011.png b/graphics/sa1/obj_tiles/4bpp/a0107_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0107_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0107_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0108_f000.png b/graphics/sa1/obj_tiles/4bpp/a0108_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0108_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0108_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0108_f001.png b/graphics/sa1/obj_tiles/4bpp/a0108_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0108_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0108_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0108_f002.png b/graphics/sa1/obj_tiles/4bpp/a0108_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0108_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0108_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0108_f003.png b/graphics/sa1/obj_tiles/4bpp/a0108_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0108_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0108_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f000.png b/graphics/sa1/obj_tiles/4bpp/a0109_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f001.png b/graphics/sa1/obj_tiles/4bpp/a0109_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f002.png b/graphics/sa1/obj_tiles/4bpp/a0109_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f003.png b/graphics/sa1/obj_tiles/4bpp/a0109_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f004.png b/graphics/sa1/obj_tiles/4bpp/a0109_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f005.png b/graphics/sa1/obj_tiles/4bpp/a0109_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f006.png b/graphics/sa1/obj_tiles/4bpp/a0109_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f007.png b/graphics/sa1/obj_tiles/4bpp/a0109_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f008.png b/graphics/sa1/obj_tiles/4bpp/a0109_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f009.png b/graphics/sa1/obj_tiles/4bpp/a0109_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f010.png b/graphics/sa1/obj_tiles/4bpp/a0109_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f011.png b/graphics/sa1/obj_tiles/4bpp/a0109_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f012.png b/graphics/sa1/obj_tiles/4bpp/a0109_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f013.png b/graphics/sa1/obj_tiles/4bpp/a0109_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0109_f014.png b/graphics/sa1/obj_tiles/4bpp/a0109_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0109_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0109_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f000.png b/graphics/sa1/obj_tiles/4bpp/a0110_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f001.png b/graphics/sa1/obj_tiles/4bpp/a0110_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f002.png b/graphics/sa1/obj_tiles/4bpp/a0110_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f003.png b/graphics/sa1/obj_tiles/4bpp/a0110_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f004.png b/graphics/sa1/obj_tiles/4bpp/a0110_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f005.png b/graphics/sa1/obj_tiles/4bpp/a0110_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f006.png b/graphics/sa1/obj_tiles/4bpp/a0110_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f007.png b/graphics/sa1/obj_tiles/4bpp/a0110_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f008.png b/graphics/sa1/obj_tiles/4bpp/a0110_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f009.png b/graphics/sa1/obj_tiles/4bpp/a0110_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0110_f010.png b/graphics/sa1/obj_tiles/4bpp/a0110_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0110_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0110_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f000.png b/graphics/sa1/obj_tiles/4bpp/a0111_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f001.png b/graphics/sa1/obj_tiles/4bpp/a0111_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f002.png b/graphics/sa1/obj_tiles/4bpp/a0111_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f003.png b/graphics/sa1/obj_tiles/4bpp/a0111_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f004.png b/graphics/sa1/obj_tiles/4bpp/a0111_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f005.png b/graphics/sa1/obj_tiles/4bpp/a0111_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f006.png b/graphics/sa1/obj_tiles/4bpp/a0111_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f007.png b/graphics/sa1/obj_tiles/4bpp/a0111_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0111_f008.png b/graphics/sa1/obj_tiles/4bpp/a0111_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0111_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0111_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f000.png b/graphics/sa1/obj_tiles/4bpp/a0112_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f001.png b/graphics/sa1/obj_tiles/4bpp/a0112_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f002.png b/graphics/sa1/obj_tiles/4bpp/a0112_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f003.png b/graphics/sa1/obj_tiles/4bpp/a0112_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f004.png b/graphics/sa1/obj_tiles/4bpp/a0112_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f005.png b/graphics/sa1/obj_tiles/4bpp/a0112_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f006.png b/graphics/sa1/obj_tiles/4bpp/a0112_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f007.png b/graphics/sa1/obj_tiles/4bpp/a0112_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f008.png b/graphics/sa1/obj_tiles/4bpp/a0112_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0112_f009.png b/graphics/sa1/obj_tiles/4bpp/a0112_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0112_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0112_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f000.png b/graphics/sa1/obj_tiles/4bpp/a0113_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f001.png b/graphics/sa1/obj_tiles/4bpp/a0113_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f002.png b/graphics/sa1/obj_tiles/4bpp/a0113_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f003.png b/graphics/sa1/obj_tiles/4bpp/a0113_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f004.png b/graphics/sa1/obj_tiles/4bpp/a0113_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f005.png b/graphics/sa1/obj_tiles/4bpp/a0113_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f006.png b/graphics/sa1/obj_tiles/4bpp/a0113_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f007.png b/graphics/sa1/obj_tiles/4bpp/a0113_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0113_f008.png b/graphics/sa1/obj_tiles/4bpp/a0113_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0113_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0113_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0116_f000.png b/graphics/sa1/obj_tiles/4bpp/a0116_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0116_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0116_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0116_f001.png b/graphics/sa1/obj_tiles/4bpp/a0116_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0116_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0116_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f000.png b/graphics/sa1/obj_tiles/4bpp/a0117_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f001.png b/graphics/sa1/obj_tiles/4bpp/a0117_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f002.png b/graphics/sa1/obj_tiles/4bpp/a0117_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f003.png b/graphics/sa1/obj_tiles/4bpp/a0117_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f004.png b/graphics/sa1/obj_tiles/4bpp/a0117_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f005.png b/graphics/sa1/obj_tiles/4bpp/a0117_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f006.png b/graphics/sa1/obj_tiles/4bpp/a0117_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0117_f007.png b/graphics/sa1/obj_tiles/4bpp/a0117_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0117_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0117_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0118_f000.png b/graphics/sa1/obj_tiles/4bpp/a0118_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0118_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0118_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0118_f001.png b/graphics/sa1/obj_tiles/4bpp/a0118_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0118_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0118_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0118_f002.png b/graphics/sa1/obj_tiles/4bpp/a0118_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0118_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0118_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0118_f003.png b/graphics/sa1/obj_tiles/4bpp/a0118_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0118_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0118_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0118_f004.png b/graphics/sa1/obj_tiles/4bpp/a0118_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0118_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0118_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0120_f000.png b/graphics/sa1/obj_tiles/4bpp/a0120_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0120_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0120_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0120_f001.png b/graphics/sa1/obj_tiles/4bpp/a0120_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0120_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0120_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0120_f002.png b/graphics/sa1/obj_tiles/4bpp/a0120_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0120_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0120_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0120_f003.png b/graphics/sa1/obj_tiles/4bpp/a0120_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0120_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0120_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0120_f004.png b/graphics/sa1/obj_tiles/4bpp/a0120_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0120_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0120_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f000.png b/graphics/sa1/obj_tiles/4bpp/a0121_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f001.png b/graphics/sa1/obj_tiles/4bpp/a0121_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f002.png b/graphics/sa1/obj_tiles/4bpp/a0121_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f003.png b/graphics/sa1/obj_tiles/4bpp/a0121_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f004.png b/graphics/sa1/obj_tiles/4bpp/a0121_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f005.png b/graphics/sa1/obj_tiles/4bpp/a0121_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f006.png b/graphics/sa1/obj_tiles/4bpp/a0121_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f007.png b/graphics/sa1/obj_tiles/4bpp/a0121_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f008.png b/graphics/sa1/obj_tiles/4bpp/a0121_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f009.png b/graphics/sa1/obj_tiles/4bpp/a0121_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f010.png b/graphics/sa1/obj_tiles/4bpp/a0121_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0121_f011.png b/graphics/sa1/obj_tiles/4bpp/a0121_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0121_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0121_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f000.png b/graphics/sa1/obj_tiles/4bpp/a0122_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f001.png b/graphics/sa1/obj_tiles/4bpp/a0122_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f002.png b/graphics/sa1/obj_tiles/4bpp/a0122_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f003.png b/graphics/sa1/obj_tiles/4bpp/a0122_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f004.png b/graphics/sa1/obj_tiles/4bpp/a0122_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f005.png b/graphics/sa1/obj_tiles/4bpp/a0122_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f006.png b/graphics/sa1/obj_tiles/4bpp/a0122_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f007.png b/graphics/sa1/obj_tiles/4bpp/a0122_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f008.png b/graphics/sa1/obj_tiles/4bpp/a0122_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f009.png b/graphics/sa1/obj_tiles/4bpp/a0122_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f010.png b/graphics/sa1/obj_tiles/4bpp/a0122_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f011.png b/graphics/sa1/obj_tiles/4bpp/a0122_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f012.png b/graphics/sa1/obj_tiles/4bpp/a0122_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f013.png b/graphics/sa1/obj_tiles/4bpp/a0122_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f014.png b/graphics/sa1/obj_tiles/4bpp/a0122_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f015.png b/graphics/sa1/obj_tiles/4bpp/a0122_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f016.png b/graphics/sa1/obj_tiles/4bpp/a0122_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f017.png b/graphics/sa1/obj_tiles/4bpp/a0122_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f018.png b/graphics/sa1/obj_tiles/4bpp/a0122_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f019.png b/graphics/sa1/obj_tiles/4bpp/a0122_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f020.png b/graphics/sa1/obj_tiles/4bpp/a0122_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f021.png b/graphics/sa1/obj_tiles/4bpp/a0122_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f022.png b/graphics/sa1/obj_tiles/4bpp/a0122_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f023.png b/graphics/sa1/obj_tiles/4bpp/a0122_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f024.png b/graphics/sa1/obj_tiles/4bpp/a0122_f024.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f024.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f024.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f025.png b/graphics/sa1/obj_tiles/4bpp/a0122_f025.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f025.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f025.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f026.png b/graphics/sa1/obj_tiles/4bpp/a0122_f026.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f026.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f026.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0122_f027.png b/graphics/sa1/obj_tiles/4bpp/a0122_f027.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0122_f027.png rename to graphics/sa1/obj_tiles/4bpp/a0122_f027.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f000.png b/graphics/sa1/obj_tiles/4bpp/a0123_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f001.png b/graphics/sa1/obj_tiles/4bpp/a0123_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f002.png b/graphics/sa1/obj_tiles/4bpp/a0123_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f003.png b/graphics/sa1/obj_tiles/4bpp/a0123_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f004.png b/graphics/sa1/obj_tiles/4bpp/a0123_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f005.png b/graphics/sa1/obj_tiles/4bpp/a0123_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f006.png b/graphics/sa1/obj_tiles/4bpp/a0123_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f007.png b/graphics/sa1/obj_tiles/4bpp/a0123_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f008.png b/graphics/sa1/obj_tiles/4bpp/a0123_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f009.png b/graphics/sa1/obj_tiles/4bpp/a0123_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f010.png b/graphics/sa1/obj_tiles/4bpp/a0123_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f011.png b/graphics/sa1/obj_tiles/4bpp/a0123_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0123_f012.png b/graphics/sa1/obj_tiles/4bpp/a0123_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0123_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0123_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0124_f000.png b/graphics/sa1/obj_tiles/4bpp/a0124_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0124_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0124_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0124_f001.png b/graphics/sa1/obj_tiles/4bpp/a0124_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0124_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0124_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0124_f002.png b/graphics/sa1/obj_tiles/4bpp/a0124_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0124_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0124_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0124_f003.png b/graphics/sa1/obj_tiles/4bpp/a0124_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0124_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0124_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f000.png b/graphics/sa1/obj_tiles/4bpp/a0125_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f001.png b/graphics/sa1/obj_tiles/4bpp/a0125_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f002.png b/graphics/sa1/obj_tiles/4bpp/a0125_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f003.png b/graphics/sa1/obj_tiles/4bpp/a0125_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f004.png b/graphics/sa1/obj_tiles/4bpp/a0125_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f005.png b/graphics/sa1/obj_tiles/4bpp/a0125_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f006.png b/graphics/sa1/obj_tiles/4bpp/a0125_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f007.png b/graphics/sa1/obj_tiles/4bpp/a0125_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0125_f008.png b/graphics/sa1/obj_tiles/4bpp/a0125_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0125_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0125_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f000.png b/graphics/sa1/obj_tiles/4bpp/a0126_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f001.png b/graphics/sa1/obj_tiles/4bpp/a0126_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f002.png b/graphics/sa1/obj_tiles/4bpp/a0126_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f003.png b/graphics/sa1/obj_tiles/4bpp/a0126_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f004.png b/graphics/sa1/obj_tiles/4bpp/a0126_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f005.png b/graphics/sa1/obj_tiles/4bpp/a0126_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f006.png b/graphics/sa1/obj_tiles/4bpp/a0126_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f007.png b/graphics/sa1/obj_tiles/4bpp/a0126_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f008.png b/graphics/sa1/obj_tiles/4bpp/a0126_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f009.png b/graphics/sa1/obj_tiles/4bpp/a0126_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f010.png b/graphics/sa1/obj_tiles/4bpp/a0126_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f011.png b/graphics/sa1/obj_tiles/4bpp/a0126_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f012.png b/graphics/sa1/obj_tiles/4bpp/a0126_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f013.png b/graphics/sa1/obj_tiles/4bpp/a0126_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f014.png b/graphics/sa1/obj_tiles/4bpp/a0126_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f015.png b/graphics/sa1/obj_tiles/4bpp/a0126_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f016.png b/graphics/sa1/obj_tiles/4bpp/a0126_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0126_f017.png b/graphics/sa1/obj_tiles/4bpp/a0126_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0126_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0126_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f000.png b/graphics/sa1/obj_tiles/4bpp/a0127_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f001.png b/graphics/sa1/obj_tiles/4bpp/a0127_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f002.png b/graphics/sa1/obj_tiles/4bpp/a0127_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f003.png b/graphics/sa1/obj_tiles/4bpp/a0127_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f004.png b/graphics/sa1/obj_tiles/4bpp/a0127_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f005.png b/graphics/sa1/obj_tiles/4bpp/a0127_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f006.png b/graphics/sa1/obj_tiles/4bpp/a0127_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f007.png b/graphics/sa1/obj_tiles/4bpp/a0127_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f008.png b/graphics/sa1/obj_tiles/4bpp/a0127_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f009.png b/graphics/sa1/obj_tiles/4bpp/a0127_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f010.png b/graphics/sa1/obj_tiles/4bpp/a0127_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f011.png b/graphics/sa1/obj_tiles/4bpp/a0127_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f012.png b/graphics/sa1/obj_tiles/4bpp/a0127_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f013.png b/graphics/sa1/obj_tiles/4bpp/a0127_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f014.png b/graphics/sa1/obj_tiles/4bpp/a0127_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0127_f015.png b/graphics/sa1/obj_tiles/4bpp/a0127_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0127_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0127_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0128_f000.png b/graphics/sa1/obj_tiles/4bpp/a0128_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0128_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0128_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0128_f001.png b/graphics/sa1/obj_tiles/4bpp/a0128_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0128_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0128_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0128_f002.png b/graphics/sa1/obj_tiles/4bpp/a0128_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0128_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0128_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f000.png b/graphics/sa1/obj_tiles/4bpp/a0129_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f001.png b/graphics/sa1/obj_tiles/4bpp/a0129_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f002.png b/graphics/sa1/obj_tiles/4bpp/a0129_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f003.png b/graphics/sa1/obj_tiles/4bpp/a0129_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f004.png b/graphics/sa1/obj_tiles/4bpp/a0129_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f005.png b/graphics/sa1/obj_tiles/4bpp/a0129_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f006.png b/graphics/sa1/obj_tiles/4bpp/a0129_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f007.png b/graphics/sa1/obj_tiles/4bpp/a0129_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f008.png b/graphics/sa1/obj_tiles/4bpp/a0129_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f009.png b/graphics/sa1/obj_tiles/4bpp/a0129_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0129_f010.png b/graphics/sa1/obj_tiles/4bpp/a0129_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0129_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0129_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f000.png b/graphics/sa1/obj_tiles/4bpp/a0130_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f001.png b/graphics/sa1/obj_tiles/4bpp/a0130_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f002.png b/graphics/sa1/obj_tiles/4bpp/a0130_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f003.png b/graphics/sa1/obj_tiles/4bpp/a0130_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f004.png b/graphics/sa1/obj_tiles/4bpp/a0130_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f005.png b/graphics/sa1/obj_tiles/4bpp/a0130_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f006.png b/graphics/sa1/obj_tiles/4bpp/a0130_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f007.png b/graphics/sa1/obj_tiles/4bpp/a0130_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0130_f008.png b/graphics/sa1/obj_tiles/4bpp/a0130_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0130_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0130_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f000.png b/graphics/sa1/obj_tiles/4bpp/a0131_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f001.png b/graphics/sa1/obj_tiles/4bpp/a0131_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f002.png b/graphics/sa1/obj_tiles/4bpp/a0131_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f003.png b/graphics/sa1/obj_tiles/4bpp/a0131_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f004.png b/graphics/sa1/obj_tiles/4bpp/a0131_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f005.png b/graphics/sa1/obj_tiles/4bpp/a0131_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f006.png b/graphics/sa1/obj_tiles/4bpp/a0131_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0131_f007.png b/graphics/sa1/obj_tiles/4bpp/a0131_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0131_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0131_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f000.png b/graphics/sa1/obj_tiles/4bpp/a0132_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f001.png b/graphics/sa1/obj_tiles/4bpp/a0132_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f002.png b/graphics/sa1/obj_tiles/4bpp/a0132_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f003.png b/graphics/sa1/obj_tiles/4bpp/a0132_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f004.png b/graphics/sa1/obj_tiles/4bpp/a0132_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f005.png b/graphics/sa1/obj_tiles/4bpp/a0132_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f006.png b/graphics/sa1/obj_tiles/4bpp/a0132_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f007.png b/graphics/sa1/obj_tiles/4bpp/a0132_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f008.png b/graphics/sa1/obj_tiles/4bpp/a0132_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0132_f009.png b/graphics/sa1/obj_tiles/4bpp/a0132_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0132_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0132_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f000.png b/graphics/sa1/obj_tiles/4bpp/a0133_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f001.png b/graphics/sa1/obj_tiles/4bpp/a0133_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f002.png b/graphics/sa1/obj_tiles/4bpp/a0133_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f003.png b/graphics/sa1/obj_tiles/4bpp/a0133_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f004.png b/graphics/sa1/obj_tiles/4bpp/a0133_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f005.png b/graphics/sa1/obj_tiles/4bpp/a0133_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f006.png b/graphics/sa1/obj_tiles/4bpp/a0133_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0133_f007.png b/graphics/sa1/obj_tiles/4bpp/a0133_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0133_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0133_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f000.png b/graphics/sa1/obj_tiles/4bpp/a0134_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f001.png b/graphics/sa1/obj_tiles/4bpp/a0134_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f002.png b/graphics/sa1/obj_tiles/4bpp/a0134_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f003.png b/graphics/sa1/obj_tiles/4bpp/a0134_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f004.png b/graphics/sa1/obj_tiles/4bpp/a0134_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f005.png b/graphics/sa1/obj_tiles/4bpp/a0134_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f006.png b/graphics/sa1/obj_tiles/4bpp/a0134_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f007.png b/graphics/sa1/obj_tiles/4bpp/a0134_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f008.png b/graphics/sa1/obj_tiles/4bpp/a0134_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f009.png b/graphics/sa1/obj_tiles/4bpp/a0134_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f010.png b/graphics/sa1/obj_tiles/4bpp/a0134_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f011.png b/graphics/sa1/obj_tiles/4bpp/a0134_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f012.png b/graphics/sa1/obj_tiles/4bpp/a0134_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f013.png b/graphics/sa1/obj_tiles/4bpp/a0134_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f014.png b/graphics/sa1/obj_tiles/4bpp/a0134_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f015.png b/graphics/sa1/obj_tiles/4bpp/a0134_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f016.png b/graphics/sa1/obj_tiles/4bpp/a0134_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0134_f017.png b/graphics/sa1/obj_tiles/4bpp/a0134_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0134_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0134_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f000.png b/graphics/sa1/obj_tiles/4bpp/a0135_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f001.png b/graphics/sa1/obj_tiles/4bpp/a0135_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f002.png b/graphics/sa1/obj_tiles/4bpp/a0135_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f003.png b/graphics/sa1/obj_tiles/4bpp/a0135_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f004.png b/graphics/sa1/obj_tiles/4bpp/a0135_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f005.png b/graphics/sa1/obj_tiles/4bpp/a0135_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f006.png b/graphics/sa1/obj_tiles/4bpp/a0135_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f007.png b/graphics/sa1/obj_tiles/4bpp/a0135_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f008.png b/graphics/sa1/obj_tiles/4bpp/a0135_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f009.png b/graphics/sa1/obj_tiles/4bpp/a0135_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f010.png b/graphics/sa1/obj_tiles/4bpp/a0135_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f011.png b/graphics/sa1/obj_tiles/4bpp/a0135_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f012.png b/graphics/sa1/obj_tiles/4bpp/a0135_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f013.png b/graphics/sa1/obj_tiles/4bpp/a0135_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f014.png b/graphics/sa1/obj_tiles/4bpp/a0135_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f015.png b/graphics/sa1/obj_tiles/4bpp/a0135_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f016.png b/graphics/sa1/obj_tiles/4bpp/a0135_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f017.png b/graphics/sa1/obj_tiles/4bpp/a0135_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f018.png b/graphics/sa1/obj_tiles/4bpp/a0135_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f019.png b/graphics/sa1/obj_tiles/4bpp/a0135_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f020.png b/graphics/sa1/obj_tiles/4bpp/a0135_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f021.png b/graphics/sa1/obj_tiles/4bpp/a0135_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f022.png b/graphics/sa1/obj_tiles/4bpp/a0135_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0135_f023.png b/graphics/sa1/obj_tiles/4bpp/a0135_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0135_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0135_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f000.png b/graphics/sa1/obj_tiles/4bpp/a0136_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f001.png b/graphics/sa1/obj_tiles/4bpp/a0136_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f002.png b/graphics/sa1/obj_tiles/4bpp/a0136_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f003.png b/graphics/sa1/obj_tiles/4bpp/a0136_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f004.png b/graphics/sa1/obj_tiles/4bpp/a0136_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f005.png b/graphics/sa1/obj_tiles/4bpp/a0136_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f006.png b/graphics/sa1/obj_tiles/4bpp/a0136_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0136_f007.png b/graphics/sa1/obj_tiles/4bpp/a0136_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0136_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0136_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0137_f000.png b/graphics/sa1/obj_tiles/4bpp/a0137_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0137_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0137_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0137_f001.png b/graphics/sa1/obj_tiles/4bpp/a0137_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0137_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0137_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0137_f002.png b/graphics/sa1/obj_tiles/4bpp/a0137_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0137_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0137_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0137_f003.png b/graphics/sa1/obj_tiles/4bpp/a0137_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0137_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0137_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0137_f004.png b/graphics/sa1/obj_tiles/4bpp/a0137_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0137_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0137_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f000.png b/graphics/sa1/obj_tiles/4bpp/a0138_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f001.png b/graphics/sa1/obj_tiles/4bpp/a0138_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f002.png b/graphics/sa1/obj_tiles/4bpp/a0138_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f003.png b/graphics/sa1/obj_tiles/4bpp/a0138_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f004.png b/graphics/sa1/obj_tiles/4bpp/a0138_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f005.png b/graphics/sa1/obj_tiles/4bpp/a0138_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f006.png b/graphics/sa1/obj_tiles/4bpp/a0138_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f007.png b/graphics/sa1/obj_tiles/4bpp/a0138_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f008.png b/graphics/sa1/obj_tiles/4bpp/a0138_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f009.png b/graphics/sa1/obj_tiles/4bpp/a0138_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f010.png b/graphics/sa1/obj_tiles/4bpp/a0138_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0138_f011.png b/graphics/sa1/obj_tiles/4bpp/a0138_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0138_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0138_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f000.png b/graphics/sa1/obj_tiles/4bpp/a0139_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f001.png b/graphics/sa1/obj_tiles/4bpp/a0139_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f002.png b/graphics/sa1/obj_tiles/4bpp/a0139_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f003.png b/graphics/sa1/obj_tiles/4bpp/a0139_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f004.png b/graphics/sa1/obj_tiles/4bpp/a0139_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f005.png b/graphics/sa1/obj_tiles/4bpp/a0139_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f006.png b/graphics/sa1/obj_tiles/4bpp/a0139_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f007.png b/graphics/sa1/obj_tiles/4bpp/a0139_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f008.png b/graphics/sa1/obj_tiles/4bpp/a0139_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f009.png b/graphics/sa1/obj_tiles/4bpp/a0139_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f010.png b/graphics/sa1/obj_tiles/4bpp/a0139_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f011.png b/graphics/sa1/obj_tiles/4bpp/a0139_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f012.png b/graphics/sa1/obj_tiles/4bpp/a0139_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f013.png b/graphics/sa1/obj_tiles/4bpp/a0139_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f014.png b/graphics/sa1/obj_tiles/4bpp/a0139_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f015.png b/graphics/sa1/obj_tiles/4bpp/a0139_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f016.png b/graphics/sa1/obj_tiles/4bpp/a0139_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f017.png b/graphics/sa1/obj_tiles/4bpp/a0139_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f018.png b/graphics/sa1/obj_tiles/4bpp/a0139_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0139_f019.png b/graphics/sa1/obj_tiles/4bpp/a0139_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0139_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0139_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0140_f000.png b/graphics/sa1/obj_tiles/4bpp/a0140_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0140_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0140_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0140_f001.png b/graphics/sa1/obj_tiles/4bpp/a0140_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0140_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0140_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0140_f002.png b/graphics/sa1/obj_tiles/4bpp/a0140_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0140_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0140_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0140_f003.png b/graphics/sa1/obj_tiles/4bpp/a0140_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0140_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0140_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0140_f004.png b/graphics/sa1/obj_tiles/4bpp/a0140_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0140_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0140_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0140_f005.png b/graphics/sa1/obj_tiles/4bpp/a0140_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0140_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0140_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f000.png b/graphics/sa1/obj_tiles/4bpp/a0141_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f001.png b/graphics/sa1/obj_tiles/4bpp/a0141_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f002.png b/graphics/sa1/obj_tiles/4bpp/a0141_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f003.png b/graphics/sa1/obj_tiles/4bpp/a0141_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f004.png b/graphics/sa1/obj_tiles/4bpp/a0141_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f005.png b/graphics/sa1/obj_tiles/4bpp/a0141_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f006.png b/graphics/sa1/obj_tiles/4bpp/a0141_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0141_f007.png b/graphics/sa1/obj_tiles/4bpp/a0141_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0141_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0141_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0142_f000.png b/graphics/sa1/obj_tiles/4bpp/a0142_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0142_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0142_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0142_f001.png b/graphics/sa1/obj_tiles/4bpp/a0142_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0142_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0142_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0142_f002.png b/graphics/sa1/obj_tiles/4bpp/a0142_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0142_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0142_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f000.png b/graphics/sa1/obj_tiles/4bpp/a0145_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f001.png b/graphics/sa1/obj_tiles/4bpp/a0145_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f002.png b/graphics/sa1/obj_tiles/4bpp/a0145_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f003.png b/graphics/sa1/obj_tiles/4bpp/a0145_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f004.png b/graphics/sa1/obj_tiles/4bpp/a0145_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f005.png b/graphics/sa1/obj_tiles/4bpp/a0145_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f006.png b/graphics/sa1/obj_tiles/4bpp/a0145_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f007.png b/graphics/sa1/obj_tiles/4bpp/a0145_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0145_f008.png b/graphics/sa1/obj_tiles/4bpp/a0145_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0145_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0145_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0146_f000.png b/graphics/sa1/obj_tiles/4bpp/a0146_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0146_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0146_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0146_f001.png b/graphics/sa1/obj_tiles/4bpp/a0146_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0146_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0146_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f000.png b/graphics/sa1/obj_tiles/4bpp/a0147_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f001.png b/graphics/sa1/obj_tiles/4bpp/a0147_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f002.png b/graphics/sa1/obj_tiles/4bpp/a0147_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f003.png b/graphics/sa1/obj_tiles/4bpp/a0147_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f004.png b/graphics/sa1/obj_tiles/4bpp/a0147_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f005.png b/graphics/sa1/obj_tiles/4bpp/a0147_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f006.png b/graphics/sa1/obj_tiles/4bpp/a0147_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f007.png b/graphics/sa1/obj_tiles/4bpp/a0147_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0147_f008.png b/graphics/sa1/obj_tiles/4bpp/a0147_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0147_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0147_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f000.png b/graphics/sa1/obj_tiles/4bpp/a0149_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f001.png b/graphics/sa1/obj_tiles/4bpp/a0149_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f002.png b/graphics/sa1/obj_tiles/4bpp/a0149_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f003.png b/graphics/sa1/obj_tiles/4bpp/a0149_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f004.png b/graphics/sa1/obj_tiles/4bpp/a0149_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f005.png b/graphics/sa1/obj_tiles/4bpp/a0149_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f006.png b/graphics/sa1/obj_tiles/4bpp/a0149_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f007.png b/graphics/sa1/obj_tiles/4bpp/a0149_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0149_f008.png b/graphics/sa1/obj_tiles/4bpp/a0149_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0149_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0149_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f000.png b/graphics/sa1/obj_tiles/4bpp/a0155_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f001.png b/graphics/sa1/obj_tiles/4bpp/a0155_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f002.png b/graphics/sa1/obj_tiles/4bpp/a0155_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f003.png b/graphics/sa1/obj_tiles/4bpp/a0155_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f004.png b/graphics/sa1/obj_tiles/4bpp/a0155_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f005.png b/graphics/sa1/obj_tiles/4bpp/a0155_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f006.png b/graphics/sa1/obj_tiles/4bpp/a0155_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f007.png b/graphics/sa1/obj_tiles/4bpp/a0155_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f008.png b/graphics/sa1/obj_tiles/4bpp/a0155_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f009.png b/graphics/sa1/obj_tiles/4bpp/a0155_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0155_f010.png b/graphics/sa1/obj_tiles/4bpp/a0155_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0155_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0155_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0156_f000.png b/graphics/sa1/obj_tiles/4bpp/a0156_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0156_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0156_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0156_f001.png b/graphics/sa1/obj_tiles/4bpp/a0156_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0156_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0156_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f000.png b/graphics/sa1/obj_tiles/4bpp/a0157_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f001.png b/graphics/sa1/obj_tiles/4bpp/a0157_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f002.png b/graphics/sa1/obj_tiles/4bpp/a0157_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f003.png b/graphics/sa1/obj_tiles/4bpp/a0157_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f004.png b/graphics/sa1/obj_tiles/4bpp/a0157_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f005.png b/graphics/sa1/obj_tiles/4bpp/a0157_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f006.png b/graphics/sa1/obj_tiles/4bpp/a0157_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f007.png b/graphics/sa1/obj_tiles/4bpp/a0157_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f008.png b/graphics/sa1/obj_tiles/4bpp/a0157_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0157_f009.png b/graphics/sa1/obj_tiles/4bpp/a0157_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0157_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0157_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f000.png b/graphics/sa1/obj_tiles/4bpp/a0158_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f001.png b/graphics/sa1/obj_tiles/4bpp/a0158_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f002.png b/graphics/sa1/obj_tiles/4bpp/a0158_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f003.png b/graphics/sa1/obj_tiles/4bpp/a0158_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f004.png b/graphics/sa1/obj_tiles/4bpp/a0158_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f005.png b/graphics/sa1/obj_tiles/4bpp/a0158_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0158_f006.png b/graphics/sa1/obj_tiles/4bpp/a0158_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0158_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0158_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0180_f000.png b/graphics/sa1/obj_tiles/4bpp/a0180_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0180_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0180_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0180_f001.png b/graphics/sa1/obj_tiles/4bpp/a0180_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0180_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0180_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0180_f002.png b/graphics/sa1/obj_tiles/4bpp/a0180_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0180_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0180_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0181_f000.png b/graphics/sa1/obj_tiles/4bpp/a0181_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0181_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0181_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0181_f001.png b/graphics/sa1/obj_tiles/4bpp/a0181_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0181_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0181_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0181_f002.png b/graphics/sa1/obj_tiles/4bpp/a0181_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0181_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0181_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0182_f000.png b/graphics/sa1/obj_tiles/4bpp/a0182_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0182_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0182_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0182_f001.png b/graphics/sa1/obj_tiles/4bpp/a0182_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0182_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0182_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0182_f002.png b/graphics/sa1/obj_tiles/4bpp/a0182_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0182_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0182_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0184_f000.png b/graphics/sa1/obj_tiles/4bpp/a0184_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0184_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0184_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0184_f001.png b/graphics/sa1/obj_tiles/4bpp/a0184_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0184_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0184_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0185_f000.png b/graphics/sa1/obj_tiles/4bpp/a0185_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0185_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0185_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0185_f001.png b/graphics/sa1/obj_tiles/4bpp/a0185_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0185_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0185_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0185_f002.png b/graphics/sa1/obj_tiles/4bpp/a0185_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0185_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0185_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f000.png b/graphics/sa1/obj_tiles/4bpp/a0186_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f001.png b/graphics/sa1/obj_tiles/4bpp/a0186_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f002.png b/graphics/sa1/obj_tiles/4bpp/a0186_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f003.png b/graphics/sa1/obj_tiles/4bpp/a0186_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f004.png b/graphics/sa1/obj_tiles/4bpp/a0186_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f005.png b/graphics/sa1/obj_tiles/4bpp/a0186_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f006.png b/graphics/sa1/obj_tiles/4bpp/a0186_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0186_f007.png b/graphics/sa1/obj_tiles/4bpp/a0186_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0186_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0186_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0187_f000.png b/graphics/sa1/obj_tiles/4bpp/a0187_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0187_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0187_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0187_f001.png b/graphics/sa1/obj_tiles/4bpp/a0187_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0187_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0187_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0187_f002.png b/graphics/sa1/obj_tiles/4bpp/a0187_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0187_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0187_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0187_f003.png b/graphics/sa1/obj_tiles/4bpp/a0187_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0187_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0187_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0187_f004.png b/graphics/sa1/obj_tiles/4bpp/a0187_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0187_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0187_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0188_f000.png b/graphics/sa1/obj_tiles/4bpp/a0188_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0188_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0188_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0188_f001.png b/graphics/sa1/obj_tiles/4bpp/a0188_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0188_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0188_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0188_f002.png b/graphics/sa1/obj_tiles/4bpp/a0188_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0188_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0188_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0188_f003.png b/graphics/sa1/obj_tiles/4bpp/a0188_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0188_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0188_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0190_f000.png b/graphics/sa1/obj_tiles/4bpp/a0190_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0190_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0190_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0190_f001.png b/graphics/sa1/obj_tiles/4bpp/a0190_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0190_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0190_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0191_f000.png b/graphics/sa1/obj_tiles/4bpp/a0191_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0191_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0191_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0191_f001.png b/graphics/sa1/obj_tiles/4bpp/a0191_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0191_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0191_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0191_f002.png b/graphics/sa1/obj_tiles/4bpp/a0191_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0191_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0191_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0191_f003.png b/graphics/sa1/obj_tiles/4bpp/a0191_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0191_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0191_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0191_f004.png b/graphics/sa1/obj_tiles/4bpp/a0191_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0191_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0191_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f000.png b/graphics/sa1/obj_tiles/4bpp/a0192_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f001.png b/graphics/sa1/obj_tiles/4bpp/a0192_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f002.png b/graphics/sa1/obj_tiles/4bpp/a0192_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f003.png b/graphics/sa1/obj_tiles/4bpp/a0192_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f004.png b/graphics/sa1/obj_tiles/4bpp/a0192_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f005.png b/graphics/sa1/obj_tiles/4bpp/a0192_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f006.png b/graphics/sa1/obj_tiles/4bpp/a0192_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0192_f007.png b/graphics/sa1/obj_tiles/4bpp/a0192_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0192_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0192_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0195_f000.png b/graphics/sa1/obj_tiles/4bpp/a0195_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0195_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0195_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0195_f001.png b/graphics/sa1/obj_tiles/4bpp/a0195_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0195_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0195_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0195_f002.png b/graphics/sa1/obj_tiles/4bpp/a0195_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0195_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0195_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0195_f003.png b/graphics/sa1/obj_tiles/4bpp/a0195_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0195_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0195_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0196_f000.png b/graphics/sa1/obj_tiles/4bpp/a0196_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0196_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0196_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0196_f001.png b/graphics/sa1/obj_tiles/4bpp/a0196_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0196_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0196_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0196_f002.png b/graphics/sa1/obj_tiles/4bpp/a0196_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0196_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0196_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0197_f000.png b/graphics/sa1/obj_tiles/4bpp/a0197_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0197_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0197_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0198_f000.png b/graphics/sa1/obj_tiles/4bpp/a0198_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0198_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0198_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0198_f001.png b/graphics/sa1/obj_tiles/4bpp/a0198_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0198_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0198_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0198_f002.png b/graphics/sa1/obj_tiles/4bpp/a0198_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0198_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0198_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0198_f003.png b/graphics/sa1/obj_tiles/4bpp/a0198_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0198_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0198_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f000.png b/graphics/sa1/obj_tiles/4bpp/a0199_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f001.png b/graphics/sa1/obj_tiles/4bpp/a0199_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f002.png b/graphics/sa1/obj_tiles/4bpp/a0199_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f003.png b/graphics/sa1/obj_tiles/4bpp/a0199_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f004.png b/graphics/sa1/obj_tiles/4bpp/a0199_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f005.png b/graphics/sa1/obj_tiles/4bpp/a0199_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f006.png b/graphics/sa1/obj_tiles/4bpp/a0199_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f007.png b/graphics/sa1/obj_tiles/4bpp/a0199_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f008.png b/graphics/sa1/obj_tiles/4bpp/a0199_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f009.png b/graphics/sa1/obj_tiles/4bpp/a0199_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f010.png b/graphics/sa1/obj_tiles/4bpp/a0199_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f011.png b/graphics/sa1/obj_tiles/4bpp/a0199_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f012.png b/graphics/sa1/obj_tiles/4bpp/a0199_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0199_f013.png b/graphics/sa1/obj_tiles/4bpp/a0199_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0199_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0199_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f000.png b/graphics/sa1/obj_tiles/4bpp/a0200_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f001.png b/graphics/sa1/obj_tiles/4bpp/a0200_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f002.png b/graphics/sa1/obj_tiles/4bpp/a0200_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f003.png b/graphics/sa1/obj_tiles/4bpp/a0200_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f004.png b/graphics/sa1/obj_tiles/4bpp/a0200_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f005.png b/graphics/sa1/obj_tiles/4bpp/a0200_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f006.png b/graphics/sa1/obj_tiles/4bpp/a0200_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f007.png b/graphics/sa1/obj_tiles/4bpp/a0200_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f008.png b/graphics/sa1/obj_tiles/4bpp/a0200_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f009.png b/graphics/sa1/obj_tiles/4bpp/a0200_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f010.png b/graphics/sa1/obj_tiles/4bpp/a0200_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f011.png b/graphics/sa1/obj_tiles/4bpp/a0200_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0200_f012.png b/graphics/sa1/obj_tiles/4bpp/a0200_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0200_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0200_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0201_f000.png b/graphics/sa1/obj_tiles/4bpp/a0201_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0201_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0201_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0201_f001.png b/graphics/sa1/obj_tiles/4bpp/a0201_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0201_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0201_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0201_f002.png b/graphics/sa1/obj_tiles/4bpp/a0201_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0201_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0201_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0202_f000.png b/graphics/sa1/obj_tiles/4bpp/a0202_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0202_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0202_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0202_f001.png b/graphics/sa1/obj_tiles/4bpp/a0202_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0202_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0202_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0202_f002.png b/graphics/sa1/obj_tiles/4bpp/a0202_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0202_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0202_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0202_f003.png b/graphics/sa1/obj_tiles/4bpp/a0202_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0202_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0202_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f000.png b/graphics/sa1/obj_tiles/4bpp/a0203_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f001.png b/graphics/sa1/obj_tiles/4bpp/a0203_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f002.png b/graphics/sa1/obj_tiles/4bpp/a0203_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f003.png b/graphics/sa1/obj_tiles/4bpp/a0203_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f004.png b/graphics/sa1/obj_tiles/4bpp/a0203_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f005.png b/graphics/sa1/obj_tiles/4bpp/a0203_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f006.png b/graphics/sa1/obj_tiles/4bpp/a0203_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0203_f007.png b/graphics/sa1/obj_tiles/4bpp/a0203_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0203_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0203_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f000.png b/graphics/sa1/obj_tiles/4bpp/a0204_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f001.png b/graphics/sa1/obj_tiles/4bpp/a0204_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f002.png b/graphics/sa1/obj_tiles/4bpp/a0204_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f003.png b/graphics/sa1/obj_tiles/4bpp/a0204_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f004.png b/graphics/sa1/obj_tiles/4bpp/a0204_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f005.png b/graphics/sa1/obj_tiles/4bpp/a0204_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f006.png b/graphics/sa1/obj_tiles/4bpp/a0204_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0204_f007.png b/graphics/sa1/obj_tiles/4bpp/a0204_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0204_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0204_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0205_f000.png b/graphics/sa1/obj_tiles/4bpp/a0205_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0205_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0205_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0205_f001.png b/graphics/sa1/obj_tiles/4bpp/a0205_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0205_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0205_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0206_f000.png b/graphics/sa1/obj_tiles/4bpp/a0206_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0206_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0206_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0206_f001.png b/graphics/sa1/obj_tiles/4bpp/a0206_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0206_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0206_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0206_f002.png b/graphics/sa1/obj_tiles/4bpp/a0206_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0206_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0206_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0206_f003.png b/graphics/sa1/obj_tiles/4bpp/a0206_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0206_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0206_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0207_f000.png b/graphics/sa1/obj_tiles/4bpp/a0207_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0207_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0207_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0207_f001.png b/graphics/sa1/obj_tiles/4bpp/a0207_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0207_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0207_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0207_f002.png b/graphics/sa1/obj_tiles/4bpp/a0207_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0207_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0207_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0207_f003.png b/graphics/sa1/obj_tiles/4bpp/a0207_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0207_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0207_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0208_f000.png b/graphics/sa1/obj_tiles/4bpp/a0208_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0208_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0208_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0208_f001.png b/graphics/sa1/obj_tiles/4bpp/a0208_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0208_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0208_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0208_f002.png b/graphics/sa1/obj_tiles/4bpp/a0208_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0208_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0208_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0208_f003.png b/graphics/sa1/obj_tiles/4bpp/a0208_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0208_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0208_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f000.png b/graphics/sa1/obj_tiles/4bpp/a0209_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f001.png b/graphics/sa1/obj_tiles/4bpp/a0209_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f002.png b/graphics/sa1/obj_tiles/4bpp/a0209_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f003.png b/graphics/sa1/obj_tiles/4bpp/a0209_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f004.png b/graphics/sa1/obj_tiles/4bpp/a0209_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f005.png b/graphics/sa1/obj_tiles/4bpp/a0209_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f006.png b/graphics/sa1/obj_tiles/4bpp/a0209_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f007.png b/graphics/sa1/obj_tiles/4bpp/a0209_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f008.png b/graphics/sa1/obj_tiles/4bpp/a0209_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f009.png b/graphics/sa1/obj_tiles/4bpp/a0209_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f010.png b/graphics/sa1/obj_tiles/4bpp/a0209_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f011.png b/graphics/sa1/obj_tiles/4bpp/a0209_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f012.png b/graphics/sa1/obj_tiles/4bpp/a0209_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f013.png b/graphics/sa1/obj_tiles/4bpp/a0209_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f014.png b/graphics/sa1/obj_tiles/4bpp/a0209_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0209_f015.png b/graphics/sa1/obj_tiles/4bpp/a0209_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0209_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0209_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f000.png b/graphics/sa1/obj_tiles/4bpp/a0210_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f001.png b/graphics/sa1/obj_tiles/4bpp/a0210_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f002.png b/graphics/sa1/obj_tiles/4bpp/a0210_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f003.png b/graphics/sa1/obj_tiles/4bpp/a0210_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f004.png b/graphics/sa1/obj_tiles/4bpp/a0210_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f005.png b/graphics/sa1/obj_tiles/4bpp/a0210_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f006.png b/graphics/sa1/obj_tiles/4bpp/a0210_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f007.png b/graphics/sa1/obj_tiles/4bpp/a0210_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f008.png b/graphics/sa1/obj_tiles/4bpp/a0210_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f009.png b/graphics/sa1/obj_tiles/4bpp/a0210_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0210_f010.png b/graphics/sa1/obj_tiles/4bpp/a0210_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0210_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0210_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f000.png b/graphics/sa1/obj_tiles/4bpp/a0211_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f001.png b/graphics/sa1/obj_tiles/4bpp/a0211_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f002.png b/graphics/sa1/obj_tiles/4bpp/a0211_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f003.png b/graphics/sa1/obj_tiles/4bpp/a0211_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f004.png b/graphics/sa1/obj_tiles/4bpp/a0211_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f005.png b/graphics/sa1/obj_tiles/4bpp/a0211_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f006.png b/graphics/sa1/obj_tiles/4bpp/a0211_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f007.png b/graphics/sa1/obj_tiles/4bpp/a0211_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0211_f008.png b/graphics/sa1/obj_tiles/4bpp/a0211_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0211_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0211_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f000.png b/graphics/sa1/obj_tiles/4bpp/a0212_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f001.png b/graphics/sa1/obj_tiles/4bpp/a0212_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f002.png b/graphics/sa1/obj_tiles/4bpp/a0212_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f003.png b/graphics/sa1/obj_tiles/4bpp/a0212_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f004.png b/graphics/sa1/obj_tiles/4bpp/a0212_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f005.png b/graphics/sa1/obj_tiles/4bpp/a0212_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f006.png b/graphics/sa1/obj_tiles/4bpp/a0212_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0212_f007.png b/graphics/sa1/obj_tiles/4bpp/a0212_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0212_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0212_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f000.png b/graphics/sa1/obj_tiles/4bpp/a0213_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f001.png b/graphics/sa1/obj_tiles/4bpp/a0213_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f002.png b/graphics/sa1/obj_tiles/4bpp/a0213_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f003.png b/graphics/sa1/obj_tiles/4bpp/a0213_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f004.png b/graphics/sa1/obj_tiles/4bpp/a0213_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f005.png b/graphics/sa1/obj_tiles/4bpp/a0213_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f006.png b/graphics/sa1/obj_tiles/4bpp/a0213_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0213_f007.png b/graphics/sa1/obj_tiles/4bpp/a0213_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0213_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0213_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0216_f000.png b/graphics/sa1/obj_tiles/4bpp/a0216_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0216_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0216_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0216_f001.png b/graphics/sa1/obj_tiles/4bpp/a0216_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0216_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0216_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f000.png b/graphics/sa1/obj_tiles/4bpp/a0217_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f001.png b/graphics/sa1/obj_tiles/4bpp/a0217_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f002.png b/graphics/sa1/obj_tiles/4bpp/a0217_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f003.png b/graphics/sa1/obj_tiles/4bpp/a0217_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f004.png b/graphics/sa1/obj_tiles/4bpp/a0217_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f005.png b/graphics/sa1/obj_tiles/4bpp/a0217_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f006.png b/graphics/sa1/obj_tiles/4bpp/a0217_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0217_f007.png b/graphics/sa1/obj_tiles/4bpp/a0217_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0217_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0217_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0218_f000.png b/graphics/sa1/obj_tiles/4bpp/a0218_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0218_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0218_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0218_f001.png b/graphics/sa1/obj_tiles/4bpp/a0218_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0218_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0218_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0218_f002.png b/graphics/sa1/obj_tiles/4bpp/a0218_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0218_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0218_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0218_f003.png b/graphics/sa1/obj_tiles/4bpp/a0218_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0218_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0218_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0218_f004.png b/graphics/sa1/obj_tiles/4bpp/a0218_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0218_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0218_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0220_f000.png b/graphics/sa1/obj_tiles/4bpp/a0220_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0220_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0220_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0220_f001.png b/graphics/sa1/obj_tiles/4bpp/a0220_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0220_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0220_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0220_f002.png b/graphics/sa1/obj_tiles/4bpp/a0220_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0220_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0220_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0220_f003.png b/graphics/sa1/obj_tiles/4bpp/a0220_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0220_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0220_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0220_f004.png b/graphics/sa1/obj_tiles/4bpp/a0220_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0220_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0220_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f000.png b/graphics/sa1/obj_tiles/4bpp/a0221_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f001.png b/graphics/sa1/obj_tiles/4bpp/a0221_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f002.png b/graphics/sa1/obj_tiles/4bpp/a0221_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f003.png b/graphics/sa1/obj_tiles/4bpp/a0221_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f004.png b/graphics/sa1/obj_tiles/4bpp/a0221_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f005.png b/graphics/sa1/obj_tiles/4bpp/a0221_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f006.png b/graphics/sa1/obj_tiles/4bpp/a0221_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f007.png b/graphics/sa1/obj_tiles/4bpp/a0221_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f008.png b/graphics/sa1/obj_tiles/4bpp/a0221_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f009.png b/graphics/sa1/obj_tiles/4bpp/a0221_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f010.png b/graphics/sa1/obj_tiles/4bpp/a0221_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f011.png b/graphics/sa1/obj_tiles/4bpp/a0221_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f012.png b/graphics/sa1/obj_tiles/4bpp/a0221_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f013.png b/graphics/sa1/obj_tiles/4bpp/a0221_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f014.png b/graphics/sa1/obj_tiles/4bpp/a0221_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0221_f015.png b/graphics/sa1/obj_tiles/4bpp/a0221_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0221_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0221_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f000.png b/graphics/sa1/obj_tiles/4bpp/a0222_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f001.png b/graphics/sa1/obj_tiles/4bpp/a0222_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f002.png b/graphics/sa1/obj_tiles/4bpp/a0222_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f003.png b/graphics/sa1/obj_tiles/4bpp/a0222_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f004.png b/graphics/sa1/obj_tiles/4bpp/a0222_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f005.png b/graphics/sa1/obj_tiles/4bpp/a0222_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f006.png b/graphics/sa1/obj_tiles/4bpp/a0222_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f007.png b/graphics/sa1/obj_tiles/4bpp/a0222_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f008.png b/graphics/sa1/obj_tiles/4bpp/a0222_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f009.png b/graphics/sa1/obj_tiles/4bpp/a0222_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f010.png b/graphics/sa1/obj_tiles/4bpp/a0222_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f011.png b/graphics/sa1/obj_tiles/4bpp/a0222_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f012.png b/graphics/sa1/obj_tiles/4bpp/a0222_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f013.png b/graphics/sa1/obj_tiles/4bpp/a0222_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f014.png b/graphics/sa1/obj_tiles/4bpp/a0222_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0222_f015.png b/graphics/sa1/obj_tiles/4bpp/a0222_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0222_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0222_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f000.png b/graphics/sa1/obj_tiles/4bpp/a0223_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f001.png b/graphics/sa1/obj_tiles/4bpp/a0223_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f002.png b/graphics/sa1/obj_tiles/4bpp/a0223_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f003.png b/graphics/sa1/obj_tiles/4bpp/a0223_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f004.png b/graphics/sa1/obj_tiles/4bpp/a0223_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f005.png b/graphics/sa1/obj_tiles/4bpp/a0223_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f006.png b/graphics/sa1/obj_tiles/4bpp/a0223_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f007.png b/graphics/sa1/obj_tiles/4bpp/a0223_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f008.png b/graphics/sa1/obj_tiles/4bpp/a0223_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f009.png b/graphics/sa1/obj_tiles/4bpp/a0223_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f010.png b/graphics/sa1/obj_tiles/4bpp/a0223_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f011.png b/graphics/sa1/obj_tiles/4bpp/a0223_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f012.png b/graphics/sa1/obj_tiles/4bpp/a0223_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0223_f013.png b/graphics/sa1/obj_tiles/4bpp/a0223_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0223_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0223_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0224_f000.png b/graphics/sa1/obj_tiles/4bpp/a0224_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0224_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0224_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0224_f001.png b/graphics/sa1/obj_tiles/4bpp/a0224_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0224_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0224_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0224_f002.png b/graphics/sa1/obj_tiles/4bpp/a0224_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0224_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0224_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0224_f003.png b/graphics/sa1/obj_tiles/4bpp/a0224_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0224_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0224_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f000.png b/graphics/sa1/obj_tiles/4bpp/a0225_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f001.png b/graphics/sa1/obj_tiles/4bpp/a0225_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f002.png b/graphics/sa1/obj_tiles/4bpp/a0225_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f003.png b/graphics/sa1/obj_tiles/4bpp/a0225_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f004.png b/graphics/sa1/obj_tiles/4bpp/a0225_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f005.png b/graphics/sa1/obj_tiles/4bpp/a0225_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f006.png b/graphics/sa1/obj_tiles/4bpp/a0225_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f007.png b/graphics/sa1/obj_tiles/4bpp/a0225_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0225_f008.png b/graphics/sa1/obj_tiles/4bpp/a0225_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0225_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0225_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f000.png b/graphics/sa1/obj_tiles/4bpp/a0226_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f001.png b/graphics/sa1/obj_tiles/4bpp/a0226_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f002.png b/graphics/sa1/obj_tiles/4bpp/a0226_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f003.png b/graphics/sa1/obj_tiles/4bpp/a0226_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f004.png b/graphics/sa1/obj_tiles/4bpp/a0226_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f005.png b/graphics/sa1/obj_tiles/4bpp/a0226_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f006.png b/graphics/sa1/obj_tiles/4bpp/a0226_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f007.png b/graphics/sa1/obj_tiles/4bpp/a0226_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f008.png b/graphics/sa1/obj_tiles/4bpp/a0226_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f009.png b/graphics/sa1/obj_tiles/4bpp/a0226_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f010.png b/graphics/sa1/obj_tiles/4bpp/a0226_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f011.png b/graphics/sa1/obj_tiles/4bpp/a0226_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f012.png b/graphics/sa1/obj_tiles/4bpp/a0226_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f013.png b/graphics/sa1/obj_tiles/4bpp/a0226_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f014.png b/graphics/sa1/obj_tiles/4bpp/a0226_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f015.png b/graphics/sa1/obj_tiles/4bpp/a0226_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f016.png b/graphics/sa1/obj_tiles/4bpp/a0226_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0226_f017.png b/graphics/sa1/obj_tiles/4bpp/a0226_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0226_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0226_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f000.png b/graphics/sa1/obj_tiles/4bpp/a0227_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f001.png b/graphics/sa1/obj_tiles/4bpp/a0227_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f002.png b/graphics/sa1/obj_tiles/4bpp/a0227_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f003.png b/graphics/sa1/obj_tiles/4bpp/a0227_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f004.png b/graphics/sa1/obj_tiles/4bpp/a0227_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f005.png b/graphics/sa1/obj_tiles/4bpp/a0227_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f006.png b/graphics/sa1/obj_tiles/4bpp/a0227_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f007.png b/graphics/sa1/obj_tiles/4bpp/a0227_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f008.png b/graphics/sa1/obj_tiles/4bpp/a0227_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f009.png b/graphics/sa1/obj_tiles/4bpp/a0227_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f010.png b/graphics/sa1/obj_tiles/4bpp/a0227_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f011.png b/graphics/sa1/obj_tiles/4bpp/a0227_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f012.png b/graphics/sa1/obj_tiles/4bpp/a0227_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f013.png b/graphics/sa1/obj_tiles/4bpp/a0227_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0227_f014.png b/graphics/sa1/obj_tiles/4bpp/a0227_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0227_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0227_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0228_f000.png b/graphics/sa1/obj_tiles/4bpp/a0228_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0228_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0228_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0228_f001.png b/graphics/sa1/obj_tiles/4bpp/a0228_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0228_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0228_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0228_f002.png b/graphics/sa1/obj_tiles/4bpp/a0228_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0228_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0228_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f000.png b/graphics/sa1/obj_tiles/4bpp/a0229_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f001.png b/graphics/sa1/obj_tiles/4bpp/a0229_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f002.png b/graphics/sa1/obj_tiles/4bpp/a0229_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f003.png b/graphics/sa1/obj_tiles/4bpp/a0229_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f004.png b/graphics/sa1/obj_tiles/4bpp/a0229_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f005.png b/graphics/sa1/obj_tiles/4bpp/a0229_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f006.png b/graphics/sa1/obj_tiles/4bpp/a0229_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f007.png b/graphics/sa1/obj_tiles/4bpp/a0229_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f008.png b/graphics/sa1/obj_tiles/4bpp/a0229_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f009.png b/graphics/sa1/obj_tiles/4bpp/a0229_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0229_f010.png b/graphics/sa1/obj_tiles/4bpp/a0229_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0229_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0229_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f000.png b/graphics/sa1/obj_tiles/4bpp/a0230_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f001.png b/graphics/sa1/obj_tiles/4bpp/a0230_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f002.png b/graphics/sa1/obj_tiles/4bpp/a0230_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f003.png b/graphics/sa1/obj_tiles/4bpp/a0230_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f004.png b/graphics/sa1/obj_tiles/4bpp/a0230_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f005.png b/graphics/sa1/obj_tiles/4bpp/a0230_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f006.png b/graphics/sa1/obj_tiles/4bpp/a0230_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f007.png b/graphics/sa1/obj_tiles/4bpp/a0230_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f008.png b/graphics/sa1/obj_tiles/4bpp/a0230_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f009.png b/graphics/sa1/obj_tiles/4bpp/a0230_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f010.png b/graphics/sa1/obj_tiles/4bpp/a0230_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f011.png b/graphics/sa1/obj_tiles/4bpp/a0230_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f012.png b/graphics/sa1/obj_tiles/4bpp/a0230_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0230_f013.png b/graphics/sa1/obj_tiles/4bpp/a0230_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0230_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0230_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f000.png b/graphics/sa1/obj_tiles/4bpp/a0231_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f001.png b/graphics/sa1/obj_tiles/4bpp/a0231_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f002.png b/graphics/sa1/obj_tiles/4bpp/a0231_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f003.png b/graphics/sa1/obj_tiles/4bpp/a0231_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f004.png b/graphics/sa1/obj_tiles/4bpp/a0231_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f005.png b/graphics/sa1/obj_tiles/4bpp/a0231_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0231_f006.png b/graphics/sa1/obj_tiles/4bpp/a0231_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0231_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0231_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0232_f000.png b/graphics/sa1/obj_tiles/4bpp/a0232_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0232_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0232_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0232_f001.png b/graphics/sa1/obj_tiles/4bpp/a0232_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0232_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0232_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0232_f002.png b/graphics/sa1/obj_tiles/4bpp/a0232_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0232_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0232_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f000.png b/graphics/sa1/obj_tiles/4bpp/a0233_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f001.png b/graphics/sa1/obj_tiles/4bpp/a0233_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f002.png b/graphics/sa1/obj_tiles/4bpp/a0233_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f003.png b/graphics/sa1/obj_tiles/4bpp/a0233_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f004.png b/graphics/sa1/obj_tiles/4bpp/a0233_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f005.png b/graphics/sa1/obj_tiles/4bpp/a0233_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f006.png b/graphics/sa1/obj_tiles/4bpp/a0233_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0233_f007.png b/graphics/sa1/obj_tiles/4bpp/a0233_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0233_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0233_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f000.png b/graphics/sa1/obj_tiles/4bpp/a0234_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f001.png b/graphics/sa1/obj_tiles/4bpp/a0234_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f002.png b/graphics/sa1/obj_tiles/4bpp/a0234_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f003.png b/graphics/sa1/obj_tiles/4bpp/a0234_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f004.png b/graphics/sa1/obj_tiles/4bpp/a0234_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f005.png b/graphics/sa1/obj_tiles/4bpp/a0234_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f006.png b/graphics/sa1/obj_tiles/4bpp/a0234_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0234_f007.png b/graphics/sa1/obj_tiles/4bpp/a0234_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0234_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0234_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f000.png b/graphics/sa1/obj_tiles/4bpp/a0235_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f001.png b/graphics/sa1/obj_tiles/4bpp/a0235_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f002.png b/graphics/sa1/obj_tiles/4bpp/a0235_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f003.png b/graphics/sa1/obj_tiles/4bpp/a0235_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f004.png b/graphics/sa1/obj_tiles/4bpp/a0235_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f005.png b/graphics/sa1/obj_tiles/4bpp/a0235_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f006.png b/graphics/sa1/obj_tiles/4bpp/a0235_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f007.png b/graphics/sa1/obj_tiles/4bpp/a0235_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f008.png b/graphics/sa1/obj_tiles/4bpp/a0235_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f009.png b/graphics/sa1/obj_tiles/4bpp/a0235_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f010.png b/graphics/sa1/obj_tiles/4bpp/a0235_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f011.png b/graphics/sa1/obj_tiles/4bpp/a0235_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f012.png b/graphics/sa1/obj_tiles/4bpp/a0235_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f013.png b/graphics/sa1/obj_tiles/4bpp/a0235_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f014.png b/graphics/sa1/obj_tiles/4bpp/a0235_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f015.png b/graphics/sa1/obj_tiles/4bpp/a0235_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f016.png b/graphics/sa1/obj_tiles/4bpp/a0235_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f017.png b/graphics/sa1/obj_tiles/4bpp/a0235_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f018.png b/graphics/sa1/obj_tiles/4bpp/a0235_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f019.png b/graphics/sa1/obj_tiles/4bpp/a0235_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f020.png b/graphics/sa1/obj_tiles/4bpp/a0235_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f021.png b/graphics/sa1/obj_tiles/4bpp/a0235_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f022.png b/graphics/sa1/obj_tiles/4bpp/a0235_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0235_f023.png b/graphics/sa1/obj_tiles/4bpp/a0235_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0235_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0235_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f000.png b/graphics/sa1/obj_tiles/4bpp/a0236_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f001.png b/graphics/sa1/obj_tiles/4bpp/a0236_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f002.png b/graphics/sa1/obj_tiles/4bpp/a0236_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f003.png b/graphics/sa1/obj_tiles/4bpp/a0236_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f004.png b/graphics/sa1/obj_tiles/4bpp/a0236_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f005.png b/graphics/sa1/obj_tiles/4bpp/a0236_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f006.png b/graphics/sa1/obj_tiles/4bpp/a0236_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0236_f007.png b/graphics/sa1/obj_tiles/4bpp/a0236_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0236_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0236_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0237_f000.png b/graphics/sa1/obj_tiles/4bpp/a0237_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0237_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0237_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0237_f001.png b/graphics/sa1/obj_tiles/4bpp/a0237_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0237_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0237_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0237_f002.png b/graphics/sa1/obj_tiles/4bpp/a0237_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0237_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0237_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0237_f003.png b/graphics/sa1/obj_tiles/4bpp/a0237_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0237_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0237_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0237_f004.png b/graphics/sa1/obj_tiles/4bpp/a0237_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0237_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0237_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0238_f000.png b/graphics/sa1/obj_tiles/4bpp/a0238_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0238_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0238_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0238_f001.png b/graphics/sa1/obj_tiles/4bpp/a0238_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0238_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0238_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0238_f002.png b/graphics/sa1/obj_tiles/4bpp/a0238_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0238_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0238_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0238_f003.png b/graphics/sa1/obj_tiles/4bpp/a0238_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0238_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0238_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f000.png b/graphics/sa1/obj_tiles/4bpp/a0239_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f001.png b/graphics/sa1/obj_tiles/4bpp/a0239_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f002.png b/graphics/sa1/obj_tiles/4bpp/a0239_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f003.png b/graphics/sa1/obj_tiles/4bpp/a0239_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f004.png b/graphics/sa1/obj_tiles/4bpp/a0239_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f005.png b/graphics/sa1/obj_tiles/4bpp/a0239_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f006.png b/graphics/sa1/obj_tiles/4bpp/a0239_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f007.png b/graphics/sa1/obj_tiles/4bpp/a0239_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f008.png b/graphics/sa1/obj_tiles/4bpp/a0239_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f009.png b/graphics/sa1/obj_tiles/4bpp/a0239_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f010.png b/graphics/sa1/obj_tiles/4bpp/a0239_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f011.png b/graphics/sa1/obj_tiles/4bpp/a0239_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f012.png b/graphics/sa1/obj_tiles/4bpp/a0239_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f013.png b/graphics/sa1/obj_tiles/4bpp/a0239_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f014.png b/graphics/sa1/obj_tiles/4bpp/a0239_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f015.png b/graphics/sa1/obj_tiles/4bpp/a0239_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f016.png b/graphics/sa1/obj_tiles/4bpp/a0239_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f017.png b/graphics/sa1/obj_tiles/4bpp/a0239_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f018.png b/graphics/sa1/obj_tiles/4bpp/a0239_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0239_f019.png b/graphics/sa1/obj_tiles/4bpp/a0239_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0239_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0239_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0240_f000.png b/graphics/sa1/obj_tiles/4bpp/a0240_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0240_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0240_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0240_f001.png b/graphics/sa1/obj_tiles/4bpp/a0240_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0240_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0240_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0240_f002.png b/graphics/sa1/obj_tiles/4bpp/a0240_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0240_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0240_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0240_f003.png b/graphics/sa1/obj_tiles/4bpp/a0240_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0240_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0240_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0240_f004.png b/graphics/sa1/obj_tiles/4bpp/a0240_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0240_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0240_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0240_f005.png b/graphics/sa1/obj_tiles/4bpp/a0240_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0240_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0240_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f000.png b/graphics/sa1/obj_tiles/4bpp/a0241_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f001.png b/graphics/sa1/obj_tiles/4bpp/a0241_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f002.png b/graphics/sa1/obj_tiles/4bpp/a0241_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f003.png b/graphics/sa1/obj_tiles/4bpp/a0241_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f004.png b/graphics/sa1/obj_tiles/4bpp/a0241_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f005.png b/graphics/sa1/obj_tiles/4bpp/a0241_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f006.png b/graphics/sa1/obj_tiles/4bpp/a0241_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0241_f007.png b/graphics/sa1/obj_tiles/4bpp/a0241_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0241_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0241_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0242_f000.png b/graphics/sa1/obj_tiles/4bpp/a0242_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0242_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0242_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0242_f001.png b/graphics/sa1/obj_tiles/4bpp/a0242_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0242_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0242_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0242_f002.png b/graphics/sa1/obj_tiles/4bpp/a0242_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0242_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0242_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0245_f000.png b/graphics/sa1/obj_tiles/4bpp/a0245_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0245_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0245_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0245_f001.png b/graphics/sa1/obj_tiles/4bpp/a0245_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0245_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0245_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0245_f002.png b/graphics/sa1/obj_tiles/4bpp/a0245_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0245_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0245_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0245_f003.png b/graphics/sa1/obj_tiles/4bpp/a0245_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0245_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0245_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0245_f004.png b/graphics/sa1/obj_tiles/4bpp/a0245_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0245_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0245_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0245_f005.png b/graphics/sa1/obj_tiles/4bpp/a0245_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0245_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0245_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0246_f000.png b/graphics/sa1/obj_tiles/4bpp/a0246_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0246_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0246_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0246_f001.png b/graphics/sa1/obj_tiles/4bpp/a0246_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0246_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0246_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0246_f002.png b/graphics/sa1/obj_tiles/4bpp/a0246_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0246_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0246_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0246_f003.png b/graphics/sa1/obj_tiles/4bpp/a0246_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0246_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0246_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f000.png b/graphics/sa1/obj_tiles/4bpp/a0249_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f001.png b/graphics/sa1/obj_tiles/4bpp/a0249_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f002.png b/graphics/sa1/obj_tiles/4bpp/a0249_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f003.png b/graphics/sa1/obj_tiles/4bpp/a0249_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f004.png b/graphics/sa1/obj_tiles/4bpp/a0249_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f005.png b/graphics/sa1/obj_tiles/4bpp/a0249_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f006.png b/graphics/sa1/obj_tiles/4bpp/a0249_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0249_f007.png b/graphics/sa1/obj_tiles/4bpp/a0249_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0249_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0249_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f000.png b/graphics/sa1/obj_tiles/4bpp/a0250_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f001.png b/graphics/sa1/obj_tiles/4bpp/a0250_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f002.png b/graphics/sa1/obj_tiles/4bpp/a0250_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f003.png b/graphics/sa1/obj_tiles/4bpp/a0250_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f004.png b/graphics/sa1/obj_tiles/4bpp/a0250_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f005.png b/graphics/sa1/obj_tiles/4bpp/a0250_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f006.png b/graphics/sa1/obj_tiles/4bpp/a0250_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f007.png b/graphics/sa1/obj_tiles/4bpp/a0250_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f008.png b/graphics/sa1/obj_tiles/4bpp/a0250_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f009.png b/graphics/sa1/obj_tiles/4bpp/a0250_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f010.png b/graphics/sa1/obj_tiles/4bpp/a0250_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f011.png b/graphics/sa1/obj_tiles/4bpp/a0250_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f012.png b/graphics/sa1/obj_tiles/4bpp/a0250_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f013.png b/graphics/sa1/obj_tiles/4bpp/a0250_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f014.png b/graphics/sa1/obj_tiles/4bpp/a0250_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f015.png b/graphics/sa1/obj_tiles/4bpp/a0250_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f016.png b/graphics/sa1/obj_tiles/4bpp/a0250_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f017.png b/graphics/sa1/obj_tiles/4bpp/a0250_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0250_f018.png b/graphics/sa1/obj_tiles/4bpp/a0250_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0250_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0250_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0260_f000.png b/graphics/sa1/obj_tiles/4bpp/a0260_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0260_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0260_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0260_f001.png b/graphics/sa1/obj_tiles/4bpp/a0260_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0260_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0260_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0261_f000.png b/graphics/sa1/obj_tiles/4bpp/a0261_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0261_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0261_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0261_f001.png b/graphics/sa1/obj_tiles/4bpp/a0261_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0261_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0261_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0261_f002.png b/graphics/sa1/obj_tiles/4bpp/a0261_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0261_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0261_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0261_f003.png b/graphics/sa1/obj_tiles/4bpp/a0261_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0261_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0261_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0262_f000.png b/graphics/sa1/obj_tiles/4bpp/a0262_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0262_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0262_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0262_f001.png b/graphics/sa1/obj_tiles/4bpp/a0262_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0262_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0262_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f000.png b/graphics/sa1/obj_tiles/4bpp/a0263_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f001.png b/graphics/sa1/obj_tiles/4bpp/a0263_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f002.png b/graphics/sa1/obj_tiles/4bpp/a0263_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f003.png b/graphics/sa1/obj_tiles/4bpp/a0263_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f004.png b/graphics/sa1/obj_tiles/4bpp/a0263_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f005.png b/graphics/sa1/obj_tiles/4bpp/a0263_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f006.png b/graphics/sa1/obj_tiles/4bpp/a0263_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f007.png b/graphics/sa1/obj_tiles/4bpp/a0263_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f008.png b/graphics/sa1/obj_tiles/4bpp/a0263_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f009.png b/graphics/sa1/obj_tiles/4bpp/a0263_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0263_f010.png b/graphics/sa1/obj_tiles/4bpp/a0263_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0263_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0263_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0264_f000.png b/graphics/sa1/obj_tiles/4bpp/a0264_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0264_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0264_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0264_f001.png b/graphics/sa1/obj_tiles/4bpp/a0264_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0264_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0264_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0264_f002.png b/graphics/sa1/obj_tiles/4bpp/a0264_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0264_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0264_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f000.png b/graphics/sa1/obj_tiles/4bpp/a0265_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f001.png b/graphics/sa1/obj_tiles/4bpp/a0265_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f002.png b/graphics/sa1/obj_tiles/4bpp/a0265_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f003.png b/graphics/sa1/obj_tiles/4bpp/a0265_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f004.png b/graphics/sa1/obj_tiles/4bpp/a0265_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f005.png b/graphics/sa1/obj_tiles/4bpp/a0265_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f006.png b/graphics/sa1/obj_tiles/4bpp/a0265_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f007.png b/graphics/sa1/obj_tiles/4bpp/a0265_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f008.png b/graphics/sa1/obj_tiles/4bpp/a0265_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f009.png b/graphics/sa1/obj_tiles/4bpp/a0265_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f010.png b/graphics/sa1/obj_tiles/4bpp/a0265_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f011.png b/graphics/sa1/obj_tiles/4bpp/a0265_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f012.png b/graphics/sa1/obj_tiles/4bpp/a0265_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0265_f013.png b/graphics/sa1/obj_tiles/4bpp/a0265_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0265_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0265_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0269_f000.png b/graphics/sa1/obj_tiles/4bpp/a0269_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0269_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0269_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0269_f001.png b/graphics/sa1/obj_tiles/4bpp/a0269_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0269_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0269_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0269_f002.png b/graphics/sa1/obj_tiles/4bpp/a0269_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0269_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0269_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0269_f003.png b/graphics/sa1/obj_tiles/4bpp/a0269_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0269_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0269_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0269_f004.png b/graphics/sa1/obj_tiles/4bpp/a0269_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0269_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0269_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0269_f005.png b/graphics/sa1/obj_tiles/4bpp/a0269_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0269_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0269_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0270_f000.png b/graphics/sa1/obj_tiles/4bpp/a0270_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0270_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0270_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0270_f001.png b/graphics/sa1/obj_tiles/4bpp/a0270_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0270_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0270_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0271_f000.png b/graphics/sa1/obj_tiles/4bpp/a0271_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0271_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0271_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0271_f001.png b/graphics/sa1/obj_tiles/4bpp/a0271_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0271_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0271_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0271_f002.png b/graphics/sa1/obj_tiles/4bpp/a0271_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0271_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0271_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0271_f003.png b/graphics/sa1/obj_tiles/4bpp/a0271_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0271_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0271_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0271_f004.png b/graphics/sa1/obj_tiles/4bpp/a0271_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0271_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0271_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0271_f005.png b/graphics/sa1/obj_tiles/4bpp/a0271_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0271_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0271_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0280_f000.png b/graphics/sa1/obj_tiles/4bpp/a0280_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0280_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0280_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0280_f001.png b/graphics/sa1/obj_tiles/4bpp/a0280_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0280_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0280_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0280_f002.png b/graphics/sa1/obj_tiles/4bpp/a0280_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0280_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0280_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0280_f003.png b/graphics/sa1/obj_tiles/4bpp/a0280_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0280_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0280_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0281_f000.png b/graphics/sa1/obj_tiles/4bpp/a0281_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0281_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0281_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0281_f001.png b/graphics/sa1/obj_tiles/4bpp/a0281_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0281_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0281_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0281_f002.png b/graphics/sa1/obj_tiles/4bpp/a0281_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0281_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0281_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0281_f003.png b/graphics/sa1/obj_tiles/4bpp/a0281_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0281_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0281_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0282_f000.png b/graphics/sa1/obj_tiles/4bpp/a0282_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0282_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0282_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0282_f001.png b/graphics/sa1/obj_tiles/4bpp/a0282_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0282_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0282_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0282_f002.png b/graphics/sa1/obj_tiles/4bpp/a0282_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0282_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0282_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0282_f003.png b/graphics/sa1/obj_tiles/4bpp/a0282_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0282_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0282_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0284_f000.png b/graphics/sa1/obj_tiles/4bpp/a0284_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0284_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0284_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0284_f001.png b/graphics/sa1/obj_tiles/4bpp/a0284_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0284_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0284_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0285_f000.png b/graphics/sa1/obj_tiles/4bpp/a0285_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0285_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0285_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0285_f001.png b/graphics/sa1/obj_tiles/4bpp/a0285_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0285_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0285_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0285_f002.png b/graphics/sa1/obj_tiles/4bpp/a0285_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0285_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0285_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0286_f000.png b/graphics/sa1/obj_tiles/4bpp/a0286_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0286_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0286_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0286_f001.png b/graphics/sa1/obj_tiles/4bpp/a0286_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0286_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0286_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0287_f000.png b/graphics/sa1/obj_tiles/4bpp/a0287_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0287_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0287_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0287_f001.png b/graphics/sa1/obj_tiles/4bpp/a0287_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0287_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0287_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0287_f002.png b/graphics/sa1/obj_tiles/4bpp/a0287_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0287_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0287_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0287_f003.png b/graphics/sa1/obj_tiles/4bpp/a0287_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0287_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0287_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0287_f004.png b/graphics/sa1/obj_tiles/4bpp/a0287_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0287_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0287_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0288_f000.png b/graphics/sa1/obj_tiles/4bpp/a0288_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0288_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0288_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0288_f001.png b/graphics/sa1/obj_tiles/4bpp/a0288_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0288_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0288_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0288_f002.png b/graphics/sa1/obj_tiles/4bpp/a0288_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0288_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0288_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0288_f003.png b/graphics/sa1/obj_tiles/4bpp/a0288_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0288_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0288_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f000.png b/graphics/sa1/obj_tiles/4bpp/a0292_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f001.png b/graphics/sa1/obj_tiles/4bpp/a0292_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f002.png b/graphics/sa1/obj_tiles/4bpp/a0292_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f003.png b/graphics/sa1/obj_tiles/4bpp/a0292_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f004.png b/graphics/sa1/obj_tiles/4bpp/a0292_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f005.png b/graphics/sa1/obj_tiles/4bpp/a0292_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f006.png b/graphics/sa1/obj_tiles/4bpp/a0292_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0292_f007.png b/graphics/sa1/obj_tiles/4bpp/a0292_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0292_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0292_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0295_f000.png b/graphics/sa1/obj_tiles/4bpp/a0295_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0295_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0295_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0295_f001.png b/graphics/sa1/obj_tiles/4bpp/a0295_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0295_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0295_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0295_f002.png b/graphics/sa1/obj_tiles/4bpp/a0295_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0295_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0295_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0295_f003.png b/graphics/sa1/obj_tiles/4bpp/a0295_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0295_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0295_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0296_f000.png b/graphics/sa1/obj_tiles/4bpp/a0296_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0296_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0296_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0296_f001.png b/graphics/sa1/obj_tiles/4bpp/a0296_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0296_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0296_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0296_f002.png b/graphics/sa1/obj_tiles/4bpp/a0296_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0296_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0296_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0297_f000.png b/graphics/sa1/obj_tiles/4bpp/a0297_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0297_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0297_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f000.png b/graphics/sa1/obj_tiles/4bpp/a0298_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f001.png b/graphics/sa1/obj_tiles/4bpp/a0298_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f002.png b/graphics/sa1/obj_tiles/4bpp/a0298_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f003.png b/graphics/sa1/obj_tiles/4bpp/a0298_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f004.png b/graphics/sa1/obj_tiles/4bpp/a0298_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f005.png b/graphics/sa1/obj_tiles/4bpp/a0298_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f006.png b/graphics/sa1/obj_tiles/4bpp/a0298_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f007.png b/graphics/sa1/obj_tiles/4bpp/a0298_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f008.png b/graphics/sa1/obj_tiles/4bpp/a0298_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f009.png b/graphics/sa1/obj_tiles/4bpp/a0298_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0298_f010.png b/graphics/sa1/obj_tiles/4bpp/a0298_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0298_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0298_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f000.png b/graphics/sa1/obj_tiles/4bpp/a0299_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f001.png b/graphics/sa1/obj_tiles/4bpp/a0299_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f002.png b/graphics/sa1/obj_tiles/4bpp/a0299_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f003.png b/graphics/sa1/obj_tiles/4bpp/a0299_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f004.png b/graphics/sa1/obj_tiles/4bpp/a0299_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f005.png b/graphics/sa1/obj_tiles/4bpp/a0299_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f006.png b/graphics/sa1/obj_tiles/4bpp/a0299_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f007.png b/graphics/sa1/obj_tiles/4bpp/a0299_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f008.png b/graphics/sa1/obj_tiles/4bpp/a0299_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f009.png b/graphics/sa1/obj_tiles/4bpp/a0299_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f010.png b/graphics/sa1/obj_tiles/4bpp/a0299_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f011.png b/graphics/sa1/obj_tiles/4bpp/a0299_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f012.png b/graphics/sa1/obj_tiles/4bpp/a0299_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f013.png b/graphics/sa1/obj_tiles/4bpp/a0299_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f014.png b/graphics/sa1/obj_tiles/4bpp/a0299_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f015.png b/graphics/sa1/obj_tiles/4bpp/a0299_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f016.png b/graphics/sa1/obj_tiles/4bpp/a0299_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f017.png b/graphics/sa1/obj_tiles/4bpp/a0299_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f018.png b/graphics/sa1/obj_tiles/4bpp/a0299_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f019.png b/graphics/sa1/obj_tiles/4bpp/a0299_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f020.png b/graphics/sa1/obj_tiles/4bpp/a0299_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f021.png b/graphics/sa1/obj_tiles/4bpp/a0299_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f022.png b/graphics/sa1/obj_tiles/4bpp/a0299_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f023.png b/graphics/sa1/obj_tiles/4bpp/a0299_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f024.png b/graphics/sa1/obj_tiles/4bpp/a0299_f024.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f024.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f024.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f025.png b/graphics/sa1/obj_tiles/4bpp/a0299_f025.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f025.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f025.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f026.png b/graphics/sa1/obj_tiles/4bpp/a0299_f026.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f026.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f026.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f027.png b/graphics/sa1/obj_tiles/4bpp/a0299_f027.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f027.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f027.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f028.png b/graphics/sa1/obj_tiles/4bpp/a0299_f028.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f028.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f028.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f029.png b/graphics/sa1/obj_tiles/4bpp/a0299_f029.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f029.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f029.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0299_f030.png b/graphics/sa1/obj_tiles/4bpp/a0299_f030.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0299_f030.png rename to graphics/sa1/obj_tiles/4bpp/a0299_f030.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0300_f000.png b/graphics/sa1/obj_tiles/4bpp/a0300_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0300_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0300_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0300_f001.png b/graphics/sa1/obj_tiles/4bpp/a0300_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0300_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0300_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0300_f002.png b/graphics/sa1/obj_tiles/4bpp/a0300_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0300_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0300_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0300_f003.png b/graphics/sa1/obj_tiles/4bpp/a0300_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0300_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0300_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0300_f004.png b/graphics/sa1/obj_tiles/4bpp/a0300_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0300_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0300_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0301_f000.png b/graphics/sa1/obj_tiles/4bpp/a0301_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0301_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0301_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0301_f001.png b/graphics/sa1/obj_tiles/4bpp/a0301_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0301_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0301_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0301_f002.png b/graphics/sa1/obj_tiles/4bpp/a0301_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0301_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0301_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0301_f003.png b/graphics/sa1/obj_tiles/4bpp/a0301_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0301_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0301_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0301_f004.png b/graphics/sa1/obj_tiles/4bpp/a0301_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0301_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0301_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f000.png b/graphics/sa1/obj_tiles/4bpp/a0302_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f001.png b/graphics/sa1/obj_tiles/4bpp/a0302_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f002.png b/graphics/sa1/obj_tiles/4bpp/a0302_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f003.png b/graphics/sa1/obj_tiles/4bpp/a0302_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f004.png b/graphics/sa1/obj_tiles/4bpp/a0302_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f005.png b/graphics/sa1/obj_tiles/4bpp/a0302_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f006.png b/graphics/sa1/obj_tiles/4bpp/a0302_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f007.png b/graphics/sa1/obj_tiles/4bpp/a0302_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f008.png b/graphics/sa1/obj_tiles/4bpp/a0302_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f009.png b/graphics/sa1/obj_tiles/4bpp/a0302_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0302_f010.png b/graphics/sa1/obj_tiles/4bpp/a0302_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0302_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0302_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0303_f000.png b/graphics/sa1/obj_tiles/4bpp/a0303_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0303_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0303_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0303_f001.png b/graphics/sa1/obj_tiles/4bpp/a0303_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0303_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0303_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0303_f002.png b/graphics/sa1/obj_tiles/4bpp/a0303_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0303_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0303_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0303_f003.png b/graphics/sa1/obj_tiles/4bpp/a0303_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0303_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0303_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0303_f004.png b/graphics/sa1/obj_tiles/4bpp/a0303_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0303_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0303_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0303_f005.png b/graphics/sa1/obj_tiles/4bpp/a0303_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0303_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0303_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0304_f000.png b/graphics/sa1/obj_tiles/4bpp/a0304_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0304_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0304_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0304_f001.png b/graphics/sa1/obj_tiles/4bpp/a0304_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0304_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0304_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0305_f000.png b/graphics/sa1/obj_tiles/4bpp/a0305_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0305_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0305_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0305_f001.png b/graphics/sa1/obj_tiles/4bpp/a0305_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0305_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0305_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0305_f002.png b/graphics/sa1/obj_tiles/4bpp/a0305_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0305_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0305_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0305_f003.png b/graphics/sa1/obj_tiles/4bpp/a0305_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0305_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0305_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0306_f000.png b/graphics/sa1/obj_tiles/4bpp/a0306_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0306_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0306_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0306_f001.png b/graphics/sa1/obj_tiles/4bpp/a0306_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0306_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0306_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0306_f002.png b/graphics/sa1/obj_tiles/4bpp/a0306_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0306_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0306_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0306_f003.png b/graphics/sa1/obj_tiles/4bpp/a0306_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0306_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0306_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0307_f000.png b/graphics/sa1/obj_tiles/4bpp/a0307_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0307_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0307_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0307_f001.png b/graphics/sa1/obj_tiles/4bpp/a0307_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0307_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0307_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0307_f002.png b/graphics/sa1/obj_tiles/4bpp/a0307_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0307_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0307_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0307_f003.png b/graphics/sa1/obj_tiles/4bpp/a0307_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0307_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0307_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f000.png b/graphics/sa1/obj_tiles/4bpp/a0308_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f001.png b/graphics/sa1/obj_tiles/4bpp/a0308_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f002.png b/graphics/sa1/obj_tiles/4bpp/a0308_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f003.png b/graphics/sa1/obj_tiles/4bpp/a0308_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f004.png b/graphics/sa1/obj_tiles/4bpp/a0308_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f005.png b/graphics/sa1/obj_tiles/4bpp/a0308_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f006.png b/graphics/sa1/obj_tiles/4bpp/a0308_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f007.png b/graphics/sa1/obj_tiles/4bpp/a0308_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f008.png b/graphics/sa1/obj_tiles/4bpp/a0308_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f009.png b/graphics/sa1/obj_tiles/4bpp/a0308_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f010.png b/graphics/sa1/obj_tiles/4bpp/a0308_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f011.png b/graphics/sa1/obj_tiles/4bpp/a0308_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f012.png b/graphics/sa1/obj_tiles/4bpp/a0308_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f013.png b/graphics/sa1/obj_tiles/4bpp/a0308_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0308_f014.png b/graphics/sa1/obj_tiles/4bpp/a0308_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0308_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0308_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f000.png b/graphics/sa1/obj_tiles/4bpp/a0309_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f001.png b/graphics/sa1/obj_tiles/4bpp/a0309_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f002.png b/graphics/sa1/obj_tiles/4bpp/a0309_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f003.png b/graphics/sa1/obj_tiles/4bpp/a0309_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f004.png b/graphics/sa1/obj_tiles/4bpp/a0309_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f005.png b/graphics/sa1/obj_tiles/4bpp/a0309_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f006.png b/graphics/sa1/obj_tiles/4bpp/a0309_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f007.png b/graphics/sa1/obj_tiles/4bpp/a0309_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f008.png b/graphics/sa1/obj_tiles/4bpp/a0309_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f009.png b/graphics/sa1/obj_tiles/4bpp/a0309_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0309_f010.png b/graphics/sa1/obj_tiles/4bpp/a0309_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0309_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0309_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f000.png b/graphics/sa1/obj_tiles/4bpp/a0310_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f001.png b/graphics/sa1/obj_tiles/4bpp/a0310_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f002.png b/graphics/sa1/obj_tiles/4bpp/a0310_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f003.png b/graphics/sa1/obj_tiles/4bpp/a0310_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f004.png b/graphics/sa1/obj_tiles/4bpp/a0310_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f005.png b/graphics/sa1/obj_tiles/4bpp/a0310_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f006.png b/graphics/sa1/obj_tiles/4bpp/a0310_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f007.png b/graphics/sa1/obj_tiles/4bpp/a0310_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0310_f008.png b/graphics/sa1/obj_tiles/4bpp/a0310_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0310_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0310_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f000.png b/graphics/sa1/obj_tiles/4bpp/a0311_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f001.png b/graphics/sa1/obj_tiles/4bpp/a0311_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f002.png b/graphics/sa1/obj_tiles/4bpp/a0311_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f003.png b/graphics/sa1/obj_tiles/4bpp/a0311_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f004.png b/graphics/sa1/obj_tiles/4bpp/a0311_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f005.png b/graphics/sa1/obj_tiles/4bpp/a0311_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f006.png b/graphics/sa1/obj_tiles/4bpp/a0311_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f007.png b/graphics/sa1/obj_tiles/4bpp/a0311_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0311_f008.png b/graphics/sa1/obj_tiles/4bpp/a0311_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0311_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0311_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f000.png b/graphics/sa1/obj_tiles/4bpp/a0312_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f001.png b/graphics/sa1/obj_tiles/4bpp/a0312_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f002.png b/graphics/sa1/obj_tiles/4bpp/a0312_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f003.png b/graphics/sa1/obj_tiles/4bpp/a0312_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f004.png b/graphics/sa1/obj_tiles/4bpp/a0312_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f005.png b/graphics/sa1/obj_tiles/4bpp/a0312_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f006.png b/graphics/sa1/obj_tiles/4bpp/a0312_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f007.png b/graphics/sa1/obj_tiles/4bpp/a0312_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0312_f008.png b/graphics/sa1/obj_tiles/4bpp/a0312_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0312_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0312_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0315_f000.png b/graphics/sa1/obj_tiles/4bpp/a0315_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0315_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0315_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0315_f001.png b/graphics/sa1/obj_tiles/4bpp/a0315_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0315_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0315_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0317_f000.png b/graphics/sa1/obj_tiles/4bpp/a0317_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0317_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0317_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0317_f001.png b/graphics/sa1/obj_tiles/4bpp/a0317_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0317_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0317_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0317_f002.png b/graphics/sa1/obj_tiles/4bpp/a0317_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0317_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0317_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0317_f003.png b/graphics/sa1/obj_tiles/4bpp/a0317_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0317_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0317_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0319_f000.png b/graphics/sa1/obj_tiles/4bpp/a0319_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0319_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0319_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0319_f001.png b/graphics/sa1/obj_tiles/4bpp/a0319_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0319_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0319_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0319_f002.png b/graphics/sa1/obj_tiles/4bpp/a0319_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0319_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0319_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0319_f003.png b/graphics/sa1/obj_tiles/4bpp/a0319_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0319_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0319_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0319_f004.png b/graphics/sa1/obj_tiles/4bpp/a0319_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0319_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0319_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f000.png b/graphics/sa1/obj_tiles/4bpp/a0320_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f001.png b/graphics/sa1/obj_tiles/4bpp/a0320_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f002.png b/graphics/sa1/obj_tiles/4bpp/a0320_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f003.png b/graphics/sa1/obj_tiles/4bpp/a0320_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f004.png b/graphics/sa1/obj_tiles/4bpp/a0320_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f005.png b/graphics/sa1/obj_tiles/4bpp/a0320_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f006.png b/graphics/sa1/obj_tiles/4bpp/a0320_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f007.png b/graphics/sa1/obj_tiles/4bpp/a0320_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f008.png b/graphics/sa1/obj_tiles/4bpp/a0320_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f009.png b/graphics/sa1/obj_tiles/4bpp/a0320_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f010.png b/graphics/sa1/obj_tiles/4bpp/a0320_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f011.png b/graphics/sa1/obj_tiles/4bpp/a0320_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f012.png b/graphics/sa1/obj_tiles/4bpp/a0320_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f013.png b/graphics/sa1/obj_tiles/4bpp/a0320_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0320_f014.png b/graphics/sa1/obj_tiles/4bpp/a0320_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0320_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0320_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f000.png b/graphics/sa1/obj_tiles/4bpp/a0321_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f001.png b/graphics/sa1/obj_tiles/4bpp/a0321_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f002.png b/graphics/sa1/obj_tiles/4bpp/a0321_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f003.png b/graphics/sa1/obj_tiles/4bpp/a0321_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f004.png b/graphics/sa1/obj_tiles/4bpp/a0321_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f005.png b/graphics/sa1/obj_tiles/4bpp/a0321_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f006.png b/graphics/sa1/obj_tiles/4bpp/a0321_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f007.png b/graphics/sa1/obj_tiles/4bpp/a0321_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f008.png b/graphics/sa1/obj_tiles/4bpp/a0321_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f009.png b/graphics/sa1/obj_tiles/4bpp/a0321_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f010.png b/graphics/sa1/obj_tiles/4bpp/a0321_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f011.png b/graphics/sa1/obj_tiles/4bpp/a0321_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f012.png b/graphics/sa1/obj_tiles/4bpp/a0321_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f013.png b/graphics/sa1/obj_tiles/4bpp/a0321_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f014.png b/graphics/sa1/obj_tiles/4bpp/a0321_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f015.png b/graphics/sa1/obj_tiles/4bpp/a0321_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f016.png b/graphics/sa1/obj_tiles/4bpp/a0321_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f017.png b/graphics/sa1/obj_tiles/4bpp/a0321_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f018.png b/graphics/sa1/obj_tiles/4bpp/a0321_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f019.png b/graphics/sa1/obj_tiles/4bpp/a0321_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f020.png b/graphics/sa1/obj_tiles/4bpp/a0321_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f021.png b/graphics/sa1/obj_tiles/4bpp/a0321_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f022.png b/graphics/sa1/obj_tiles/4bpp/a0321_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f023.png b/graphics/sa1/obj_tiles/4bpp/a0321_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f024.png b/graphics/sa1/obj_tiles/4bpp/a0321_f024.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f024.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f024.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f025.png b/graphics/sa1/obj_tiles/4bpp/a0321_f025.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f025.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f025.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f026.png b/graphics/sa1/obj_tiles/4bpp/a0321_f026.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f026.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f026.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f027.png b/graphics/sa1/obj_tiles/4bpp/a0321_f027.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f027.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f027.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f028.png b/graphics/sa1/obj_tiles/4bpp/a0321_f028.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f028.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f028.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0321_f029.png b/graphics/sa1/obj_tiles/4bpp/a0321_f029.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0321_f029.png rename to graphics/sa1/obj_tiles/4bpp/a0321_f029.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f000.png b/graphics/sa1/obj_tiles/4bpp/a0322_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f001.png b/graphics/sa1/obj_tiles/4bpp/a0322_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f002.png b/graphics/sa1/obj_tiles/4bpp/a0322_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f003.png b/graphics/sa1/obj_tiles/4bpp/a0322_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f004.png b/graphics/sa1/obj_tiles/4bpp/a0322_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f005.png b/graphics/sa1/obj_tiles/4bpp/a0322_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f006.png b/graphics/sa1/obj_tiles/4bpp/a0322_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f007.png b/graphics/sa1/obj_tiles/4bpp/a0322_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f008.png b/graphics/sa1/obj_tiles/4bpp/a0322_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0322_f009.png b/graphics/sa1/obj_tiles/4bpp/a0322_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0322_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0322_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0323_f000.png b/graphics/sa1/obj_tiles/4bpp/a0323_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0323_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0323_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0323_f001.png b/graphics/sa1/obj_tiles/4bpp/a0323_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0323_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0323_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0323_f002.png b/graphics/sa1/obj_tiles/4bpp/a0323_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0323_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0323_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0323_f003.png b/graphics/sa1/obj_tiles/4bpp/a0323_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0323_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0323_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f000.png b/graphics/sa1/obj_tiles/4bpp/a0324_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f001.png b/graphics/sa1/obj_tiles/4bpp/a0324_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f002.png b/graphics/sa1/obj_tiles/4bpp/a0324_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f003.png b/graphics/sa1/obj_tiles/4bpp/a0324_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f004.png b/graphics/sa1/obj_tiles/4bpp/a0324_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f005.png b/graphics/sa1/obj_tiles/4bpp/a0324_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f006.png b/graphics/sa1/obj_tiles/4bpp/a0324_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f007.png b/graphics/sa1/obj_tiles/4bpp/a0324_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0324_f008.png b/graphics/sa1/obj_tiles/4bpp/a0324_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0324_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0324_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f000.png b/graphics/sa1/obj_tiles/4bpp/a0325_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f001.png b/graphics/sa1/obj_tiles/4bpp/a0325_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f002.png b/graphics/sa1/obj_tiles/4bpp/a0325_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f003.png b/graphics/sa1/obj_tiles/4bpp/a0325_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f004.png b/graphics/sa1/obj_tiles/4bpp/a0325_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f005.png b/graphics/sa1/obj_tiles/4bpp/a0325_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f006.png b/graphics/sa1/obj_tiles/4bpp/a0325_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f007.png b/graphics/sa1/obj_tiles/4bpp/a0325_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f008.png b/graphics/sa1/obj_tiles/4bpp/a0325_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f009.png b/graphics/sa1/obj_tiles/4bpp/a0325_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f010.png b/graphics/sa1/obj_tiles/4bpp/a0325_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f011.png b/graphics/sa1/obj_tiles/4bpp/a0325_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f012.png b/graphics/sa1/obj_tiles/4bpp/a0325_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f013.png b/graphics/sa1/obj_tiles/4bpp/a0325_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f014.png b/graphics/sa1/obj_tiles/4bpp/a0325_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f015.png b/graphics/sa1/obj_tiles/4bpp/a0325_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f016.png b/graphics/sa1/obj_tiles/4bpp/a0325_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0325_f017.png b/graphics/sa1/obj_tiles/4bpp/a0325_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0325_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0325_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f000.png b/graphics/sa1/obj_tiles/4bpp/a0326_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f001.png b/graphics/sa1/obj_tiles/4bpp/a0326_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f002.png b/graphics/sa1/obj_tiles/4bpp/a0326_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f003.png b/graphics/sa1/obj_tiles/4bpp/a0326_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f004.png b/graphics/sa1/obj_tiles/4bpp/a0326_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f005.png b/graphics/sa1/obj_tiles/4bpp/a0326_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f006.png b/graphics/sa1/obj_tiles/4bpp/a0326_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f007.png b/graphics/sa1/obj_tiles/4bpp/a0326_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f008.png b/graphics/sa1/obj_tiles/4bpp/a0326_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f009.png b/graphics/sa1/obj_tiles/4bpp/a0326_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f010.png b/graphics/sa1/obj_tiles/4bpp/a0326_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f011.png b/graphics/sa1/obj_tiles/4bpp/a0326_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f012.png b/graphics/sa1/obj_tiles/4bpp/a0326_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f013.png b/graphics/sa1/obj_tiles/4bpp/a0326_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f014.png b/graphics/sa1/obj_tiles/4bpp/a0326_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0326_f015.png b/graphics/sa1/obj_tiles/4bpp/a0326_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0326_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0326_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0327_f000.png b/graphics/sa1/obj_tiles/4bpp/a0327_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0327_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0327_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0327_f001.png b/graphics/sa1/obj_tiles/4bpp/a0327_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0327_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0327_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0327_f002.png b/graphics/sa1/obj_tiles/4bpp/a0327_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0327_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0327_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f000.png b/graphics/sa1/obj_tiles/4bpp/a0328_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f001.png b/graphics/sa1/obj_tiles/4bpp/a0328_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f002.png b/graphics/sa1/obj_tiles/4bpp/a0328_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f003.png b/graphics/sa1/obj_tiles/4bpp/a0328_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f004.png b/graphics/sa1/obj_tiles/4bpp/a0328_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f005.png b/graphics/sa1/obj_tiles/4bpp/a0328_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f006.png b/graphics/sa1/obj_tiles/4bpp/a0328_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f007.png b/graphics/sa1/obj_tiles/4bpp/a0328_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f008.png b/graphics/sa1/obj_tiles/4bpp/a0328_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f009.png b/graphics/sa1/obj_tiles/4bpp/a0328_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0328_f010.png b/graphics/sa1/obj_tiles/4bpp/a0328_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0328_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0328_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f000.png b/graphics/sa1/obj_tiles/4bpp/a0329_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f001.png b/graphics/sa1/obj_tiles/4bpp/a0329_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f002.png b/graphics/sa1/obj_tiles/4bpp/a0329_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f003.png b/graphics/sa1/obj_tiles/4bpp/a0329_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f004.png b/graphics/sa1/obj_tiles/4bpp/a0329_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f005.png b/graphics/sa1/obj_tiles/4bpp/a0329_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f006.png b/graphics/sa1/obj_tiles/4bpp/a0329_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f007.png b/graphics/sa1/obj_tiles/4bpp/a0329_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f008.png b/graphics/sa1/obj_tiles/4bpp/a0329_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f009.png b/graphics/sa1/obj_tiles/4bpp/a0329_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f010.png b/graphics/sa1/obj_tiles/4bpp/a0329_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f011.png b/graphics/sa1/obj_tiles/4bpp/a0329_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f012.png b/graphics/sa1/obj_tiles/4bpp/a0329_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0329_f013.png b/graphics/sa1/obj_tiles/4bpp/a0329_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0329_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0329_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f000.png b/graphics/sa1/obj_tiles/4bpp/a0330_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f001.png b/graphics/sa1/obj_tiles/4bpp/a0330_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f002.png b/graphics/sa1/obj_tiles/4bpp/a0330_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f003.png b/graphics/sa1/obj_tiles/4bpp/a0330_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f004.png b/graphics/sa1/obj_tiles/4bpp/a0330_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f005.png b/graphics/sa1/obj_tiles/4bpp/a0330_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0330_f006.png b/graphics/sa1/obj_tiles/4bpp/a0330_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0330_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0330_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0331_f000.png b/graphics/sa1/obj_tiles/4bpp/a0331_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0331_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0331_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0331_f001.png b/graphics/sa1/obj_tiles/4bpp/a0331_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0331_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0331_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0331_f002.png b/graphics/sa1/obj_tiles/4bpp/a0331_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0331_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0331_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0331_f003.png b/graphics/sa1/obj_tiles/4bpp/a0331_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0331_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0331_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0331_f004.png b/graphics/sa1/obj_tiles/4bpp/a0331_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0331_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0331_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0331_f005.png b/graphics/sa1/obj_tiles/4bpp/a0331_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0331_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0331_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f000.png b/graphics/sa1/obj_tiles/4bpp/a0332_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f001.png b/graphics/sa1/obj_tiles/4bpp/a0332_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f002.png b/graphics/sa1/obj_tiles/4bpp/a0332_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f003.png b/graphics/sa1/obj_tiles/4bpp/a0332_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f004.png b/graphics/sa1/obj_tiles/4bpp/a0332_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f005.png b/graphics/sa1/obj_tiles/4bpp/a0332_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f006.png b/graphics/sa1/obj_tiles/4bpp/a0332_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0332_f007.png b/graphics/sa1/obj_tiles/4bpp/a0332_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0332_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0332_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f000.png b/graphics/sa1/obj_tiles/4bpp/a0333_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f001.png b/graphics/sa1/obj_tiles/4bpp/a0333_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f002.png b/graphics/sa1/obj_tiles/4bpp/a0333_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f003.png b/graphics/sa1/obj_tiles/4bpp/a0333_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f004.png b/graphics/sa1/obj_tiles/4bpp/a0333_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f005.png b/graphics/sa1/obj_tiles/4bpp/a0333_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f006.png b/graphics/sa1/obj_tiles/4bpp/a0333_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f007.png b/graphics/sa1/obj_tiles/4bpp/a0333_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f008.png b/graphics/sa1/obj_tiles/4bpp/a0333_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f009.png b/graphics/sa1/obj_tiles/4bpp/a0333_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f010.png b/graphics/sa1/obj_tiles/4bpp/a0333_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f011.png b/graphics/sa1/obj_tiles/4bpp/a0333_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f012.png b/graphics/sa1/obj_tiles/4bpp/a0333_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0333_f013.png b/graphics/sa1/obj_tiles/4bpp/a0333_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0333_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0333_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f000.png b/graphics/sa1/obj_tiles/4bpp/a0334_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f001.png b/graphics/sa1/obj_tiles/4bpp/a0334_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f002.png b/graphics/sa1/obj_tiles/4bpp/a0334_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f003.png b/graphics/sa1/obj_tiles/4bpp/a0334_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f004.png b/graphics/sa1/obj_tiles/4bpp/a0334_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f005.png b/graphics/sa1/obj_tiles/4bpp/a0334_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f006.png b/graphics/sa1/obj_tiles/4bpp/a0334_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f007.png b/graphics/sa1/obj_tiles/4bpp/a0334_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f008.png b/graphics/sa1/obj_tiles/4bpp/a0334_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f009.png b/graphics/sa1/obj_tiles/4bpp/a0334_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f010.png b/graphics/sa1/obj_tiles/4bpp/a0334_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f011.png b/graphics/sa1/obj_tiles/4bpp/a0334_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f012.png b/graphics/sa1/obj_tiles/4bpp/a0334_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f013.png b/graphics/sa1/obj_tiles/4bpp/a0334_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f014.png b/graphics/sa1/obj_tiles/4bpp/a0334_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f015.png b/graphics/sa1/obj_tiles/4bpp/a0334_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f016.png b/graphics/sa1/obj_tiles/4bpp/a0334_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f017.png b/graphics/sa1/obj_tiles/4bpp/a0334_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f018.png b/graphics/sa1/obj_tiles/4bpp/a0334_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f019.png b/graphics/sa1/obj_tiles/4bpp/a0334_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f020.png b/graphics/sa1/obj_tiles/4bpp/a0334_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f021.png b/graphics/sa1/obj_tiles/4bpp/a0334_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f022.png b/graphics/sa1/obj_tiles/4bpp/a0334_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0334_f023.png b/graphics/sa1/obj_tiles/4bpp/a0334_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0334_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0334_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f000.png b/graphics/sa1/obj_tiles/4bpp/a0335_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f001.png b/graphics/sa1/obj_tiles/4bpp/a0335_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f002.png b/graphics/sa1/obj_tiles/4bpp/a0335_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f003.png b/graphics/sa1/obj_tiles/4bpp/a0335_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f004.png b/graphics/sa1/obj_tiles/4bpp/a0335_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f005.png b/graphics/sa1/obj_tiles/4bpp/a0335_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f006.png b/graphics/sa1/obj_tiles/4bpp/a0335_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0335_f007.png b/graphics/sa1/obj_tiles/4bpp/a0335_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0335_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0335_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0336_f000.png b/graphics/sa1/obj_tiles/4bpp/a0336_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0336_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0336_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0336_f001.png b/graphics/sa1/obj_tiles/4bpp/a0336_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0336_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0336_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0336_f002.png b/graphics/sa1/obj_tiles/4bpp/a0336_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0336_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0336_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0336_f003.png b/graphics/sa1/obj_tiles/4bpp/a0336_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0336_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0336_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0336_f004.png b/graphics/sa1/obj_tiles/4bpp/a0336_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0336_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0336_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0337_f000.png b/graphics/sa1/obj_tiles/4bpp/a0337_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0337_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0337_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0337_f001.png b/graphics/sa1/obj_tiles/4bpp/a0337_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0337_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0337_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0337_f002.png b/graphics/sa1/obj_tiles/4bpp/a0337_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0337_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0337_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0337_f003.png b/graphics/sa1/obj_tiles/4bpp/a0337_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0337_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0337_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f000.png b/graphics/sa1/obj_tiles/4bpp/a0338_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f001.png b/graphics/sa1/obj_tiles/4bpp/a0338_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f002.png b/graphics/sa1/obj_tiles/4bpp/a0338_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f003.png b/graphics/sa1/obj_tiles/4bpp/a0338_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f004.png b/graphics/sa1/obj_tiles/4bpp/a0338_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f005.png b/graphics/sa1/obj_tiles/4bpp/a0338_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f006.png b/graphics/sa1/obj_tiles/4bpp/a0338_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f007.png b/graphics/sa1/obj_tiles/4bpp/a0338_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f008.png b/graphics/sa1/obj_tiles/4bpp/a0338_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f009.png b/graphics/sa1/obj_tiles/4bpp/a0338_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f010.png b/graphics/sa1/obj_tiles/4bpp/a0338_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f011.png b/graphics/sa1/obj_tiles/4bpp/a0338_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f012.png b/graphics/sa1/obj_tiles/4bpp/a0338_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f013.png b/graphics/sa1/obj_tiles/4bpp/a0338_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f014.png b/graphics/sa1/obj_tiles/4bpp/a0338_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f015.png b/graphics/sa1/obj_tiles/4bpp/a0338_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f016.png b/graphics/sa1/obj_tiles/4bpp/a0338_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f017.png b/graphics/sa1/obj_tiles/4bpp/a0338_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f018.png b/graphics/sa1/obj_tiles/4bpp/a0338_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0338_f019.png b/graphics/sa1/obj_tiles/4bpp/a0338_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0338_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0338_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0339_f000.png b/graphics/sa1/obj_tiles/4bpp/a0339_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0339_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0339_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0339_f001.png b/graphics/sa1/obj_tiles/4bpp/a0339_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0339_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0339_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0339_f002.png b/graphics/sa1/obj_tiles/4bpp/a0339_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0339_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0339_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0339_f003.png b/graphics/sa1/obj_tiles/4bpp/a0339_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0339_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0339_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0339_f004.png b/graphics/sa1/obj_tiles/4bpp/a0339_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0339_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0339_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0339_f005.png b/graphics/sa1/obj_tiles/4bpp/a0339_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0339_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0339_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f000.png b/graphics/sa1/obj_tiles/4bpp/a0340_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f001.png b/graphics/sa1/obj_tiles/4bpp/a0340_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f002.png b/graphics/sa1/obj_tiles/4bpp/a0340_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f003.png b/graphics/sa1/obj_tiles/4bpp/a0340_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f004.png b/graphics/sa1/obj_tiles/4bpp/a0340_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f005.png b/graphics/sa1/obj_tiles/4bpp/a0340_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f006.png b/graphics/sa1/obj_tiles/4bpp/a0340_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0340_f007.png b/graphics/sa1/obj_tiles/4bpp/a0340_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0340_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0340_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0341_f000.png b/graphics/sa1/obj_tiles/4bpp/a0341_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0341_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0341_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0341_f001.png b/graphics/sa1/obj_tiles/4bpp/a0341_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0341_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0341_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0341_f002.png b/graphics/sa1/obj_tiles/4bpp/a0341_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0341_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0341_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0342_f000.png b/graphics/sa1/obj_tiles/4bpp/a0342_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0342_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0342_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0342_f001.png b/graphics/sa1/obj_tiles/4bpp/a0342_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0342_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0342_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0342_f002.png b/graphics/sa1/obj_tiles/4bpp/a0342_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0342_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0342_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0342_f003.png b/graphics/sa1/obj_tiles/4bpp/a0342_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0342_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0342_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f000.png b/graphics/sa1/obj_tiles/4bpp/a0343_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f001.png b/graphics/sa1/obj_tiles/4bpp/a0343_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f002.png b/graphics/sa1/obj_tiles/4bpp/a0343_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f003.png b/graphics/sa1/obj_tiles/4bpp/a0343_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f004.png b/graphics/sa1/obj_tiles/4bpp/a0343_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f005.png b/graphics/sa1/obj_tiles/4bpp/a0343_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f006.png b/graphics/sa1/obj_tiles/4bpp/a0343_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f007.png b/graphics/sa1/obj_tiles/4bpp/a0343_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f008.png b/graphics/sa1/obj_tiles/4bpp/a0343_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0343_f009.png b/graphics/sa1/obj_tiles/4bpp/a0343_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0343_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0343_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f000.png b/graphics/sa1/obj_tiles/4bpp/a0348_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f001.png b/graphics/sa1/obj_tiles/4bpp/a0348_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f002.png b/graphics/sa1/obj_tiles/4bpp/a0348_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f003.png b/graphics/sa1/obj_tiles/4bpp/a0348_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f004.png b/graphics/sa1/obj_tiles/4bpp/a0348_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f005.png b/graphics/sa1/obj_tiles/4bpp/a0348_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f006.png b/graphics/sa1/obj_tiles/4bpp/a0348_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f007.png b/graphics/sa1/obj_tiles/4bpp/a0348_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f008.png b/graphics/sa1/obj_tiles/4bpp/a0348_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f009.png b/graphics/sa1/obj_tiles/4bpp/a0348_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f010.png b/graphics/sa1/obj_tiles/4bpp/a0348_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f011.png b/graphics/sa1/obj_tiles/4bpp/a0348_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f012.png b/graphics/sa1/obj_tiles/4bpp/a0348_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f013.png b/graphics/sa1/obj_tiles/4bpp/a0348_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0348_f014.png b/graphics/sa1/obj_tiles/4bpp/a0348_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0348_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0348_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f000.png b/graphics/sa1/obj_tiles/4bpp/a0353_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f001.png b/graphics/sa1/obj_tiles/4bpp/a0353_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f002.png b/graphics/sa1/obj_tiles/4bpp/a0353_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f003.png b/graphics/sa1/obj_tiles/4bpp/a0353_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f004.png b/graphics/sa1/obj_tiles/4bpp/a0353_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f005.png b/graphics/sa1/obj_tiles/4bpp/a0353_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f006.png b/graphics/sa1/obj_tiles/4bpp/a0353_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f007.png b/graphics/sa1/obj_tiles/4bpp/a0353_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f008.png b/graphics/sa1/obj_tiles/4bpp/a0353_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f009.png b/graphics/sa1/obj_tiles/4bpp/a0353_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f010.png b/graphics/sa1/obj_tiles/4bpp/a0353_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f011.png b/graphics/sa1/obj_tiles/4bpp/a0353_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f012.png b/graphics/sa1/obj_tiles/4bpp/a0353_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f013.png b/graphics/sa1/obj_tiles/4bpp/a0353_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f014.png b/graphics/sa1/obj_tiles/4bpp/a0353_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f015.png b/graphics/sa1/obj_tiles/4bpp/a0353_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f016.png b/graphics/sa1/obj_tiles/4bpp/a0353_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0353_f017.png b/graphics/sa1/obj_tiles/4bpp/a0353_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0353_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0353_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f000.png b/graphics/sa1/obj_tiles/4bpp/a0373_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f001.png b/graphics/sa1/obj_tiles/4bpp/a0373_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f002.png b/graphics/sa1/obj_tiles/4bpp/a0373_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f003.png b/graphics/sa1/obj_tiles/4bpp/a0373_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f004.png b/graphics/sa1/obj_tiles/4bpp/a0373_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f005.png b/graphics/sa1/obj_tiles/4bpp/a0373_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f006.png b/graphics/sa1/obj_tiles/4bpp/a0373_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f007.png b/graphics/sa1/obj_tiles/4bpp/a0373_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f008.png b/graphics/sa1/obj_tiles/4bpp/a0373_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f009.png b/graphics/sa1/obj_tiles/4bpp/a0373_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f010.png b/graphics/sa1/obj_tiles/4bpp/a0373_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f011.png b/graphics/sa1/obj_tiles/4bpp/a0373_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f012.png b/graphics/sa1/obj_tiles/4bpp/a0373_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f013.png b/graphics/sa1/obj_tiles/4bpp/a0373_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0373_f014.png b/graphics/sa1/obj_tiles/4bpp/a0373_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0373_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0373_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f000.png b/graphics/sa1/obj_tiles/4bpp/a0374_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f001.png b/graphics/sa1/obj_tiles/4bpp/a0374_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f002.png b/graphics/sa1/obj_tiles/4bpp/a0374_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f003.png b/graphics/sa1/obj_tiles/4bpp/a0374_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f004.png b/graphics/sa1/obj_tiles/4bpp/a0374_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f005.png b/graphics/sa1/obj_tiles/4bpp/a0374_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f006.png b/graphics/sa1/obj_tiles/4bpp/a0374_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f007.png b/graphics/sa1/obj_tiles/4bpp/a0374_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f008.png b/graphics/sa1/obj_tiles/4bpp/a0374_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0374_f009.png b/graphics/sa1/obj_tiles/4bpp/a0374_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0374_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0374_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f000.png b/graphics/sa1/obj_tiles/4bpp/a0375_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f001.png b/graphics/sa1/obj_tiles/4bpp/a0375_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f002.png b/graphics/sa1/obj_tiles/4bpp/a0375_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f003.png b/graphics/sa1/obj_tiles/4bpp/a0375_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f004.png b/graphics/sa1/obj_tiles/4bpp/a0375_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f005.png b/graphics/sa1/obj_tiles/4bpp/a0375_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f006.png b/graphics/sa1/obj_tiles/4bpp/a0375_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f007.png b/graphics/sa1/obj_tiles/4bpp/a0375_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f008.png b/graphics/sa1/obj_tiles/4bpp/a0375_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f009.png b/graphics/sa1/obj_tiles/4bpp/a0375_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f010.png b/graphics/sa1/obj_tiles/4bpp/a0375_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f011.png b/graphics/sa1/obj_tiles/4bpp/a0375_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0375_f012.png b/graphics/sa1/obj_tiles/4bpp/a0375_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0375_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0375_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f000.png b/graphics/sa1/obj_tiles/4bpp/a0376_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f001.png b/graphics/sa1/obj_tiles/4bpp/a0376_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f002.png b/graphics/sa1/obj_tiles/4bpp/a0376_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f003.png b/graphics/sa1/obj_tiles/4bpp/a0376_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f004.png b/graphics/sa1/obj_tiles/4bpp/a0376_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f005.png b/graphics/sa1/obj_tiles/4bpp/a0376_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f006.png b/graphics/sa1/obj_tiles/4bpp/a0376_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f007.png b/graphics/sa1/obj_tiles/4bpp/a0376_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f008.png b/graphics/sa1/obj_tiles/4bpp/a0376_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f009.png b/graphics/sa1/obj_tiles/4bpp/a0376_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f010.png b/graphics/sa1/obj_tiles/4bpp/a0376_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f011.png b/graphics/sa1/obj_tiles/4bpp/a0376_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f012.png b/graphics/sa1/obj_tiles/4bpp/a0376_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0376_f013.png b/graphics/sa1/obj_tiles/4bpp/a0376_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0376_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0376_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f000.png b/graphics/sa1/obj_tiles/4bpp/a0377_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f001.png b/graphics/sa1/obj_tiles/4bpp/a0377_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f002.png b/graphics/sa1/obj_tiles/4bpp/a0377_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f003.png b/graphics/sa1/obj_tiles/4bpp/a0377_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f004.png b/graphics/sa1/obj_tiles/4bpp/a0377_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f005.png b/graphics/sa1/obj_tiles/4bpp/a0377_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f006.png b/graphics/sa1/obj_tiles/4bpp/a0377_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f007.png b/graphics/sa1/obj_tiles/4bpp/a0377_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f008.png b/graphics/sa1/obj_tiles/4bpp/a0377_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f009.png b/graphics/sa1/obj_tiles/4bpp/a0377_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f010.png b/graphics/sa1/obj_tiles/4bpp/a0377_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f011.png b/graphics/sa1/obj_tiles/4bpp/a0377_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0377_f012.png b/graphics/sa1/obj_tiles/4bpp/a0377_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0377_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0377_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0379_f000.png b/graphics/sa1/obj_tiles/4bpp/a0379_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0379_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0379_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0379_f001.png b/graphics/sa1/obj_tiles/4bpp/a0379_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0379_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0379_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0379_f002.png b/graphics/sa1/obj_tiles/4bpp/a0379_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0379_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0379_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0380_f000.png b/graphics/sa1/obj_tiles/4bpp/a0380_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0380_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0380_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0380_f001.png b/graphics/sa1/obj_tiles/4bpp/a0380_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0380_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0380_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0380_f002.png b/graphics/sa1/obj_tiles/4bpp/a0380_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0380_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0380_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0381_f000.png b/graphics/sa1/obj_tiles/4bpp/a0381_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0381_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0381_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0381_f001.png b/graphics/sa1/obj_tiles/4bpp/a0381_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0381_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0381_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0381_f002.png b/graphics/sa1/obj_tiles/4bpp/a0381_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0381_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0381_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0383_f000.png b/graphics/sa1/obj_tiles/4bpp/a0383_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0383_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0383_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0383_f001.png b/graphics/sa1/obj_tiles/4bpp/a0383_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0383_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0383_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0384_f000.png b/graphics/sa1/obj_tiles/4bpp/a0384_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0384_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0384_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0384_f001.png b/graphics/sa1/obj_tiles/4bpp/a0384_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0384_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0384_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0384_f002.png b/graphics/sa1/obj_tiles/4bpp/a0384_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0384_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0384_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0385_f000.png b/graphics/sa1/obj_tiles/4bpp/a0385_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0385_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0385_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0385_f001.png b/graphics/sa1/obj_tiles/4bpp/a0385_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0385_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0385_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0386_f000.png b/graphics/sa1/obj_tiles/4bpp/a0386_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0386_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0386_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0386_f001.png b/graphics/sa1/obj_tiles/4bpp/a0386_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0386_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0386_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0386_f002.png b/graphics/sa1/obj_tiles/4bpp/a0386_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0386_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0386_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0387_f000.png b/graphics/sa1/obj_tiles/4bpp/a0387_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0387_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0387_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0387_f001.png b/graphics/sa1/obj_tiles/4bpp/a0387_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0387_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0387_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0387_f002.png b/graphics/sa1/obj_tiles/4bpp/a0387_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0387_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0387_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0387_f003.png b/graphics/sa1/obj_tiles/4bpp/a0387_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0387_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0387_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f000.png b/graphics/sa1/obj_tiles/4bpp/a0391_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f001.png b/graphics/sa1/obj_tiles/4bpp/a0391_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f002.png b/graphics/sa1/obj_tiles/4bpp/a0391_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f003.png b/graphics/sa1/obj_tiles/4bpp/a0391_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f004.png b/graphics/sa1/obj_tiles/4bpp/a0391_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f005.png b/graphics/sa1/obj_tiles/4bpp/a0391_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f006.png b/graphics/sa1/obj_tiles/4bpp/a0391_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0391_f007.png b/graphics/sa1/obj_tiles/4bpp/a0391_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0391_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0391_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0392_f000.png b/graphics/sa1/obj_tiles/4bpp/a0392_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0392_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0392_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0392_f001.png b/graphics/sa1/obj_tiles/4bpp/a0392_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0392_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0392_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0392_f002.png b/graphics/sa1/obj_tiles/4bpp/a0392_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0392_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0392_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0392_f003.png b/graphics/sa1/obj_tiles/4bpp/a0392_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0392_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0392_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0393_f000.png b/graphics/sa1/obj_tiles/4bpp/a0393_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0393_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0393_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0393_f001.png b/graphics/sa1/obj_tiles/4bpp/a0393_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0393_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0393_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0393_f002.png b/graphics/sa1/obj_tiles/4bpp/a0393_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0393_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0393_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f000.png b/graphics/sa1/obj_tiles/4bpp/a0394_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f001.png b/graphics/sa1/obj_tiles/4bpp/a0394_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f002.png b/graphics/sa1/obj_tiles/4bpp/a0394_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f003.png b/graphics/sa1/obj_tiles/4bpp/a0394_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f004.png b/graphics/sa1/obj_tiles/4bpp/a0394_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f005.png b/graphics/sa1/obj_tiles/4bpp/a0394_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f006.png b/graphics/sa1/obj_tiles/4bpp/a0394_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f007.png b/graphics/sa1/obj_tiles/4bpp/a0394_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f008.png b/graphics/sa1/obj_tiles/4bpp/a0394_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0394_f009.png b/graphics/sa1/obj_tiles/4bpp/a0394_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0394_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0394_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0396_f000.png b/graphics/sa1/obj_tiles/4bpp/a0396_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0396_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0396_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0397_f000.png b/graphics/sa1/obj_tiles/4bpp/a0397_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0397_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0397_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0397_f001.png b/graphics/sa1/obj_tiles/4bpp/a0397_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0397_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0397_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0397_f002.png b/graphics/sa1/obj_tiles/4bpp/a0397_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0397_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0397_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f000.png b/graphics/sa1/obj_tiles/4bpp/a0398_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f001.png b/graphics/sa1/obj_tiles/4bpp/a0398_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f002.png b/graphics/sa1/obj_tiles/4bpp/a0398_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f003.png b/graphics/sa1/obj_tiles/4bpp/a0398_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f004.png b/graphics/sa1/obj_tiles/4bpp/a0398_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f005.png b/graphics/sa1/obj_tiles/4bpp/a0398_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f006.png b/graphics/sa1/obj_tiles/4bpp/a0398_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f007.png b/graphics/sa1/obj_tiles/4bpp/a0398_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f008.png b/graphics/sa1/obj_tiles/4bpp/a0398_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f009.png b/graphics/sa1/obj_tiles/4bpp/a0398_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f010.png b/graphics/sa1/obj_tiles/4bpp/a0398_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f011.png b/graphics/sa1/obj_tiles/4bpp/a0398_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f012.png b/graphics/sa1/obj_tiles/4bpp/a0398_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f013.png b/graphics/sa1/obj_tiles/4bpp/a0398_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0398_f014.png b/graphics/sa1/obj_tiles/4bpp/a0398_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0398_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0398_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f000.png b/graphics/sa1/obj_tiles/4bpp/a0399_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f001.png b/graphics/sa1/obj_tiles/4bpp/a0399_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f002.png b/graphics/sa1/obj_tiles/4bpp/a0399_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f003.png b/graphics/sa1/obj_tiles/4bpp/a0399_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f004.png b/graphics/sa1/obj_tiles/4bpp/a0399_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f005.png b/graphics/sa1/obj_tiles/4bpp/a0399_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f006.png b/graphics/sa1/obj_tiles/4bpp/a0399_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f007.png b/graphics/sa1/obj_tiles/4bpp/a0399_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0399_f008.png b/graphics/sa1/obj_tiles/4bpp/a0399_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0399_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0399_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f000.png b/graphics/sa1/obj_tiles/4bpp/a0400_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f001.png b/graphics/sa1/obj_tiles/4bpp/a0400_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f002.png b/graphics/sa1/obj_tiles/4bpp/a0400_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f003.png b/graphics/sa1/obj_tiles/4bpp/a0400_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f004.png b/graphics/sa1/obj_tiles/4bpp/a0400_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f005.png b/graphics/sa1/obj_tiles/4bpp/a0400_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0400_f006.png b/graphics/sa1/obj_tiles/4bpp/a0400_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0400_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0400_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0401_f000.png b/graphics/sa1/obj_tiles/4bpp/a0401_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0401_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0401_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0401_f001.png b/graphics/sa1/obj_tiles/4bpp/a0401_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0401_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0401_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0401_f002.png b/graphics/sa1/obj_tiles/4bpp/a0401_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0401_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0401_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0401_f003.png b/graphics/sa1/obj_tiles/4bpp/a0401_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0401_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0401_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0401_f004.png b/graphics/sa1/obj_tiles/4bpp/a0401_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0401_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0401_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0401_f005.png b/graphics/sa1/obj_tiles/4bpp/a0401_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0401_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0401_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0402_f000.png b/graphics/sa1/obj_tiles/4bpp/a0402_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0402_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0402_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0402_f001.png b/graphics/sa1/obj_tiles/4bpp/a0402_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0402_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0402_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0402_f002.png b/graphics/sa1/obj_tiles/4bpp/a0402_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0402_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0402_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0402_f003.png b/graphics/sa1/obj_tiles/4bpp/a0402_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0402_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0402_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0403_f000.png b/graphics/sa1/obj_tiles/4bpp/a0403_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0403_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0403_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0403_f001.png b/graphics/sa1/obj_tiles/4bpp/a0403_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0403_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0403_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0403_f002.png b/graphics/sa1/obj_tiles/4bpp/a0403_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0403_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0403_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0403_f003.png b/graphics/sa1/obj_tiles/4bpp/a0403_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0403_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0403_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0403_f004.png b/graphics/sa1/obj_tiles/4bpp/a0403_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0403_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0403_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0404_f000.png b/graphics/sa1/obj_tiles/4bpp/a0404_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0404_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0404_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0404_f001.png b/graphics/sa1/obj_tiles/4bpp/a0404_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0404_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0404_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0404_f002.png b/graphics/sa1/obj_tiles/4bpp/a0404_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0404_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0404_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0404_f003.png b/graphics/sa1/obj_tiles/4bpp/a0404_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0404_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0404_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0404_f004.png b/graphics/sa1/obj_tiles/4bpp/a0404_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0404_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0404_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0405_f000.png b/graphics/sa1/obj_tiles/4bpp/a0405_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0405_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0405_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0405_f001.png b/graphics/sa1/obj_tiles/4bpp/a0405_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0405_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0405_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0405_f002.png b/graphics/sa1/obj_tiles/4bpp/a0405_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0405_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0405_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0405_f003.png b/graphics/sa1/obj_tiles/4bpp/a0405_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0405_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0405_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0405_f004.png b/graphics/sa1/obj_tiles/4bpp/a0405_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0405_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0405_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0405_f005.png b/graphics/sa1/obj_tiles/4bpp/a0405_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0405_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0405_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0406_f000.png b/graphics/sa1/obj_tiles/4bpp/a0406_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0406_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0406_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0406_f001.png b/graphics/sa1/obj_tiles/4bpp/a0406_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0406_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0406_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0406_f002.png b/graphics/sa1/obj_tiles/4bpp/a0406_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0406_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0406_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0406_f003.png b/graphics/sa1/obj_tiles/4bpp/a0406_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0406_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0406_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0406_f004.png b/graphics/sa1/obj_tiles/4bpp/a0406_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0406_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0406_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0406_f005.png b/graphics/sa1/obj_tiles/4bpp/a0406_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0406_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0406_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0407_f000.png b/graphics/sa1/obj_tiles/4bpp/a0407_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0407_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0407_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0407_f001.png b/graphics/sa1/obj_tiles/4bpp/a0407_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0407_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0407_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0407_f002.png b/graphics/sa1/obj_tiles/4bpp/a0407_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0407_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0407_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0407_f003.png b/graphics/sa1/obj_tiles/4bpp/a0407_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0407_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0407_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0408_f000.png b/graphics/sa1/obj_tiles/4bpp/a0408_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0408_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0408_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0409_f000.png b/graphics/sa1/obj_tiles/4bpp/a0409_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0409_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0409_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0410_f000.png b/graphics/sa1/obj_tiles/4bpp/a0410_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0410_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0410_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0410_f001.png b/graphics/sa1/obj_tiles/4bpp/a0410_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0410_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0410_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0411_f000.png b/graphics/sa1/obj_tiles/4bpp/a0411_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0411_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0411_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0411_f001.png b/graphics/sa1/obj_tiles/4bpp/a0411_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0411_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0411_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0411_f002.png b/graphics/sa1/obj_tiles/4bpp/a0411_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0411_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0411_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0411_f003.png b/graphics/sa1/obj_tiles/4bpp/a0411_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0411_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0411_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0412_f000.png b/graphics/sa1/obj_tiles/4bpp/a0412_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0412_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0412_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0412_f001.png b/graphics/sa1/obj_tiles/4bpp/a0412_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0412_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0412_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0412_f002.png b/graphics/sa1/obj_tiles/4bpp/a0412_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0412_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0412_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0412_f003.png b/graphics/sa1/obj_tiles/4bpp/a0412_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0412_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0412_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0413_f000.png b/graphics/sa1/obj_tiles/4bpp/a0413_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0413_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0413_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0413_f001.png b/graphics/sa1/obj_tiles/4bpp/a0413_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0413_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0413_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0413_f002.png b/graphics/sa1/obj_tiles/4bpp/a0413_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0413_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0413_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0413_f003.png b/graphics/sa1/obj_tiles/4bpp/a0413_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0413_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0413_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0413_f004.png b/graphics/sa1/obj_tiles/4bpp/a0413_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0413_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0413_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0414_f000.png b/graphics/sa1/obj_tiles/4bpp/a0414_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0414_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0414_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0414_f001.png b/graphics/sa1/obj_tiles/4bpp/a0414_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0414_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0414_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0415_f000.png b/graphics/sa1/obj_tiles/4bpp/a0415_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0415_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0415_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0415_f001.png b/graphics/sa1/obj_tiles/4bpp/a0415_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0415_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0415_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0415_f002.png b/graphics/sa1/obj_tiles/4bpp/a0415_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0415_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0415_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0415_f003.png b/graphics/sa1/obj_tiles/4bpp/a0415_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0415_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0415_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0416_f000.png b/graphics/sa1/obj_tiles/4bpp/a0416_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0416_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0416_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0416_f001.png b/graphics/sa1/obj_tiles/4bpp/a0416_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0416_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0416_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0416_f002.png b/graphics/sa1/obj_tiles/4bpp/a0416_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0416_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0416_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0416_f003.png b/graphics/sa1/obj_tiles/4bpp/a0416_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0416_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0416_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0416_f004.png b/graphics/sa1/obj_tiles/4bpp/a0416_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0416_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0416_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0417_f000.png b/graphics/sa1/obj_tiles/4bpp/a0417_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0417_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0417_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0417_f001.png b/graphics/sa1/obj_tiles/4bpp/a0417_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0417_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0417_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0417_f002.png b/graphics/sa1/obj_tiles/4bpp/a0417_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0417_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0417_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0417_f003.png b/graphics/sa1/obj_tiles/4bpp/a0417_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0417_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0417_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0417_f004.png b/graphics/sa1/obj_tiles/4bpp/a0417_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0417_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0417_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0417_f005.png b/graphics/sa1/obj_tiles/4bpp/a0417_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0417_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0417_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0418_f000.png b/graphics/sa1/obj_tiles/4bpp/a0418_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0418_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0418_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0418_f001.png b/graphics/sa1/obj_tiles/4bpp/a0418_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0418_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0418_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0418_f002.png b/graphics/sa1/obj_tiles/4bpp/a0418_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0418_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0418_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0418_f003.png b/graphics/sa1/obj_tiles/4bpp/a0418_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0418_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0418_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0419_f000.png b/graphics/sa1/obj_tiles/4bpp/a0419_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0419_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0419_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0419_f001.png b/graphics/sa1/obj_tiles/4bpp/a0419_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0419_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0419_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0420_f000.png b/graphics/sa1/obj_tiles/4bpp/a0420_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0420_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0420_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0421_f000.png b/graphics/sa1/obj_tiles/4bpp/a0421_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0421_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0421_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0422_f000.png b/graphics/sa1/obj_tiles/4bpp/a0422_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0422_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0422_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0422_f001.png b/graphics/sa1/obj_tiles/4bpp/a0422_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0422_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0422_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0422_f002.png b/graphics/sa1/obj_tiles/4bpp/a0422_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0422_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0422_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0422_f003.png b/graphics/sa1/obj_tiles/4bpp/a0422_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0422_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0422_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0422_f004.png b/graphics/sa1/obj_tiles/4bpp/a0422_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0422_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0422_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0423_f000.png b/graphics/sa1/obj_tiles/4bpp/a0423_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0423_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0423_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0423_f001.png b/graphics/sa1/obj_tiles/4bpp/a0423_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0423_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0423_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0423_f002.png b/graphics/sa1/obj_tiles/4bpp/a0423_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0423_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0423_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0423_f003.png b/graphics/sa1/obj_tiles/4bpp/a0423_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0423_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0423_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0423_f004.png b/graphics/sa1/obj_tiles/4bpp/a0423_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0423_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0423_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0424_f000.png b/graphics/sa1/obj_tiles/4bpp/a0424_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0424_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0424_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0424_f001.png b/graphics/sa1/obj_tiles/4bpp/a0424_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0424_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0424_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0424_f002.png b/graphics/sa1/obj_tiles/4bpp/a0424_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0424_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0424_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0425_f000.png b/graphics/sa1/obj_tiles/4bpp/a0425_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0425_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0425_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0425_f001.png b/graphics/sa1/obj_tiles/4bpp/a0425_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0425_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0425_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0425_f002.png b/graphics/sa1/obj_tiles/4bpp/a0425_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0425_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0425_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0425_f003.png b/graphics/sa1/obj_tiles/4bpp/a0425_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0425_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0425_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0425_f004.png b/graphics/sa1/obj_tiles/4bpp/a0425_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0425_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0425_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0425_f005.png b/graphics/sa1/obj_tiles/4bpp/a0425_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0425_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0425_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0426_f000.png b/graphics/sa1/obj_tiles/4bpp/a0426_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0426_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0426_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0426_f001.png b/graphics/sa1/obj_tiles/4bpp/a0426_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0426_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0426_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0426_f002.png b/graphics/sa1/obj_tiles/4bpp/a0426_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0426_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0426_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0426_f003.png b/graphics/sa1/obj_tiles/4bpp/a0426_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0426_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0426_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0426_f004.png b/graphics/sa1/obj_tiles/4bpp/a0426_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0426_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0426_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0427_f000.png b/graphics/sa1/obj_tiles/4bpp/a0427_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0427_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0427_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0428_f000.png b/graphics/sa1/obj_tiles/4bpp/a0428_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0428_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0428_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0429_f000.png b/graphics/sa1/obj_tiles/4bpp/a0429_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0429_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0429_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0429_f001.png b/graphics/sa1/obj_tiles/4bpp/a0429_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0429_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0429_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f000.png b/graphics/sa1/obj_tiles/4bpp/a0430_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f001.png b/graphics/sa1/obj_tiles/4bpp/a0430_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f002.png b/graphics/sa1/obj_tiles/4bpp/a0430_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f003.png b/graphics/sa1/obj_tiles/4bpp/a0430_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f004.png b/graphics/sa1/obj_tiles/4bpp/a0430_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f005.png b/graphics/sa1/obj_tiles/4bpp/a0430_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f006.png b/graphics/sa1/obj_tiles/4bpp/a0430_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0430_f007.png b/graphics/sa1/obj_tiles/4bpp/a0430_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0430_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0430_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0431_f000.png b/graphics/sa1/obj_tiles/4bpp/a0431_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0431_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0431_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0431_f001.png b/graphics/sa1/obj_tiles/4bpp/a0431_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0431_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0431_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0431_f002.png b/graphics/sa1/obj_tiles/4bpp/a0431_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0431_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0431_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0432_f000.png b/graphics/sa1/obj_tiles/4bpp/a0432_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0432_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0432_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0432_f001.png b/graphics/sa1/obj_tiles/4bpp/a0432_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0432_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0432_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0432_f002.png b/graphics/sa1/obj_tiles/4bpp/a0432_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0432_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0432_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0432_f003.png b/graphics/sa1/obj_tiles/4bpp/a0432_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0432_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0432_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0432_f004.png b/graphics/sa1/obj_tiles/4bpp/a0432_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0432_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0432_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0433_f000.png b/graphics/sa1/obj_tiles/4bpp/a0433_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0433_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0433_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0433_f001.png b/graphics/sa1/obj_tiles/4bpp/a0433_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0433_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0433_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0433_f002.png b/graphics/sa1/obj_tiles/4bpp/a0433_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0433_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0433_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0433_f003.png b/graphics/sa1/obj_tiles/4bpp/a0433_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0433_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0433_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0433_f004.png b/graphics/sa1/obj_tiles/4bpp/a0433_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0433_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0433_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0434_f000.png b/graphics/sa1/obj_tiles/4bpp/a0434_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0434_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0434_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0434_f001.png b/graphics/sa1/obj_tiles/4bpp/a0434_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0434_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0434_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0434_f002.png b/graphics/sa1/obj_tiles/4bpp/a0434_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0434_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0434_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0434_f003.png b/graphics/sa1/obj_tiles/4bpp/a0434_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0434_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0434_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0435_f000.png b/graphics/sa1/obj_tiles/4bpp/a0435_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0435_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0435_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0435_f001.png b/graphics/sa1/obj_tiles/4bpp/a0435_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0435_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0435_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0436_f000.png b/graphics/sa1/obj_tiles/4bpp/a0436_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0436_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0436_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0436_f001.png b/graphics/sa1/obj_tiles/4bpp/a0436_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0436_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0436_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0437_f000.png b/graphics/sa1/obj_tiles/4bpp/a0437_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0437_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0437_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0437_f001.png b/graphics/sa1/obj_tiles/4bpp/a0437_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0437_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0437_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0437_f002.png b/graphics/sa1/obj_tiles/4bpp/a0437_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0437_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0437_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0438_f000.png b/graphics/sa1/obj_tiles/4bpp/a0438_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0438_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0438_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0438_f001.png b/graphics/sa1/obj_tiles/4bpp/a0438_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0438_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0438_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0438_f002.png b/graphics/sa1/obj_tiles/4bpp/a0438_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0438_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0438_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0439_f000.png b/graphics/sa1/obj_tiles/4bpp/a0439_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0439_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0439_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0439_f001.png b/graphics/sa1/obj_tiles/4bpp/a0439_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0439_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0439_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0439_f002.png b/graphics/sa1/obj_tiles/4bpp/a0439_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0439_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0439_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0440_f000.png b/graphics/sa1/obj_tiles/4bpp/a0440_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0440_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0440_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0440_f001.png b/graphics/sa1/obj_tiles/4bpp/a0440_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0440_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0440_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0440_f002.png b/graphics/sa1/obj_tiles/4bpp/a0440_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0440_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0440_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0441_f000.png b/graphics/sa1/obj_tiles/4bpp/a0441_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0441_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0441_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0441_f001.png b/graphics/sa1/obj_tiles/4bpp/a0441_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0441_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0441_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0441_f002.png b/graphics/sa1/obj_tiles/4bpp/a0441_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0441_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0441_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0442_f000.png b/graphics/sa1/obj_tiles/4bpp/a0442_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0442_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0442_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0442_f001.png b/graphics/sa1/obj_tiles/4bpp/a0442_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0442_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0442_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0442_f002.png b/graphics/sa1/obj_tiles/4bpp/a0442_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0442_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0442_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0443_f000.png b/graphics/sa1/obj_tiles/4bpp/a0443_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0443_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0443_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0443_f001.png b/graphics/sa1/obj_tiles/4bpp/a0443_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0443_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0443_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0443_f002.png b/graphics/sa1/obj_tiles/4bpp/a0443_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0443_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0443_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0444_f000.png b/graphics/sa1/obj_tiles/4bpp/a0444_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0444_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0444_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0444_f001.png b/graphics/sa1/obj_tiles/4bpp/a0444_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0444_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0444_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0444_f002.png b/graphics/sa1/obj_tiles/4bpp/a0444_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0444_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0444_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0445_f000.png b/graphics/sa1/obj_tiles/4bpp/a0445_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0445_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0445_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0445_f001.png b/graphics/sa1/obj_tiles/4bpp/a0445_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0445_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0445_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0445_f002.png b/graphics/sa1/obj_tiles/4bpp/a0445_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0445_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0445_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0446_f000.png b/graphics/sa1/obj_tiles/4bpp/a0446_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0446_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0446_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0446_f001.png b/graphics/sa1/obj_tiles/4bpp/a0446_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0446_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0446_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0446_f002.png b/graphics/sa1/obj_tiles/4bpp/a0446_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0446_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0446_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0447_f000.png b/graphics/sa1/obj_tiles/4bpp/a0447_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0447_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0447_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0447_f001.png b/graphics/sa1/obj_tiles/4bpp/a0447_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0447_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0447_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0447_f002.png b/graphics/sa1/obj_tiles/4bpp/a0447_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0447_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0447_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0448_f000.png b/graphics/sa1/obj_tiles/4bpp/a0448_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0448_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0448_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0448_f001.png b/graphics/sa1/obj_tiles/4bpp/a0448_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0448_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0448_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0448_f002.png b/graphics/sa1/obj_tiles/4bpp/a0448_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0448_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0448_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0449_f000.png b/graphics/sa1/obj_tiles/4bpp/a0449_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0449_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0449_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0449_f001.png b/graphics/sa1/obj_tiles/4bpp/a0449_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0449_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0449_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0449_f002.png b/graphics/sa1/obj_tiles/4bpp/a0449_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0449_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0449_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0450_f000.png b/graphics/sa1/obj_tiles/4bpp/a0450_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0450_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0450_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0450_f001.png b/graphics/sa1/obj_tiles/4bpp/a0450_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0450_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0450_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0450_f002.png b/graphics/sa1/obj_tiles/4bpp/a0450_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0450_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0450_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0451_f000.png b/graphics/sa1/obj_tiles/4bpp/a0451_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0451_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0451_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0451_f001.png b/graphics/sa1/obj_tiles/4bpp/a0451_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0451_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0451_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0451_f002.png b/graphics/sa1/obj_tiles/4bpp/a0451_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0451_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0451_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f000.png b/graphics/sa1/obj_tiles/4bpp/a0452_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f001.png b/graphics/sa1/obj_tiles/4bpp/a0452_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f002.png b/graphics/sa1/obj_tiles/4bpp/a0452_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f003.png b/graphics/sa1/obj_tiles/4bpp/a0452_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f004.png b/graphics/sa1/obj_tiles/4bpp/a0452_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f005.png b/graphics/sa1/obj_tiles/4bpp/a0452_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0452_f006.png b/graphics/sa1/obj_tiles/4bpp/a0452_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0452_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0452_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f000.png b/graphics/sa1/obj_tiles/4bpp/a0453_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f001.png b/graphics/sa1/obj_tiles/4bpp/a0453_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f002.png b/graphics/sa1/obj_tiles/4bpp/a0453_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f003.png b/graphics/sa1/obj_tiles/4bpp/a0453_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f004.png b/graphics/sa1/obj_tiles/4bpp/a0453_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f005.png b/graphics/sa1/obj_tiles/4bpp/a0453_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0453_f006.png b/graphics/sa1/obj_tiles/4bpp/a0453_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0453_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0453_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0454_f000.png b/graphics/sa1/obj_tiles/4bpp/a0454_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0454_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0454_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0454_f001.png b/graphics/sa1/obj_tiles/4bpp/a0454_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0454_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0454_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0454_f002.png b/graphics/sa1/obj_tiles/4bpp/a0454_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0454_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0454_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0454_f003.png b/graphics/sa1/obj_tiles/4bpp/a0454_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0454_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0454_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f000.png b/graphics/sa1/obj_tiles/4bpp/a0455_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f001.png b/graphics/sa1/obj_tiles/4bpp/a0455_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f002.png b/graphics/sa1/obj_tiles/4bpp/a0455_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f003.png b/graphics/sa1/obj_tiles/4bpp/a0455_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f004.png b/graphics/sa1/obj_tiles/4bpp/a0455_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f005.png b/graphics/sa1/obj_tiles/4bpp/a0455_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f006.png b/graphics/sa1/obj_tiles/4bpp/a0455_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f007.png b/graphics/sa1/obj_tiles/4bpp/a0455_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f008.png b/graphics/sa1/obj_tiles/4bpp/a0455_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f009.png b/graphics/sa1/obj_tiles/4bpp/a0455_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f010.png b/graphics/sa1/obj_tiles/4bpp/a0455_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f011.png b/graphics/sa1/obj_tiles/4bpp/a0455_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f012.png b/graphics/sa1/obj_tiles/4bpp/a0455_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f013.png b/graphics/sa1/obj_tiles/4bpp/a0455_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f014.png b/graphics/sa1/obj_tiles/4bpp/a0455_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f015.png b/graphics/sa1/obj_tiles/4bpp/a0455_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f016.png b/graphics/sa1/obj_tiles/4bpp/a0455_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f017.png b/graphics/sa1/obj_tiles/4bpp/a0455_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f018.png b/graphics/sa1/obj_tiles/4bpp/a0455_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0455_f019.png b/graphics/sa1/obj_tiles/4bpp/a0455_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0455_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0455_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0456_f000.png b/graphics/sa1/obj_tiles/4bpp/a0456_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0456_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0456_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0457_f000.png b/graphics/sa1/obj_tiles/4bpp/a0457_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0457_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0457_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0457_f001.png b/graphics/sa1/obj_tiles/4bpp/a0457_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0457_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0457_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0457_f002.png b/graphics/sa1/obj_tiles/4bpp/a0457_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0457_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0457_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0457_f003.png b/graphics/sa1/obj_tiles/4bpp/a0457_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0457_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0457_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0458_f000.png b/graphics/sa1/obj_tiles/4bpp/a0458_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0458_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0458_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0459_f000.png b/graphics/sa1/obj_tiles/4bpp/a0459_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0459_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0459_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0460_f000.png b/graphics/sa1/obj_tiles/4bpp/a0460_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0460_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0460_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f000.png b/graphics/sa1/obj_tiles/4bpp/a0461_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f001.png b/graphics/sa1/obj_tiles/4bpp/a0461_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f002.png b/graphics/sa1/obj_tiles/4bpp/a0461_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f003.png b/graphics/sa1/obj_tiles/4bpp/a0461_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f004.png b/graphics/sa1/obj_tiles/4bpp/a0461_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f005.png b/graphics/sa1/obj_tiles/4bpp/a0461_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0461_f006.png b/graphics/sa1/obj_tiles/4bpp/a0461_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0461_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0461_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0462_f000.png b/graphics/sa1/obj_tiles/4bpp/a0462_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0462_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0462_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0463_f000.png b/graphics/sa1/obj_tiles/4bpp/a0463_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0463_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0463_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0464_f000.png b/graphics/sa1/obj_tiles/4bpp/a0464_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0464_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0464_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0464_f001.png b/graphics/sa1/obj_tiles/4bpp/a0464_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0464_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0464_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0464_f002.png b/graphics/sa1/obj_tiles/4bpp/a0464_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0464_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0464_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f000.png b/graphics/sa1/obj_tiles/4bpp/a0465_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f001.png b/graphics/sa1/obj_tiles/4bpp/a0465_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f002.png b/graphics/sa1/obj_tiles/4bpp/a0465_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f003.png b/graphics/sa1/obj_tiles/4bpp/a0465_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f004.png b/graphics/sa1/obj_tiles/4bpp/a0465_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f005.png b/graphics/sa1/obj_tiles/4bpp/a0465_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f006.png b/graphics/sa1/obj_tiles/4bpp/a0465_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f007.png b/graphics/sa1/obj_tiles/4bpp/a0465_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0465_f008.png b/graphics/sa1/obj_tiles/4bpp/a0465_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0465_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0465_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0466_f000.png b/graphics/sa1/obj_tiles/4bpp/a0466_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0466_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0466_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f000.png b/graphics/sa1/obj_tiles/4bpp/a0467_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f001.png b/graphics/sa1/obj_tiles/4bpp/a0467_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f002.png b/graphics/sa1/obj_tiles/4bpp/a0467_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f003.png b/graphics/sa1/obj_tiles/4bpp/a0467_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f004.png b/graphics/sa1/obj_tiles/4bpp/a0467_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f005.png b/graphics/sa1/obj_tiles/4bpp/a0467_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0467_f006.png b/graphics/sa1/obj_tiles/4bpp/a0467_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0467_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0467_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0468_f000.png b/graphics/sa1/obj_tiles/4bpp/a0468_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0468_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0468_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0468_f001.png b/graphics/sa1/obj_tiles/4bpp/a0468_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0468_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0468_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0468_f002.png b/graphics/sa1/obj_tiles/4bpp/a0468_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0468_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0468_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0468_f003.png b/graphics/sa1/obj_tiles/4bpp/a0468_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0468_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0468_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0468_f004.png b/graphics/sa1/obj_tiles/4bpp/a0468_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0468_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0468_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0469_f000.png b/graphics/sa1/obj_tiles/4bpp/a0469_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0469_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0469_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0469_f001.png b/graphics/sa1/obj_tiles/4bpp/a0469_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0469_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0469_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0469_f002.png b/graphics/sa1/obj_tiles/4bpp/a0469_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0469_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0469_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0469_f003.png b/graphics/sa1/obj_tiles/4bpp/a0469_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0469_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0469_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0469_f004.png b/graphics/sa1/obj_tiles/4bpp/a0469_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0469_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0469_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0469_f005.png b/graphics/sa1/obj_tiles/4bpp/a0469_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0469_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0469_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0470_f000.png b/graphics/sa1/obj_tiles/4bpp/a0470_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0470_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0470_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0470_f001.png b/graphics/sa1/obj_tiles/4bpp/a0470_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0470_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0470_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0470_f002.png b/graphics/sa1/obj_tiles/4bpp/a0470_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0470_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0470_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0470_f003.png b/graphics/sa1/obj_tiles/4bpp/a0470_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0470_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0470_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0470_f004.png b/graphics/sa1/obj_tiles/4bpp/a0470_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0470_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0470_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f000.png b/graphics/sa1/obj_tiles/4bpp/a0471_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f001.png b/graphics/sa1/obj_tiles/4bpp/a0471_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f002.png b/graphics/sa1/obj_tiles/4bpp/a0471_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f003.png b/graphics/sa1/obj_tiles/4bpp/a0471_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f004.png b/graphics/sa1/obj_tiles/4bpp/a0471_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f005.png b/graphics/sa1/obj_tiles/4bpp/a0471_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f006.png b/graphics/sa1/obj_tiles/4bpp/a0471_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f007.png b/graphics/sa1/obj_tiles/4bpp/a0471_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0471_f008.png b/graphics/sa1/obj_tiles/4bpp/a0471_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0471_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0471_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0472_f000.png b/graphics/sa1/obj_tiles/4bpp/a0472_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0472_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0472_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0472_f001.png b/graphics/sa1/obj_tiles/4bpp/a0472_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0472_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0472_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0472_f002.png b/graphics/sa1/obj_tiles/4bpp/a0472_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0472_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0472_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0473_f000.png b/graphics/sa1/obj_tiles/4bpp/a0473_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0473_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0473_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0473_f001.png b/graphics/sa1/obj_tiles/4bpp/a0473_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0473_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0473_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0473_f002.png b/graphics/sa1/obj_tiles/4bpp/a0473_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0473_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0473_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0474_f000.png b/graphics/sa1/obj_tiles/4bpp/a0474_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0474_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0474_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0474_f001.png b/graphics/sa1/obj_tiles/4bpp/a0474_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0474_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0474_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0474_f002.png b/graphics/sa1/obj_tiles/4bpp/a0474_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0474_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0474_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0475_f000.png b/graphics/sa1/obj_tiles/4bpp/a0475_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0475_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0475_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0476_f000.png b/graphics/sa1/obj_tiles/4bpp/a0476_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0476_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0476_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0477_f000.png b/graphics/sa1/obj_tiles/4bpp/a0477_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0477_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0477_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0478_f000.png b/graphics/sa1/obj_tiles/4bpp/a0478_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0478_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0478_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0478_f001.png b/graphics/sa1/obj_tiles/4bpp/a0478_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0478_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0478_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0478_f002.png b/graphics/sa1/obj_tiles/4bpp/a0478_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0478_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0478_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0478_f003.png b/graphics/sa1/obj_tiles/4bpp/a0478_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0478_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0478_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0478_f004.png b/graphics/sa1/obj_tiles/4bpp/a0478_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0478_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0478_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0478_f005.png b/graphics/sa1/obj_tiles/4bpp/a0478_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0478_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0478_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f000.png b/graphics/sa1/obj_tiles/4bpp/a0479_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f001.png b/graphics/sa1/obj_tiles/4bpp/a0479_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f002.png b/graphics/sa1/obj_tiles/4bpp/a0479_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f003.png b/graphics/sa1/obj_tiles/4bpp/a0479_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f004.png b/graphics/sa1/obj_tiles/4bpp/a0479_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f005.png b/graphics/sa1/obj_tiles/4bpp/a0479_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f006.png b/graphics/sa1/obj_tiles/4bpp/a0479_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f007.png b/graphics/sa1/obj_tiles/4bpp/a0479_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0479_f008.png b/graphics/sa1/obj_tiles/4bpp/a0479_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0479_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0479_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f000.png b/graphics/sa1/obj_tiles/4bpp/a0480_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f001.png b/graphics/sa1/obj_tiles/4bpp/a0480_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f002.png b/graphics/sa1/obj_tiles/4bpp/a0480_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f003.png b/graphics/sa1/obj_tiles/4bpp/a0480_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f004.png b/graphics/sa1/obj_tiles/4bpp/a0480_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f005.png b/graphics/sa1/obj_tiles/4bpp/a0480_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f006.png b/graphics/sa1/obj_tiles/4bpp/a0480_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f007.png b/graphics/sa1/obj_tiles/4bpp/a0480_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0480_f008.png b/graphics/sa1/obj_tiles/4bpp/a0480_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0480_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0480_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f000.png b/graphics/sa1/obj_tiles/4bpp/a0481_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f001.png b/graphics/sa1/obj_tiles/4bpp/a0481_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f002.png b/graphics/sa1/obj_tiles/4bpp/a0481_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f003.png b/graphics/sa1/obj_tiles/4bpp/a0481_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f004.png b/graphics/sa1/obj_tiles/4bpp/a0481_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f005.png b/graphics/sa1/obj_tiles/4bpp/a0481_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f006.png b/graphics/sa1/obj_tiles/4bpp/a0481_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f007.png b/graphics/sa1/obj_tiles/4bpp/a0481_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0481_f008.png b/graphics/sa1/obj_tiles/4bpp/a0481_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0481_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0481_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0482_f000.png b/graphics/sa1/obj_tiles/4bpp/a0482_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0482_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0482_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0482_f001.png b/graphics/sa1/obj_tiles/4bpp/a0482_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0482_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0482_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0482_f002.png b/graphics/sa1/obj_tiles/4bpp/a0482_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0482_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0482_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0482_f003.png b/graphics/sa1/obj_tiles/4bpp/a0482_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0482_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0482_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0482_f004.png b/graphics/sa1/obj_tiles/4bpp/a0482_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0482_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0482_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0483_f000.png b/graphics/sa1/obj_tiles/4bpp/a0483_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0483_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0483_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0483_f001.png b/graphics/sa1/obj_tiles/4bpp/a0483_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0483_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0483_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0483_f002.png b/graphics/sa1/obj_tiles/4bpp/a0483_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0483_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0483_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0483_f003.png b/graphics/sa1/obj_tiles/4bpp/a0483_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0483_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0483_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0483_f004.png b/graphics/sa1/obj_tiles/4bpp/a0483_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0483_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0483_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0484_f000.png b/graphics/sa1/obj_tiles/4bpp/a0484_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0484_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0484_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0485_f000.png b/graphics/sa1/obj_tiles/4bpp/a0485_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0485_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0485_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0486_f000.png b/graphics/sa1/obj_tiles/4bpp/a0486_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0486_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0486_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0486_f001.png b/graphics/sa1/obj_tiles/4bpp/a0486_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0486_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0486_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0487_f000.png b/graphics/sa1/obj_tiles/4bpp/a0487_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0487_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0487_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0487_f001.png b/graphics/sa1/obj_tiles/4bpp/a0487_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0487_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0487_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0488_f000.png b/graphics/sa1/obj_tiles/4bpp/a0488_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0488_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0488_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0489_f000.png b/graphics/sa1/obj_tiles/4bpp/a0489_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0489_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0489_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0490_f000.png b/graphics/sa1/obj_tiles/4bpp/a0490_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0490_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0490_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0491_f000.png b/graphics/sa1/obj_tiles/4bpp/a0491_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0491_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0491_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f000.png b/graphics/sa1/obj_tiles/4bpp/a0492_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f001.png b/graphics/sa1/obj_tiles/4bpp/a0492_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f002.png b/graphics/sa1/obj_tiles/4bpp/a0492_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f003.png b/graphics/sa1/obj_tiles/4bpp/a0492_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f004.png b/graphics/sa1/obj_tiles/4bpp/a0492_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f005.png b/graphics/sa1/obj_tiles/4bpp/a0492_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f006.png b/graphics/sa1/obj_tiles/4bpp/a0492_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f007.png b/graphics/sa1/obj_tiles/4bpp/a0492_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f008.png b/graphics/sa1/obj_tiles/4bpp/a0492_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f009.png b/graphics/sa1/obj_tiles/4bpp/a0492_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f010.png b/graphics/sa1/obj_tiles/4bpp/a0492_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f011.png b/graphics/sa1/obj_tiles/4bpp/a0492_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f012.png b/graphics/sa1/obj_tiles/4bpp/a0492_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f013.png b/graphics/sa1/obj_tiles/4bpp/a0492_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f014.png b/graphics/sa1/obj_tiles/4bpp/a0492_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f015.png b/graphics/sa1/obj_tiles/4bpp/a0492_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f016.png b/graphics/sa1/obj_tiles/4bpp/a0492_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f017.png b/graphics/sa1/obj_tiles/4bpp/a0492_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f018.png b/graphics/sa1/obj_tiles/4bpp/a0492_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f019.png b/graphics/sa1/obj_tiles/4bpp/a0492_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f020.png b/graphics/sa1/obj_tiles/4bpp/a0492_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f021.png b/graphics/sa1/obj_tiles/4bpp/a0492_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f022.png b/graphics/sa1/obj_tiles/4bpp/a0492_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f023.png b/graphics/sa1/obj_tiles/4bpp/a0492_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f024.png b/graphics/sa1/obj_tiles/4bpp/a0492_f024.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f024.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f024.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f025.png b/graphics/sa1/obj_tiles/4bpp/a0492_f025.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f025.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f025.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f026.png b/graphics/sa1/obj_tiles/4bpp/a0492_f026.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f026.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f026.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f027.png b/graphics/sa1/obj_tiles/4bpp/a0492_f027.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f027.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f027.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f028.png b/graphics/sa1/obj_tiles/4bpp/a0492_f028.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f028.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f028.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f029.png b/graphics/sa1/obj_tiles/4bpp/a0492_f029.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f029.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f029.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f030.png b/graphics/sa1/obj_tiles/4bpp/a0492_f030.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f030.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f030.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f031.png b/graphics/sa1/obj_tiles/4bpp/a0492_f031.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f031.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f031.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f032.png b/graphics/sa1/obj_tiles/4bpp/a0492_f032.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f032.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f032.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f033.png b/graphics/sa1/obj_tiles/4bpp/a0492_f033.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f033.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f033.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f034.png b/graphics/sa1/obj_tiles/4bpp/a0492_f034.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f034.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f034.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f035.png b/graphics/sa1/obj_tiles/4bpp/a0492_f035.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f035.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f035.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f036.png b/graphics/sa1/obj_tiles/4bpp/a0492_f036.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f036.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f036.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f037.png b/graphics/sa1/obj_tiles/4bpp/a0492_f037.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f037.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f037.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f038.png b/graphics/sa1/obj_tiles/4bpp/a0492_f038.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f038.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f038.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0492_f039.png b/graphics/sa1/obj_tiles/4bpp/a0492_f039.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0492_f039.png rename to graphics/sa1/obj_tiles/4bpp/a0492_f039.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0493_f000.png b/graphics/sa1/obj_tiles/4bpp/a0493_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0493_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0493_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0494_f000.png b/graphics/sa1/obj_tiles/4bpp/a0494_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0494_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0494_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0495_f000.png b/graphics/sa1/obj_tiles/4bpp/a0495_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0495_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0495_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0496_f000.png b/graphics/sa1/obj_tiles/4bpp/a0496_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0496_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0496_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0496_f001.png b/graphics/sa1/obj_tiles/4bpp/a0496_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0496_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0496_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0496_f002.png b/graphics/sa1/obj_tiles/4bpp/a0496_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0496_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0496_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0496_f003.png b/graphics/sa1/obj_tiles/4bpp/a0496_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0496_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0496_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0496_f004.png b/graphics/sa1/obj_tiles/4bpp/a0496_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0496_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0496_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0496_f005.png b/graphics/sa1/obj_tiles/4bpp/a0496_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0496_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0496_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0497_f000.png b/graphics/sa1/obj_tiles/4bpp/a0497_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0497_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0497_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0497_f001.png b/graphics/sa1/obj_tiles/4bpp/a0497_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0497_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0497_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0497_f002.png b/graphics/sa1/obj_tiles/4bpp/a0497_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0497_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0497_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0497_f003.png b/graphics/sa1/obj_tiles/4bpp/a0497_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0497_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0497_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0497_f004.png b/graphics/sa1/obj_tiles/4bpp/a0497_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0497_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0497_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0497_f005.png b/graphics/sa1/obj_tiles/4bpp/a0497_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0497_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0497_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0498_f000.png b/graphics/sa1/obj_tiles/4bpp/a0498_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0498_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0498_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0498_f001.png b/graphics/sa1/obj_tiles/4bpp/a0498_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0498_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0498_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0498_f002.png b/graphics/sa1/obj_tiles/4bpp/a0498_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0498_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0498_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0498_f003.png b/graphics/sa1/obj_tiles/4bpp/a0498_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0498_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0498_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0499_f000.png b/graphics/sa1/obj_tiles/4bpp/a0499_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0499_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0499_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f000.png b/graphics/sa1/obj_tiles/4bpp/a0501_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f001.png b/graphics/sa1/obj_tiles/4bpp/a0501_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f002.png b/graphics/sa1/obj_tiles/4bpp/a0501_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f003.png b/graphics/sa1/obj_tiles/4bpp/a0501_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f004.png b/graphics/sa1/obj_tiles/4bpp/a0501_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f005.png b/graphics/sa1/obj_tiles/4bpp/a0501_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0501_f006.png b/graphics/sa1/obj_tiles/4bpp/a0501_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0501_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0501_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0502_f000.png b/graphics/sa1/obj_tiles/4bpp/a0502_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0502_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0502_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0503_f000.png b/graphics/sa1/obj_tiles/4bpp/a0503_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0503_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0503_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0503_f001.png b/graphics/sa1/obj_tiles/4bpp/a0503_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0503_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0503_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0503_f002.png b/graphics/sa1/obj_tiles/4bpp/a0503_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0503_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0503_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0504_f000.png b/graphics/sa1/obj_tiles/4bpp/a0504_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0504_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0504_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0504_f001.png b/graphics/sa1/obj_tiles/4bpp/a0504_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0504_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0504_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f000.png b/graphics/sa1/obj_tiles/4bpp/a0505_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f001.png b/graphics/sa1/obj_tiles/4bpp/a0505_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f002.png b/graphics/sa1/obj_tiles/4bpp/a0505_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f003.png b/graphics/sa1/obj_tiles/4bpp/a0505_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f004.png b/graphics/sa1/obj_tiles/4bpp/a0505_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f005.png b/graphics/sa1/obj_tiles/4bpp/a0505_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0505_f006.png b/graphics/sa1/obj_tiles/4bpp/a0505_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0505_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0505_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0506_f000.png b/graphics/sa1/obj_tiles/4bpp/a0506_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0506_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0506_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0507_f000.png b/graphics/sa1/obj_tiles/4bpp/a0507_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0507_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0507_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0508_f000.png b/graphics/sa1/obj_tiles/4bpp/a0508_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0508_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0508_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0508_f001.png b/graphics/sa1/obj_tiles/4bpp/a0508_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0508_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0508_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0508_f002.png b/graphics/sa1/obj_tiles/4bpp/a0508_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0508_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0508_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0508_f003.png b/graphics/sa1/obj_tiles/4bpp/a0508_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0508_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0508_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0509_f000.png b/graphics/sa1/obj_tiles/4bpp/a0509_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0509_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0509_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0509_f001.png b/graphics/sa1/obj_tiles/4bpp/a0509_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0509_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0509_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0509_f002.png b/graphics/sa1/obj_tiles/4bpp/a0509_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0509_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0509_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0509_f003.png b/graphics/sa1/obj_tiles/4bpp/a0509_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0509_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0509_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0510_f000.png b/graphics/sa1/obj_tiles/4bpp/a0510_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0510_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0510_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0511_f000.png b/graphics/sa1/obj_tiles/4bpp/a0511_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0511_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0511_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0511_f001.png b/graphics/sa1/obj_tiles/4bpp/a0511_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0511_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0511_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0511_f002.png b/graphics/sa1/obj_tiles/4bpp/a0511_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0511_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0511_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0512_f000.png b/graphics/sa1/obj_tiles/4bpp/a0512_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0512_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0512_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0512_f001.png b/graphics/sa1/obj_tiles/4bpp/a0512_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0512_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0512_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0512_f002.png b/graphics/sa1/obj_tiles/4bpp/a0512_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0512_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0512_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0513_f000.png b/graphics/sa1/obj_tiles/4bpp/a0513_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0513_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0513_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0514_f000.png b/graphics/sa1/obj_tiles/4bpp/a0514_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0514_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0514_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0514_f001.png b/graphics/sa1/obj_tiles/4bpp/a0514_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0514_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0514_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0515_f000.png b/graphics/sa1/obj_tiles/4bpp/a0515_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0515_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0515_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0515_f001.png b/graphics/sa1/obj_tiles/4bpp/a0515_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0515_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0515_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0515_f002.png b/graphics/sa1/obj_tiles/4bpp/a0515_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0515_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0515_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0515_f003.png b/graphics/sa1/obj_tiles/4bpp/a0515_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0515_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0515_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f000.png b/graphics/sa1/obj_tiles/4bpp/a0516_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f001.png b/graphics/sa1/obj_tiles/4bpp/a0516_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f002.png b/graphics/sa1/obj_tiles/4bpp/a0516_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f003.png b/graphics/sa1/obj_tiles/4bpp/a0516_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f004.png b/graphics/sa1/obj_tiles/4bpp/a0516_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f005.png b/graphics/sa1/obj_tiles/4bpp/a0516_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f006.png b/graphics/sa1/obj_tiles/4bpp/a0516_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0516_f007.png b/graphics/sa1/obj_tiles/4bpp/a0516_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0516_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0516_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0517_f000.png b/graphics/sa1/obj_tiles/4bpp/a0517_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0517_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0517_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0518_f000.png b/graphics/sa1/obj_tiles/4bpp/a0518_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0518_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0518_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0519_f000.png b/graphics/sa1/obj_tiles/4bpp/a0519_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0519_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0519_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0520_f000.png b/graphics/sa1/obj_tiles/4bpp/a0520_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0520_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0520_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0521_f000.png b/graphics/sa1/obj_tiles/4bpp/a0521_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0521_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0521_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0522_f000.png b/graphics/sa1/obj_tiles/4bpp/a0522_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0522_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0522_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0522_f001.png b/graphics/sa1/obj_tiles/4bpp/a0522_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0522_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0522_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0522_f002.png b/graphics/sa1/obj_tiles/4bpp/a0522_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0522_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0522_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0522_f003.png b/graphics/sa1/obj_tiles/4bpp/a0522_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0522_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0522_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0523_f000.png b/graphics/sa1/obj_tiles/4bpp/a0523_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0523_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0523_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0524_f000.png b/graphics/sa1/obj_tiles/4bpp/a0524_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0524_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0524_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0525_f000.png b/graphics/sa1/obj_tiles/4bpp/a0525_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0525_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0525_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0526_f000.png b/graphics/sa1/obj_tiles/4bpp/a0526_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0526_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0526_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0526_f001.png b/graphics/sa1/obj_tiles/4bpp/a0526_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0526_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0526_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0526_f002.png b/graphics/sa1/obj_tiles/4bpp/a0526_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0526_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0526_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0526_f003.png b/graphics/sa1/obj_tiles/4bpp/a0526_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0526_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0526_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0526_f004.png b/graphics/sa1/obj_tiles/4bpp/a0526_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0526_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0526_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0527_f000.png b/graphics/sa1/obj_tiles/4bpp/a0527_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0527_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0527_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0528_f000.png b/graphics/sa1/obj_tiles/4bpp/a0528_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0528_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0528_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0529_f000.png b/graphics/sa1/obj_tiles/4bpp/a0529_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0529_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0529_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0530_f000.png b/graphics/sa1/obj_tiles/4bpp/a0530_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0530_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0530_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0531_f000.png b/graphics/sa1/obj_tiles/4bpp/a0531_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0531_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0531_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f000.png b/graphics/sa1/obj_tiles/4bpp/a0532_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f001.png b/graphics/sa1/obj_tiles/4bpp/a0532_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f002.png b/graphics/sa1/obj_tiles/4bpp/a0532_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f003.png b/graphics/sa1/obj_tiles/4bpp/a0532_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f004.png b/graphics/sa1/obj_tiles/4bpp/a0532_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f005.png b/graphics/sa1/obj_tiles/4bpp/a0532_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0532_f006.png b/graphics/sa1/obj_tiles/4bpp/a0532_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0532_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0532_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0533_f000.png b/graphics/sa1/obj_tiles/4bpp/a0533_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0533_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0533_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0533_f001.png b/graphics/sa1/obj_tiles/4bpp/a0533_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0533_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0533_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0534_f000.png b/graphics/sa1/obj_tiles/4bpp/a0534_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0534_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0534_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0535_f000.png b/graphics/sa1/obj_tiles/4bpp/a0535_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0535_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0535_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0536_f000.png b/graphics/sa1/obj_tiles/4bpp/a0536_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0536_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0536_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0537_f000.png b/graphics/sa1/obj_tiles/4bpp/a0537_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0537_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0537_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0538_f000.png b/graphics/sa1/obj_tiles/4bpp/a0538_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0538_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0538_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0539_f000.png b/graphics/sa1/obj_tiles/4bpp/a0539_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0539_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0539_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0540_f000.png b/graphics/sa1/obj_tiles/4bpp/a0540_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0540_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0540_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0540_f001.png b/graphics/sa1/obj_tiles/4bpp/a0540_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0540_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0540_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0540_f002.png b/graphics/sa1/obj_tiles/4bpp/a0540_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0540_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0540_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0540_f003.png b/graphics/sa1/obj_tiles/4bpp/a0540_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0540_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0540_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0540_f004.png b/graphics/sa1/obj_tiles/4bpp/a0540_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0540_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0540_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0541_f000.png b/graphics/sa1/obj_tiles/4bpp/a0541_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0541_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0541_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0542_f000.png b/graphics/sa1/obj_tiles/4bpp/a0542_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0542_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0542_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0542_f001.png b/graphics/sa1/obj_tiles/4bpp/a0542_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0542_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0542_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0542_f002.png b/graphics/sa1/obj_tiles/4bpp/a0542_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0542_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0542_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0542_f003.png b/graphics/sa1/obj_tiles/4bpp/a0542_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0542_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0542_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0543_f000.png b/graphics/sa1/obj_tiles/4bpp/a0543_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0543_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0543_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0544_f000.png b/graphics/sa1/obj_tiles/4bpp/a0544_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0544_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0544_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0545_f000.png b/graphics/sa1/obj_tiles/4bpp/a0545_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0545_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0545_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0545_f001.png b/graphics/sa1/obj_tiles/4bpp/a0545_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0545_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0545_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0546_f000.png b/graphics/sa1/obj_tiles/4bpp/a0546_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0546_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0546_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0546_f001.png b/graphics/sa1/obj_tiles/4bpp/a0546_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0546_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0546_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0547_f000.png b/graphics/sa1/obj_tiles/4bpp/a0547_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0547_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0547_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0548_f000.png b/graphics/sa1/obj_tiles/4bpp/a0548_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0548_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0548_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0549_f000.png b/graphics/sa1/obj_tiles/4bpp/a0549_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0549_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0549_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0550_f000.png b/graphics/sa1/obj_tiles/4bpp/a0550_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0550_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0550_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0551_f000.png b/graphics/sa1/obj_tiles/4bpp/a0551_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0551_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0551_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0552_f000.png b/graphics/sa1/obj_tiles/4bpp/a0552_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0552_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0552_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0552_f001.png b/graphics/sa1/obj_tiles/4bpp/a0552_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0552_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0552_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0552_f002.png b/graphics/sa1/obj_tiles/4bpp/a0552_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0552_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0552_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0553_f000.png b/graphics/sa1/obj_tiles/4bpp/a0553_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0553_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0553_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0554_f000.png b/graphics/sa1/obj_tiles/4bpp/a0554_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0554_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0554_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0555_f000.png b/graphics/sa1/obj_tiles/4bpp/a0555_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0555_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0555_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0556_f000.png b/graphics/sa1/obj_tiles/4bpp/a0556_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0556_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0556_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0557_f000.png b/graphics/sa1/obj_tiles/4bpp/a0557_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0557_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0557_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0558_f000.png b/graphics/sa1/obj_tiles/4bpp/a0558_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0558_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0558_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0558_f001.png b/graphics/sa1/obj_tiles/4bpp/a0558_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0558_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0558_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0558_f002.png b/graphics/sa1/obj_tiles/4bpp/a0558_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0558_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0558_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0558_f003.png b/graphics/sa1/obj_tiles/4bpp/a0558_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0558_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0558_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0559_f000.png b/graphics/sa1/obj_tiles/4bpp/a0559_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0559_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0559_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0560_f000.png b/graphics/sa1/obj_tiles/4bpp/a0560_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0560_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0560_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0560_f001.png b/graphics/sa1/obj_tiles/4bpp/a0560_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0560_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0560_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0561_f000.png b/graphics/sa1/obj_tiles/4bpp/a0561_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0561_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0561_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0561_f001.png b/graphics/sa1/obj_tiles/4bpp/a0561_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0561_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0561_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0561_f002.png b/graphics/sa1/obj_tiles/4bpp/a0561_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0561_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0561_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0562_f000.png b/graphics/sa1/obj_tiles/4bpp/a0562_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0562_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0562_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0562_f001.png b/graphics/sa1/obj_tiles/4bpp/a0562_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0562_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0562_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0562_f002.png b/graphics/sa1/obj_tiles/4bpp/a0562_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0562_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0562_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0563_f000.png b/graphics/sa1/obj_tiles/4bpp/a0563_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0563_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0563_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0563_f001.png b/graphics/sa1/obj_tiles/4bpp/a0563_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0563_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0563_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0563_f002.png b/graphics/sa1/obj_tiles/4bpp/a0563_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0563_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0563_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f000.png b/graphics/sa1/obj_tiles/4bpp/a0564_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f001.png b/graphics/sa1/obj_tiles/4bpp/a0564_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f002.png b/graphics/sa1/obj_tiles/4bpp/a0564_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f003.png b/graphics/sa1/obj_tiles/4bpp/a0564_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f004.png b/graphics/sa1/obj_tiles/4bpp/a0564_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f005.png b/graphics/sa1/obj_tiles/4bpp/a0564_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f006.png b/graphics/sa1/obj_tiles/4bpp/a0564_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0564_f007.png b/graphics/sa1/obj_tiles/4bpp/a0564_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0564_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0564_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f000.png b/graphics/sa1/obj_tiles/4bpp/a0565_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f001.png b/graphics/sa1/obj_tiles/4bpp/a0565_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f002.png b/graphics/sa1/obj_tiles/4bpp/a0565_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f003.png b/graphics/sa1/obj_tiles/4bpp/a0565_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f004.png b/graphics/sa1/obj_tiles/4bpp/a0565_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f005.png b/graphics/sa1/obj_tiles/4bpp/a0565_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f006.png b/graphics/sa1/obj_tiles/4bpp/a0565_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0565_f007.png b/graphics/sa1/obj_tiles/4bpp/a0565_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0565_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0565_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f000.png b/graphics/sa1/obj_tiles/4bpp/a0566_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f001.png b/graphics/sa1/obj_tiles/4bpp/a0566_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f002.png b/graphics/sa1/obj_tiles/4bpp/a0566_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f003.png b/graphics/sa1/obj_tiles/4bpp/a0566_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f004.png b/graphics/sa1/obj_tiles/4bpp/a0566_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f005.png b/graphics/sa1/obj_tiles/4bpp/a0566_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f006.png b/graphics/sa1/obj_tiles/4bpp/a0566_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0566_f007.png b/graphics/sa1/obj_tiles/4bpp/a0566_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0566_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0566_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f000.png b/graphics/sa1/obj_tiles/4bpp/a0567_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f001.png b/graphics/sa1/obj_tiles/4bpp/a0567_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f002.png b/graphics/sa1/obj_tiles/4bpp/a0567_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f003.png b/graphics/sa1/obj_tiles/4bpp/a0567_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f004.png b/graphics/sa1/obj_tiles/4bpp/a0567_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f005.png b/graphics/sa1/obj_tiles/4bpp/a0567_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f006.png b/graphics/sa1/obj_tiles/4bpp/a0567_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f007.png b/graphics/sa1/obj_tiles/4bpp/a0567_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f008.png b/graphics/sa1/obj_tiles/4bpp/a0567_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0567_f009.png b/graphics/sa1/obj_tiles/4bpp/a0567_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0567_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0567_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0568_f000.png b/graphics/sa1/obj_tiles/4bpp/a0568_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0568_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0568_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0568_f001.png b/graphics/sa1/obj_tiles/4bpp/a0568_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0568_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0568_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0568_f002.png b/graphics/sa1/obj_tiles/4bpp/a0568_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0568_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0568_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0569_f000.png b/graphics/sa1/obj_tiles/4bpp/a0569_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0569_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0569_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0570_f000.png b/graphics/sa1/obj_tiles/4bpp/a0570_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0570_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0570_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0570_f001.png b/graphics/sa1/obj_tiles/4bpp/a0570_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0570_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0570_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0570_f002.png b/graphics/sa1/obj_tiles/4bpp/a0570_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0570_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0570_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0571_f000.png b/graphics/sa1/obj_tiles/4bpp/a0571_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0571_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0571_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0571_f001.png b/graphics/sa1/obj_tiles/4bpp/a0571_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0571_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0571_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0571_f002.png b/graphics/sa1/obj_tiles/4bpp/a0571_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0571_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0571_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0572_f000.png b/graphics/sa1/obj_tiles/4bpp/a0572_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0572_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0572_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0572_f001.png b/graphics/sa1/obj_tiles/4bpp/a0572_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0572_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0572_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0572_f002.png b/graphics/sa1/obj_tiles/4bpp/a0572_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0572_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0572_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0572_f003.png b/graphics/sa1/obj_tiles/4bpp/a0572_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0572_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0572_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0572_f004.png b/graphics/sa1/obj_tiles/4bpp/a0572_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0572_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0572_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0573_f000.png b/graphics/sa1/obj_tiles/4bpp/a0573_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0573_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0573_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0574_f000.png b/graphics/sa1/obj_tiles/4bpp/a0574_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0574_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0574_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0575_f000.png b/graphics/sa1/obj_tiles/4bpp/a0575_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0575_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0575_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0575_f001.png b/graphics/sa1/obj_tiles/4bpp/a0575_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0575_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0575_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0575_f002.png b/graphics/sa1/obj_tiles/4bpp/a0575_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0575_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0575_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0576_f000.png b/graphics/sa1/obj_tiles/4bpp/a0576_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0576_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0576_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0577_f000.png b/graphics/sa1/obj_tiles/4bpp/a0577_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0577_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0577_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0578_f000.png b/graphics/sa1/obj_tiles/4bpp/a0578_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0578_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0578_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0579_f000.png b/graphics/sa1/obj_tiles/4bpp/a0579_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0579_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0579_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0580_f000.png b/graphics/sa1/obj_tiles/4bpp/a0580_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0580_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0580_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0581_f000.png b/graphics/sa1/obj_tiles/4bpp/a0581_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0581_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0581_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0581_f001.png b/graphics/sa1/obj_tiles/4bpp/a0581_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0581_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0581_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0581_f002.png b/graphics/sa1/obj_tiles/4bpp/a0581_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0581_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0581_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0581_f003.png b/graphics/sa1/obj_tiles/4bpp/a0581_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0581_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0581_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0582_f000.png b/graphics/sa1/obj_tiles/4bpp/a0582_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0582_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0582_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0582_f001.png b/graphics/sa1/obj_tiles/4bpp/a0582_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0582_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0582_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0582_f002.png b/graphics/sa1/obj_tiles/4bpp/a0582_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0582_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0582_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0582_f003.png b/graphics/sa1/obj_tiles/4bpp/a0582_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0582_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0582_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0582_f004.png b/graphics/sa1/obj_tiles/4bpp/a0582_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0582_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0582_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0583_f000.png b/graphics/sa1/obj_tiles/4bpp/a0583_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0583_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0583_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0584_f000.png b/graphics/sa1/obj_tiles/4bpp/a0584_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0584_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0584_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0584_f001.png b/graphics/sa1/obj_tiles/4bpp/a0584_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0584_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0584_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0584_f002.png b/graphics/sa1/obj_tiles/4bpp/a0584_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0584_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0584_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0584_f003.png b/graphics/sa1/obj_tiles/4bpp/a0584_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0584_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0584_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0585_f000.png b/graphics/sa1/obj_tiles/4bpp/a0585_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0585_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0585_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0585_f001.png b/graphics/sa1/obj_tiles/4bpp/a0585_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0585_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0585_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0585_f002.png b/graphics/sa1/obj_tiles/4bpp/a0585_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0585_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0585_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0585_f003.png b/graphics/sa1/obj_tiles/4bpp/a0585_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0585_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0585_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0586_f000.png b/graphics/sa1/obj_tiles/4bpp/a0586_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0586_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0586_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0586_f001.png b/graphics/sa1/obj_tiles/4bpp/a0586_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0586_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0586_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0586_f002.png b/graphics/sa1/obj_tiles/4bpp/a0586_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0586_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0586_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0586_f003.png b/graphics/sa1/obj_tiles/4bpp/a0586_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0586_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0586_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0587_f000.png b/graphics/sa1/obj_tiles/4bpp/a0587_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0587_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0587_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0587_f001.png b/graphics/sa1/obj_tiles/4bpp/a0587_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0587_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0587_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0587_f002.png b/graphics/sa1/obj_tiles/4bpp/a0587_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0587_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0587_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0587_f003.png b/graphics/sa1/obj_tiles/4bpp/a0587_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0587_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0587_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0588_f000.png b/graphics/sa1/obj_tiles/4bpp/a0588_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0588_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0588_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0588_f001.png b/graphics/sa1/obj_tiles/4bpp/a0588_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0588_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0588_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0588_f002.png b/graphics/sa1/obj_tiles/4bpp/a0588_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0588_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0588_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0588_f003.png b/graphics/sa1/obj_tiles/4bpp/a0588_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0588_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0588_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0588_f004.png b/graphics/sa1/obj_tiles/4bpp/a0588_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0588_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0588_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0588_f005.png b/graphics/sa1/obj_tiles/4bpp/a0588_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0588_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0588_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0589_f000.png b/graphics/sa1/obj_tiles/4bpp/a0589_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0589_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0589_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0589_f001.png b/graphics/sa1/obj_tiles/4bpp/a0589_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0589_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0589_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0589_f002.png b/graphics/sa1/obj_tiles/4bpp/a0589_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0589_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0589_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0589_f003.png b/graphics/sa1/obj_tiles/4bpp/a0589_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0589_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0589_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0589_f004.png b/graphics/sa1/obj_tiles/4bpp/a0589_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0589_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0589_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0589_f005.png b/graphics/sa1/obj_tiles/4bpp/a0589_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0589_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0589_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f000.png b/graphics/sa1/obj_tiles/4bpp/a0590_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f001.png b/graphics/sa1/obj_tiles/4bpp/a0590_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f002.png b/graphics/sa1/obj_tiles/4bpp/a0590_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f003.png b/graphics/sa1/obj_tiles/4bpp/a0590_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f004.png b/graphics/sa1/obj_tiles/4bpp/a0590_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f005.png b/graphics/sa1/obj_tiles/4bpp/a0590_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f006.png b/graphics/sa1/obj_tiles/4bpp/a0590_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0590_f007.png b/graphics/sa1/obj_tiles/4bpp/a0590_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0590_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0590_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f000.png b/graphics/sa1/obj_tiles/4bpp/a0591_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f001.png b/graphics/sa1/obj_tiles/4bpp/a0591_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f002.png b/graphics/sa1/obj_tiles/4bpp/a0591_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f003.png b/graphics/sa1/obj_tiles/4bpp/a0591_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f004.png b/graphics/sa1/obj_tiles/4bpp/a0591_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f005.png b/graphics/sa1/obj_tiles/4bpp/a0591_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f006.png b/graphics/sa1/obj_tiles/4bpp/a0591_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0591_f007.png b/graphics/sa1/obj_tiles/4bpp/a0591_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0591_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0591_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0592_f000.png b/graphics/sa1/obj_tiles/4bpp/a0592_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0592_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0592_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0593_f000.png b/graphics/sa1/obj_tiles/4bpp/a0593_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0593_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0593_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0593_f001.png b/graphics/sa1/obj_tiles/4bpp/a0593_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0593_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0593_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0593_f002.png b/graphics/sa1/obj_tiles/4bpp/a0593_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0593_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0593_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0593_f003.png b/graphics/sa1/obj_tiles/4bpp/a0593_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0593_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0593_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0594_f000.png b/graphics/sa1/obj_tiles/4bpp/a0594_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0594_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0594_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0595_f000.png b/graphics/sa1/obj_tiles/4bpp/a0595_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0595_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0595_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0596_f000.png b/graphics/sa1/obj_tiles/4bpp/a0596_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0596_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0596_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0597_f000.png b/graphics/sa1/obj_tiles/4bpp/a0597_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0597_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0597_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0597_f001.png b/graphics/sa1/obj_tiles/4bpp/a0597_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0597_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0597_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0597_f002.png b/graphics/sa1/obj_tiles/4bpp/a0597_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0597_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0597_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0597_f003.png b/graphics/sa1/obj_tiles/4bpp/a0597_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0597_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0597_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0598_f000.png b/graphics/sa1/obj_tiles/4bpp/a0598_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0598_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0598_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0599_f000.png b/graphics/sa1/obj_tiles/4bpp/a0599_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0599_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0599_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0600_f000.png b/graphics/sa1/obj_tiles/4bpp/a0600_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0600_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0600_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0601_f000.png b/graphics/sa1/obj_tiles/4bpp/a0601_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0601_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0601_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0602_f000.png b/graphics/sa1/obj_tiles/4bpp/a0602_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0602_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0602_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0603_f000.png b/graphics/sa1/obj_tiles/4bpp/a0603_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0603_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0603_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0603_f001.png b/graphics/sa1/obj_tiles/4bpp/a0603_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0603_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0603_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0603_f002.png b/graphics/sa1/obj_tiles/4bpp/a0603_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0603_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0603_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0603_f003.png b/graphics/sa1/obj_tiles/4bpp/a0603_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0603_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0603_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0604_f000.png b/graphics/sa1/obj_tiles/4bpp/a0604_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0604_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0604_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0604_f001.png b/graphics/sa1/obj_tiles/4bpp/a0604_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0604_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0604_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0604_f002.png b/graphics/sa1/obj_tiles/4bpp/a0604_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0604_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0604_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0604_f003.png b/graphics/sa1/obj_tiles/4bpp/a0604_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0604_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0604_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0605_f000.png b/graphics/sa1/obj_tiles/4bpp/a0605_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0605_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0605_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0606_f000.png b/graphics/sa1/obj_tiles/4bpp/a0606_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0606_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0606_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0607_f000.png b/graphics/sa1/obj_tiles/4bpp/a0607_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0607_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0607_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0607_f001.png b/graphics/sa1/obj_tiles/4bpp/a0607_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0607_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0607_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0607_f002.png b/graphics/sa1/obj_tiles/4bpp/a0607_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0607_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0607_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0608_f000.png b/graphics/sa1/obj_tiles/4bpp/a0608_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0608_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0608_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0609_f000.png b/graphics/sa1/obj_tiles/4bpp/a0609_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0609_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0609_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0610_f000.png b/graphics/sa1/obj_tiles/4bpp/a0610_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0610_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0610_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0610_f001.png b/graphics/sa1/obj_tiles/4bpp/a0610_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0610_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0610_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0610_f002.png b/graphics/sa1/obj_tiles/4bpp/a0610_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0610_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0610_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0610_f003.png b/graphics/sa1/obj_tiles/4bpp/a0610_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0610_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0610_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0610_f004.png b/graphics/sa1/obj_tiles/4bpp/a0610_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0610_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0610_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0611_f000.png b/graphics/sa1/obj_tiles/4bpp/a0611_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0611_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0611_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0611_f001.png b/graphics/sa1/obj_tiles/4bpp/a0611_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0611_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0611_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0611_f002.png b/graphics/sa1/obj_tiles/4bpp/a0611_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0611_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0611_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0611_f003.png b/graphics/sa1/obj_tiles/4bpp/a0611_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0611_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0611_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0611_f004.png b/graphics/sa1/obj_tiles/4bpp/a0611_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0611_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0611_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0612_f000.png b/graphics/sa1/obj_tiles/4bpp/a0612_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0612_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0612_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0613_f000.png b/graphics/sa1/obj_tiles/4bpp/a0613_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0613_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0613_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0614_f000.png b/graphics/sa1/obj_tiles/4bpp/a0614_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0614_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0614_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0615_f000.png b/graphics/sa1/obj_tiles/4bpp/a0615_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0615_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0615_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0616_f000.png b/graphics/sa1/obj_tiles/4bpp/a0616_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0616_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0616_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0617_f000.png b/graphics/sa1/obj_tiles/4bpp/a0617_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0617_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0617_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0618_f000.png b/graphics/sa1/obj_tiles/4bpp/a0618_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0618_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0618_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0618_f001.png b/graphics/sa1/obj_tiles/4bpp/a0618_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0618_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0618_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0618_f002.png b/graphics/sa1/obj_tiles/4bpp/a0618_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0618_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0618_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0618_f003.png b/graphics/sa1/obj_tiles/4bpp/a0618_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0618_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0618_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0618_f004.png b/graphics/sa1/obj_tiles/4bpp/a0618_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0618_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0618_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0619_f000.png b/graphics/sa1/obj_tiles/4bpp/a0619_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0619_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0619_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0620_f000.png b/graphics/sa1/obj_tiles/4bpp/a0620_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0620_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0620_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0620_f001.png b/graphics/sa1/obj_tiles/4bpp/a0620_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0620_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0620_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0620_f002.png b/graphics/sa1/obj_tiles/4bpp/a0620_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0620_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0620_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0620_f003.png b/graphics/sa1/obj_tiles/4bpp/a0620_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0620_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0620_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0620_f004.png b/graphics/sa1/obj_tiles/4bpp/a0620_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0620_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0620_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0620_f005.png b/graphics/sa1/obj_tiles/4bpp/a0620_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0620_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0620_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0621_f000.png b/graphics/sa1/obj_tiles/4bpp/a0621_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0621_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0621_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0622_f000.png b/graphics/sa1/obj_tiles/4bpp/a0622_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0622_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0622_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0622_f001.png b/graphics/sa1/obj_tiles/4bpp/a0622_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0622_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0622_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0622_f002.png b/graphics/sa1/obj_tiles/4bpp/a0622_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0622_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0622_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0622_f003.png b/graphics/sa1/obj_tiles/4bpp/a0622_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0622_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0622_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0622_f004.png b/graphics/sa1/obj_tiles/4bpp/a0622_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0622_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0622_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0623_f000.png b/graphics/sa1/obj_tiles/4bpp/a0623_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0623_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0623_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0624_f000.png b/graphics/sa1/obj_tiles/4bpp/a0624_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0624_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0624_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0624_f001.png b/graphics/sa1/obj_tiles/4bpp/a0624_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0624_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0624_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0624_f002.png b/graphics/sa1/obj_tiles/4bpp/a0624_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0624_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0624_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0624_f003.png b/graphics/sa1/obj_tiles/4bpp/a0624_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0624_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0624_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0625_f000.png b/graphics/sa1/obj_tiles/4bpp/a0625_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0625_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0625_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0625_f001.png b/graphics/sa1/obj_tiles/4bpp/a0625_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0625_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0625_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0626_f000.png b/graphics/sa1/obj_tiles/4bpp/a0626_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0626_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0626_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0627_f000.png b/graphics/sa1/obj_tiles/4bpp/a0627_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0627_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0627_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0627_f001.png b/graphics/sa1/obj_tiles/4bpp/a0627_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0627_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0627_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0628_f000.png b/graphics/sa1/obj_tiles/4bpp/a0628_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0628_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0628_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0628_f001.png b/graphics/sa1/obj_tiles/4bpp/a0628_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0628_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0628_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0628_f002.png b/graphics/sa1/obj_tiles/4bpp/a0628_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0628_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0628_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0628_f003.png b/graphics/sa1/obj_tiles/4bpp/a0628_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0628_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0628_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0628_f004.png b/graphics/sa1/obj_tiles/4bpp/a0628_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0628_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0628_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0628_f005.png b/graphics/sa1/obj_tiles/4bpp/a0628_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0628_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0628_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0629_f000.png b/graphics/sa1/obj_tiles/4bpp/a0629_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0629_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0629_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0629_f001.png b/graphics/sa1/obj_tiles/4bpp/a0629_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0629_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0629_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0629_f002.png b/graphics/sa1/obj_tiles/4bpp/a0629_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0629_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0629_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0629_f003.png b/graphics/sa1/obj_tiles/4bpp/a0629_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0629_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0629_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0630_f000.png b/graphics/sa1/obj_tiles/4bpp/a0630_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0630_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0630_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f000.png b/graphics/sa1/obj_tiles/4bpp/a0631_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f001.png b/graphics/sa1/obj_tiles/4bpp/a0631_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f002.png b/graphics/sa1/obj_tiles/4bpp/a0631_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f003.png b/graphics/sa1/obj_tiles/4bpp/a0631_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f004.png b/graphics/sa1/obj_tiles/4bpp/a0631_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f005.png b/graphics/sa1/obj_tiles/4bpp/a0631_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f006.png b/graphics/sa1/obj_tiles/4bpp/a0631_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0631_f007.png b/graphics/sa1/obj_tiles/4bpp/a0631_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0631_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0631_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0632_f000.png b/graphics/sa1/obj_tiles/4bpp/a0632_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0632_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0632_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0632_f001.png b/graphics/sa1/obj_tiles/4bpp/a0632_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0632_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0632_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0632_f002.png b/graphics/sa1/obj_tiles/4bpp/a0632_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0632_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0632_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0632_f003.png b/graphics/sa1/obj_tiles/4bpp/a0632_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0632_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0632_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0632_f004.png b/graphics/sa1/obj_tiles/4bpp/a0632_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0632_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0632_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0632_f005.png b/graphics/sa1/obj_tiles/4bpp/a0632_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0632_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0632_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0633_f000.png b/graphics/sa1/obj_tiles/4bpp/a0633_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0633_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0633_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0633_f001.png b/graphics/sa1/obj_tiles/4bpp/a0633_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0633_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0633_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0634_f000.png b/graphics/sa1/obj_tiles/4bpp/a0634_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0634_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0634_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0634_f001.png b/graphics/sa1/obj_tiles/4bpp/a0634_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0634_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0634_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0634_f002.png b/graphics/sa1/obj_tiles/4bpp/a0634_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0634_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0634_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0634_f003.png b/graphics/sa1/obj_tiles/4bpp/a0634_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0634_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0634_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0634_f004.png b/graphics/sa1/obj_tiles/4bpp/a0634_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0634_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0634_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0635_f000.png b/graphics/sa1/obj_tiles/4bpp/a0635_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0635_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0635_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0635_f001.png b/graphics/sa1/obj_tiles/4bpp/a0635_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0635_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0635_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0635_f002.png b/graphics/sa1/obj_tiles/4bpp/a0635_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0635_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0635_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0635_f003.png b/graphics/sa1/obj_tiles/4bpp/a0635_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0635_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0635_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0635_f004.png b/graphics/sa1/obj_tiles/4bpp/a0635_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0635_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0635_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0635_f005.png b/graphics/sa1/obj_tiles/4bpp/a0635_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0635_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0635_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0636_f000.png b/graphics/sa1/obj_tiles/4bpp/a0636_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0636_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0636_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0636_f001.png b/graphics/sa1/obj_tiles/4bpp/a0636_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0636_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0636_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0636_f002.png b/graphics/sa1/obj_tiles/4bpp/a0636_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0636_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0636_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0636_f003.png b/graphics/sa1/obj_tiles/4bpp/a0636_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0636_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0636_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f000.png b/graphics/sa1/obj_tiles/4bpp/a0637_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f001.png b/graphics/sa1/obj_tiles/4bpp/a0637_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f002.png b/graphics/sa1/obj_tiles/4bpp/a0637_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f003.png b/graphics/sa1/obj_tiles/4bpp/a0637_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f004.png b/graphics/sa1/obj_tiles/4bpp/a0637_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f005.png b/graphics/sa1/obj_tiles/4bpp/a0637_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f006.png b/graphics/sa1/obj_tiles/4bpp/a0637_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0637_f007.png b/graphics/sa1/obj_tiles/4bpp/a0637_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0637_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0637_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0638_f000.png b/graphics/sa1/obj_tiles/4bpp/a0638_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0638_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0638_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0638_f001.png b/graphics/sa1/obj_tiles/4bpp/a0638_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0638_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0638_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0639_f000.png b/graphics/sa1/obj_tiles/4bpp/a0639_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0639_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0639_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0639_f001.png b/graphics/sa1/obj_tiles/4bpp/a0639_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0639_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0639_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0639_f002.png b/graphics/sa1/obj_tiles/4bpp/a0639_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0639_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0639_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0639_f003.png b/graphics/sa1/obj_tiles/4bpp/a0639_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0639_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0639_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f000.png b/graphics/sa1/obj_tiles/4bpp/a0640_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f001.png b/graphics/sa1/obj_tiles/4bpp/a0640_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f002.png b/graphics/sa1/obj_tiles/4bpp/a0640_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f003.png b/graphics/sa1/obj_tiles/4bpp/a0640_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f004.png b/graphics/sa1/obj_tiles/4bpp/a0640_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f005.png b/graphics/sa1/obj_tiles/4bpp/a0640_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f006.png b/graphics/sa1/obj_tiles/4bpp/a0640_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f007.png b/graphics/sa1/obj_tiles/4bpp/a0640_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f008.png b/graphics/sa1/obj_tiles/4bpp/a0640_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f009.png b/graphics/sa1/obj_tiles/4bpp/a0640_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0640_f010.png b/graphics/sa1/obj_tiles/4bpp/a0640_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0640_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0640_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0641_f000.png b/graphics/sa1/obj_tiles/4bpp/a0641_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0641_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0641_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0641_f001.png b/graphics/sa1/obj_tiles/4bpp/a0641_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0641_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0641_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0642_f000.png b/graphics/sa1/obj_tiles/4bpp/a0642_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0642_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0642_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0642_f001.png b/graphics/sa1/obj_tiles/4bpp/a0642_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0642_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0642_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0642_f002.png b/graphics/sa1/obj_tiles/4bpp/a0642_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0642_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0642_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0642_f003.png b/graphics/sa1/obj_tiles/4bpp/a0642_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0642_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0642_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f000.png b/graphics/sa1/obj_tiles/4bpp/a0643_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f001.png b/graphics/sa1/obj_tiles/4bpp/a0643_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f002.png b/graphics/sa1/obj_tiles/4bpp/a0643_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f003.png b/graphics/sa1/obj_tiles/4bpp/a0643_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f004.png b/graphics/sa1/obj_tiles/4bpp/a0643_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f005.png b/graphics/sa1/obj_tiles/4bpp/a0643_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f006.png b/graphics/sa1/obj_tiles/4bpp/a0643_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0643_f007.png b/graphics/sa1/obj_tiles/4bpp/a0643_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0643_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0643_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0644_f000.png b/graphics/sa1/obj_tiles/4bpp/a0644_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0644_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0644_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0644_f001.png b/graphics/sa1/obj_tiles/4bpp/a0644_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0644_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0644_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0644_f002.png b/graphics/sa1/obj_tiles/4bpp/a0644_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0644_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0644_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0644_f003.png b/graphics/sa1/obj_tiles/4bpp/a0644_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0644_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0644_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0644_f004.png b/graphics/sa1/obj_tiles/4bpp/a0644_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0644_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0644_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0644_f005.png b/graphics/sa1/obj_tiles/4bpp/a0644_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0644_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0644_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0645_f000.png b/graphics/sa1/obj_tiles/4bpp/a0645_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0645_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0645_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0645_f001.png b/graphics/sa1/obj_tiles/4bpp/a0645_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0645_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0645_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0646_f000.png b/graphics/sa1/obj_tiles/4bpp/a0646_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0646_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0646_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0646_f001.png b/graphics/sa1/obj_tiles/4bpp/a0646_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0646_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0646_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0646_f002.png b/graphics/sa1/obj_tiles/4bpp/a0646_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0646_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0646_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0646_f003.png b/graphics/sa1/obj_tiles/4bpp/a0646_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0646_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0646_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0646_f004.png b/graphics/sa1/obj_tiles/4bpp/a0646_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0646_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0646_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0647_f000.png b/graphics/sa1/obj_tiles/4bpp/a0647_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0647_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0647_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0647_f001.png b/graphics/sa1/obj_tiles/4bpp/a0647_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0647_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0647_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0647_f002.png b/graphics/sa1/obj_tiles/4bpp/a0647_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0647_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0647_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0647_f003.png b/graphics/sa1/obj_tiles/4bpp/a0647_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0647_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0647_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0647_f004.png b/graphics/sa1/obj_tiles/4bpp/a0647_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0647_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0647_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0647_f005.png b/graphics/sa1/obj_tiles/4bpp/a0647_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0647_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0647_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0648_f000.png b/graphics/sa1/obj_tiles/4bpp/a0648_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0648_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0648_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0648_f001.png b/graphics/sa1/obj_tiles/4bpp/a0648_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0648_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0648_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0648_f002.png b/graphics/sa1/obj_tiles/4bpp/a0648_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0648_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0648_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0648_f003.png b/graphics/sa1/obj_tiles/4bpp/a0648_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0648_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0648_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f000.png b/graphics/sa1/obj_tiles/4bpp/a0649_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f001.png b/graphics/sa1/obj_tiles/4bpp/a0649_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f002.png b/graphics/sa1/obj_tiles/4bpp/a0649_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f003.png b/graphics/sa1/obj_tiles/4bpp/a0649_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f004.png b/graphics/sa1/obj_tiles/4bpp/a0649_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f005.png b/graphics/sa1/obj_tiles/4bpp/a0649_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f006.png b/graphics/sa1/obj_tiles/4bpp/a0649_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0649_f007.png b/graphics/sa1/obj_tiles/4bpp/a0649_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0649_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0649_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0650_f000.png b/graphics/sa1/obj_tiles/4bpp/a0650_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0650_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0650_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0650_f001.png b/graphics/sa1/obj_tiles/4bpp/a0650_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0650_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0650_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0651_f000.png b/graphics/sa1/obj_tiles/4bpp/a0651_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0651_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0651_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0651_f001.png b/graphics/sa1/obj_tiles/4bpp/a0651_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0651_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0651_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0651_f002.png b/graphics/sa1/obj_tiles/4bpp/a0651_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0651_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0651_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0651_f003.png b/graphics/sa1/obj_tiles/4bpp/a0651_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0651_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0651_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f000.png b/graphics/sa1/obj_tiles/4bpp/a0652_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f001.png b/graphics/sa1/obj_tiles/4bpp/a0652_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f002.png b/graphics/sa1/obj_tiles/4bpp/a0652_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f003.png b/graphics/sa1/obj_tiles/4bpp/a0652_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f004.png b/graphics/sa1/obj_tiles/4bpp/a0652_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f005.png b/graphics/sa1/obj_tiles/4bpp/a0652_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f006.png b/graphics/sa1/obj_tiles/4bpp/a0652_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f007.png b/graphics/sa1/obj_tiles/4bpp/a0652_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f008.png b/graphics/sa1/obj_tiles/4bpp/a0652_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f009.png b/graphics/sa1/obj_tiles/4bpp/a0652_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0652_f010.png b/graphics/sa1/obj_tiles/4bpp/a0652_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0652_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0652_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0653_f000.png b/graphics/sa1/obj_tiles/4bpp/a0653_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0653_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0653_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0653_f001.png b/graphics/sa1/obj_tiles/4bpp/a0653_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0653_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0653_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0654_f000.png b/graphics/sa1/obj_tiles/4bpp/a0654_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0654_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0654_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0654_f001.png b/graphics/sa1/obj_tiles/4bpp/a0654_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0654_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0654_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0654_f002.png b/graphics/sa1/obj_tiles/4bpp/a0654_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0654_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0654_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0654_f003.png b/graphics/sa1/obj_tiles/4bpp/a0654_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0654_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0654_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f000.png b/graphics/sa1/obj_tiles/4bpp/a0655_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f001.png b/graphics/sa1/obj_tiles/4bpp/a0655_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f002.png b/graphics/sa1/obj_tiles/4bpp/a0655_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f003.png b/graphics/sa1/obj_tiles/4bpp/a0655_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f004.png b/graphics/sa1/obj_tiles/4bpp/a0655_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f005.png b/graphics/sa1/obj_tiles/4bpp/a0655_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f006.png b/graphics/sa1/obj_tiles/4bpp/a0655_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0655_f007.png b/graphics/sa1/obj_tiles/4bpp/a0655_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0655_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0655_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0656_f000.png b/graphics/sa1/obj_tiles/4bpp/a0656_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0656_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0656_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0656_f001.png b/graphics/sa1/obj_tiles/4bpp/a0656_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0656_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0656_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0657_f000.png b/graphics/sa1/obj_tiles/4bpp/a0657_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0657_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0657_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0657_f001.png b/graphics/sa1/obj_tiles/4bpp/a0657_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0657_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0657_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0657_f002.png b/graphics/sa1/obj_tiles/4bpp/a0657_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0657_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0657_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0657_f003.png b/graphics/sa1/obj_tiles/4bpp/a0657_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0657_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0657_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0657_f004.png b/graphics/sa1/obj_tiles/4bpp/a0657_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0657_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0657_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0657_f005.png b/graphics/sa1/obj_tiles/4bpp/a0657_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0657_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0657_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0658_f000.png b/graphics/sa1/obj_tiles/4bpp/a0658_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0658_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0658_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0658_f001.png b/graphics/sa1/obj_tiles/4bpp/a0658_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0658_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0658_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0658_f002.png b/graphics/sa1/obj_tiles/4bpp/a0658_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0658_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0658_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0658_f003.png b/graphics/sa1/obj_tiles/4bpp/a0658_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0658_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0658_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0658_f004.png b/graphics/sa1/obj_tiles/4bpp/a0658_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0658_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0658_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0658_f005.png b/graphics/sa1/obj_tiles/4bpp/a0658_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0658_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0658_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0659_f000.png b/graphics/sa1/obj_tiles/4bpp/a0659_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0659_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0659_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f000.png b/graphics/sa1/obj_tiles/4bpp/a0660_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f001.png b/graphics/sa1/obj_tiles/4bpp/a0660_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f002.png b/graphics/sa1/obj_tiles/4bpp/a0660_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f003.png b/graphics/sa1/obj_tiles/4bpp/a0660_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f004.png b/graphics/sa1/obj_tiles/4bpp/a0660_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f005.png b/graphics/sa1/obj_tiles/4bpp/a0660_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f006.png b/graphics/sa1/obj_tiles/4bpp/a0660_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f007.png b/graphics/sa1/obj_tiles/4bpp/a0660_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f008.png b/graphics/sa1/obj_tiles/4bpp/a0660_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0660_f009.png b/graphics/sa1/obj_tiles/4bpp/a0660_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0660_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0660_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0661_f000.png b/graphics/sa1/obj_tiles/4bpp/a0661_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0661_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0661_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0662_f000.png b/graphics/sa1/obj_tiles/4bpp/a0662_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0662_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0662_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0662_f002.png b/graphics/sa1/obj_tiles/4bpp/a0662_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0662_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0662_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0662_f004.png b/graphics/sa1/obj_tiles/4bpp/a0662_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0662_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0662_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0663_f000.png b/graphics/sa1/obj_tiles/4bpp/a0663_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0663_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0663_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0663_f001.png b/graphics/sa1/obj_tiles/4bpp/a0663_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0663_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0663_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0664_f000.png b/graphics/sa1/obj_tiles/4bpp/a0664_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0664_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0664_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0664_f001.png b/graphics/sa1/obj_tiles/4bpp/a0664_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0664_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0664_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0665_f000.png b/graphics/sa1/obj_tiles/4bpp/a0665_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0665_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0665_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0665_f001.png b/graphics/sa1/obj_tiles/4bpp/a0665_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0665_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0665_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0667_f000.png b/graphics/sa1/obj_tiles/4bpp/a0667_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0667_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0667_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0667_f001.png b/graphics/sa1/obj_tiles/4bpp/a0667_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0667_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0667_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0667_f002.png b/graphics/sa1/obj_tiles/4bpp/a0667_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0667_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0667_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0667_f003.png b/graphics/sa1/obj_tiles/4bpp/a0667_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0667_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0667_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0667_f004.png b/graphics/sa1/obj_tiles/4bpp/a0667_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0667_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0667_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0668_f000.png b/graphics/sa1/obj_tiles/4bpp/a0668_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0668_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0668_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0668_f001.png b/graphics/sa1/obj_tiles/4bpp/a0668_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0668_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0668_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0668_f002.png b/graphics/sa1/obj_tiles/4bpp/a0668_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0668_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0668_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0668_f003.png b/graphics/sa1/obj_tiles/4bpp/a0668_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0668_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0668_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0669_f000.png b/graphics/sa1/obj_tiles/4bpp/a0669_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0669_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0669_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f000.png b/graphics/sa1/obj_tiles/4bpp/a0670_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f001.png b/graphics/sa1/obj_tiles/4bpp/a0670_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f002.png b/graphics/sa1/obj_tiles/4bpp/a0670_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f003.png b/graphics/sa1/obj_tiles/4bpp/a0670_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f004.png b/graphics/sa1/obj_tiles/4bpp/a0670_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f005.png b/graphics/sa1/obj_tiles/4bpp/a0670_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f006.png b/graphics/sa1/obj_tiles/4bpp/a0670_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0670_f007.png b/graphics/sa1/obj_tiles/4bpp/a0670_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0670_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0670_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0671_f000.png b/graphics/sa1/obj_tiles/4bpp/a0671_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0671_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0671_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0672_f000.png b/graphics/sa1/obj_tiles/4bpp/a0672_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0672_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0672_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0672_f001.png b/graphics/sa1/obj_tiles/4bpp/a0672_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0672_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0672_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0672_f002.png b/graphics/sa1/obj_tiles/4bpp/a0672_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0672_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0672_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0672_f003.png b/graphics/sa1/obj_tiles/4bpp/a0672_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0672_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0672_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0672_f004.png b/graphics/sa1/obj_tiles/4bpp/a0672_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0672_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0672_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0673_f000.png b/graphics/sa1/obj_tiles/4bpp/a0673_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0673_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0673_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0673_f001.png b/graphics/sa1/obj_tiles/4bpp/a0673_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0673_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0673_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0674_f000.png b/graphics/sa1/obj_tiles/4bpp/a0674_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0674_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0674_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0675_f000.png b/graphics/sa1/obj_tiles/4bpp/a0675_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0675_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0675_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0675_f001.png b/graphics/sa1/obj_tiles/4bpp/a0675_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0675_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0675_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0676_f000.png b/graphics/sa1/obj_tiles/4bpp/a0676_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0676_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0676_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0677_f000.png b/graphics/sa1/obj_tiles/4bpp/a0677_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0677_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0677_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0678_f000.png b/graphics/sa1/obj_tiles/4bpp/a0678_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0678_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0678_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0679_f000.png b/graphics/sa1/obj_tiles/4bpp/a0679_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0679_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0679_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0679_f001.png b/graphics/sa1/obj_tiles/4bpp/a0679_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0679_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0679_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0680_f000.png b/graphics/sa1/obj_tiles/4bpp/a0680_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0680_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0680_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0680_f001.png b/graphics/sa1/obj_tiles/4bpp/a0680_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0680_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0680_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0680_f002.png b/graphics/sa1/obj_tiles/4bpp/a0680_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0680_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0680_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0680_f003.png b/graphics/sa1/obj_tiles/4bpp/a0680_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0680_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0680_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0680_f004.png b/graphics/sa1/obj_tiles/4bpp/a0680_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0680_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0680_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f000.png b/graphics/sa1/obj_tiles/4bpp/a0681_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f001.png b/graphics/sa1/obj_tiles/4bpp/a0681_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f002.png b/graphics/sa1/obj_tiles/4bpp/a0681_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f003.png b/graphics/sa1/obj_tiles/4bpp/a0681_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f004.png b/graphics/sa1/obj_tiles/4bpp/a0681_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f005.png b/graphics/sa1/obj_tiles/4bpp/a0681_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f006.png b/graphics/sa1/obj_tiles/4bpp/a0681_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0681_f007.png b/graphics/sa1/obj_tiles/4bpp/a0681_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0681_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0681_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0682_f000.png b/graphics/sa1/obj_tiles/4bpp/a0682_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0682_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0682_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0683_f000.png b/graphics/sa1/obj_tiles/4bpp/a0683_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0683_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0683_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0683_f001.png b/graphics/sa1/obj_tiles/4bpp/a0683_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0683_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0683_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0683_f002.png b/graphics/sa1/obj_tiles/4bpp/a0683_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0683_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0683_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0683_f003.png b/graphics/sa1/obj_tiles/4bpp/a0683_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0683_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0683_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0683_f004.png b/graphics/sa1/obj_tiles/4bpp/a0683_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0683_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0683_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0684_f000.png b/graphics/sa1/obj_tiles/4bpp/a0684_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0684_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0684_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0685_f000.png b/graphics/sa1/obj_tiles/4bpp/a0685_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0685_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0685_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0685_f001.png b/graphics/sa1/obj_tiles/4bpp/a0685_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0685_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0685_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0686_f000.png b/graphics/sa1/obj_tiles/4bpp/a0686_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0686_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0686_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0686_f001.png b/graphics/sa1/obj_tiles/4bpp/a0686_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0686_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0686_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0686_f002.png b/graphics/sa1/obj_tiles/4bpp/a0686_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0686_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0686_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0686_f003.png b/graphics/sa1/obj_tiles/4bpp/a0686_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0686_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0686_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0686_f004.png b/graphics/sa1/obj_tiles/4bpp/a0686_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0686_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0686_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0687_f000.png b/graphics/sa1/obj_tiles/4bpp/a0687_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0687_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0687_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0687_f001.png b/graphics/sa1/obj_tiles/4bpp/a0687_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0687_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0687_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f000.png b/graphics/sa1/obj_tiles/4bpp/a0688_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f001.png b/graphics/sa1/obj_tiles/4bpp/a0688_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f002.png b/graphics/sa1/obj_tiles/4bpp/a0688_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f003.png b/graphics/sa1/obj_tiles/4bpp/a0688_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f004.png b/graphics/sa1/obj_tiles/4bpp/a0688_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f005.png b/graphics/sa1/obj_tiles/4bpp/a0688_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f006.png b/graphics/sa1/obj_tiles/4bpp/a0688_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f007.png b/graphics/sa1/obj_tiles/4bpp/a0688_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f008.png b/graphics/sa1/obj_tiles/4bpp/a0688_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f009.png b/graphics/sa1/obj_tiles/4bpp/a0688_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f010.png b/graphics/sa1/obj_tiles/4bpp/a0688_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f011.png b/graphics/sa1/obj_tiles/4bpp/a0688_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f012.png b/graphics/sa1/obj_tiles/4bpp/a0688_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f013.png b/graphics/sa1/obj_tiles/4bpp/a0688_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f014.png b/graphics/sa1/obj_tiles/4bpp/a0688_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f015.png b/graphics/sa1/obj_tiles/4bpp/a0688_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f016.png b/graphics/sa1/obj_tiles/4bpp/a0688_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f017.png b/graphics/sa1/obj_tiles/4bpp/a0688_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f018.png b/graphics/sa1/obj_tiles/4bpp/a0688_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f019.png b/graphics/sa1/obj_tiles/4bpp/a0688_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f020.png b/graphics/sa1/obj_tiles/4bpp/a0688_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f021.png b/graphics/sa1/obj_tiles/4bpp/a0688_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f022.png b/graphics/sa1/obj_tiles/4bpp/a0688_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f023.png b/graphics/sa1/obj_tiles/4bpp/a0688_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f024.png b/graphics/sa1/obj_tiles/4bpp/a0688_f024.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f024.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f024.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f025.png b/graphics/sa1/obj_tiles/4bpp/a0688_f025.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f025.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f025.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0688_f026.png b/graphics/sa1/obj_tiles/4bpp/a0688_f026.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0688_f026.png rename to graphics/sa1/obj_tiles/4bpp/a0688_f026.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0689_f000.png b/graphics/sa1/obj_tiles/4bpp/a0689_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0689_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0689_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0689_f001.png b/graphics/sa1/obj_tiles/4bpp/a0689_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0689_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0689_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0689_f002.png b/graphics/sa1/obj_tiles/4bpp/a0689_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0689_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0689_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0689_f003.png b/graphics/sa1/obj_tiles/4bpp/a0689_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0689_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0689_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0690_f000.png b/graphics/sa1/obj_tiles/4bpp/a0690_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0690_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0690_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0690_f001.png b/graphics/sa1/obj_tiles/4bpp/a0690_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0690_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0690_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f000.png b/graphics/sa1/obj_tiles/4bpp/a0691_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f001.png b/graphics/sa1/obj_tiles/4bpp/a0691_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f002.png b/graphics/sa1/obj_tiles/4bpp/a0691_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f003.png b/graphics/sa1/obj_tiles/4bpp/a0691_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f004.png b/graphics/sa1/obj_tiles/4bpp/a0691_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f005.png b/graphics/sa1/obj_tiles/4bpp/a0691_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0691_f006.png b/graphics/sa1/obj_tiles/4bpp/a0691_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0691_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0691_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0692_f000.png b/graphics/sa1/obj_tiles/4bpp/a0692_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0692_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0692_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0693_f000.png b/graphics/sa1/obj_tiles/4bpp/a0693_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0693_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0693_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0693_f001.png b/graphics/sa1/obj_tiles/4bpp/a0693_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0693_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0693_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0693_f002.png b/graphics/sa1/obj_tiles/4bpp/a0693_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0693_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0693_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0693_f003.png b/graphics/sa1/obj_tiles/4bpp/a0693_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0693_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0693_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f000.png b/graphics/sa1/obj_tiles/4bpp/a0694_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f001.png b/graphics/sa1/obj_tiles/4bpp/a0694_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f002.png b/graphics/sa1/obj_tiles/4bpp/a0694_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f003.png b/graphics/sa1/obj_tiles/4bpp/a0694_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f004.png b/graphics/sa1/obj_tiles/4bpp/a0694_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f005.png b/graphics/sa1/obj_tiles/4bpp/a0694_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f006.png b/graphics/sa1/obj_tiles/4bpp/a0694_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f007.png b/graphics/sa1/obj_tiles/4bpp/a0694_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f008.png b/graphics/sa1/obj_tiles/4bpp/a0694_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f009.png b/graphics/sa1/obj_tiles/4bpp/a0694_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f010.png b/graphics/sa1/obj_tiles/4bpp/a0694_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f011.png b/graphics/sa1/obj_tiles/4bpp/a0694_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f012.png b/graphics/sa1/obj_tiles/4bpp/a0694_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f013.png b/graphics/sa1/obj_tiles/4bpp/a0694_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f014.png b/graphics/sa1/obj_tiles/4bpp/a0694_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f015.png b/graphics/sa1/obj_tiles/4bpp/a0694_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0694_f016.png b/graphics/sa1/obj_tiles/4bpp/a0694_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0694_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0694_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0695_f000.png b/graphics/sa1/obj_tiles/4bpp/a0695_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0695_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0695_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0695_f001.png b/graphics/sa1/obj_tiles/4bpp/a0695_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0695_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0695_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0696_f000.png b/graphics/sa1/obj_tiles/4bpp/a0696_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0696_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0696_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0696_f001.png b/graphics/sa1/obj_tiles/4bpp/a0696_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0696_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0696_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0697_f000.png b/graphics/sa1/obj_tiles/4bpp/a0697_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0697_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0697_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0697_f001.png b/graphics/sa1/obj_tiles/4bpp/a0697_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0697_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0697_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0698_f000.png b/graphics/sa1/obj_tiles/4bpp/a0698_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0698_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0698_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0698_f001.png b/graphics/sa1/obj_tiles/4bpp/a0698_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0698_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0698_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0698_f002.png b/graphics/sa1/obj_tiles/4bpp/a0698_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0698_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0698_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0698_f003.png b/graphics/sa1/obj_tiles/4bpp/a0698_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0698_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0698_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0699_f000.png b/graphics/sa1/obj_tiles/4bpp/a0699_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0699_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0699_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0699_f001.png b/graphics/sa1/obj_tiles/4bpp/a0699_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0699_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0699_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0699_f002.png b/graphics/sa1/obj_tiles/4bpp/a0699_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0699_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0699_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0699_f003.png b/graphics/sa1/obj_tiles/4bpp/a0699_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0699_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0699_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0700_f000.png b/graphics/sa1/obj_tiles/4bpp/a0700_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0700_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0700_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0701_f000.png b/graphics/sa1/obj_tiles/4bpp/a0701_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0701_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0701_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0701_f001.png b/graphics/sa1/obj_tiles/4bpp/a0701_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0701_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0701_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0702_f000.png b/graphics/sa1/obj_tiles/4bpp/a0702_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0702_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0702_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0702_f001.png b/graphics/sa1/obj_tiles/4bpp/a0702_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0702_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0702_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0702_f002.png b/graphics/sa1/obj_tiles/4bpp/a0702_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0702_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0702_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0702_f003.png b/graphics/sa1/obj_tiles/4bpp/a0702_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0702_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0702_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0702_f004.png b/graphics/sa1/obj_tiles/4bpp/a0702_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0702_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0702_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0703_f000.png b/graphics/sa1/obj_tiles/4bpp/a0703_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0703_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0703_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0703_f001.png b/graphics/sa1/obj_tiles/4bpp/a0703_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0703_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0703_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0703_f002.png b/graphics/sa1/obj_tiles/4bpp/a0703_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0703_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0703_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0703_f003.png b/graphics/sa1/obj_tiles/4bpp/a0703_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0703_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0703_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0703_f004.png b/graphics/sa1/obj_tiles/4bpp/a0703_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0703_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0703_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0704_f000.png b/graphics/sa1/obj_tiles/4bpp/a0704_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0704_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0704_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0704_f001.png b/graphics/sa1/obj_tiles/4bpp/a0704_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0704_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0704_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0704_f002.png b/graphics/sa1/obj_tiles/4bpp/a0704_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0704_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0704_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0704_f003.png b/graphics/sa1/obj_tiles/4bpp/a0704_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0704_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0704_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0704_f004.png b/graphics/sa1/obj_tiles/4bpp/a0704_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0704_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0704_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0705_f000.png b/graphics/sa1/obj_tiles/4bpp/a0705_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0705_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0705_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f000.png b/graphics/sa1/obj_tiles/4bpp/a0706_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f001.png b/graphics/sa1/obj_tiles/4bpp/a0706_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f002.png b/graphics/sa1/obj_tiles/4bpp/a0706_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f003.png b/graphics/sa1/obj_tiles/4bpp/a0706_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f004.png b/graphics/sa1/obj_tiles/4bpp/a0706_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f005.png b/graphics/sa1/obj_tiles/4bpp/a0706_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f006.png b/graphics/sa1/obj_tiles/4bpp/a0706_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f007.png b/graphics/sa1/obj_tiles/4bpp/a0706_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f008.png b/graphics/sa1/obj_tiles/4bpp/a0706_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f009.png b/graphics/sa1/obj_tiles/4bpp/a0706_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f010.png b/graphics/sa1/obj_tiles/4bpp/a0706_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f011.png b/graphics/sa1/obj_tiles/4bpp/a0706_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f012.png b/graphics/sa1/obj_tiles/4bpp/a0706_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f013.png b/graphics/sa1/obj_tiles/4bpp/a0706_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f014.png b/graphics/sa1/obj_tiles/4bpp/a0706_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f015.png b/graphics/sa1/obj_tiles/4bpp/a0706_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0706_f016.png b/graphics/sa1/obj_tiles/4bpp/a0706_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0706_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0706_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0707_f000.png b/graphics/sa1/obj_tiles/4bpp/a0707_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0707_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0707_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0707_f001.png b/graphics/sa1/obj_tiles/4bpp/a0707_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0707_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0707_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0707_f002.png b/graphics/sa1/obj_tiles/4bpp/a0707_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0707_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0707_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0707_f003.png b/graphics/sa1/obj_tiles/4bpp/a0707_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0707_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0707_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0708_f000.png b/graphics/sa1/obj_tiles/4bpp/a0708_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0708_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0708_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0708_f001.png b/graphics/sa1/obj_tiles/4bpp/a0708_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0708_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0708_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0708_f002.png b/graphics/sa1/obj_tiles/4bpp/a0708_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0708_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0708_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0708_f003.png b/graphics/sa1/obj_tiles/4bpp/a0708_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0708_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0708_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0709_f000.png b/graphics/sa1/obj_tiles/4bpp/a0709_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0709_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0709_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0709_f001.png b/graphics/sa1/obj_tiles/4bpp/a0709_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0709_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0709_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0709_f002.png b/graphics/sa1/obj_tiles/4bpp/a0709_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0709_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0709_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0709_f003.png b/graphics/sa1/obj_tiles/4bpp/a0709_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0709_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0709_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0709_f004.png b/graphics/sa1/obj_tiles/4bpp/a0709_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0709_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0709_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f000.png b/graphics/sa1/obj_tiles/4bpp/a0710_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f001.png b/graphics/sa1/obj_tiles/4bpp/a0710_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f002.png b/graphics/sa1/obj_tiles/4bpp/a0710_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f003.png b/graphics/sa1/obj_tiles/4bpp/a0710_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f004.png b/graphics/sa1/obj_tiles/4bpp/a0710_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f005.png b/graphics/sa1/obj_tiles/4bpp/a0710_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f006.png b/graphics/sa1/obj_tiles/4bpp/a0710_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f007.png b/graphics/sa1/obj_tiles/4bpp/a0710_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f008.png b/graphics/sa1/obj_tiles/4bpp/a0710_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0710_f009.png b/graphics/sa1/obj_tiles/4bpp/a0710_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0710_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0710_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0711_f000.png b/graphics/sa1/obj_tiles/4bpp/a0711_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0711_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0711_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0711_f001.png b/graphics/sa1/obj_tiles/4bpp/a0711_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0711_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0711_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0712_f000.png b/graphics/sa1/obj_tiles/4bpp/a0712_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0712_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0712_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0713_f000.png b/graphics/sa1/obj_tiles/4bpp/a0713_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0713_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0713_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0713_f001.png b/graphics/sa1/obj_tiles/4bpp/a0713_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0713_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0713_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0713_f002.png b/graphics/sa1/obj_tiles/4bpp/a0713_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0713_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0713_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0713_f003.png b/graphics/sa1/obj_tiles/4bpp/a0713_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0713_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0713_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0714_f000.png b/graphics/sa1/obj_tiles/4bpp/a0714_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0714_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0714_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0715_f000.png b/graphics/sa1/obj_tiles/4bpp/a0715_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0715_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0715_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0715_f001.png b/graphics/sa1/obj_tiles/4bpp/a0715_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0715_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0715_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0715_f002.png b/graphics/sa1/obj_tiles/4bpp/a0715_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0715_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0715_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0715_f003.png b/graphics/sa1/obj_tiles/4bpp/a0715_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0715_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0715_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0715_f004.png b/graphics/sa1/obj_tiles/4bpp/a0715_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0715_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0715_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0716_f000.png b/graphics/sa1/obj_tiles/4bpp/a0716_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0716_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0716_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0717_f000.png b/graphics/sa1/obj_tiles/4bpp/a0717_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0717_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0717_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0717_f001.png b/graphics/sa1/obj_tiles/4bpp/a0717_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0717_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0717_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0717_f002.png b/graphics/sa1/obj_tiles/4bpp/a0717_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0717_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0717_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0718_f000.png b/graphics/sa1/obj_tiles/4bpp/a0718_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0718_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0718_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0719_f000.png b/graphics/sa1/obj_tiles/4bpp/a0719_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0719_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0719_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0719_f001.png b/graphics/sa1/obj_tiles/4bpp/a0719_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0719_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0719_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0719_f002.png b/graphics/sa1/obj_tiles/4bpp/a0719_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0719_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0719_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0719_f003.png b/graphics/sa1/obj_tiles/4bpp/a0719_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0719_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0719_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0720_f000.png b/graphics/sa1/obj_tiles/4bpp/a0720_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0720_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0720_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0721_f000.png b/graphics/sa1/obj_tiles/4bpp/a0721_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0721_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0721_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f000.png b/graphics/sa1/obj_tiles/4bpp/a0722_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f001.png b/graphics/sa1/obj_tiles/4bpp/a0722_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f002.png b/graphics/sa1/obj_tiles/4bpp/a0722_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f003.png b/graphics/sa1/obj_tiles/4bpp/a0722_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f004.png b/graphics/sa1/obj_tiles/4bpp/a0722_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f005.png b/graphics/sa1/obj_tiles/4bpp/a0722_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f006.png b/graphics/sa1/obj_tiles/4bpp/a0722_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f007.png b/graphics/sa1/obj_tiles/4bpp/a0722_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f008.png b/graphics/sa1/obj_tiles/4bpp/a0722_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f009.png b/graphics/sa1/obj_tiles/4bpp/a0722_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f010.png b/graphics/sa1/obj_tiles/4bpp/a0722_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f011.png b/graphics/sa1/obj_tiles/4bpp/a0722_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f012.png b/graphics/sa1/obj_tiles/4bpp/a0722_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f013.png b/graphics/sa1/obj_tiles/4bpp/a0722_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f014.png b/graphics/sa1/obj_tiles/4bpp/a0722_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f015.png b/graphics/sa1/obj_tiles/4bpp/a0722_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f016.png b/graphics/sa1/obj_tiles/4bpp/a0722_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f017.png b/graphics/sa1/obj_tiles/4bpp/a0722_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f018.png b/graphics/sa1/obj_tiles/4bpp/a0722_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f019.png b/graphics/sa1/obj_tiles/4bpp/a0722_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f020.png b/graphics/sa1/obj_tiles/4bpp/a0722_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0722_f021.png b/graphics/sa1/obj_tiles/4bpp/a0722_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0722_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0722_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0723_f000.png b/graphics/sa1/obj_tiles/4bpp/a0723_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0723_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0723_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0723_f001.png b/graphics/sa1/obj_tiles/4bpp/a0723_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0723_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0723_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0723_f002.png b/graphics/sa1/obj_tiles/4bpp/a0723_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0723_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0723_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0723_f003.png b/graphics/sa1/obj_tiles/4bpp/a0723_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0723_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0723_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f000.png b/graphics/sa1/obj_tiles/4bpp/a0724_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f001.png b/graphics/sa1/obj_tiles/4bpp/a0724_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f002.png b/graphics/sa1/obj_tiles/4bpp/a0724_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f003.png b/graphics/sa1/obj_tiles/4bpp/a0724_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f004.png b/graphics/sa1/obj_tiles/4bpp/a0724_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f005.png b/graphics/sa1/obj_tiles/4bpp/a0724_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f006.png b/graphics/sa1/obj_tiles/4bpp/a0724_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f007.png b/graphics/sa1/obj_tiles/4bpp/a0724_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f008.png b/graphics/sa1/obj_tiles/4bpp/a0724_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f009.png b/graphics/sa1/obj_tiles/4bpp/a0724_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f010.png b/graphics/sa1/obj_tiles/4bpp/a0724_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f011.png b/graphics/sa1/obj_tiles/4bpp/a0724_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f012.png b/graphics/sa1/obj_tiles/4bpp/a0724_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f013.png b/graphics/sa1/obj_tiles/4bpp/a0724_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f014.png b/graphics/sa1/obj_tiles/4bpp/a0724_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f015.png b/graphics/sa1/obj_tiles/4bpp/a0724_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f016.png b/graphics/sa1/obj_tiles/4bpp/a0724_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0724_f017.png b/graphics/sa1/obj_tiles/4bpp/a0724_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0724_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0724_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0725_f000.png b/graphics/sa1/obj_tiles/4bpp/a0725_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0725_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0725_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0726_f000.png b/graphics/sa1/obj_tiles/4bpp/a0726_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0726_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0726_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0727_f000.png b/graphics/sa1/obj_tiles/4bpp/a0727_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0727_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0727_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0728_f000.png b/graphics/sa1/obj_tiles/4bpp/a0728_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0728_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0728_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0729_f000.png b/graphics/sa1/obj_tiles/4bpp/a0729_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0729_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0729_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0730_f000.png b/graphics/sa1/obj_tiles/4bpp/a0730_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0730_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0730_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0731_f000.png b/graphics/sa1/obj_tiles/4bpp/a0731_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0731_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0731_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0731_f001.png b/graphics/sa1/obj_tiles/4bpp/a0731_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0731_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0731_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0731_f002.png b/graphics/sa1/obj_tiles/4bpp/a0731_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0731_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0731_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0731_f003.png b/graphics/sa1/obj_tiles/4bpp/a0731_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0731_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0731_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0732_f000.png b/graphics/sa1/obj_tiles/4bpp/a0732_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0732_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0732_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0732_f001.png b/graphics/sa1/obj_tiles/4bpp/a0732_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0732_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0732_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0732_f002.png b/graphics/sa1/obj_tiles/4bpp/a0732_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0732_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0732_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0732_f003.png b/graphics/sa1/obj_tiles/4bpp/a0732_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0732_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0732_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0733_f000.png b/graphics/sa1/obj_tiles/4bpp/a0733_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0733_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0733_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0733_f001.png b/graphics/sa1/obj_tiles/4bpp/a0733_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0733_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0733_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0734_f000.png b/graphics/sa1/obj_tiles/4bpp/a0734_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0734_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0734_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0734_f001.png b/graphics/sa1/obj_tiles/4bpp/a0734_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0734_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0734_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0735_f000.png b/graphics/sa1/obj_tiles/4bpp/a0735_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0735_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0735_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0735_f001.png b/graphics/sa1/obj_tiles/4bpp/a0735_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0735_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0735_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0736_f000.png b/graphics/sa1/obj_tiles/4bpp/a0736_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0736_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0736_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0736_f001.png b/graphics/sa1/obj_tiles/4bpp/a0736_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0736_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0736_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0739_f000.png b/graphics/sa1/obj_tiles/4bpp/a0739_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0739_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0739_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0739_f001.png b/graphics/sa1/obj_tiles/4bpp/a0739_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0739_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0739_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0740_f000.png b/graphics/sa1/obj_tiles/4bpp/a0740_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0740_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0740_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0740_f001.png b/graphics/sa1/obj_tiles/4bpp/a0740_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0740_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0740_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0740_f002.png b/graphics/sa1/obj_tiles/4bpp/a0740_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0740_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0740_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0740_f003.png b/graphics/sa1/obj_tiles/4bpp/a0740_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0740_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0740_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0741_f000.png b/graphics/sa1/obj_tiles/4bpp/a0741_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0741_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0741_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0741_f001.png b/graphics/sa1/obj_tiles/4bpp/a0741_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0741_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0741_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0742_f000.png b/graphics/sa1/obj_tiles/4bpp/a0742_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0742_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0742_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0743_f000.png b/graphics/sa1/obj_tiles/4bpp/a0743_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0743_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0743_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0744_f000.png b/graphics/sa1/obj_tiles/4bpp/a0744_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0744_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0744_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0745_f000.png b/graphics/sa1/obj_tiles/4bpp/a0745_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0745_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0745_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0745_f001.png b/graphics/sa1/obj_tiles/4bpp/a0745_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0745_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0745_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0745_f002.png b/graphics/sa1/obj_tiles/4bpp/a0745_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0745_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0745_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0745_f003.png b/graphics/sa1/obj_tiles/4bpp/a0745_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0745_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0745_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0745_f004.png b/graphics/sa1/obj_tiles/4bpp/a0745_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0745_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0745_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f000.png b/graphics/sa1/obj_tiles/4bpp/a0746_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f001.png b/graphics/sa1/obj_tiles/4bpp/a0746_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f002.png b/graphics/sa1/obj_tiles/4bpp/a0746_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f003.png b/graphics/sa1/obj_tiles/4bpp/a0746_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f004.png b/graphics/sa1/obj_tiles/4bpp/a0746_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f005.png b/graphics/sa1/obj_tiles/4bpp/a0746_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f006.png b/graphics/sa1/obj_tiles/4bpp/a0746_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0746_f007.png b/graphics/sa1/obj_tiles/4bpp/a0746_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0746_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0746_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0747_f000.png b/graphics/sa1/obj_tiles/4bpp/a0747_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0747_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0747_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0747_f001.png b/graphics/sa1/obj_tiles/4bpp/a0747_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0747_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0747_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0747_f002.png b/graphics/sa1/obj_tiles/4bpp/a0747_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0747_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0747_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0747_f003.png b/graphics/sa1/obj_tiles/4bpp/a0747_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0747_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0747_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f000.png b/graphics/sa1/obj_tiles/4bpp/a0748_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f001.png b/graphics/sa1/obj_tiles/4bpp/a0748_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f002.png b/graphics/sa1/obj_tiles/4bpp/a0748_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f003.png b/graphics/sa1/obj_tiles/4bpp/a0748_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f004.png b/graphics/sa1/obj_tiles/4bpp/a0748_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f005.png b/graphics/sa1/obj_tiles/4bpp/a0748_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f006.png b/graphics/sa1/obj_tiles/4bpp/a0748_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0748_f007.png b/graphics/sa1/obj_tiles/4bpp/a0748_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0748_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0748_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f000.png b/graphics/sa1/obj_tiles/4bpp/a0749_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f001.png b/graphics/sa1/obj_tiles/4bpp/a0749_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f002.png b/graphics/sa1/obj_tiles/4bpp/a0749_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f003.png b/graphics/sa1/obj_tiles/4bpp/a0749_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f004.png b/graphics/sa1/obj_tiles/4bpp/a0749_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f005.png b/graphics/sa1/obj_tiles/4bpp/a0749_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f006.png b/graphics/sa1/obj_tiles/4bpp/a0749_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0749_f007.png b/graphics/sa1/obj_tiles/4bpp/a0749_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0749_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0749_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0750_f000.png b/graphics/sa1/obj_tiles/4bpp/a0750_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0750_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0750_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0750_f001.png b/graphics/sa1/obj_tiles/4bpp/a0750_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0750_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0750_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0750_f002.png b/graphics/sa1/obj_tiles/4bpp/a0750_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0750_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0750_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0750_f003.png b/graphics/sa1/obj_tiles/4bpp/a0750_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0750_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0750_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0750_f004.png b/graphics/sa1/obj_tiles/4bpp/a0750_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0750_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0750_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0750_f005.png b/graphics/sa1/obj_tiles/4bpp/a0750_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0750_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0750_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f000.png b/graphics/sa1/obj_tiles/4bpp/a0751_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f001.png b/graphics/sa1/obj_tiles/4bpp/a0751_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f002.png b/graphics/sa1/obj_tiles/4bpp/a0751_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f003.png b/graphics/sa1/obj_tiles/4bpp/a0751_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f004.png b/graphics/sa1/obj_tiles/4bpp/a0751_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f005.png b/graphics/sa1/obj_tiles/4bpp/a0751_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f006.png b/graphics/sa1/obj_tiles/4bpp/a0751_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0751_f007.png b/graphics/sa1/obj_tiles/4bpp/a0751_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0751_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0751_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f000.png b/graphics/sa1/obj_tiles/4bpp/a0752_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f001.png b/graphics/sa1/obj_tiles/4bpp/a0752_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f002.png b/graphics/sa1/obj_tiles/4bpp/a0752_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f003.png b/graphics/sa1/obj_tiles/4bpp/a0752_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f004.png b/graphics/sa1/obj_tiles/4bpp/a0752_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f005.png b/graphics/sa1/obj_tiles/4bpp/a0752_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f006.png b/graphics/sa1/obj_tiles/4bpp/a0752_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f007.png b/graphics/sa1/obj_tiles/4bpp/a0752_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f008.png b/graphics/sa1/obj_tiles/4bpp/a0752_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f009.png b/graphics/sa1/obj_tiles/4bpp/a0752_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f010.png b/graphics/sa1/obj_tiles/4bpp/a0752_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f011.png b/graphics/sa1/obj_tiles/4bpp/a0752_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f012.png b/graphics/sa1/obj_tiles/4bpp/a0752_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f013.png b/graphics/sa1/obj_tiles/4bpp/a0752_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f014.png b/graphics/sa1/obj_tiles/4bpp/a0752_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f015.png b/graphics/sa1/obj_tiles/4bpp/a0752_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f016.png b/graphics/sa1/obj_tiles/4bpp/a0752_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0752_f017.png b/graphics/sa1/obj_tiles/4bpp/a0752_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0752_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0752_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0753_f000.png b/graphics/sa1/obj_tiles/4bpp/a0753_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0753_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0753_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0753_f001.png b/graphics/sa1/obj_tiles/4bpp/a0753_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0753_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0753_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0753_f002.png b/graphics/sa1/obj_tiles/4bpp/a0753_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0753_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0753_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0753_f003.png b/graphics/sa1/obj_tiles/4bpp/a0753_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0753_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0753_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0754_f000.png b/graphics/sa1/obj_tiles/4bpp/a0754_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0754_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0754_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0754_f001.png b/graphics/sa1/obj_tiles/4bpp/a0754_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0754_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0754_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0754_f002.png b/graphics/sa1/obj_tiles/4bpp/a0754_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0754_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0754_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0754_f003.png b/graphics/sa1/obj_tiles/4bpp/a0754_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0754_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0754_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0755_f000.png b/graphics/sa1/obj_tiles/4bpp/a0755_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0755_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0755_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0755_f001.png b/graphics/sa1/obj_tiles/4bpp/a0755_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0755_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0755_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0755_f002.png b/graphics/sa1/obj_tiles/4bpp/a0755_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0755_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0755_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0755_f003.png b/graphics/sa1/obj_tiles/4bpp/a0755_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0755_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0755_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0756_f000.png b/graphics/sa1/obj_tiles/4bpp/a0756_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0756_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0756_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0756_f001.png b/graphics/sa1/obj_tiles/4bpp/a0756_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0756_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0756_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0756_f002.png b/graphics/sa1/obj_tiles/4bpp/a0756_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0756_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0756_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0756_f003.png b/graphics/sa1/obj_tiles/4bpp/a0756_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0756_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0756_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0756_f004.png b/graphics/sa1/obj_tiles/4bpp/a0756_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0756_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0756_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0757_f000.png b/graphics/sa1/obj_tiles/4bpp/a0757_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0757_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0757_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0757_f001.png b/graphics/sa1/obj_tiles/4bpp/a0757_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0757_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0757_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0757_f002.png b/graphics/sa1/obj_tiles/4bpp/a0757_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0757_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0757_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0757_f003.png b/graphics/sa1/obj_tiles/4bpp/a0757_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0757_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0757_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0757_f004.png b/graphics/sa1/obj_tiles/4bpp/a0757_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0757_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0757_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0758_f000.png b/graphics/sa1/obj_tiles/4bpp/a0758_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0758_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0758_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0758_f001.png b/graphics/sa1/obj_tiles/4bpp/a0758_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0758_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0758_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0758_f002.png b/graphics/sa1/obj_tiles/4bpp/a0758_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0758_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0758_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0758_f003.png b/graphics/sa1/obj_tiles/4bpp/a0758_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0758_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0758_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0758_f004.png b/graphics/sa1/obj_tiles/4bpp/a0758_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0758_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0758_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0759_f000.png b/graphics/sa1/obj_tiles/4bpp/a0759_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0759_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0759_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0759_f001.png b/graphics/sa1/obj_tiles/4bpp/a0759_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0759_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0759_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0759_f002.png b/graphics/sa1/obj_tiles/4bpp/a0759_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0759_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0759_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0759_f003.png b/graphics/sa1/obj_tiles/4bpp/a0759_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0759_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0759_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0759_f004.png b/graphics/sa1/obj_tiles/4bpp/a0759_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0759_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0759_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0760_f000.png b/graphics/sa1/obj_tiles/4bpp/a0760_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0760_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0760_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0760_f001.png b/graphics/sa1/obj_tiles/4bpp/a0760_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0760_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0760_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0760_f002.png b/graphics/sa1/obj_tiles/4bpp/a0760_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0760_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0760_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0760_f003.png b/graphics/sa1/obj_tiles/4bpp/a0760_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0760_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0760_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0760_f004.png b/graphics/sa1/obj_tiles/4bpp/a0760_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0760_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0760_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0761_f000.png b/graphics/sa1/obj_tiles/4bpp/a0761_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0761_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0761_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0761_f001.png b/graphics/sa1/obj_tiles/4bpp/a0761_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0761_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0761_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0761_f002.png b/graphics/sa1/obj_tiles/4bpp/a0761_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0761_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0761_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0761_f003.png b/graphics/sa1/obj_tiles/4bpp/a0761_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0761_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0761_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0761_f004.png b/graphics/sa1/obj_tiles/4bpp/a0761_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0761_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0761_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f000.png b/graphics/sa1/obj_tiles/4bpp/a0762_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f001.png b/graphics/sa1/obj_tiles/4bpp/a0762_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f002.png b/graphics/sa1/obj_tiles/4bpp/a0762_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f003.png b/graphics/sa1/obj_tiles/4bpp/a0762_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f004.png b/graphics/sa1/obj_tiles/4bpp/a0762_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f005.png b/graphics/sa1/obj_tiles/4bpp/a0762_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f006.png b/graphics/sa1/obj_tiles/4bpp/a0762_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0762_f007.png b/graphics/sa1/obj_tiles/4bpp/a0762_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0762_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0762_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0763_f000.png b/graphics/sa1/obj_tiles/4bpp/a0763_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0763_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0763_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0763_f001.png b/graphics/sa1/obj_tiles/4bpp/a0763_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0763_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0763_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0763_f002.png b/graphics/sa1/obj_tiles/4bpp/a0763_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0763_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0763_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0763_f003.png b/graphics/sa1/obj_tiles/4bpp/a0763_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0763_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0763_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0763_f004.png b/graphics/sa1/obj_tiles/4bpp/a0763_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0763_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0763_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0764_f000.png b/graphics/sa1/obj_tiles/4bpp/a0764_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0764_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0764_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0764_f001.png b/graphics/sa1/obj_tiles/4bpp/a0764_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0764_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0764_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0764_f002.png b/graphics/sa1/obj_tiles/4bpp/a0764_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0764_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0764_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0764_f003.png b/graphics/sa1/obj_tiles/4bpp/a0764_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0764_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0764_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0764_f004.png b/graphics/sa1/obj_tiles/4bpp/a0764_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0764_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0764_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0764_f005.png b/graphics/sa1/obj_tiles/4bpp/a0764_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0764_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0764_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f000.png b/graphics/sa1/obj_tiles/4bpp/a0765_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f001.png b/graphics/sa1/obj_tiles/4bpp/a0765_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f002.png b/graphics/sa1/obj_tiles/4bpp/a0765_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f003.png b/graphics/sa1/obj_tiles/4bpp/a0765_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f004.png b/graphics/sa1/obj_tiles/4bpp/a0765_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f005.png b/graphics/sa1/obj_tiles/4bpp/a0765_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0765_f006.png b/graphics/sa1/obj_tiles/4bpp/a0765_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0765_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0765_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f000.png b/graphics/sa1/obj_tiles/4bpp/a0766_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f001.png b/graphics/sa1/obj_tiles/4bpp/a0766_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f002.png b/graphics/sa1/obj_tiles/4bpp/a0766_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f003.png b/graphics/sa1/obj_tiles/4bpp/a0766_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f004.png b/graphics/sa1/obj_tiles/4bpp/a0766_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f005.png b/graphics/sa1/obj_tiles/4bpp/a0766_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f006.png b/graphics/sa1/obj_tiles/4bpp/a0766_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f007.png b/graphics/sa1/obj_tiles/4bpp/a0766_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f008.png b/graphics/sa1/obj_tiles/4bpp/a0766_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f009.png b/graphics/sa1/obj_tiles/4bpp/a0766_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f010.png b/graphics/sa1/obj_tiles/4bpp/a0766_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0766_f011.png b/graphics/sa1/obj_tiles/4bpp/a0766_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0766_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0766_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f000.png b/graphics/sa1/obj_tiles/4bpp/a0767_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f001.png b/graphics/sa1/obj_tiles/4bpp/a0767_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f002.png b/graphics/sa1/obj_tiles/4bpp/a0767_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f003.png b/graphics/sa1/obj_tiles/4bpp/a0767_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f004.png b/graphics/sa1/obj_tiles/4bpp/a0767_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f005.png b/graphics/sa1/obj_tiles/4bpp/a0767_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f006.png b/graphics/sa1/obj_tiles/4bpp/a0767_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0767_f007.png b/graphics/sa1/obj_tiles/4bpp/a0767_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0767_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0767_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f000.png b/graphics/sa1/obj_tiles/4bpp/a0768_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f001.png b/graphics/sa1/obj_tiles/4bpp/a0768_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f002.png b/graphics/sa1/obj_tiles/4bpp/a0768_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f003.png b/graphics/sa1/obj_tiles/4bpp/a0768_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f004.png b/graphics/sa1/obj_tiles/4bpp/a0768_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f005.png b/graphics/sa1/obj_tiles/4bpp/a0768_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f006.png b/graphics/sa1/obj_tiles/4bpp/a0768_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f007.png b/graphics/sa1/obj_tiles/4bpp/a0768_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f008.png b/graphics/sa1/obj_tiles/4bpp/a0768_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f009.png b/graphics/sa1/obj_tiles/4bpp/a0768_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f010.png b/graphics/sa1/obj_tiles/4bpp/a0768_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f011.png b/graphics/sa1/obj_tiles/4bpp/a0768_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f012.png b/graphics/sa1/obj_tiles/4bpp/a0768_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f013.png b/graphics/sa1/obj_tiles/4bpp/a0768_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f014.png b/graphics/sa1/obj_tiles/4bpp/a0768_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f015.png b/graphics/sa1/obj_tiles/4bpp/a0768_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f016.png b/graphics/sa1/obj_tiles/4bpp/a0768_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f017.png b/graphics/sa1/obj_tiles/4bpp/a0768_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f018.png b/graphics/sa1/obj_tiles/4bpp/a0768_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f019.png b/graphics/sa1/obj_tiles/4bpp/a0768_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0768_f020.png b/graphics/sa1/obj_tiles/4bpp/a0768_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0768_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0768_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0769_f000.png b/graphics/sa1/obj_tiles/4bpp/a0769_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0769_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0769_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0769_f001.png b/graphics/sa1/obj_tiles/4bpp/a0769_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0769_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0769_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0769_f002.png b/graphics/sa1/obj_tiles/4bpp/a0769_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0769_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0769_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0769_f003.png b/graphics/sa1/obj_tiles/4bpp/a0769_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0769_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0769_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0770_f000.png b/graphics/sa1/obj_tiles/4bpp/a0770_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0770_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0770_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0770_f001.png b/graphics/sa1/obj_tiles/4bpp/a0770_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0770_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0770_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0770_f002.png b/graphics/sa1/obj_tiles/4bpp/a0770_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0770_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0770_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0770_f003.png b/graphics/sa1/obj_tiles/4bpp/a0770_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0770_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0770_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0770_f004.png b/graphics/sa1/obj_tiles/4bpp/a0770_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0770_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0770_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0770_f005.png b/graphics/sa1/obj_tiles/4bpp/a0770_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0770_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0770_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0771_f000.png b/graphics/sa1/obj_tiles/4bpp/a0771_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0771_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0771_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0771_f001.png b/graphics/sa1/obj_tiles/4bpp/a0771_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0771_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0771_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0771_f002.png b/graphics/sa1/obj_tiles/4bpp/a0771_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0771_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0771_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0771_f003.png b/graphics/sa1/obj_tiles/4bpp/a0771_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0771_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0771_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0771_f004.png b/graphics/sa1/obj_tiles/4bpp/a0771_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0771_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0771_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0771_f005.png b/graphics/sa1/obj_tiles/4bpp/a0771_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0771_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0771_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f000.png b/graphics/sa1/obj_tiles/4bpp/a0772_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f001.png b/graphics/sa1/obj_tiles/4bpp/a0772_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f002.png b/graphics/sa1/obj_tiles/4bpp/a0772_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f003.png b/graphics/sa1/obj_tiles/4bpp/a0772_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f004.png b/graphics/sa1/obj_tiles/4bpp/a0772_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f005.png b/graphics/sa1/obj_tiles/4bpp/a0772_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f006.png b/graphics/sa1/obj_tiles/4bpp/a0772_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f007.png b/graphics/sa1/obj_tiles/4bpp/a0772_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0772_f008.png b/graphics/sa1/obj_tiles/4bpp/a0772_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0772_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0772_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0773_f000.png b/graphics/sa1/obj_tiles/4bpp/a0773_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0773_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0773_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0773_f001.png b/graphics/sa1/obj_tiles/4bpp/a0773_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0773_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0773_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0773_f002.png b/graphics/sa1/obj_tiles/4bpp/a0773_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0773_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0773_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0773_f003.png b/graphics/sa1/obj_tiles/4bpp/a0773_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0773_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0773_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0774_f000.png b/graphics/sa1/obj_tiles/4bpp/a0774_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0774_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0774_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0774_f001.png b/graphics/sa1/obj_tiles/4bpp/a0774_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0774_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0774_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0774_f002.png b/graphics/sa1/obj_tiles/4bpp/a0774_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0774_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0774_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0774_f003.png b/graphics/sa1/obj_tiles/4bpp/a0774_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0774_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0774_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f000.png b/graphics/sa1/obj_tiles/4bpp/a0775_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f001.png b/graphics/sa1/obj_tiles/4bpp/a0775_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f002.png b/graphics/sa1/obj_tiles/4bpp/a0775_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f003.png b/graphics/sa1/obj_tiles/4bpp/a0775_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f004.png b/graphics/sa1/obj_tiles/4bpp/a0775_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f005.png b/graphics/sa1/obj_tiles/4bpp/a0775_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f006.png b/graphics/sa1/obj_tiles/4bpp/a0775_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f007.png b/graphics/sa1/obj_tiles/4bpp/a0775_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f008.png b/graphics/sa1/obj_tiles/4bpp/a0775_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f009.png b/graphics/sa1/obj_tiles/4bpp/a0775_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0775_f010.png b/graphics/sa1/obj_tiles/4bpp/a0775_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0775_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0775_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0777_f000.png b/graphics/sa1/obj_tiles/4bpp/a0777_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0777_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0777_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0777_f001.png b/graphics/sa1/obj_tiles/4bpp/a0777_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0777_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0777_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0777_f002.png b/graphics/sa1/obj_tiles/4bpp/a0777_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0777_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0777_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0777_f003.png b/graphics/sa1/obj_tiles/4bpp/a0777_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0777_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0777_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0778_f000.png b/graphics/sa1/obj_tiles/4bpp/a0778_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0778_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0778_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0778_f001.png b/graphics/sa1/obj_tiles/4bpp/a0778_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0778_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0778_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0778_f002.png b/graphics/sa1/obj_tiles/4bpp/a0778_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0778_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0778_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0778_f003.png b/graphics/sa1/obj_tiles/4bpp/a0778_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0778_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0778_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0778_f004.png b/graphics/sa1/obj_tiles/4bpp/a0778_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0778_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0778_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0778_f005.png b/graphics/sa1/obj_tiles/4bpp/a0778_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0778_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0778_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0779_f000.png b/graphics/sa1/obj_tiles/4bpp/a0779_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0779_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0779_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0779_f001.png b/graphics/sa1/obj_tiles/4bpp/a0779_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0779_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0779_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0779_f002.png b/graphics/sa1/obj_tiles/4bpp/a0779_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0779_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0779_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0779_f003.png b/graphics/sa1/obj_tiles/4bpp/a0779_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0779_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0779_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0779_f004.png b/graphics/sa1/obj_tiles/4bpp/a0779_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0779_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0779_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0779_f005.png b/graphics/sa1/obj_tiles/4bpp/a0779_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0779_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0779_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0780_f000.png b/graphics/sa1/obj_tiles/4bpp/a0780_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0780_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0780_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0780_f001.png b/graphics/sa1/obj_tiles/4bpp/a0780_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0780_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0780_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0781_f000.png b/graphics/sa1/obj_tiles/4bpp/a0781_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0781_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0781_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0781_f001.png b/graphics/sa1/obj_tiles/4bpp/a0781_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0781_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0781_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0781_f002.png b/graphics/sa1/obj_tiles/4bpp/a0781_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0781_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0781_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0781_f003.png b/graphics/sa1/obj_tiles/4bpp/a0781_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0781_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0781_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0781_f004.png b/graphics/sa1/obj_tiles/4bpp/a0781_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0781_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0781_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0781_f005.png b/graphics/sa1/obj_tiles/4bpp/a0781_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0781_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0781_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0782_f000.png b/graphics/sa1/obj_tiles/4bpp/a0782_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0782_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0782_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0782_f001.png b/graphics/sa1/obj_tiles/4bpp/a0782_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0782_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0782_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0782_f002.png b/graphics/sa1/obj_tiles/4bpp/a0782_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0782_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0782_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0782_f003.png b/graphics/sa1/obj_tiles/4bpp/a0782_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0782_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0782_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0783_f000.png b/graphics/sa1/obj_tiles/4bpp/a0783_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0783_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0783_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0784_f000.png b/graphics/sa1/obj_tiles/4bpp/a0784_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0784_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0784_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0785_f000.png b/graphics/sa1/obj_tiles/4bpp/a0785_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0785_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0785_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0785_f001.png b/graphics/sa1/obj_tiles/4bpp/a0785_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0785_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0785_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0785_f002.png b/graphics/sa1/obj_tiles/4bpp/a0785_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0785_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0785_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0786_f000.png b/graphics/sa1/obj_tiles/4bpp/a0786_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0786_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0786_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0787_f000.png b/graphics/sa1/obj_tiles/4bpp/a0787_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0787_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0787_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0788_f000.png b/graphics/sa1/obj_tiles/4bpp/a0788_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0788_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0788_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0788_f001.png b/graphics/sa1/obj_tiles/4bpp/a0788_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0788_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0788_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0788_f002.png b/graphics/sa1/obj_tiles/4bpp/a0788_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0788_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0788_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0789_f000.png b/graphics/sa1/obj_tiles/4bpp/a0789_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0789_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0789_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0789_f001.png b/graphics/sa1/obj_tiles/4bpp/a0789_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0789_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0789_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0789_f002.png b/graphics/sa1/obj_tiles/4bpp/a0789_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0789_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0789_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0790_f000.png b/graphics/sa1/obj_tiles/4bpp/a0790_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0790_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0790_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0791_f000.png b/graphics/sa1/obj_tiles/4bpp/a0791_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0791_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0791_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0792_f000.png b/graphics/sa1/obj_tiles/4bpp/a0792_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0792_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0792_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0793_f000.png b/graphics/sa1/obj_tiles/4bpp/a0793_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0793_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0793_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0794_f000.png b/graphics/sa1/obj_tiles/4bpp/a0794_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0794_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0794_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0794_f001.png b/graphics/sa1/obj_tiles/4bpp/a0794_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0794_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0794_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0794_f002.png b/graphics/sa1/obj_tiles/4bpp/a0794_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0794_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0794_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0794_f003.png b/graphics/sa1/obj_tiles/4bpp/a0794_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0794_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0794_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0794_f004.png b/graphics/sa1/obj_tiles/4bpp/a0794_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0794_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0794_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0794_f005.png b/graphics/sa1/obj_tiles/4bpp/a0794_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0794_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0794_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0795_f000.png b/graphics/sa1/obj_tiles/4bpp/a0795_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0795_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0795_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0795_f001.png b/graphics/sa1/obj_tiles/4bpp/a0795_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0795_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0795_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0795_f002.png b/graphics/sa1/obj_tiles/4bpp/a0795_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0795_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0795_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0795_f003.png b/graphics/sa1/obj_tiles/4bpp/a0795_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0795_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0795_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0796_f000.png b/graphics/sa1/obj_tiles/4bpp/a0796_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0796_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0796_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0796_f001.png b/graphics/sa1/obj_tiles/4bpp/a0796_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0796_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0796_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0796_f002.png b/graphics/sa1/obj_tiles/4bpp/a0796_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0796_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0796_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0796_f003.png b/graphics/sa1/obj_tiles/4bpp/a0796_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0796_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0796_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f000.png b/graphics/sa1/obj_tiles/4bpp/a0797_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f001.png b/graphics/sa1/obj_tiles/4bpp/a0797_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f002.png b/graphics/sa1/obj_tiles/4bpp/a0797_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f003.png b/graphics/sa1/obj_tiles/4bpp/a0797_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f004.png b/graphics/sa1/obj_tiles/4bpp/a0797_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f005.png b/graphics/sa1/obj_tiles/4bpp/a0797_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0797_f006.png b/graphics/sa1/obj_tiles/4bpp/a0797_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0797_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0797_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0798_f000.png b/graphics/sa1/obj_tiles/4bpp/a0798_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0798_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0798_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0798_f001.png b/graphics/sa1/obj_tiles/4bpp/a0798_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0798_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0798_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0798_f002.png b/graphics/sa1/obj_tiles/4bpp/a0798_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0798_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0798_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0798_f003.png b/graphics/sa1/obj_tiles/4bpp/a0798_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0798_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0798_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0798_f004.png b/graphics/sa1/obj_tiles/4bpp/a0798_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0798_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0798_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0798_f005.png b/graphics/sa1/obj_tiles/4bpp/a0798_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0798_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0798_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f000.png b/graphics/sa1/obj_tiles/4bpp/a0799_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f001.png b/graphics/sa1/obj_tiles/4bpp/a0799_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f002.png b/graphics/sa1/obj_tiles/4bpp/a0799_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f003.png b/graphics/sa1/obj_tiles/4bpp/a0799_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f004.png b/graphics/sa1/obj_tiles/4bpp/a0799_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f005.png b/graphics/sa1/obj_tiles/4bpp/a0799_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f006.png b/graphics/sa1/obj_tiles/4bpp/a0799_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f007.png b/graphics/sa1/obj_tiles/4bpp/a0799_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f008.png b/graphics/sa1/obj_tiles/4bpp/a0799_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f009.png b/graphics/sa1/obj_tiles/4bpp/a0799_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f010.png b/graphics/sa1/obj_tiles/4bpp/a0799_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f011.png b/graphics/sa1/obj_tiles/4bpp/a0799_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f012.png b/graphics/sa1/obj_tiles/4bpp/a0799_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f013.png b/graphics/sa1/obj_tiles/4bpp/a0799_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f014.png b/graphics/sa1/obj_tiles/4bpp/a0799_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f015.png b/graphics/sa1/obj_tiles/4bpp/a0799_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f016.png b/graphics/sa1/obj_tiles/4bpp/a0799_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f017.png b/graphics/sa1/obj_tiles/4bpp/a0799_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f018.png b/graphics/sa1/obj_tiles/4bpp/a0799_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f019.png b/graphics/sa1/obj_tiles/4bpp/a0799_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f020.png b/graphics/sa1/obj_tiles/4bpp/a0799_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f021.png b/graphics/sa1/obj_tiles/4bpp/a0799_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f022.png b/graphics/sa1/obj_tiles/4bpp/a0799_f022.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f022.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f022.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0799_f023.png b/graphics/sa1/obj_tiles/4bpp/a0799_f023.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0799_f023.png rename to graphics/sa1/obj_tiles/4bpp/a0799_f023.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f000.png b/graphics/sa1/obj_tiles/4bpp/a0800_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f001.png b/graphics/sa1/obj_tiles/4bpp/a0800_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f002.png b/graphics/sa1/obj_tiles/4bpp/a0800_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f003.png b/graphics/sa1/obj_tiles/4bpp/a0800_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f004.png b/graphics/sa1/obj_tiles/4bpp/a0800_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f005.png b/graphics/sa1/obj_tiles/4bpp/a0800_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f006.png b/graphics/sa1/obj_tiles/4bpp/a0800_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f007.png b/graphics/sa1/obj_tiles/4bpp/a0800_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f008.png b/graphics/sa1/obj_tiles/4bpp/a0800_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0800_f009.png b/graphics/sa1/obj_tiles/4bpp/a0800_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0800_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0800_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0801_f000.png b/graphics/sa1/obj_tiles/4bpp/a0801_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0801_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0801_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0801_f001.png b/graphics/sa1/obj_tiles/4bpp/a0801_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0801_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0801_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0802_f000.png b/graphics/sa1/obj_tiles/4bpp/a0802_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0802_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0802_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0802_f001.png b/graphics/sa1/obj_tiles/4bpp/a0802_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0802_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0802_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0802_f002.png b/graphics/sa1/obj_tiles/4bpp/a0802_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0802_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0802_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0802_f003.png b/graphics/sa1/obj_tiles/4bpp/a0802_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0802_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0802_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0802_f004.png b/graphics/sa1/obj_tiles/4bpp/a0802_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0802_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0802_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0805_f000.png b/graphics/sa1/obj_tiles/4bpp/a0805_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0805_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0805_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0805_f001.png b/graphics/sa1/obj_tiles/4bpp/a0805_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0805_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0805_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0805_f002.png b/graphics/sa1/obj_tiles/4bpp/a0805_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0805_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0805_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0805_f003.png b/graphics/sa1/obj_tiles/4bpp/a0805_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0805_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0805_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0806_f000.png b/graphics/sa1/obj_tiles/4bpp/a0806_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0806_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0806_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0806_f001.png b/graphics/sa1/obj_tiles/4bpp/a0806_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0806_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0806_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0806_f002.png b/graphics/sa1/obj_tiles/4bpp/a0806_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0806_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0806_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f000.png b/graphics/sa1/obj_tiles/4bpp/a0807_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f001.png b/graphics/sa1/obj_tiles/4bpp/a0807_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f002.png b/graphics/sa1/obj_tiles/4bpp/a0807_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f003.png b/graphics/sa1/obj_tiles/4bpp/a0807_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f004.png b/graphics/sa1/obj_tiles/4bpp/a0807_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f005.png b/graphics/sa1/obj_tiles/4bpp/a0807_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f006.png b/graphics/sa1/obj_tiles/4bpp/a0807_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f007.png b/graphics/sa1/obj_tiles/4bpp/a0807_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0807_f008.png b/graphics/sa1/obj_tiles/4bpp/a0807_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0807_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0807_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0808_f000.png b/graphics/sa1/obj_tiles/4bpp/a0808_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0808_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0808_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0808_f001.png b/graphics/sa1/obj_tiles/4bpp/a0808_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0808_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0808_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0808_f002.png b/graphics/sa1/obj_tiles/4bpp/a0808_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0808_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0808_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0808_f003.png b/graphics/sa1/obj_tiles/4bpp/a0808_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0808_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0808_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0808_f004.png b/graphics/sa1/obj_tiles/4bpp/a0808_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0808_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0808_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0809_f000.png b/graphics/sa1/obj_tiles/4bpp/a0809_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0809_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0809_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0810_f000.png b/graphics/sa1/obj_tiles/4bpp/a0810_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0810_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0810_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0810_f001.png b/graphics/sa1/obj_tiles/4bpp/a0810_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0810_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0810_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0811_f000.png b/graphics/sa1/obj_tiles/4bpp/a0811_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0811_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0811_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0812_f000.png b/graphics/sa1/obj_tiles/4bpp/a0812_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0812_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0812_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0812_f001.png b/graphics/sa1/obj_tiles/4bpp/a0812_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0812_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0812_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0812_f002.png b/graphics/sa1/obj_tiles/4bpp/a0812_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0812_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0812_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0813_f000.png b/graphics/sa1/obj_tiles/4bpp/a0813_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0813_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0813_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0813_f001.png b/graphics/sa1/obj_tiles/4bpp/a0813_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0813_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0813_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0816_f000.png b/graphics/sa1/obj_tiles/4bpp/a0816_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0816_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0816_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0817_f000.png b/graphics/sa1/obj_tiles/4bpp/a0817_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0817_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0817_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0818_f000.png b/graphics/sa1/obj_tiles/4bpp/a0818_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0818_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0818_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0819_f000.png b/graphics/sa1/obj_tiles/4bpp/a0819_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0819_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0819_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0820_f000.png b/graphics/sa1/obj_tiles/4bpp/a0820_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0820_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0820_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f000.png b/graphics/sa1/obj_tiles/4bpp/a0853_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f001.png b/graphics/sa1/obj_tiles/4bpp/a0853_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f002.png b/graphics/sa1/obj_tiles/4bpp/a0853_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f003.png b/graphics/sa1/obj_tiles/4bpp/a0853_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f004.png b/graphics/sa1/obj_tiles/4bpp/a0853_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f005.png b/graphics/sa1/obj_tiles/4bpp/a0853_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0853_f006.png b/graphics/sa1/obj_tiles/4bpp/a0853_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0853_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0853_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f000.png b/graphics/sa1/obj_tiles/4bpp/a0854_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f001.png b/graphics/sa1/obj_tiles/4bpp/a0854_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f002.png b/graphics/sa1/obj_tiles/4bpp/a0854_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f003.png b/graphics/sa1/obj_tiles/4bpp/a0854_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f004.png b/graphics/sa1/obj_tiles/4bpp/a0854_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f005.png b/graphics/sa1/obj_tiles/4bpp/a0854_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f006.png b/graphics/sa1/obj_tiles/4bpp/a0854_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f007.png b/graphics/sa1/obj_tiles/4bpp/a0854_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f008.png b/graphics/sa1/obj_tiles/4bpp/a0854_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f009.png b/graphics/sa1/obj_tiles/4bpp/a0854_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f010.png b/graphics/sa1/obj_tiles/4bpp/a0854_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f011.png b/graphics/sa1/obj_tiles/4bpp/a0854_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f012.png b/graphics/sa1/obj_tiles/4bpp/a0854_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f013.png b/graphics/sa1/obj_tiles/4bpp/a0854_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0854_f014.png b/graphics/sa1/obj_tiles/4bpp/a0854_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0854_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0854_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f000.png b/graphics/sa1/obj_tiles/4bpp/a0855_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f001.png b/graphics/sa1/obj_tiles/4bpp/a0855_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f002.png b/graphics/sa1/obj_tiles/4bpp/a0855_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f003.png b/graphics/sa1/obj_tiles/4bpp/a0855_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f004.png b/graphics/sa1/obj_tiles/4bpp/a0855_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f005.png b/graphics/sa1/obj_tiles/4bpp/a0855_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f006.png b/graphics/sa1/obj_tiles/4bpp/a0855_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f007.png b/graphics/sa1/obj_tiles/4bpp/a0855_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0855_f008.png b/graphics/sa1/obj_tiles/4bpp/a0855_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0855_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0855_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0856_f000.png b/graphics/sa1/obj_tiles/4bpp/a0856_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0856_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0856_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0856_f001.png b/graphics/sa1/obj_tiles/4bpp/a0856_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0856_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0856_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0856_f002.png b/graphics/sa1/obj_tiles/4bpp/a0856_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0856_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0856_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0856_f003.png b/graphics/sa1/obj_tiles/4bpp/a0856_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0856_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0856_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0856_f004.png b/graphics/sa1/obj_tiles/4bpp/a0856_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0856_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0856_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0857_f000.png b/graphics/sa1/obj_tiles/4bpp/a0857_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0857_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0857_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0858_f000.png b/graphics/sa1/obj_tiles/4bpp/a0858_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0858_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0858_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0858_f001.png b/graphics/sa1/obj_tiles/4bpp/a0858_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0858_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0858_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0858_f002.png b/graphics/sa1/obj_tiles/4bpp/a0858_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0858_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0858_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0858_f003.png b/graphics/sa1/obj_tiles/4bpp/a0858_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0858_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0858_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0859_f000.png b/graphics/sa1/obj_tiles/4bpp/a0859_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0859_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0859_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0860_f000.png b/graphics/sa1/obj_tiles/4bpp/a0860_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0860_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0860_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0861_f000.png b/graphics/sa1/obj_tiles/4bpp/a0861_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0861_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0861_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0861_f001.png b/graphics/sa1/obj_tiles/4bpp/a0861_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0861_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0861_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0861_f002.png b/graphics/sa1/obj_tiles/4bpp/a0861_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0861_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0861_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0861_f003.png b/graphics/sa1/obj_tiles/4bpp/a0861_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0861_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0861_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0862_f000.png b/graphics/sa1/obj_tiles/4bpp/a0862_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0862_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0862_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0862_f001.png b/graphics/sa1/obj_tiles/4bpp/a0862_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0862_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0862_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0862_f002.png b/graphics/sa1/obj_tiles/4bpp/a0862_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0862_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0862_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0862_f003.png b/graphics/sa1/obj_tiles/4bpp/a0862_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0862_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0862_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f000.png b/graphics/sa1/obj_tiles/4bpp/a0863_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f001.png b/graphics/sa1/obj_tiles/4bpp/a0863_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f002.png b/graphics/sa1/obj_tiles/4bpp/a0863_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f003.png b/graphics/sa1/obj_tiles/4bpp/a0863_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f004.png b/graphics/sa1/obj_tiles/4bpp/a0863_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f005.png b/graphics/sa1/obj_tiles/4bpp/a0863_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f006.png b/graphics/sa1/obj_tiles/4bpp/a0863_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f007.png b/graphics/sa1/obj_tiles/4bpp/a0863_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f008.png b/graphics/sa1/obj_tiles/4bpp/a0863_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f009.png b/graphics/sa1/obj_tiles/4bpp/a0863_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f010.png b/graphics/sa1/obj_tiles/4bpp/a0863_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f011.png b/graphics/sa1/obj_tiles/4bpp/a0863_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f012.png b/graphics/sa1/obj_tiles/4bpp/a0863_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0863_f013.png b/graphics/sa1/obj_tiles/4bpp/a0863_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0863_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0863_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0864_f000.png b/graphics/sa1/obj_tiles/4bpp/a0864_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0864_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0864_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0864_f001.png b/graphics/sa1/obj_tiles/4bpp/a0864_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0864_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0864_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0864_f002.png b/graphics/sa1/obj_tiles/4bpp/a0864_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0864_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0864_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0865_f000.png b/graphics/sa1/obj_tiles/4bpp/a0865_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0865_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0865_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0865_f001.png b/graphics/sa1/obj_tiles/4bpp/a0865_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0865_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0865_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f000.png b/graphics/sa1/obj_tiles/4bpp/a0866_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f001.png b/graphics/sa1/obj_tiles/4bpp/a0866_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f002.png b/graphics/sa1/obj_tiles/4bpp/a0866_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f003.png b/graphics/sa1/obj_tiles/4bpp/a0866_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f004.png b/graphics/sa1/obj_tiles/4bpp/a0866_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f005.png b/graphics/sa1/obj_tiles/4bpp/a0866_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f006.png b/graphics/sa1/obj_tiles/4bpp/a0866_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f007.png b/graphics/sa1/obj_tiles/4bpp/a0866_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f008.png b/graphics/sa1/obj_tiles/4bpp/a0866_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f009.png b/graphics/sa1/obj_tiles/4bpp/a0866_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f010.png b/graphics/sa1/obj_tiles/4bpp/a0866_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f011.png b/graphics/sa1/obj_tiles/4bpp/a0866_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f012.png b/graphics/sa1/obj_tiles/4bpp/a0866_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f013.png b/graphics/sa1/obj_tiles/4bpp/a0866_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0866_f014.png b/graphics/sa1/obj_tiles/4bpp/a0866_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0866_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0866_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0867_f000.png b/graphics/sa1/obj_tiles/4bpp/a0867_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0867_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0867_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0868_f000.png b/graphics/sa1/obj_tiles/4bpp/a0868_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0868_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0868_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0868_f001.png b/graphics/sa1/obj_tiles/4bpp/a0868_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0868_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0868_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0868_f002.png b/graphics/sa1/obj_tiles/4bpp/a0868_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0868_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0868_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0869_f000.png b/graphics/sa1/obj_tiles/4bpp/a0869_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0869_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0869_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0869_f001.png b/graphics/sa1/obj_tiles/4bpp/a0869_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0869_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0869_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0869_f002.png b/graphics/sa1/obj_tiles/4bpp/a0869_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0869_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0869_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0870_f000.png b/graphics/sa1/obj_tiles/4bpp/a0870_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0870_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0870_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0870_f001.png b/graphics/sa1/obj_tiles/4bpp/a0870_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0870_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0870_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0870_f002.png b/graphics/sa1/obj_tiles/4bpp/a0870_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0870_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0870_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0871_f000.png b/graphics/sa1/obj_tiles/4bpp/a0871_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0871_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0871_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0872_f000.png b/graphics/sa1/obj_tiles/4bpp/a0872_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0872_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0872_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0873_f000.png b/graphics/sa1/obj_tiles/4bpp/a0873_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0873_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0873_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0874_f000.png b/graphics/sa1/obj_tiles/4bpp/a0874_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0874_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0874_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0875_f000.png b/graphics/sa1/obj_tiles/4bpp/a0875_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0875_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0875_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0876_f000.png b/graphics/sa1/obj_tiles/4bpp/a0876_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0876_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0876_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0877_f000.png b/graphics/sa1/obj_tiles/4bpp/a0877_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0877_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0877_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0877_f001.png b/graphics/sa1/obj_tiles/4bpp/a0877_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0877_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0877_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0877_f002.png b/graphics/sa1/obj_tiles/4bpp/a0877_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0877_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0877_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0877_f003.png b/graphics/sa1/obj_tiles/4bpp/a0877_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0877_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0877_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0878_f000.png b/graphics/sa1/obj_tiles/4bpp/a0878_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0878_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0878_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0878_f001.png b/graphics/sa1/obj_tiles/4bpp/a0878_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0878_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0878_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0878_f002.png b/graphics/sa1/obj_tiles/4bpp/a0878_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0878_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0878_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0879_f000.png b/graphics/sa1/obj_tiles/4bpp/a0879_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0879_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0879_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0879_f001.png b/graphics/sa1/obj_tiles/4bpp/a0879_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0879_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0879_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0879_f002.png b/graphics/sa1/obj_tiles/4bpp/a0879_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0879_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0879_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f000.png b/graphics/sa1/obj_tiles/4bpp/a0880_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f001.png b/graphics/sa1/obj_tiles/4bpp/a0880_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f002.png b/graphics/sa1/obj_tiles/4bpp/a0880_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f003.png b/graphics/sa1/obj_tiles/4bpp/a0880_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f004.png b/graphics/sa1/obj_tiles/4bpp/a0880_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f005.png b/graphics/sa1/obj_tiles/4bpp/a0880_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f006.png b/graphics/sa1/obj_tiles/4bpp/a0880_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f007.png b/graphics/sa1/obj_tiles/4bpp/a0880_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f008.png b/graphics/sa1/obj_tiles/4bpp/a0880_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f009.png b/graphics/sa1/obj_tiles/4bpp/a0880_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f010.png b/graphics/sa1/obj_tiles/4bpp/a0880_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f011.png b/graphics/sa1/obj_tiles/4bpp/a0880_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0880_f012.png b/graphics/sa1/obj_tiles/4bpp/a0880_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0880_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0880_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f000.png b/graphics/sa1/obj_tiles/4bpp/a0881_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f001.png b/graphics/sa1/obj_tiles/4bpp/a0881_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f002.png b/graphics/sa1/obj_tiles/4bpp/a0881_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f003.png b/graphics/sa1/obj_tiles/4bpp/a0881_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f004.png b/graphics/sa1/obj_tiles/4bpp/a0881_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f005.png b/graphics/sa1/obj_tiles/4bpp/a0881_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f006.png b/graphics/sa1/obj_tiles/4bpp/a0881_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f007.png b/graphics/sa1/obj_tiles/4bpp/a0881_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f008.png b/graphics/sa1/obj_tiles/4bpp/a0881_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f009.png b/graphics/sa1/obj_tiles/4bpp/a0881_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f010.png b/graphics/sa1/obj_tiles/4bpp/a0881_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0881_f011.png b/graphics/sa1/obj_tiles/4bpp/a0881_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0881_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0881_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0882_f000.png b/graphics/sa1/obj_tiles/4bpp/a0882_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0882_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0882_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0882_f001.png b/graphics/sa1/obj_tiles/4bpp/a0882_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0882_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0882_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f000.png b/graphics/sa1/obj_tiles/4bpp/a0883_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f001.png b/graphics/sa1/obj_tiles/4bpp/a0883_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f002.png b/graphics/sa1/obj_tiles/4bpp/a0883_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f003.png b/graphics/sa1/obj_tiles/4bpp/a0883_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f004.png b/graphics/sa1/obj_tiles/4bpp/a0883_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f005.png b/graphics/sa1/obj_tiles/4bpp/a0883_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f006.png b/graphics/sa1/obj_tiles/4bpp/a0883_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f007.png b/graphics/sa1/obj_tiles/4bpp/a0883_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f008.png b/graphics/sa1/obj_tiles/4bpp/a0883_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f009.png b/graphics/sa1/obj_tiles/4bpp/a0883_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f010.png b/graphics/sa1/obj_tiles/4bpp/a0883_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f011.png b/graphics/sa1/obj_tiles/4bpp/a0883_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0883_f012.png b/graphics/sa1/obj_tiles/4bpp/a0883_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0883_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0883_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0884_f000.png b/graphics/sa1/obj_tiles/4bpp/a0884_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0884_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0884_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0884_f001.png b/graphics/sa1/obj_tiles/4bpp/a0884_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0884_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0884_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0884_f002.png b/graphics/sa1/obj_tiles/4bpp/a0884_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0884_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0884_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0884_f003.png b/graphics/sa1/obj_tiles/4bpp/a0884_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0884_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0884_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0884_f004.png b/graphics/sa1/obj_tiles/4bpp/a0884_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0884_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0884_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f000.png b/graphics/sa1/obj_tiles/4bpp/a0885_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f001.png b/graphics/sa1/obj_tiles/4bpp/a0885_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f002.png b/graphics/sa1/obj_tiles/4bpp/a0885_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f003.png b/graphics/sa1/obj_tiles/4bpp/a0885_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f004.png b/graphics/sa1/obj_tiles/4bpp/a0885_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f005.png b/graphics/sa1/obj_tiles/4bpp/a0885_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f006.png b/graphics/sa1/obj_tiles/4bpp/a0885_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f007.png b/graphics/sa1/obj_tiles/4bpp/a0885_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f008.png b/graphics/sa1/obj_tiles/4bpp/a0885_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f009.png b/graphics/sa1/obj_tiles/4bpp/a0885_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0885_f010.png b/graphics/sa1/obj_tiles/4bpp/a0885_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0885_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0885_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0886_f000.png b/graphics/sa1/obj_tiles/4bpp/a0886_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0886_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0886_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f000.png b/graphics/sa1/obj_tiles/4bpp/a0887_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f001.png b/graphics/sa1/obj_tiles/4bpp/a0887_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f002.png b/graphics/sa1/obj_tiles/4bpp/a0887_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f003.png b/graphics/sa1/obj_tiles/4bpp/a0887_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f004.png b/graphics/sa1/obj_tiles/4bpp/a0887_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f005.png b/graphics/sa1/obj_tiles/4bpp/a0887_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f006.png b/graphics/sa1/obj_tiles/4bpp/a0887_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f007.png b/graphics/sa1/obj_tiles/4bpp/a0887_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f008.png b/graphics/sa1/obj_tiles/4bpp/a0887_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f009.png b/graphics/sa1/obj_tiles/4bpp/a0887_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f010.png b/graphics/sa1/obj_tiles/4bpp/a0887_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f011.png b/graphics/sa1/obj_tiles/4bpp/a0887_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f012.png b/graphics/sa1/obj_tiles/4bpp/a0887_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f013.png b/graphics/sa1/obj_tiles/4bpp/a0887_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f014.png b/graphics/sa1/obj_tiles/4bpp/a0887_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f015.png b/graphics/sa1/obj_tiles/4bpp/a0887_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f016.png b/graphics/sa1/obj_tiles/4bpp/a0887_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f017.png b/graphics/sa1/obj_tiles/4bpp/a0887_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0887_f018.png b/graphics/sa1/obj_tiles/4bpp/a0887_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0887_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0887_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f000.png b/graphics/sa1/obj_tiles/4bpp/a0888_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f001.png b/graphics/sa1/obj_tiles/4bpp/a0888_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f002.png b/graphics/sa1/obj_tiles/4bpp/a0888_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f003.png b/graphics/sa1/obj_tiles/4bpp/a0888_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f004.png b/graphics/sa1/obj_tiles/4bpp/a0888_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f005.png b/graphics/sa1/obj_tiles/4bpp/a0888_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f006.png b/graphics/sa1/obj_tiles/4bpp/a0888_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f007.png b/graphics/sa1/obj_tiles/4bpp/a0888_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f008.png b/graphics/sa1/obj_tiles/4bpp/a0888_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f009.png b/graphics/sa1/obj_tiles/4bpp/a0888_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f010.png b/graphics/sa1/obj_tiles/4bpp/a0888_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0888_f011.png b/graphics/sa1/obj_tiles/4bpp/a0888_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0888_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0888_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0889_f000.png b/graphics/sa1/obj_tiles/4bpp/a0889_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0889_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0889_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0890_f000.png b/graphics/sa1/obj_tiles/4bpp/a0890_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0890_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0890_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f000.png b/graphics/sa1/obj_tiles/4bpp/a0891_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f001.png b/graphics/sa1/obj_tiles/4bpp/a0891_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f002.png b/graphics/sa1/obj_tiles/4bpp/a0891_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f003.png b/graphics/sa1/obj_tiles/4bpp/a0891_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f004.png b/graphics/sa1/obj_tiles/4bpp/a0891_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f005.png b/graphics/sa1/obj_tiles/4bpp/a0891_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f006.png b/graphics/sa1/obj_tiles/4bpp/a0891_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f007.png b/graphics/sa1/obj_tiles/4bpp/a0891_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f008.png b/graphics/sa1/obj_tiles/4bpp/a0891_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0891_f009.png b/graphics/sa1/obj_tiles/4bpp/a0891_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0891_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0891_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0892_f000.png b/graphics/sa1/obj_tiles/4bpp/a0892_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0892_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0892_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0892_f001.png b/graphics/sa1/obj_tiles/4bpp/a0892_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0892_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0892_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0892_f002.png b/graphics/sa1/obj_tiles/4bpp/a0892_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0892_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0892_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0892_f003.png b/graphics/sa1/obj_tiles/4bpp/a0892_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0892_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0892_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0893_f000.png b/graphics/sa1/obj_tiles/4bpp/a0893_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0893_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0893_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f000.png b/graphics/sa1/obj_tiles/4bpp/a0894_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f001.png b/graphics/sa1/obj_tiles/4bpp/a0894_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f002.png b/graphics/sa1/obj_tiles/4bpp/a0894_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f003.png b/graphics/sa1/obj_tiles/4bpp/a0894_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f004.png b/graphics/sa1/obj_tiles/4bpp/a0894_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f005.png b/graphics/sa1/obj_tiles/4bpp/a0894_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f006.png b/graphics/sa1/obj_tiles/4bpp/a0894_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f007.png b/graphics/sa1/obj_tiles/4bpp/a0894_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0894_f008.png b/graphics/sa1/obj_tiles/4bpp/a0894_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0894_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0894_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0895_f000.png b/graphics/sa1/obj_tiles/4bpp/a0895_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0895_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0895_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0895_f001.png b/graphics/sa1/obj_tiles/4bpp/a0895_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0895_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0895_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f000.png b/graphics/sa1/obj_tiles/4bpp/a0896_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f001.png b/graphics/sa1/obj_tiles/4bpp/a0896_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f002.png b/graphics/sa1/obj_tiles/4bpp/a0896_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f003.png b/graphics/sa1/obj_tiles/4bpp/a0896_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f004.png b/graphics/sa1/obj_tiles/4bpp/a0896_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f005.png b/graphics/sa1/obj_tiles/4bpp/a0896_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f006.png b/graphics/sa1/obj_tiles/4bpp/a0896_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f007.png b/graphics/sa1/obj_tiles/4bpp/a0896_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f008.png b/graphics/sa1/obj_tiles/4bpp/a0896_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f009.png b/graphics/sa1/obj_tiles/4bpp/a0896_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f010.png b/graphics/sa1/obj_tiles/4bpp/a0896_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f011.png b/graphics/sa1/obj_tiles/4bpp/a0896_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f012.png b/graphics/sa1/obj_tiles/4bpp/a0896_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0896_f013.png b/graphics/sa1/obj_tiles/4bpp/a0896_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0896_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0896_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0897_f000.png b/graphics/sa1/obj_tiles/4bpp/a0897_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0897_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0897_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0897_f001.png b/graphics/sa1/obj_tiles/4bpp/a0897_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0897_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0897_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0898_f000.png b/graphics/sa1/obj_tiles/4bpp/a0898_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0898_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0898_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0898_f001.png b/graphics/sa1/obj_tiles/4bpp/a0898_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0898_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0898_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0898_f002.png b/graphics/sa1/obj_tiles/4bpp/a0898_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0898_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0898_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0898_f003.png b/graphics/sa1/obj_tiles/4bpp/a0898_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0898_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0898_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f000.png b/graphics/sa1/obj_tiles/4bpp/a0899_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f001.png b/graphics/sa1/obj_tiles/4bpp/a0899_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f002.png b/graphics/sa1/obj_tiles/4bpp/a0899_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f003.png b/graphics/sa1/obj_tiles/4bpp/a0899_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f004.png b/graphics/sa1/obj_tiles/4bpp/a0899_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f005.png b/graphics/sa1/obj_tiles/4bpp/a0899_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f006.png b/graphics/sa1/obj_tiles/4bpp/a0899_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f007.png b/graphics/sa1/obj_tiles/4bpp/a0899_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f008.png b/graphics/sa1/obj_tiles/4bpp/a0899_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f009.png b/graphics/sa1/obj_tiles/4bpp/a0899_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0899_f010.png b/graphics/sa1/obj_tiles/4bpp/a0899_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0899_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0899_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0900_f000.png b/graphics/sa1/obj_tiles/4bpp/a0900_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0900_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0900_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0900_f001.png b/graphics/sa1/obj_tiles/4bpp/a0900_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0900_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0900_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0900_f002.png b/graphics/sa1/obj_tiles/4bpp/a0900_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0900_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0900_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0901_f000.png b/graphics/sa1/obj_tiles/4bpp/a0901_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0901_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0901_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0901_f001.png b/graphics/sa1/obj_tiles/4bpp/a0901_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0901_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0901_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0902_f000.png b/graphics/sa1/obj_tiles/4bpp/a0902_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0902_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0902_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0902_f001.png b/graphics/sa1/obj_tiles/4bpp/a0902_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0902_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0902_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0902_f002.png b/graphics/sa1/obj_tiles/4bpp/a0902_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0902_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0902_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0902_f003.png b/graphics/sa1/obj_tiles/4bpp/a0902_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0902_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0902_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0903_f000.png b/graphics/sa1/obj_tiles/4bpp/a0903_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0903_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0903_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0903_f001.png b/graphics/sa1/obj_tiles/4bpp/a0903_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0903_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0903_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0903_f002.png b/graphics/sa1/obj_tiles/4bpp/a0903_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0903_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0903_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0903_f003.png b/graphics/sa1/obj_tiles/4bpp/a0903_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0903_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0903_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f000.png b/graphics/sa1/obj_tiles/4bpp/a0904_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f001.png b/graphics/sa1/obj_tiles/4bpp/a0904_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f002.png b/graphics/sa1/obj_tiles/4bpp/a0904_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f003.png b/graphics/sa1/obj_tiles/4bpp/a0904_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f004.png b/graphics/sa1/obj_tiles/4bpp/a0904_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f005.png b/graphics/sa1/obj_tiles/4bpp/a0904_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0904_f006.png b/graphics/sa1/obj_tiles/4bpp/a0904_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0904_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0904_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0905_f000.png b/graphics/sa1/obj_tiles/4bpp/a0905_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0905_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0905_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0906_f000.png b/graphics/sa1/obj_tiles/4bpp/a0906_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0906_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0906_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f000.png b/graphics/sa1/obj_tiles/4bpp/a0907_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f000.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f001.png b/graphics/sa1/obj_tiles/4bpp/a0907_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f001.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f002.png b/graphics/sa1/obj_tiles/4bpp/a0907_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f002.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f003.png b/graphics/sa1/obj_tiles/4bpp/a0907_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f003.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f004.png b/graphics/sa1/obj_tiles/4bpp/a0907_f004.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f004.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f004.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f005.png b/graphics/sa1/obj_tiles/4bpp/a0907_f005.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f005.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f005.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f006.png b/graphics/sa1/obj_tiles/4bpp/a0907_f006.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f006.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f006.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f007.png b/graphics/sa1/obj_tiles/4bpp/a0907_f007.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f007.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f007.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f008.png b/graphics/sa1/obj_tiles/4bpp/a0907_f008.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f008.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f008.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f009.png b/graphics/sa1/obj_tiles/4bpp/a0907_f009.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f009.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f009.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f010.png b/graphics/sa1/obj_tiles/4bpp/a0907_f010.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f010.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f010.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f011.png b/graphics/sa1/obj_tiles/4bpp/a0907_f011.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f011.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f011.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f012.png b/graphics/sa1/obj_tiles/4bpp/a0907_f012.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f012.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f012.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f013.png b/graphics/sa1/obj_tiles/4bpp/a0907_f013.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f013.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f013.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f014.png b/graphics/sa1/obj_tiles/4bpp/a0907_f014.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f014.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f014.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f015.png b/graphics/sa1/obj_tiles/4bpp/a0907_f015.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f015.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f015.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f016.png b/graphics/sa1/obj_tiles/4bpp/a0907_f016.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f016.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f016.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f017.png b/graphics/sa1/obj_tiles/4bpp/a0907_f017.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f017.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f017.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f018.png b/graphics/sa1/obj_tiles/4bpp/a0907_f018.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f018.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f018.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f019.png b/graphics/sa1/obj_tiles/4bpp/a0907_f019.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f019.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f019.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f020.png b/graphics/sa1/obj_tiles/4bpp/a0907_f020.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f020.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f020.png diff --git a/sa1/graphics/sa1/obj_tiles/4bpp/a0907_f021.png b/graphics/sa1/obj_tiles/4bpp/a0907_f021.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/4bpp/a0907_f021.png rename to graphics/sa1/obj_tiles/4bpp/a0907_f021.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0666_f000.png b/graphics/sa1/obj_tiles/8bpp/a0666_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0666_f000.png rename to graphics/sa1/obj_tiles/8bpp/a0666_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0666_f001.png b/graphics/sa1/obj_tiles/8bpp/a0666_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0666_f001.png rename to graphics/sa1/obj_tiles/8bpp/a0666_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0737_f000.png b/graphics/sa1/obj_tiles/8bpp/a0737_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0737_f000.png rename to graphics/sa1/obj_tiles/8bpp/a0737_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0737_f001.png b/graphics/sa1/obj_tiles/8bpp/a0737_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0737_f001.png rename to graphics/sa1/obj_tiles/8bpp/a0737_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0737_f002.png b/graphics/sa1/obj_tiles/8bpp/a0737_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0737_f002.png rename to graphics/sa1/obj_tiles/8bpp/a0737_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0737_f003.png b/graphics/sa1/obj_tiles/8bpp/a0737_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0737_f003.png rename to graphics/sa1/obj_tiles/8bpp/a0737_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0738_f000.png b/graphics/sa1/obj_tiles/8bpp/a0738_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0738_f000.png rename to graphics/sa1/obj_tiles/8bpp/a0738_f000.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0738_f001.png b/graphics/sa1/obj_tiles/8bpp/a0738_f001.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0738_f001.png rename to graphics/sa1/obj_tiles/8bpp/a0738_f001.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0738_f002.png b/graphics/sa1/obj_tiles/8bpp/a0738_f002.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0738_f002.png rename to graphics/sa1/obj_tiles/8bpp/a0738_f002.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0738_f003.png b/graphics/sa1/obj_tiles/8bpp/a0738_f003.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0738_f003.png rename to graphics/sa1/obj_tiles/8bpp/a0738_f003.png diff --git a/sa1/graphics/sa1/obj_tiles/8bpp/a0776_f000.png b/graphics/sa1/obj_tiles/8bpp/a0776_f000.png similarity index 100% rename from sa1/graphics/sa1/obj_tiles/8bpp/a0776_f000.png rename to graphics/sa1/obj_tiles/8bpp/a0776_f000.png diff --git a/sa1/graphics/sa1/obj_tiles_4bpp.inc b/graphics/sa1/obj_tiles_4bpp.inc similarity index 100% rename from sa1/graphics/sa1/obj_tiles_4bpp.inc rename to graphics/sa1/obj_tiles_4bpp.inc diff --git a/sa1/graphics/sa1/obj_tiles_8bpp.inc b/graphics/sa1/obj_tiles_8bpp.inc similarity index 100% rename from sa1/graphics/sa1/obj_tiles_8bpp.inc rename to graphics/sa1/obj_tiles_8bpp.inc diff --git a/sa1/graphics/sa1/tilemaps/egg_rocket_clouds/header.c b/graphics/sa1/tilemaps/egg_rocket_clouds/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/egg_rocket_clouds/header.c rename to graphics/sa1/tilemaps/egg_rocket_clouds/header.c diff --git a/sa1/graphics/sa1/tilemaps/egg_rocket_clouds/palette.pal b/graphics/sa1/tilemaps/egg_rocket_clouds/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/egg_rocket_clouds/palette.pal rename to graphics/sa1/tilemaps/egg_rocket_clouds/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/egg_rocket_clouds/tilemap.tilemap2 b/graphics/sa1/tilemaps/egg_rocket_clouds/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/egg_rocket_clouds/tilemap.tilemap2 rename to graphics/sa1/tilemaps/egg_rocket_clouds/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/egg_rocket_clouds/tiles.png b/graphics/sa1/tilemaps/egg_rocket_clouds/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/egg_rocket_clouds/tiles.png rename to graphics/sa1/tilemaps/egg_rocket_clouds/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/ice_paradise_snow/header.c b/graphics/sa1/tilemaps/ice_paradise_snow/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/ice_paradise_snow/header.c rename to graphics/sa1/tilemaps/ice_paradise_snow/header.c diff --git a/sa1/graphics/sa1/tilemaps/ice_paradise_snow/palette.pal b/graphics/sa1/tilemaps/ice_paradise_snow/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/ice_paradise_snow/palette.pal rename to graphics/sa1/tilemaps/ice_paradise_snow/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/ice_paradise_snow/tilemap.tilemap2 b/graphics/sa1/tilemaps/ice_paradise_snow/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/ice_paradise_snow/tilemap.tilemap2 rename to graphics/sa1/tilemaps/ice_paradise_snow/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/ice_paradise_snow/tiles.png b/graphics/sa1/tilemaps/ice_paradise_snow/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/ice_paradise_snow/tiles.png rename to graphics/sa1/tilemaps/ice_paradise_snow/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/header.c b/graphics/sa1/tilemaps/intro_created_by_sonic_team/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/header.c rename to graphics/sa1/tilemaps/intro_created_by_sonic_team/header.c diff --git a/sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/palette.pal b/graphics/sa1/tilemaps/intro_created_by_sonic_team/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/palette.pal rename to graphics/sa1/tilemaps/intro_created_by_sonic_team/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/tilemap.tilemap2 b/graphics/sa1/tilemaps/intro_created_by_sonic_team/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/tilemap.tilemap2 rename to graphics/sa1/tilemaps/intro_created_by_sonic_team/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/tiles.png b/graphics/sa1/tilemaps/intro_created_by_sonic_team/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_created_by_sonic_team/tiles.png rename to graphics/sa1/tilemaps/intro_created_by_sonic_team/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/intro_presented_by_sega/header.c b/graphics/sa1/tilemaps/intro_presented_by_sega/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_presented_by_sega/header.c rename to graphics/sa1/tilemaps/intro_presented_by_sega/header.c diff --git a/sa1/graphics/sa1/tilemaps/intro_presented_by_sega/palette.pal b/graphics/sa1/tilemaps/intro_presented_by_sega/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_presented_by_sega/palette.pal rename to graphics/sa1/tilemaps/intro_presented_by_sega/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/intro_presented_by_sega/tilemap.tilemap2 b/graphics/sa1/tilemaps/intro_presented_by_sega/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_presented_by_sega/tilemap.tilemap2 rename to graphics/sa1/tilemaps/intro_presented_by_sega/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/intro_presented_by_sega/tiles.png b/graphics/sa1/tilemaps/intro_presented_by_sega/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/intro_presented_by_sega/tiles.png rename to graphics/sa1/tilemaps/intro_presented_by_sega/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/header.c b/graphics/sa1/tilemaps/mp_choose_pak_type_en/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/header.c rename to graphics/sa1/tilemaps/mp_choose_pak_type_en/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/palette.pal b/graphics/sa1/tilemaps/mp_choose_pak_type_en/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/palette.pal rename to graphics/sa1/tilemaps/mp_choose_pak_type_en/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_choose_pak_type_en/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_choose_pak_type_en/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/tiles.png b/graphics/sa1/tilemaps/mp_choose_pak_type_en/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_en/tiles.png rename to graphics/sa1/tilemaps/mp_choose_pak_type_en/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/header.c b/graphics/sa1/tilemaps/mp_choose_pak_type_jp/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/header.c rename to graphics/sa1/tilemaps/mp_choose_pak_type_jp/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/palette.pal b/graphics/sa1/tilemaps/mp_choose_pak_type_jp/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/palette.pal rename to graphics/sa1/tilemaps/mp_choose_pak_type_jp/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_choose_pak_type_jp/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_choose_pak_type_jp/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/tiles.png b/graphics/sa1/tilemaps/mp_choose_pak_type_jp/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_choose_pak_type_jp/tiles.png rename to graphics/sa1/tilemaps/mp_choose_pak_type_jp/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_error/header.c b/graphics/sa1/tilemaps/mp_connection_error/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_error/header.c rename to graphics/sa1/tilemaps/mp_connection_error/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_error/palette.pal b/graphics/sa1/tilemaps/mp_connection_error/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_error/palette.pal rename to graphics/sa1/tilemaps/mp_connection_error/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_error/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_connection_error/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_error/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_connection_error/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_error/tiles.png b/graphics/sa1/tilemaps/mp_connection_error/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_error/tiles.png rename to graphics/sa1/tilemaps/mp_connection_error/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_success/header.c b/graphics/sa1/tilemaps/mp_connection_success/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_success/header.c rename to graphics/sa1/tilemaps/mp_connection_success/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_success/palette.pal b/graphics/sa1/tilemaps/mp_connection_success/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_success/palette.pal rename to graphics/sa1/tilemaps/mp_connection_success/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_success/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_connection_success/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_success/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_connection_success/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_connection_success/tiles.png b/graphics/sa1/tilemaps/mp_connection_success/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_connection_success/tiles.png rename to graphics/sa1/tilemaps/mp_connection_success/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_continue_screen/header.c b/graphics/sa1/tilemaps/mp_continue_screen/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_continue_screen/header.c rename to graphics/sa1/tilemaps/mp_continue_screen/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_continue_screen/palette.pal b/graphics/sa1/tilemaps/mp_continue_screen/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_continue_screen/palette.pal rename to graphics/sa1/tilemaps/mp_continue_screen/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_continue_screen/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_continue_screen/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_continue_screen/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_continue_screen/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_continue_screen/tiles.png b/graphics/sa1/tilemaps/mp_continue_screen/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_continue_screen/tiles.png rename to graphics/sa1/tilemaps/mp_continue_screen/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/header.c b/graphics/sa1/tilemaps/mp_multipak_player_overview/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/header.c rename to graphics/sa1/tilemaps/mp_multipak_player_overview/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/palette.pal b/graphics/sa1/tilemaps/mp_multipak_player_overview/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/palette.pal rename to graphics/sa1/tilemaps/mp_multipak_player_overview/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_multipak_player_overview/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_multipak_player_overview/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/tiles.png b/graphics/sa1/tilemaps/mp_multipak_player_overview/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_multipak_player_overview/tiles.png rename to graphics/sa1/tilemaps/mp_multipak_player_overview/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/header.c b/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/header.c rename to graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/palette.pal b/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/palette.pal rename to graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tiles.png b/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tiles.png rename to graphics/sa1/tilemaps/mp_singlepak_program_is_being_sent/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_team_play_screen/header.c b/graphics/sa1/tilemaps/mp_team_play_screen/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_team_play_screen/header.c rename to graphics/sa1/tilemaps/mp_team_play_screen/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_team_play_screen/palette.pal b/graphics/sa1/tilemaps/mp_team_play_screen/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_team_play_screen/palette.pal rename to graphics/sa1/tilemaps/mp_team_play_screen/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_team_play_screen/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_team_play_screen/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_team_play_screen/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_team_play_screen/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_team_play_screen/tiles.png b/graphics/sa1/tilemaps/mp_team_play_screen/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_team_play_screen/tiles.png rename to graphics/sa1/tilemaps/mp_team_play_screen/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/mp_vs_background/header.c b/graphics/sa1/tilemaps/mp_vs_background/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_vs_background/header.c rename to graphics/sa1/tilemaps/mp_vs_background/header.c diff --git a/sa1/graphics/sa1/tilemaps/mp_vs_background/palette.pal b/graphics/sa1/tilemaps/mp_vs_background/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_vs_background/palette.pal rename to graphics/sa1/tilemaps/mp_vs_background/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/mp_vs_background/tilemap.tilemap2 b/graphics/sa1/tilemaps/mp_vs_background/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_vs_background/tilemap.tilemap2 rename to graphics/sa1/tilemaps/mp_vs_background/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/mp_vs_background/tiles.png b/graphics/sa1/tilemaps/mp_vs_background/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/mp_vs_background/tiles.png rename to graphics/sa1/tilemaps/mp_vs_background/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage/header.c b/graphics/sa1/tilemaps/special_stage/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage/header.c rename to graphics/sa1/tilemaps/special_stage/header.c diff --git a/sa1/graphics/sa1/tilemaps/special_stage/palette.pal b/graphics/sa1/tilemaps/special_stage/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage/palette.pal rename to graphics/sa1/tilemaps/special_stage/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage/tiles.png b/graphics/sa1/tilemaps/special_stage/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage/tiles.png rename to graphics/sa1/tilemaps/special_stage/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_0/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_0/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_0/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_0/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_0/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_0/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_0/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_0/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_0/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_0/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_0/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_0/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_1/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_1/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_1/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_1/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_1/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_1/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_1/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_1/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_1/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_1/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_1/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_1/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_10/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_10/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_10/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_10/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_10/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_10/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_10/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_10/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_10/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_10/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_10/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_10/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_11/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_11/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_11/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_11/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_11/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_11/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_11/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_11/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_11/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_11/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_11/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_11/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_12/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_12/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_12/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_12/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_12/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_12/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_12/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_12/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_12/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_12/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_12/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_12/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_13/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_13/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_13/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_13/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_13/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_13/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_13/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_13/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_13/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_13/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_13/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_13/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_14/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_14/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_14/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_14/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_14/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_14/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_14/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_14/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_14/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_14/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_14/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_14/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_15/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_15/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_15/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_15/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_15/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_15/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_15/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_15/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_15/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_15/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_15/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_15/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_2/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_2/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_2/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_2/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_2/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_2/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_2/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_2/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_2/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_2/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_2/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_2/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_3/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_3/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_3/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_3/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_3/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_3/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_3/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_3/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_3/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_3/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_3/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_3/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_4/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_4/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_4/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_4/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_4/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_4/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_4/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_4/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_4/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_4/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_4/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_4/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_5/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_5/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_5/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_5/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_5/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_5/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_5/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_5/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_5/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_5/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_5/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_5/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_6/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_6/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_6/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_6/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_6/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_6/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_6/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_6/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_6/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_6/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_6/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_6/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_7/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_7/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_7/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_7/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_7/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_7/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_7/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_7/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_7/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_7/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_7/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_7/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_8/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_8/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_8/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_8/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_8/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_8/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_8/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_8/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_8/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_8/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_8/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_8/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_9/palette.pal b/graphics/sa1/tilemaps/special_stage_bg_frame_9/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_9/palette.pal rename to graphics/sa1/tilemaps/special_stage_bg_frame_9/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_9/tilemap.tilemap2 b/graphics/sa1/tilemaps/special_stage_bg_frame_9/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_9/tilemap.tilemap2 rename to graphics/sa1/tilemaps/special_stage_bg_frame_9/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/special_stage_bg_frame_9/tiles.png b/graphics/sa1/tilemaps/special_stage_bg_frame_9/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/special_stage_bg_frame_9/tiles.png rename to graphics/sa1/tilemaps/special_stage_bg_frame_9/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_73/header.c b/graphics/sa1/tilemaps/tilemap_73/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_73/header.c rename to graphics/sa1/tilemaps/tilemap_73/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_73/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_73/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_73/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_73/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_73/tiles.png b/graphics/sa1/tilemaps/tilemap_73/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_73/tiles.png rename to graphics/sa1/tilemaps/tilemap_73/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_74/header.c b/graphics/sa1/tilemaps/tilemap_74/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_74/header.c rename to graphics/sa1/tilemaps/tilemap_74/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_74/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_74/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_74/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_74/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_74/tiles.png b/graphics/sa1/tilemaps/tilemap_74/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_74/tiles.png rename to graphics/sa1/tilemaps/tilemap_74/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_75/header.c b/graphics/sa1/tilemaps/tilemap_75/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_75/header.c rename to graphics/sa1/tilemaps/tilemap_75/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_75/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_75/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_75/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_75/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_75/tiles.png b/graphics/sa1/tilemaps/tilemap_75/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_75/tiles.png rename to graphics/sa1/tilemaps/tilemap_75/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_84/header.c b/graphics/sa1/tilemaps/tilemap_84/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_84/header.c rename to graphics/sa1/tilemaps/tilemap_84/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_84/palette.pal b/graphics/sa1/tilemaps/tilemap_84/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_84/palette.pal rename to graphics/sa1/tilemaps/tilemap_84/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_84/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_84/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_84/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_84/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_84/tiles.png b/graphics/sa1/tilemaps/tilemap_84/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_84/tiles.png rename to graphics/sa1/tilemaps/tilemap_84/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_85/header.c b/graphics/sa1/tilemaps/tilemap_85/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_85/header.c rename to graphics/sa1/tilemaps/tilemap_85/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_85/palette.pal b/graphics/sa1/tilemaps/tilemap_85/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_85/palette.pal rename to graphics/sa1/tilemaps/tilemap_85/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_85/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_85/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_85/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_85/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_85/tiles.png b/graphics/sa1/tilemaps/tilemap_85/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_85/tiles.png rename to graphics/sa1/tilemaps/tilemap_85/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_89/header.c b/graphics/sa1/tilemaps/tilemap_89/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_89/header.c rename to graphics/sa1/tilemaps/tilemap_89/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_89/palette.pal b/graphics/sa1/tilemaps/tilemap_89/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_89/palette.pal rename to graphics/sa1/tilemaps/tilemap_89/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_89/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_89/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_89/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_89/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_89/tiles.png b/graphics/sa1/tilemaps/tilemap_89/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_89/tiles.png rename to graphics/sa1/tilemaps/tilemap_89/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/header.c b/graphics/sa1/tilemaps/tilemap_unused_mp_1/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/header.c rename to graphics/sa1/tilemaps/tilemap_unused_mp_1/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/palette.pal b/graphics/sa1/tilemaps/tilemap_unused_mp_1/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/palette.pal rename to graphics/sa1/tilemaps/tilemap_unused_mp_1/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_unused_mp_1/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_unused_mp_1/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/tiles.png b/graphics/sa1/tilemaps/tilemap_unused_mp_1/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_1/tiles.png rename to graphics/sa1/tilemaps/tilemap_unused_mp_1/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/header.c b/graphics/sa1/tilemaps/tilemap_unused_mp_2/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/header.c rename to graphics/sa1/tilemaps/tilemap_unused_mp_2/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/palette.pal b/graphics/sa1/tilemaps/tilemap_unused_mp_2/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/palette.pal rename to graphics/sa1/tilemaps/tilemap_unused_mp_2/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_unused_mp_2/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_unused_mp_2/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/tiles.png b/graphics/sa1/tilemaps/tilemap_unused_mp_2/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_2/tiles.png rename to graphics/sa1/tilemaps/tilemap_unused_mp_2/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/header.c b/graphics/sa1/tilemaps/tilemap_unused_mp_3/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/header.c rename to graphics/sa1/tilemaps/tilemap_unused_mp_3/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/palette.pal b/graphics/sa1/tilemaps/tilemap_unused_mp_3/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/palette.pal rename to graphics/sa1/tilemaps/tilemap_unused_mp_3/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_unused_mp_3/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_unused_mp_3/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/tiles.png b/graphics/sa1/tilemaps/tilemap_unused_mp_3/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_3/tiles.png rename to graphics/sa1/tilemaps/tilemap_unused_mp_3/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/header.c b/graphics/sa1/tilemaps/tilemap_unused_mp_4/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/header.c rename to graphics/sa1/tilemaps/tilemap_unused_mp_4/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/palette.pal b/graphics/sa1/tilemaps/tilemap_unused_mp_4/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/palette.pal rename to graphics/sa1/tilemaps/tilemap_unused_mp_4/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_unused_mp_4/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_unused_mp_4/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/tiles.png b/graphics/sa1/tilemaps/tilemap_unused_mp_4/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_4/tiles.png rename to graphics/sa1/tilemaps/tilemap_unused_mp_4/tiles.png diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/header.c b/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/header.c similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/header.c rename to graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/header.c diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/palette.pal b/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/palette.pal similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/palette.pal rename to graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/palette.pal diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tilemap.tilemap2 b/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tilemap.tilemap2 similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tilemap.tilemap2 rename to graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tilemap.tilemap2 diff --git a/sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tiles.png b/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tiles.png similarity index 100% rename from sa1/graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tiles.png rename to graphics/sa1/tilemaps/tilemap_unused_mp_player_bar/tiles.png diff --git a/sa1/graphics/sa1/tilesets/debug_ascii/debug_ascii.png b/graphics/sa1/tilesets/debug_ascii/debug_ascii.png similarity index 100% rename from sa1/graphics/sa1/tilesets/debug_ascii/debug_ascii.png rename to graphics/sa1/tilesets/debug_ascii/debug_ascii.png diff --git a/sa1/graphics/sa1/ui/character_select/Arrow.pal b/graphics/sa1/ui/character_select/Arrow.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/Arrow.pal rename to graphics/sa1/ui/character_select/Arrow.pal diff --git a/sa1/graphics/sa1/ui/character_select/Arrow.png b/graphics/sa1/ui/character_select/Arrow.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/Arrow.png rename to graphics/sa1/ui/character_select/Arrow.png diff --git a/sa1/graphics/sa1/ui/character_select/BlackBox.pal b/graphics/sa1/ui/character_select/BlackBox.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/BlackBox.pal rename to graphics/sa1/ui/character_select/BlackBox.pal diff --git a/sa1/graphics/sa1/ui/character_select/BlackBox.png b/graphics/sa1/ui/character_select/BlackBox.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/BlackBox.png rename to graphics/sa1/ui/character_select/BlackBox.png diff --git a/sa1/graphics/sa1/ui/character_select/BlackBox2.pal b/graphics/sa1/ui/character_select/BlackBox2.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/BlackBox2.pal rename to graphics/sa1/ui/character_select/BlackBox2.pal diff --git a/sa1/graphics/sa1/ui/character_select/BlackBox2.png b/graphics/sa1/ui/character_select/BlackBox2.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/BlackBox2.png rename to graphics/sa1/ui/character_select/BlackBox2.png diff --git a/sa1/graphics/sa1/ui/character_select/Names.pal b/graphics/sa1/ui/character_select/Names.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/Names.pal rename to graphics/sa1/ui/character_select/Names.pal diff --git a/sa1/graphics/sa1/ui/character_select/Names.png b/graphics/sa1/ui/character_select/Names.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/Names.png rename to graphics/sa1/ui/character_select/Names.png diff --git a/sa1/graphics/sa1/ui/character_select/OK.pal b/graphics/sa1/ui/character_select/OK.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/OK.pal rename to graphics/sa1/ui/character_select/OK.pal diff --git a/sa1/graphics/sa1/ui/character_select/OK.png b/graphics/sa1/ui/character_select/OK.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/OK.png rename to graphics/sa1/ui/character_select/OK.png diff --git a/sa1/graphics/sa1/ui/character_select/SelectACharacter.pal b/graphics/sa1/ui/character_select/SelectACharacter.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/SelectACharacter.pal rename to graphics/sa1/ui/character_select/SelectACharacter.pal diff --git a/sa1/graphics/sa1/ui/character_select/SelectACharacter.png b/graphics/sa1/ui/character_select/SelectACharacter.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/SelectACharacter.png rename to graphics/sa1/ui/character_select/SelectACharacter.png diff --git a/sa1/graphics/sa1/ui/character_select/ZigZag.pal b/graphics/sa1/ui/character_select/ZigZag.pal similarity index 100% rename from sa1/graphics/sa1/ui/character_select/ZigZag.pal rename to graphics/sa1/ui/character_select/ZigZag.pal diff --git a/sa1/graphics/sa1/ui/character_select/ZigZag.png b/graphics/sa1/ui/character_select/ZigZag.png similarity index 100% rename from sa1/graphics/sa1/ui/character_select/ZigZag.png rename to graphics/sa1/ui/character_select/ZigZag.png diff --git a/sa1/graphics/sa1/ui/icon_lives/Amy.pal b/graphics/sa1/ui/icon_lives/Amy.pal similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Amy.pal rename to graphics/sa1/ui/icon_lives/Amy.pal diff --git a/sa1/graphics/sa1/ui/icon_lives/Amy.png b/graphics/sa1/ui/icon_lives/Amy.png similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Amy.png rename to graphics/sa1/ui/icon_lives/Amy.png diff --git a/sa1/graphics/sa1/ui/icon_lives/Knuckles.pal b/graphics/sa1/ui/icon_lives/Knuckles.pal similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Knuckles.pal rename to graphics/sa1/ui/icon_lives/Knuckles.pal diff --git a/sa1/graphics/sa1/ui/icon_lives/Knuckles.png b/graphics/sa1/ui/icon_lives/Knuckles.png similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Knuckles.png rename to graphics/sa1/ui/icon_lives/Knuckles.png diff --git a/sa1/graphics/sa1/ui/icon_lives/Sonic.pal b/graphics/sa1/ui/icon_lives/Sonic.pal similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Sonic.pal rename to graphics/sa1/ui/icon_lives/Sonic.pal diff --git a/sa1/graphics/sa1/ui/icon_lives/Sonic.png b/graphics/sa1/ui/icon_lives/Sonic.png similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Sonic.png rename to graphics/sa1/ui/icon_lives/Sonic.png diff --git a/sa1/graphics/sa1/ui/icon_lives/Tails.pal b/graphics/sa1/ui/icon_lives/Tails.pal similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Tails.pal rename to graphics/sa1/ui/icon_lives/Tails.pal diff --git a/sa1/graphics/sa1/ui/icon_lives/Tails.png b/graphics/sa1/ui/icon_lives/Tails.png similarity index 100% rename from sa1/graphics/sa1/ui/icon_lives/Tails.png rename to graphics/sa1/ui/icon_lives/Tails.png diff --git a/sa1/graphics/sa1/ui/icon_ring/HudRing.pal b/graphics/sa1/ui/icon_ring/HudRing.pal similarity index 100% rename from sa1/graphics/sa1/ui/icon_ring/HudRing.pal rename to graphics/sa1/ui/icon_ring/HudRing.pal diff --git a/sa1/graphics/sa1/ui/icon_ring/HudRing.png b/graphics/sa1/ui/icon_ring/HudRing.png similarity index 100% rename from sa1/graphics/sa1/ui/icon_ring/HudRing.png rename to graphics/sa1/ui/icon_ring/HudRing.png diff --git a/sa1/graphics/sa1/ui/options_overlays/Characters.pal b/graphics/sa1/ui/options_overlays/Characters.pal similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/Characters.pal rename to graphics/sa1/ui/options_overlays/Characters.pal diff --git a/sa1/graphics/sa1/ui/options_overlays/Characters.png b/graphics/sa1/ui/options_overlays/Characters.png similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/Characters.png rename to graphics/sa1/ui/options_overlays/Characters.png diff --git a/sa1/graphics/sa1/ui/options_overlays/Cursors.pal b/graphics/sa1/ui/options_overlays/Cursors.pal similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/Cursors.pal rename to graphics/sa1/ui/options_overlays/Cursors.pal diff --git a/sa1/graphics/sa1/ui/options_overlays/Cursors.png b/graphics/sa1/ui/options_overlays/Cursors.png similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/Cursors.png rename to graphics/sa1/ui/options_overlays/Cursors.png diff --git a/sa1/graphics/sa1/ui/options_overlays/EnterName.pal b/graphics/sa1/ui/options_overlays/EnterName.pal similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/EnterName.pal rename to graphics/sa1/ui/options_overlays/EnterName.pal diff --git a/sa1/graphics/sa1/ui/options_overlays/EnterName.png b/graphics/sa1/ui/options_overlays/EnterName.png similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/EnterName.png rename to graphics/sa1/ui/options_overlays/EnterName.png diff --git a/sa1/graphics/sa1/ui/options_overlays/RedCorner.pal b/graphics/sa1/ui/options_overlays/RedCorner.pal similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/RedCorner.pal rename to graphics/sa1/ui/options_overlays/RedCorner.pal diff --git a/sa1/graphics/sa1/ui/options_overlays/RedCorner.png b/graphics/sa1/ui/options_overlays/RedCorner.png similarity index 100% rename from sa1/graphics/sa1/ui/options_overlays/RedCorner.png rename to graphics/sa1/ui/options_overlays/RedCorner.png diff --git a/sa1/graphics/sa1/ui/sound_test/Background.pal b/graphics/sa1/ui/sound_test/Background.pal similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Background.pal rename to graphics/sa1/ui/sound_test/Background.pal diff --git a/sa1/graphics/sa1/ui/sound_test/Background.png b/graphics/sa1/ui/sound_test/Background.png similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Background.png rename to graphics/sa1/ui/sound_test/Background.png diff --git a/sa1/graphics/sa1/ui/sound_test/Box2.pal b/graphics/sa1/ui/sound_test/Box2.pal similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Box2.pal rename to graphics/sa1/ui/sound_test/Box2.pal diff --git a/sa1/graphics/sa1/ui/sound_test/Box2.png b/graphics/sa1/ui/sound_test/Box2.png similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Box2.png rename to graphics/sa1/ui/sound_test/Box2.png diff --git a/sa1/graphics/sa1/ui/sound_test/Box3.pal b/graphics/sa1/ui/sound_test/Box3.pal similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Box3.pal rename to graphics/sa1/ui/sound_test/Box3.pal diff --git a/sa1/graphics/sa1/ui/sound_test/Box3.png b/graphics/sa1/ui/sound_test/Box3.png similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Box3.png rename to graphics/sa1/ui/sound_test/Box3.png diff --git a/sa1/graphics/sa1/ui/sound_test/Box4.pal b/graphics/sa1/ui/sound_test/Box4.pal similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Box4.pal rename to graphics/sa1/ui/sound_test/Box4.pal diff --git a/sa1/graphics/sa1/ui/sound_test/Box4.png b/graphics/sa1/ui/sound_test/Box4.png similarity index 100% rename from sa1/graphics/sa1/ui/sound_test/Box4.png rename to graphics/sa1/ui/sound_test/Box4.png diff --git a/sa1/graphics/sa1/ui/special_stage/46.pal b/graphics/sa1/ui/special_stage/46.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/46.pal rename to graphics/sa1/ui/special_stage/46.pal diff --git a/sa1/graphics/sa1/ui/special_stage/46.png b/graphics/sa1/ui/special_stage/46.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/46.png rename to graphics/sa1/ui/special_stage/46.png diff --git a/sa1/graphics/sa1/ui/special_stage/53.pal b/graphics/sa1/ui/special_stage/53.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/53.pal rename to graphics/sa1/ui/special_stage/53.pal diff --git a/sa1/graphics/sa1/ui/special_stage/53.png b/graphics/sa1/ui/special_stage/53.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/53.png rename to graphics/sa1/ui/special_stage/53.png diff --git a/sa1/graphics/sa1/ui/special_stage/ChaosEmerald.pal b/graphics/sa1/ui/special_stage/ChaosEmerald.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/ChaosEmerald.pal rename to graphics/sa1/ui/special_stage/ChaosEmerald.pal diff --git a/sa1/graphics/sa1/ui/special_stage/ChaosEmerald.png b/graphics/sa1/ui/special_stage/ChaosEmerald.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/ChaosEmerald.png rename to graphics/sa1/ui/special_stage/ChaosEmerald.png diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotAChaosEmerald.pal b/graphics/sa1/ui/special_stage/TextGotAChaosEmerald.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotAChaosEmerald.pal rename to graphics/sa1/ui/special_stage/TextGotAChaosEmerald.pal diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotAChaosEmerald.png b/graphics/sa1/ui/special_stage/TextGotAChaosEmerald.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotAChaosEmerald.png rename to graphics/sa1/ui/special_stage/TextGotAChaosEmerald.png diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotRings0.pal b/graphics/sa1/ui/special_stage/TextGotRings0.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotRings0.pal rename to graphics/sa1/ui/special_stage/TextGotRings0.pal diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotRings0.png b/graphics/sa1/ui/special_stage/TextGotRings0.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotRings0.png rename to graphics/sa1/ui/special_stage/TextGotRings0.png diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotRings1.pal b/graphics/sa1/ui/special_stage/TextGotRings1.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotRings1.pal rename to graphics/sa1/ui/special_stage/TextGotRings1.pal diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotRings1.png b/graphics/sa1/ui/special_stage/TextGotRings1.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotRings1.png rename to graphics/sa1/ui/special_stage/TextGotRings1.png diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotRings2.pal b/graphics/sa1/ui/special_stage/TextGotRings2.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotRings2.pal rename to graphics/sa1/ui/special_stage/TextGotRings2.pal diff --git a/sa1/graphics/sa1/ui/special_stage/TextGotRings2.png b/graphics/sa1/ui/special_stage/TextGotRings2.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextGotRings2.png rename to graphics/sa1/ui/special_stage/TextGotRings2.png diff --git a/sa1/graphics/sa1/ui/special_stage/TextSpecialStage.pal b/graphics/sa1/ui/special_stage/TextSpecialStage.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextSpecialStage.pal rename to graphics/sa1/ui/special_stage/TextSpecialStage.pal diff --git a/sa1/graphics/sa1/ui/special_stage/TextSpecialStage.png b/graphics/sa1/ui/special_stage/TextSpecialStage.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextSpecialStage.png rename to graphics/sa1/ui/special_stage/TextSpecialStage.png diff --git a/sa1/graphics/sa1/ui/special_stage/TextStart.pal b/graphics/sa1/ui/special_stage/TextStart.pal similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextStart.pal rename to graphics/sa1/ui/special_stage/TextStart.pal diff --git a/sa1/graphics/sa1/ui/special_stage/TextStart.png b/graphics/sa1/ui/special_stage/TextStart.png similarity index 100% rename from sa1/graphics/sa1/ui/special_stage/TextStart.png rename to graphics/sa1/ui/special_stage/TextStart.png diff --git a/sa1/graphics/sa1/ui/stage_intro/Amy.pal b/graphics/sa1/ui/stage_intro/Amy.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Amy.pal rename to graphics/sa1/ui/stage_intro/Amy.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/Amy.png b/graphics/sa1/ui/stage_intro/Amy.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Amy.png rename to graphics/sa1/ui/stage_intro/Amy.png diff --git a/sa1/graphics/sa1/ui/stage_intro/AngelIslandZone.pal b/graphics/sa1/ui/stage_intro/AngelIslandZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/AngelIslandZone.pal rename to graphics/sa1/ui/stage_intro/AngelIslandZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/AngelIslandZone.png b/graphics/sa1/ui/stage_intro/AngelIslandZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/AngelIslandZone.png rename to graphics/sa1/ui/stage_intro/AngelIslandZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/CasinoParadiseZone.pal b/graphics/sa1/ui/stage_intro/CasinoParadiseZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/CasinoParadiseZone.pal rename to graphics/sa1/ui/stage_intro/CasinoParadiseZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/CasinoParadiseZone.png b/graphics/sa1/ui/stage_intro/CasinoParadiseZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/CasinoParadiseZone.png rename to graphics/sa1/ui/stage_intro/CasinoParadiseZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/CosmicAngelZone.pal b/graphics/sa1/ui/stage_intro/CosmicAngelZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/CosmicAngelZone.pal rename to graphics/sa1/ui/stage_intro/CosmicAngelZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/CosmicAngelZone.png b/graphics/sa1/ui/stage_intro/CosmicAngelZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/CosmicAngelZone.png rename to graphics/sa1/ui/stage_intro/CosmicAngelZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/EggRocketZone.pal b/graphics/sa1/ui/stage_intro/EggRocketZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/EggRocketZone.pal rename to graphics/sa1/ui/stage_intro/EggRocketZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/EggRocketZone.png b/graphics/sa1/ui/stage_intro/EggRocketZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/EggRocketZone.png rename to graphics/sa1/ui/stage_intro/EggRocketZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/FactoryChaoGarden.pal b/graphics/sa1/ui/stage_intro/FactoryChaoGarden.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/FactoryChaoGarden.pal rename to graphics/sa1/ui/stage_intro/FactoryChaoGarden.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/FactoryChaoGarden.png b/graphics/sa1/ui/stage_intro/FactoryChaoGarden.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/FactoryChaoGarden.png rename to graphics/sa1/ui/stage_intro/FactoryChaoGarden.png diff --git a/sa1/graphics/sa1/ui/stage_intro/ForestChaoGarden.pal b/graphics/sa1/ui/stage_intro/ForestChaoGarden.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/ForestChaoGarden.pal rename to graphics/sa1/ui/stage_intro/ForestChaoGarden.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/ForestChaoGarden.png b/graphics/sa1/ui/stage_intro/ForestChaoGarden.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/ForestChaoGarden.png rename to graphics/sa1/ui/stage_intro/ForestChaoGarden.png diff --git a/sa1/graphics/sa1/ui/stage_intro/IceMountainZone.pal b/graphics/sa1/ui/stage_intro/IceMountainZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/IceMountainZone.pal rename to graphics/sa1/ui/stage_intro/IceMountainZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/IceMountainZone.png b/graphics/sa1/ui/stage_intro/IceMountainZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/IceMountainZone.png rename to graphics/sa1/ui/stage_intro/IceMountainZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/Japanese0.pal b/graphics/sa1/ui/stage_intro/Japanese0.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Japanese0.pal rename to graphics/sa1/ui/stage_intro/Japanese0.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/Japanese0.png b/graphics/sa1/ui/stage_intro/Japanese0.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Japanese0.png rename to graphics/sa1/ui/stage_intro/Japanese0.png diff --git a/sa1/graphics/sa1/ui/stage_intro/Japanese1.pal b/graphics/sa1/ui/stage_intro/Japanese1.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Japanese1.pal rename to graphics/sa1/ui/stage_intro/Japanese1.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/Japanese1.png b/graphics/sa1/ui/stage_intro/Japanese1.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Japanese1.png rename to graphics/sa1/ui/stage_intro/Japanese1.png diff --git a/sa1/graphics/sa1/ui/stage_intro/Knuckles.pal b/graphics/sa1/ui/stage_intro/Knuckles.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Knuckles.pal rename to graphics/sa1/ui/stage_intro/Knuckles.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/Knuckles.png b/graphics/sa1/ui/stage_intro/Knuckles.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Knuckles.png rename to graphics/sa1/ui/stage_intro/Knuckles.png diff --git a/sa1/graphics/sa1/ui/stage_intro/NeoGreenHillZone.pal b/graphics/sa1/ui/stage_intro/NeoGreenHillZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/NeoGreenHillZone.pal rename to graphics/sa1/ui/stage_intro/NeoGreenHillZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/NeoGreenHillZone.png b/graphics/sa1/ui/stage_intro/NeoGreenHillZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/NeoGreenHillZone.png rename to graphics/sa1/ui/stage_intro/NeoGreenHillZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/PinballChaoGarden.pal b/graphics/sa1/ui/stage_intro/PinballChaoGarden.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/PinballChaoGarden.pal rename to graphics/sa1/ui/stage_intro/PinballChaoGarden.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/PinballChaoGarden.png b/graphics/sa1/ui/stage_intro/PinballChaoGarden.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/PinballChaoGarden.png rename to graphics/sa1/ui/stage_intro/PinballChaoGarden.png diff --git a/sa1/graphics/sa1/ui/stage_intro/SecretBaseZone.pal b/graphics/sa1/ui/stage_intro/SecretBaseZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/SecretBaseZone.pal rename to graphics/sa1/ui/stage_intro/SecretBaseZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/SecretBaseZone.png b/graphics/sa1/ui/stage_intro/SecretBaseZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/SecretBaseZone.png rename to graphics/sa1/ui/stage_intro/SecretBaseZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/Sonic.pal b/graphics/sa1/ui/stage_intro/Sonic.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Sonic.pal rename to graphics/sa1/ui/stage_intro/Sonic.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/Sonic.png b/graphics/sa1/ui/stage_intro/Sonic.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Sonic.png rename to graphics/sa1/ui/stage_intro/Sonic.png diff --git a/sa1/graphics/sa1/ui/stage_intro/SpaceChaoGarden.pal b/graphics/sa1/ui/stage_intro/SpaceChaoGarden.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/SpaceChaoGarden.pal rename to graphics/sa1/ui/stage_intro/SpaceChaoGarden.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/SpaceChaoGarden.png b/graphics/sa1/ui/stage_intro/SpaceChaoGarden.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/SpaceChaoGarden.png rename to graphics/sa1/ui/stage_intro/SpaceChaoGarden.png diff --git a/sa1/graphics/sa1/ui/stage_intro/Tails.pal b/graphics/sa1/ui/stage_intro/Tails.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Tails.pal rename to graphics/sa1/ui/stage_intro/Tails.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/Tails.png b/graphics/sa1/ui/stage_intro/Tails.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/Tails.png rename to graphics/sa1/ui/stage_intro/Tails.png diff --git a/sa1/graphics/sa1/ui/stage_intro/TheMoonZone.pal b/graphics/sa1/ui/stage_intro/TheMoonZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/TheMoonZone.pal rename to graphics/sa1/ui/stage_intro/TheMoonZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/TheMoonZone.png b/graphics/sa1/ui/stage_intro/TheMoonZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/TheMoonZone.png rename to graphics/sa1/ui/stage_intro/TheMoonZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/XZone.pal b/graphics/sa1/ui/stage_intro/XZone.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/XZone.pal rename to graphics/sa1/ui/stage_intro/XZone.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/XZone.png b/graphics/sa1/ui/stage_intro/XZone.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/XZone.png rename to graphics/sa1/ui/stage_intro/XZone.png diff --git a/sa1/graphics/sa1/ui/stage_intro/char_names.pal b/graphics/sa1/ui/stage_intro/char_names.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/char_names.pal rename to graphics/sa1/ui/stage_intro/char_names.pal diff --git a/sa1/graphics/sa1/ui/stage_intro/char_names.png b/graphics/sa1/ui/stage_intro/char_names.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_intro/char_names.png rename to graphics/sa1/ui/stage_intro/char_names.png diff --git a/sa1/graphics/sa1/ui/stage_result/Act12.pal b/graphics/sa1/ui/stage_result/Act12.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Act12.pal rename to graphics/sa1/ui/stage_result/Act12.pal diff --git a/sa1/graphics/sa1/ui/stage_result/Act12.png b/graphics/sa1/ui/stage_result/Act12.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Act12.png rename to graphics/sa1/ui/stage_result/Act12.png diff --git a/sa1/graphics/sa1/ui/stage_result/Amy.pal b/graphics/sa1/ui/stage_result/Amy.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Amy.pal rename to graphics/sa1/ui/stage_result/Amy.pal diff --git a/sa1/graphics/sa1/ui/stage_result/Amy.png b/graphics/sa1/ui/stage_result/Amy.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Amy.png rename to graphics/sa1/ui/stage_result/Amy.png diff --git a/sa1/graphics/sa1/ui/stage_result/GotThroughTexts.pal b/graphics/sa1/ui/stage_result/GotThroughTexts.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/GotThroughTexts.pal rename to graphics/sa1/ui/stage_result/GotThroughTexts.pal diff --git a/sa1/graphics/sa1/ui/stage_result/GotThroughTexts.png b/graphics/sa1/ui/stage_result/GotThroughTexts.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/GotThroughTexts.png rename to graphics/sa1/ui/stage_result/GotThroughTexts.png diff --git a/sa1/graphics/sa1/ui/stage_result/HeadlineBack.pal b/graphics/sa1/ui/stage_result/HeadlineBack.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/HeadlineBack.pal rename to graphics/sa1/ui/stage_result/HeadlineBack.pal diff --git a/sa1/graphics/sa1/ui/stage_result/HeadlineBack.png b/graphics/sa1/ui/stage_result/HeadlineBack.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/HeadlineBack.png rename to graphics/sa1/ui/stage_result/HeadlineBack.png diff --git a/sa1/graphics/sa1/ui/stage_result/Knuckles.pal b/graphics/sa1/ui/stage_result/Knuckles.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Knuckles.pal rename to graphics/sa1/ui/stage_result/Knuckles.pal diff --git a/sa1/graphics/sa1/ui/stage_result/Knuckles.png b/graphics/sa1/ui/stage_result/Knuckles.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Knuckles.png rename to graphics/sa1/ui/stage_result/Knuckles.png diff --git a/sa1/graphics/sa1/ui/stage_result/Sonic.pal b/graphics/sa1/ui/stage_result/Sonic.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Sonic.pal rename to graphics/sa1/ui/stage_result/Sonic.pal diff --git a/sa1/graphics/sa1/ui/stage_result/Sonic.png b/graphics/sa1/ui/stage_result/Sonic.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Sonic.png rename to graphics/sa1/ui/stage_result/Sonic.png diff --git a/sa1/graphics/sa1/ui/stage_result/Tails.pal b/graphics/sa1/ui/stage_result/Tails.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Tails.pal rename to graphics/sa1/ui/stage_result/Tails.pal diff --git a/sa1/graphics/sa1/ui/stage_result/Tails.png b/graphics/sa1/ui/stage_result/Tails.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_result/Tails.png rename to graphics/sa1/ui/stage_result/Tails.png diff --git a/sa1/graphics/sa1/ui/stage_ui/AsciiChars.pal b/graphics/sa1/ui/stage_ui/AsciiChars.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_ui/AsciiChars.pal rename to graphics/sa1/ui/stage_ui/AsciiChars.pal diff --git a/sa1/graphics/sa1/ui/stage_ui/AsciiChars.png b/graphics/sa1/ui/stage_ui/AsciiChars.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_ui/AsciiChars.png rename to graphics/sa1/ui/stage_ui/AsciiChars.png diff --git a/sa1/graphics/sa1/ui/stage_ui/OK.pal b/graphics/sa1/ui/stage_ui/OK.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_ui/OK.pal rename to graphics/sa1/ui/stage_ui/OK.pal diff --git a/sa1/graphics/sa1/ui/stage_ui/OK.png b/graphics/sa1/ui/stage_ui/OK.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_ui/OK.png rename to graphics/sa1/ui/stage_ui/OK.png diff --git a/sa1/graphics/sa1/ui/stage_ui/TimerDigits.pal b/graphics/sa1/ui/stage_ui/TimerDigits.pal similarity index 100% rename from sa1/graphics/sa1/ui/stage_ui/TimerDigits.pal rename to graphics/sa1/ui/stage_ui/TimerDigits.pal diff --git a/sa1/graphics/sa1/ui/stage_ui/TimerDigits.png b/graphics/sa1/ui/stage_ui/TimerDigits.png similarity index 100% rename from sa1/graphics/sa1/ui/stage_ui/TimerDigits.png rename to graphics/sa1/ui/stage_ui/TimerDigits.png diff --git a/sa1/graphics/sa1/ui/unknown/Transparent0.pal b/graphics/sa1/ui/unknown/Transparent0.pal similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent0.pal rename to graphics/sa1/ui/unknown/Transparent0.pal diff --git a/sa1/graphics/sa1/ui/unknown/Transparent0.png b/graphics/sa1/ui/unknown/Transparent0.png similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent0.png rename to graphics/sa1/ui/unknown/Transparent0.png diff --git a/sa1/graphics/sa1/ui/unknown/Transparent1.pal b/graphics/sa1/ui/unknown/Transparent1.pal similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent1.pal rename to graphics/sa1/ui/unknown/Transparent1.pal diff --git a/sa1/graphics/sa1/ui/unknown/Transparent1.png b/graphics/sa1/ui/unknown/Transparent1.png similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent1.png rename to graphics/sa1/ui/unknown/Transparent1.png diff --git a/sa1/graphics/sa1/ui/unknown/Transparent2.pal b/graphics/sa1/ui/unknown/Transparent2.pal similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent2.pal rename to graphics/sa1/ui/unknown/Transparent2.pal diff --git a/sa1/graphics/sa1/ui/unknown/Transparent2.png b/graphics/sa1/ui/unknown/Transparent2.png similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent2.png rename to graphics/sa1/ui/unknown/Transparent2.png diff --git a/sa1/graphics/sa1/ui/unknown/Transparent3.pal b/graphics/sa1/ui/unknown/Transparent3.pal similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent3.pal rename to graphics/sa1/ui/unknown/Transparent3.pal diff --git a/sa1/graphics/sa1/ui/unknown/Transparent3.png b/graphics/sa1/ui/unknown/Transparent3.png similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent3.png rename to graphics/sa1/ui/unknown/Transparent3.png diff --git a/sa1/graphics/sa1/ui/unknown/Transparent4.pal b/graphics/sa1/ui/unknown/Transparent4.pal similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent4.pal rename to graphics/sa1/ui/unknown/Transparent4.pal diff --git a/sa1/graphics/sa1/ui/unknown/Transparent4.png b/graphics/sa1/ui/unknown/Transparent4.png similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent4.png rename to graphics/sa1/ui/unknown/Transparent4.png diff --git a/sa1/graphics/sa1/ui/unknown/Transparent5.pal b/graphics/sa1/ui/unknown/Transparent5.pal similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent5.pal rename to graphics/sa1/ui/unknown/Transparent5.pal diff --git a/sa1/graphics/sa1/ui/unknown/Transparent5.png b/graphics/sa1/ui/unknown/Transparent5.png similarity index 100% rename from sa1/graphics/sa1/ui/unknown/Transparent5.png rename to graphics/sa1/ui/unknown/Transparent5.png diff --git a/sa1/sa1.sha1 b/sa1.sha1 similarity index 100% rename from sa1/sa1.sha1 rename to sa1.sha1 diff --git a/sa1/ldscript.txt b/sa1/ldscript.txt deleted file mode 100644 index 09bf1b03c2..0000000000 --- a/sa1/ldscript.txt +++ /dev/null @@ -1,635 +0,0 @@ -/* Hack for matching? */ -gNumMusicPlayers = 4; -gMaxLines = 0; - -SECTIONS { - . = 0x8000000; - ROM : - ALIGN(4) { - /* bootstrap */ - sa2/src/rom_header.o(.text); - sa2/src/crt0.o(.text); - - /* Engine */ - sa2/src/multi_sio_asm.o(.text); - data/sa1/rom_header_old.o(.text); - sa2/src/core.o(.text); - sa2/src/main.o(.text); - sa2/src/task.o(.text); - sa2/src/background.o(.text); - sa2/src/sprite.o(.text); - sa2/src/bg_triangles.o(.text); - sa2/src/malloc_ewram.o(.text); - sa2/src/malloc_vram.o(.text); - sa2/src/multi_sio.o(.text); - sa2/src/multi_boot.o(.text); - sa2/src/sio32_multi_load.o(.text); - - /* Game */ - sa2/src/game/shared/stage/rings_manager.o(.text); - sa2/src/game/shared/stage/entities_manager.o(.text); - sa2/src/game/shared/stage/collision_1.o(.text); - sa2/src/game/shared/stage/collision_3.o(.text); - sa2/src/game/shared/stage/collision_2.o(.text); - sa2/src/game/shared/stage/palette_loader.o(.text); - - /* Menus */ - sa2/src/game/sa1/menus/title_screen.o(.text); - sa2/src/game/shared/menus/unused_level_select.o(.text); - sa2/src/game/sa1/menus/mp_mode_select.o(.text); - sa2/src/game/sa1/menus/mp_mode_select_2.o(.text); - sa2/src/game/sa1/menus/time_attack.o(.text); - sa2/src/game/sa1/menus/options.o(.text); - sa2/src/game/sa1/menus/player_data.o(.text); - - sa2/src/game/shared/stage/spot_light_beam_task.o(.text); - sa2/src/game/sa1/stage/to_be_continued_screen.o(.text); - sa2/src/game/shared/stage/enemy_defeat_score.o(.text); - sa2/src/game/shared/stage/demo_manager.o(.text); - - sa2/src/game/sa1/save.o(.text); - - sa2/src/game/shared/stage/unused_flash_task.o(.text); - sa2/src/game/shared/stage/mp_player.o(.text); - sa2/src/game/shared/stage/mp_indicators.o(.text); - sa2/src/game/sa1/stage/enemies/bosses_egg_mobile.o(.text); - sa2/src/game/sa1/stage/enemies/bosses_misc.o(.text); - sa2/src/game/sa1/stage/nuts_and_bolts_task.o(.text); - sa2/src/game/shared/stage/spot_lights_manager.o(.text); - - sa2/src/game/shared/stage/mp_event_mgr.o(.text); - sa2/src/game/shared/stage/mp_event_recv_mgr.o(.text); - sa2/src/game/sa1/stage/mp_results.o(.text); - sa2/src/game/sa1/stage/mp_results_b.o(.text); - sa2/src/game/shared/stage/mp_finish.o(.text); - - sa2/src/game/shared/stage/pause_menu.o(.text); - sa2/src/game/shared/collect_rings/results.o(.text); - sa2/src/game/sa1/stage/mp_hud.o(.text); - sa2/src/game/sa1/stage/mystery_itembox.o(.text); - sa2/src/game/sa1/stage/mp_unk_0.o(.text); - sa2/src/game/sa1/stage/mp_unk_1.o(.text); - - /* prototype ? */ - sa2/src/game/sa1/stage/enemies/kiki.o(.text); - sa2/src/game/sa1/stage/enemies/buzzer.o(.text); - sa2/src/game/shared/stage/collect_ring_effect.o(.text); - sa2/src/game/sa1/stage/itembox.o(.text); - sa2/src/game/sa1/stage/interactables/stage_goal.o(.text); - sa2/src/game/shared/stage/dust_cloud.o(.text); - sa2/src/game/sa1/stage/interactables/spikes.o(.text); - sa2/src/game/sa1/stage/interactables/checkpoint.o(.text); - sa2/src/game/sa1/stage/interactables/spring.o(.text); - sa2/src/game/sa1/stage/interactables/decoration.o(.text); - sa2/src/game/sa1/stage/interactables/toggle_player_layer.o(.text); - sa2/src/game/sa1/stage/interactables/grind_rail.o(.text); - sa2/src/game/sa1/stage/interactables/platform_thin.o(.text); - sa2/src/game/shared/stage/magnetic_ring.o(.text); - sa2/src/game/sa1/stage/interactables/platform_crumbling.o(.text); - sa2/src/game/sa1/stage/interactables/fadein_to_be_continued.o(.text); - sa2/src/game/sa1/stage/temporary_sound_play_task.o(.text); - sa2/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.o(.text); - sa2/src/game/sa1/stage/interactables/breakable_wall.o(.text); - - sa2/src/game/sa1/stage/mp_chao.o(.text); - sa2/src/game/sa1/stage/egg_rocket_transitions.o(.text); - - sa2/src/game/sa1/special_stage/main.o(.text); - - sa2/src/game/sa1/stage/enemies/boss_2_egg_press.o(.text); - sa2/src/game/sa1/stage/enemies/boss_3_egg_ball.o(.text); - sa2/src/game/sa1/stage/enemies/boss_4_egg_spider.o(.text); - sa2/src/game/sa1/stage/enemies/boss_6_egg_snake.o(.text); - sa2/src/game/sa1/stage/enemies/boss_x1_egg_wrecker.o(.text); - sa2/src/game/sa1/stage/enemies/boss_x2_egg_drillster.o(.text); - sa2/src/game/sa1/stage/enemies/boss_x3_egg_x.o(.text); - - sa2/src/game/sa1/multiplayer/chao_message.o(.text); - sa2/src/game/shared/multiplayer/communication_outcome.o(.text); - - sa2/src/game/shared/stage/amy_attack_heart_effect.o(.text); - sa2/src/game/shared/stage/music_manager.o(.text); - - sa2/src/game/game.o(.text); - sa2/src/game/dummy_task.o(.text); - - sa2/src/game/shared/stage/stage.o(.text); - sa2/src/game/shared/stage/camera.o(.text); - sa2/src/game/shared/stage/terrain_collision.o(.text); - sa2/src/game/shared/stage/mp_sprite_task.o(.text); - sa2/src/game/shared/stage/dust_effect_braking.o(.text); - sa2/src/game/shared/stage/dust_effect_spindash.o(.text); - sa2/src/game/shared/stage/grind_effect_1.o(.text); - sa2/src/game/shared/stage/rings_scatter.o(.text); - sa2/src/game/shared/stage/player.o(.text); - sa2/src/game/sa1/stage/player_sonic.o(.text); - sa2/src/game/sa1/stage/player_tails.o(.text); - sa2/src/game/sa1/stage/player_knuckles.o(.text); - sa2/src/game/sa1/stage/player_amy.o(.text); - sa2/src/game/sa1/stage/player_super_sonic.o(.text); - sa2/src/game/shared/stage/item_tasks.o(.text); - sa2/src/game/shared/stage/underwater_effects.o(.text); - sa2/src/game/shared/stage/water_effects.o(.text); - sa2/src/game/shared/stage/screen_shake.o(.text); - - /* NOTE: input_recorder was not part of the engine in this version */ - sa2/src/input_recorder.o(.text); - - sa2/src/game/sa1/stage/some_task_manager.o(.text); - sa2/src/game/sa1/stage/player_controls.o(.text); - - sa2/src/game/sa1/stage/interactables/half_pipe.o(.text); - sa2/src/game/sa1/stage/interactables/034.o(.text); - sa2/src/game/sa1/stage/interactables/mini_loop_boost.o(.text); - sa2/src/game/sa1/stage/interactables/water_bridge.o(.text); - sa2/src/game/sa1/stage/interactables/water_bridge_splash.o(.text); - sa2/src/game/sa1/stage/interactables/mini_loop.o(.text); - sa2/src/game/sa1/stage/interactables/039.o(.text); - sa2/src/game/sa1/stage/enemies/boss_5_mecha_knuckles.o(.text); - sa2/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.o(.text); - - sa2/src/game/sa1/stage/ui_rendering.o(.text); - sa2/src/game/sa1/stage/stage_ui.o(.text); - sa2/src/game/sa1/stage/trapped_animals.o(.text); - sa2/src/game/sa1/stage/stage_ui_z.o(.text); - - /* game/sa1/ui */ - sa2/src/game/sa1/ui/game_over.o(.text); - sa2/src/game/sa1/ui/stage_results.o(.text); - sa2/src/game/sa1/ui/player_name_input_menu.o(.text); - sa2/src/game/sa1/ui/character_select.o(.text); - sa2/src/game/sa1/ui/time_over.o(.text); - sa2/src/game/sa1/ui/game_2_0.o(.text); - sa2/src/game/sa1/ui/game_2_1.o(.text); - sa2/src/game/sa1/ui/staff_credits.o(.text); - sa2/src/game/sa1/ui/sound_test.o(.text); - sa2/src/game/sa1/ui/vs_record.o(.text); - sa2/src/game/sa1/ui/time_attack_record.o(.text); - sa2/src/game/sa1/ui/course_select.o(.text); - sa2/src/game/sa1/ui/game_2_3.o(.text); - sa2/src/game/sa1/ui/intro_animation.o(.text); - sa2/src/game/sa1/ui/extra_stage_results.o(.text); - sa2/src/game/sa1/ui/special_stage_intro.o(.text); - sa2/src/game/sa1/ui/collect_chaos_emeralds_msg.o(.text); - sa2/src/game/sa1/ui/time_attack_results.o(.text); - sa2/src/game/sa1/ui/time_attack_lobby.o(.text); - sa2/src/game/sa1/ui/edit_language_screen.o(.text); - sa2/src/game/sa1/ui/multiplayer_continue_screen.o(.text); - sa2/src/game/sa1/ui/time_attack_records.o(.text); - - sa2/src/game/sa1/stage/enemies/gamigami.o(.text); - sa2/src/game/sa1/stage/enemies/rhinotank.o(.text); - sa2/src/game/sa1/stage/enemies/kerokero.o(.text); - sa2/src/game/sa1/stage/enemies/hanabii.o(.text); - sa2/src/game/sa1/stage/enemies/pierrot.o(.text); - sa2/src/game/sa1/stage/enemies/slot.o(.text); - sa2/src/game/sa1/stage/enemies/leon.o(.text); - sa2/src/game/sa1/stage/enemies/wamu.o(.text); - sa2/src/game/sa1/stage/enemies/mirror.o(.text); - sa2/src/game/sa1/stage/enemies/oct.o(.text); - sa2/src/game/sa1/stage/enemies/senbon.o(.text); - sa2/src/game/sa1/stage/enemies/fireball.o(.text); - sa2/src/game/sa1/stage/enemies/mole.o(.text); - sa2/src/game/sa1/stage/enemies/yukimaru.o(.text); - sa2/src/game/sa1/stage/enemies/drisame.o(.text); - sa2/src/game/sa1/stage/enemies/kuraa.o(.text); - sa2/src/game/sa1/stage/enemies/pen_mk1.o(.text); - sa2/src/game/sa1/stage/enemies/tentou.o(.text); - - sa2/src/game/sa1/stage/interactables/trampoline.o(.text); - sa2/src/game/sa1/stage/interactables/bounce_block.o(.text); - sa2/src/game/sa1/stage/interactables/incline_ramp.o(.text); - sa2/src/game/sa1/stage/interactables/waterfall.o(.text); - sa2/src/game/sa1/stage/interactables/shrubbery.o(.text); - sa2/src/game/sa1/stage/interactables/booster.o(.text); - sa2/src/game/sa1/stage/interactables/red_flag_and_pole.o(.text); - sa2/src/game/sa1/stage/interactables/forced_slide.o(.text); - sa2/src/game/sa1/stage/interactables/bumpers.o(.text); - sa2/src/game/sa1/stage/interactables/flippers.o(.text); - sa2/src/game/sa1/stage/interactables/platform_square.o(.text); - sa2/src/game/sa1/stage/interactables/sega_sonic_letters.o(.text); - sa2/src/game/sa1/stage/interactables/party_balloon.o(.text); - sa2/src/game/sa1/stage/interactables/ship_swing.o(.text); - sa2/src/game/sa1/stage/interactables/platform_spiked.o(.text); - sa2/src/game/sa1/stage/interactables/bowl.o(.text); - sa2/src/game/sa1/stage/interactables/panel_gate.o(.text); - sa2/src/game/sa1/stage/interactables/marble_track.o(.text); - sa2/src/game/sa1/stage/interactables/conveyor_belt_movement.o(.text); - sa2/src/game/sa1/stage/interactables/toggle_player_visibility.o(.text); - sa2/src/game/sa1/stage/interactables/wall_bumper.o(.text); - sa2/src/game/sa1/stage/interactables/teleport_orb.o(.text); - sa2/src/game/sa1/stage/interactables/flipper_small_blue.o(.text); - sa2/src/game/sa1/stage/interactables/carousel.o(.text); - sa2/src/game/sa1/stage/interactables/hook_rail.o(.text); - sa2/src/game/sa1/stage/interactables/swinging_hook.o(.text); - sa2/src/game/sa1/stage/interactables/security_gate.o(.text); - sa2/src/game/sa1/stage/interactables/swing_rope.o(.text); - sa2/src/game/sa1/stage/interactables/steam_exhaust.o(.text); - sa2/src/game/sa1/stage/interactables/crane_claw_and_lift.o(.text); - sa2/src/game/sa1/stage/interactables/moving_spring.o(.text); - sa2/src/game/sa1/stage/interactables/iron_ball.o(.text); - sa2/src/game/sa1/stage/interactables/hang_bar.o(.text); - sa2/src/game/sa1/stage/interactables/skating_stone.o(.text); - sa2/src/game/sa1/stage/interactables/platforms_085_089.o(.text); - sa2/src/game/sa1/stage/interactables/run_wheel.o(.text); - sa2/src/game/sa1/stage/interactables/torch.o(.text); - sa2/src/game/sa1/stage/interactables/toggle_player_float.o(.text); - sa2/src/game/sa1/stage/interactables/ferris_wheel.o(.text); - sa2/src/game/sa1/stage/interactables/boulder_spawner.o(.text); - sa2/src/game/sa1/stage/interactables/spiked_barrel.o(.text); - sa2/src/game/sa1/stage/interactables/air_bubbles.o(.text); - sa2/src/game/sa1/stage/interactables/ice_block.o(.text); - sa2/src/game/sa1/stage/interactables/096.o(.text); - sa2/src/game/sa1/stage/interactables/updraft.o(.text); - sa2/src/game/sa1/stage/interactables/underwater_lava_platform.o(.text); - sa2/src/game/sa1/stage/interactables/conveyor_belt_object.o(.text); - sa2/src/game/sa1/stage/interactables/special_spring.o(.text); - sa2/src/game/sa1/stage/interactables/propeller.o(.text); - sa2/src/game/sa1/stage/interactables/small_fall_block.o(.text); - sa2/src/game/sa1/stage/interactables/lava.o(.text); - sa2/src/game/sa1/stage/interactables/track.o(.text); - sa2/src/game/sa1/stage/interactables/107.o(.text); - sa2/src/game/sa1/stage/interactables/spring_hiding.o(.text); - sa2/src/game/sa1/stage/interactables/toggle_gravity.o(.text); - sa2/src/game/sa1/stage/interactables/pipe.o(.text); - sa2/src/game/sa1/stage/interactables/maze_air_corner.o(.text); - sa2/src/game/sa1/stage/interactables/113.o(.text); - - /* Libs */ - sa2/src/lib/m4a/m4a0.o(.text); - sa2/src/lib/m4a/m4a.o(.text); - sa2/src/lib/agb_flash/agb_flash.o(.text); - sa2/src/lib/agb_flash/agb_flash_le_512k.o(.text); - sa2/src/lib/agb_flash/agb_flash_mx_512k.o(.text); - sa2/src/lib/agb_flash/agb_flash_at_512k.o(.text); - - *libagbsyscall.a:ArcTan2.o(.text); - *libagbsyscall.a:CpuFastSet.o(.text); - *libagbsyscall.a:CpuSet.o(.text); - *libagbsyscall.a:Div.o(.text); - *libagbsyscall.a:Mod.o(.text); - *libagbsyscall.a:LZ77UnCompWram.o(.text); - *libagbsyscall.a:MultiBoot.o(.text); - *libagbsyscall.a:RLUnCompWram.o(.text); - *libagbsyscall.a:SoftReset.o(.text); - *libagbsyscall.a:Sqrt.o(.text); - *libagbsyscall.a:VBlankIntrWait.o(.text); - *libagbsyscall.a:SoftResetExram.o(.text); - - *libgcc.a:_call_via_rX.o(.text); - *libgcc.a:_divdi3.o(.text); - *libgcc.a:_divsi3.o(.text); - *libgcc.a:_dvmd_tls.o(.text); - *libgcc.a:_modsi3.o(.text); - *libgcc.a:_udivsi3.o(.text); - *libgcc.a:_umodsi3.o(.text); - *libgcc.a:dp-bit.o(.text); - *libgcc.a:fp-bit.o(.text); - *libgcc.a:_lshrdi3.o(.text); - *libgcc.a:_muldi3.o(.text); - *libgcc.a:_negdi2.o(.text); - *libgcc.a:_udivsi3.o(.text); - *libc.a:memcpy.o(.text); - *libc.a:memset.o(.text); - - /* Data */ - - sa2/src/core.o(.rodata); - sa2/src/background.o(.rodata); - sa2/src/trig.o(.rodata); - sa2/src/sprite.o(.rodata); - sa2/src/bg_triangles.o(.rodata); - sa2/src/multi_sio.o(.rodata); - sa2/src/sio32_multi_load.o(.rodata); - src/data/sa1/tileset_debug_ascii.o(.rodata); - sa2/src/game/sa1/save.o(.rodata); - data/sa1/chao_garden.o(.rodata); - src/data/sa1/entity_tables.o(.rodata); - sa2/src/game/shared/stage/entities_manager.o(.rodata); - sa2/src/game/sa1/stage/itembox.o(.rodata); - sa2/src/game/sa1/menus/title_screen.o(.rodata); - sa2/src/game/shared/menus/unused_level_select.o(.rodata); - sa2/src/game/sa1/menus/mp_mode_select.o(.rodata); - sa2/src/game/sa1/menus/time_attack.o(.rodata); - sa2/src/game/sa1/menus/options.o(.rodata); - sa2/src/game/sa1/menus/player_data.o(.rodata); - sa2/src/game/shared/stage/unused_flash_task.o(.rodata); - data/sa1/data_0_1_2.o(.rodata); - sa2/src/game/shared/stage/mp_event_mgr.o(.rodata); - sa2/src/game/sa1/stage/mp_results_b.o(.rodata); - sa2/src/game/sa1/stage/mp_results.o(.rodata); - sa2/src/game/shared/stage/mp_finish.o(.rodata); - sa2/src/game/sa1/stage/mp_hud.o(.rodata); - sa2/src/game/sa1/stage/mystery_itembox.o(.rodata); - sa2/src/game/sa1/stage/interactables/spring.o(.rodata); - sa2/src/game/sa1/stage/interactables/platform_thin.o(.rodata); - sa2/src/game/sa1/stage/interactables/platform_crumbling.o(.rodata); - data/sa1/data_0_1_4.o(.rodata); - sa2/src/game/sa1/stage/mp_chao.o(.rodata); - src/data/sa1/tilemap_data_0.o(.rodata); - src/data/sa1/sprite_tables.o(.rodata); - src/data/sa1/animations/animations.o(.rodata); - src/data/sa1/animations/animation_table.o(.data); - src/data/sa1/sprite_dimensions.o(.rodata); - src/data/sa1/oam_data.o(.rodata); - src/data/sa1/obj_palettes.o(.rodata); - data/sa1/obj_gfx.o(.rodata); - sa2/src/game/sa1/special_stage/main.o(.rodata); - data/sa1/data_0_2.o(.rodata); - src/data/sa1/tilemaps_special_stage.o(.rodata); - src/data/sa1/tilemaps_special_stage.o(.data); - data/sa1/data_0_3.o(.rodata); - src/data/sa1/tilemap_data_2.o(.rodata); - data/sa1/data_0_3_2.o(.rodata); - sa2/src/game/shared/multiplayer/communication_outcome.o(.rodata); - sa2/src/game/shared/stage/amy_attack_heart_effect.o(.rodata); - sa2/src/game/shared/stage/music_manager.o(.rodata); - sa2/src/game/shared/stage/stage.o(.rodata); - sa2/src/game/shared/stage/camera.o(.rodata); - src/data/sa1/tilemap_table.o(.rodata); - sa2/src/game/shared/stage/terrain_collision.o(.rodata); - data/sa1/data_0_4.o(.rodata); - sa2/src/game/sa1/stage/enemies/boss_5_mecha_knuckles.o(.rodata); - sa2/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.o(.rodata); - src/data/sa1/tilemap_data_3.o(.rodata); - data/sa1/data_0_5_0.o(.rodata); - src/data/sa1/ui_graphics_data.o(.rodata); - data/sa1/data_0_5.o(.rodata); - src/data/sa1/ui_graphics_table.o(.rodata); - sa2/src/game/sa1/stage/trapped_animals.o(.rodata); - data/sa1/data_0_5_2.o(.rodata); - sa2/src/game/sa1/ui/character_select.o(.rodata); - sa2/src/game/sa1/ui/game_2_0.o(.rodata); - sa2/src/game/sa1/ui/game_2_1.o(.rodata); - sa2/src/game/sa1/ui/staff_credits.o(.rodata); - src/data/sa1/credits.o(.rodata); - data/sa1/data_sound_test.o(.rodata); - sa2/src/game/sa1/ui/sound_test.o(.rodata); - data/sa1/data_0_6.o(.rodata); - sa2/src/game/sa1/ui/course_select.o(.rodata); - sa2/src/game/sa1/ui/game_2_3.o(.rodata); - sa2/src/game/sa1/ui/intro_animation.o(.rodata); - data/sa1/data_0_6_0.o(.rodata); - sa2/src/game/sa1/ui/time_attack_results.o(.rodata); - data/sa1/data_0_6_1.o(.rodata); - sa2/src/game/sa1/ui/time_attack_records.o(.rodata); - data/sa1/data_0_6_2.o(.rodata); - sa2/src/game/sa1/stage/enemies/kerokero.o(.rodata); - sa2/src/game/sa1/stage/enemies/drisame.o(.rodata); - data/sa1/data_0_7.o(.rodata); - sa2/src/game/sa1/stage/interactables/red_flag_and_pole.o(.rodata); - sa2/src/game/sa1/stage/interactables/forced_slide.o(.rodata); - sa2/src/game/sa1/stage/interactables/sega_sonic_letters.o(.rodata); - sa2/src/game/sa1/stage/interactables/bowl.o(.rodata); - sa2/src/game/sa1/stage/interactables/hang_bar.o(.rodata); - sa2/src/game/sa1/stage/interactables/platforms_085_089.o(.rodata); - sa2/src/game/sa1/stage/interactables/ferris_wheel.o(.rodata); - sa2/src/game/sa1/stage/interactables/spiked_barrel.o(.rodata); - sa2/src/game/sa1/stage/interactables/air_bubbles.o(.rodata); - src/data/sa1/entities.o(.rodata); - sa2/src/lib/m4a/m4a_tables.o(.rodata); - data/sa1/sound_data.o(.rodata); - sound/sa1/songs/song001.o(.rodata); - sound/sa1/songs/midi/song002.o(.rodata); - sound/sa1/songs/midi/song003.o(.rodata); - sound/sa1/songs/midi/song004.o(.rodata); - sound/sa1/songs/midi/song005.o(.rodata); - sound/sa1/songs/midi/song006.o(.rodata); - sound/sa1/songs/midi/song007.o(.rodata); - sound/sa1/songs/midi/song008.o(.rodata); - sound/sa1/songs/midi/song009.o(.rodata); - sound/sa1/songs/midi/song010.o(.rodata); - sound/sa1/songs/midi/song011.o(.rodata); - sound/sa1/songs/midi/song012.o(.rodata); - sound/sa1/songs/midi/song013.o(.rodata); - sound/sa1/songs/midi/song014.o(.rodata); - sound/sa1/songs/midi/song015.o(.rodata); - sound/sa1/songs/midi/song016.o(.rodata); - sound/sa1/songs/song017.o(.rodata); - sound/sa1/songs/midi/song018.o(.rodata); - sound/sa1/songs/midi/song019.o(.rodata); - sound/sa1/songs/song020.o(.rodata); - sound/sa1/songs/midi/song021.o(.rodata); - sound/sa1/songs/midi/song022.o(.rodata); - sound/sa1/songs/midi/song023.o(.rodata); - sound/sa1/songs/midi/song024.o(.rodata); - sound/sa1/songs/midi/song025.o(.rodata); - sound/sa1/songs/midi/song026.o(.rodata); - sound/sa1/songs/midi/song027.o(.rodata); - sound/sa1/songs/midi/song028.o(.rodata); - sound/sa1/songs/midi/song029.o(.rodata); - sound/sa1/songs/song030.o(.rodata); - sound/sa1/songs/midi/song031.o(.rodata); - sound/sa1/songs/midi/song032.o(.rodata); - sound/sa1/songs/midi/song033.o(.rodata); - sound/sa1/songs/midi/song034.o(.rodata); - sound/sa1/songs/midi/song035.o(.rodata); - sound/sa1/songs/midi/song036.o(.rodata); - sound/sa1/songs/midi/song037.o(.rodata); - sound/sa1/songs/midi/song038.o(.rodata); - sound/sa1/songs/song039.o(.rodata); - sound/sa1/songs/song040.o(.rodata); - sound/sa1/songs/midi/song041.o(.rodata); - sound/sa1/songs/midi/song042.o(.rodata); - sound/sa1/songs/midi/mus_sp_stage_trick.o(.rodata); - sound/sa1/songs/midi/song044.o(.rodata); - sound/sa1/songs/midi/song045.o(.rodata); - sound/sa1/songs/midi/song046.o(.rodata); - sound/sa1/songs/midi/song047.o(.rodata); - sound/sa1/songs/midi/song048.o(.rodata); - sound/sa1/songs/midi/song049.o(.rodata); - sound/sa1/songs/midi/song050.o(.rodata); - sound/sa1/songs/midi/song051.o(.rodata); - sound/sa1/songs/midi/song052.o(.rodata); - sound/sa1/songs/midi/song053.o(.rodata); - sound/sa1/songs/midi/song054.o(.rodata); - sound/sa1/songs/midi/song102.o(.rodata); - sound/sa1/songs/midi/song103.o(.rodata); - sound/sa1/songs/midi/song104.o(.rodata); - sound/sa1/songs/midi/song105.o(.rodata); - sound/sa1/songs/midi/song106.o(.rodata); - sound/sa1/songs/midi/song107.o(.rodata); - sound/sa1/songs/midi/song108.o(.rodata); - sound/sa1/songs/midi/song109.o(.rodata); - sound/sa1/songs/midi/song110.o(.rodata); - sound/sa1/songs/midi/song111.o(.rodata); - sound/sa1/songs/midi/song112.o(.rodata); - sound/sa1/songs/midi/song113.o(.rodata); - sound/sa1/songs/midi/song114.o(.rodata); - sound/sa1/songs/midi/song115.o(.rodata); - sound/sa1/songs/midi/song116.o(.rodata); - sound/sa1/songs/midi/se_ring_copy.o(.rodata); - sound/sa1/songs/midi/song118.o(.rodata); - sound/sa1/songs/midi/song119.o(.rodata); - sound/sa1/songs/midi/song120.o(.rodata); - sound/sa1/songs/midi/song121.o(.rodata); - sound/sa1/songs/midi/song122.o(.rodata); - sound/sa1/songs/midi/song123.o(.rodata); - sound/sa1/songs/midi/song124.o(.rodata); - sound/sa1/songs/midi/song125.o(.rodata); - sound/sa1/songs/midi/song126.o(.rodata); - sound/sa1/songs/midi/song127.o(.rodata); - sound/sa1/songs/midi/song128.o(.rodata); - sound/sa1/songs/midi/song129.o(.rodata); - sound/sa1/songs/midi/song130.o(.rodata); - sound/sa1/songs/midi/song131.o(.rodata); - sound/sa1/songs/midi/song132.o(.rodata); - sound/sa1/songs/midi/song133.o(.rodata); - sound/sa1/songs/midi/song134.o(.rodata); - sound/sa1/songs/midi/song135.o(.rodata); - sound/sa1/songs/midi/song136.o(.rodata); - sound/sa1/songs/midi/song137.o(.rodata); - sound/sa1/songs/midi/song138.o(.rodata); - sound/sa1/songs/midi/song139.o(.rodata); - sound/sa1/songs/midi/song140.o(.rodata); - sound/sa1/songs/midi/song141.o(.rodata); - sound/sa1/songs/midi/song142.o(.rodata); - sound/sa1/songs/midi/song143.o(.rodata); - sound/sa1/songs/midi/song144.o(.rodata); - sound/sa1/songs/midi/song145.o(.rodata); - sound/sa1/songs/midi/song146.o(.rodata); - sound/sa1/songs/midi/song147.o(.rodata); - sound/sa1/songs/midi/song148.o(.rodata); - sound/sa1/songs/midi/song149.o(.rodata); - sound/sa1/songs/midi/song150.o(.rodata); - sound/sa1/songs/midi/song151.o(.rodata); - sound/sa1/songs/midi/song152.o(.rodata); - sound/sa1/songs/midi/song153.o(.rodata); - sound/sa1/songs/midi/song154.o(.rodata); - sound/sa1/songs/midi/song155.o(.rodata); - sound/sa1/songs/midi/song156.o(.rodata); - sound/sa1/songs/midi/song157.o(.rodata); - sound/sa1/songs/midi/song158.o(.rodata); - sound/sa1/songs/midi/song159.o(.rodata); - sound/sa1/songs/midi/song160.o(.rodata); - sound/sa1/songs/midi/song161.o(.rodata); - sound/sa1/songs/midi/song162.o(.rodata); - sound/sa1/songs/midi/song163.o(.rodata); - sound/sa1/songs/midi/song164.o(.rodata); - sound/sa1/songs/midi/song166.o(.rodata); - sound/sa1/songs/midi/song167.o(.rodata); - sound/sa1/songs/midi/song168.o(.rodata); - sound/sa1/songs/midi/song169.o(.rodata); - sound/sa1/songs/midi/song170.o(.rodata); - sound/sa1/songs/midi/song171.o(.rodata); - sound/sa1/songs/midi/song172.o(.rodata); - sound/sa1/songs/midi/song173.o(.rodata); - sound/sa1/songs/midi/song174.o(.rodata); - sound/sa1/songs/midi/song175.o(.rodata); - sound/sa1/songs/midi/song176.o(.rodata); - sound/sa1/songs/midi/song177.o(.rodata); - sound/sa1/songs/midi/song178.o(.rodata); - sound/sa1/songs/midi/song179.o(.rodata); - sound/sa1/songs/midi/song180.o(.rodata); - sound/sa1/songs/midi/song181.o(.rodata); - sound/sa1/songs/midi/song182.o(.rodata); - sound/sa1/songs/midi/song183.o(.rodata); - sound/sa1/songs/midi/song184.o(.rodata); - sound/sa1/songs/midi/song185.o(.rodata); - sound/sa1/songs/midi/song188.o(.rodata); - sound/sa1/songs/midi/song189.o(.rodata); - sound/sa1/songs/midi/song190.o(.rodata); - sound/sa1/songs/midi/song191.o(.rodata); - sound/sa1/songs/midi/song192.o(.rodata); - sound/sa1/songs/midi/song193.o(.rodata); - sound/sa1/songs/midi/song194.o(.rodata); - sound/sa1/songs/midi/song195.o(.rodata); - sound/sa1/songs/midi/song196.o(.rodata); - sound/sa1/songs/midi/song198.o(.rodata); - sound/sa1/songs/midi/song199.o(.rodata); - sound/sa1/songs/midi/song200.o(.rodata); - sound/sa1/songs/midi/song201.o(.rodata); - sound/sa1/songs/midi/song202.o(.rodata); - sound/sa1/songs/midi/song203.o(.rodata); - sound/sa1/songs/midi/song204.o(.rodata); - sound/sa1/songs/midi/song205.o(.rodata); - sound/sa1/songs/midi/song206.o(.rodata); - sound/sa1/songs/midi/song207.o(.rodata); - sound/sa1/songs/midi/song208.o(.rodata); - sound/sa1/songs/midi/song209.o(.rodata); - sound/sa1/songs/midi/song210.o(.rodata); - sound/sa1/songs/midi/song211.o(.rodata); - sound/sa1/songs/midi/song212.o(.rodata); - sound/sa1/songs/midi/song213.o(.rodata); - sound/sa1/songs/midi/song214.o(.rodata); - sound/sa1/songs/midi/song215.o(.rodata); - sound/sa1/songs/midi/song216.o(.rodata); - sound/sa1/songs/midi/song217.o(.rodata); - sound/sa1/songs/midi/song218.o(.rodata); - sound/sa1/songs/midi/song219.o(.rodata); - sound/sa1/songs/midi/song220.o(.rodata); - sound/sa1/songs/midi/song221.o(.rodata); - sound/sa1/songs/midi/song222.o(.rodata); - sound/sa1/songs/midi/song223.o(.rodata); - sound/sa1/songs/midi/song224.o(.rodata); - sound/sa1/songs/midi/song301.o(.rodata); - sound/sa1/songs/midi/song302.o(.rodata); - sound/sa1/songs/midi/song303.o(.rodata); - sound/sa1/songs/midi/song304.o(.rodata); - sound/sa1/songs/midi/song305.o(.rodata); - sound/sa1/songs/midi/song306.o(.rodata); - sound/sa1/songs/midi/song307.o(.rodata); - - sa2/src/lib/agb_flash/agb_flash.o(.rodata); - sa2/src/lib/agb_flash/agb_flash_le_512k.o(.rodata); - sa2/src/lib/agb_flash/agb_flash_mx_512k.o(.rodata); - sa2/src/lib/agb_flash/agb_flash_at_512k.o(.rodata); - data/sa1/data1.o(.rodata); - sa2/src/game/sa1/stage/mp_unk_0.o(.rodata); - data/sa1/data1_1.o(.rodata); - data/sa1/build_info.o(.rodata); - } = 0 - - . = 0x2000000; - EWRAM (NOLOAD) : - ALIGN(4) { - sa2/src/lib/m4a/m4a.o(ewram_data); - sa2/src/malloc_ewram.o(ewram_data); - ewram_end = .; - - . = 0x00033000; gUnknown_02033000 = .; - . = 0x00033004; gUnknown_02033004 = .; - . = 0x00033008; gUnknown_02033008 = .; - . = 0x0003300C; gUnknown_0203300C = .; - . = 0x0003B000; gUnknown_0203B000 = .; - . = 0x0003F000; gUnknown_0203F000 = .; - } - - . = 0x03000000; - IWRAM (NOLOAD) : - ALIGN(4) - { - INCLUDE "../../../sym_iwram.txt" - } - - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /* Discard everything not specifically mentioned above. */ - /DISCARD/ : - { - *(*); - } -} diff --git a/sa1/Makefile b/sa1_Makefile similarity index 59% rename from sa1/Makefile rename to sa1_Makefile index 77e86d5622..d32b5161c5 100644 --- a/sa1/Makefile +++ b/sa1_Makefile @@ -1,7 +1,7 @@ # # NOTE: Overrideable default flags are set in config.mk # -include config.mk +include sa1_config.mk MAKEFLAGS += --no-print-directory @@ -70,8 +70,8 @@ SHELL := /bin/bash -o pipefail SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c ifeq ($(PLATFORM),gba) -CC1 := ../tools/agbcc/bin/agbcc$(EXE) -CC1_OLD := ../tools/agbcc/bin/old_agbcc$(EXE) +CC1 := tools/agbcc/bin/agbcc$(EXE) +CC1_OLD := tools/agbcc/bin/old_agbcc$(EXE) else CC1 := $(PREFIX)gcc$(EXE) CC1_OLD := $(CC1) @@ -85,18 +85,18 @@ AS := $(PREFIX)as FORMAT := clang-format-13 ### TOOLS ### -GFX := ../tools/gbagfx/gbagfx$(EXE) -ENT_POS := ../tools/entity_positions/entity_positions$(EXE) -AIF := ../tools/aif2pcm/aif2pcm$(EXE) -MID2AGB := ../tools/mid2agb/mid2agb$(EXE) -SCANINC := ../tools/scaninc/scaninc$(EXE) -PREPROC := ../tools/preproc/preproc$(EXE) -RAMSCRGEN := ../tools/ramscrgen/ramscrgen$(EXE) -FIX := ../tools/gbafix/gbafix$(EXE) - -TOOLDIRS := $(filter-out ../tools/agbcc/ ../tools/BriBaSA_ex/, $(dir $(wildcard ../tools/*/Makefile))) +GFX := tools/gbagfx/gbagfx$(EXE) +ENT_POS := tools/entity_positions/entity_positions$(EXE) +AIF := tools/aif2pcm/aif2pcm$(EXE) +MID2AGB := tools/mid2agb/mid2agb$(EXE) +SCANINC := tools/scaninc/scaninc$(EXE) +PREPROC := tools/preproc/preproc$(EXE) +RAMSCRGEN := tools/ramscrgen/ramscrgen$(EXE) +FIX := tools/gbafix/gbafix$(EXE) + +TOOLDIRS := $(filter-out tools/agbcc/ tools/BriBaSA_ex/, $(dir $(wildcard tools/*/Makefile))) TOOLBASE = $(TOOLDIRS:tools/%=%) -TOOLS = $(foreach tool,$(TOOLBASE),../tools/$(tool)/$(tool)$(EXE)) +TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) ### DEPS ### @@ -107,7 +107,7 @@ SDL_MINGW_LIB := $(SDL_MINGW_PKG)/lib SDL_MINGW_FLAGS := -I$(SDL_MINGW_INCLUDE) -D_THREAD_SAFE SDL_MINGW_LIBS := -L$(SDL_MINGW_LIB) -lSDL2main -lSDL2.dll -LIBABGSYSCALL_LIBS := -L$(ROOT_DIR)/../libagbsyscall/build/gba -lagbsyscall +LIBABGSYSCALL_LIBS := -L$(ROOT_DIR)/libagbsyscall/build/gba -lagbsyscall ### FILES ### @@ -130,7 +130,7 @@ INCLUDE_DIRS = include INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %) INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %) -SA2_INCLUDE_DIRS = ../include +SA2_INCLUDE_DIRS = include SA2_INCLUDE_CPP_ARGS := $(SA2_INCLUDE_DIRS:%=-iquote %) SA2_INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %) @@ -158,18 +158,24 @@ OBJ_TILES_4BPP_SUBDIR = graphics/sa1/obj_tiles/4bpp TILESETS_SUBDIR = graphics/sa1/tilesets/ ifeq ($(PLATFORM),gba) -C_SRCS := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/platform/*") +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*" -not -path "*/platform/*") else ifeq ($(PLATFORM),sdl) -C_SRCS := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/platform/win32/*") +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*" -not -path "*/platform/win32/*" -not -path "*/platform/ps2/*") +else ifeq ($(PLATFORM),sdl_psp) +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*" -not -path "*/platform/win32/*" -not -path "*/platform/ps2/*") +else ifeq ($(PLATFORM),ps2) +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*" -not -path "*/platform/win32/*" -not -path "*/platform/pret_sdl/*") else ifeq ($(PLATFORM),sdl_win32) -C_SRCS := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/platform/win32/*") +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*" -not -path "*/platform/win32/*" -not -path "*/platform/ps2/*") else ifeq ($(PLATFORM),win32) -C_SRCS := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/platform/pret_sdl/*") +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*" -not -path "*/platform/pret_sdl/*" -not -path "*/platform/ps2/*") else -C_SRCS := $(shell find $(C_SUBDIR) -name "*.c") +C_SRCS_IN := $(shell find $(C_SUBDIR) -name "*.c" -not -path "*/sa2/*") endif +C_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src))) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) + # Platform not included as we only need the headers for decomp scratches C_HEADERS := $(shell find $(INCLUDE_DIRS) -name "*.h" -not -path "*/platform/*") @@ -177,241 +183,13 @@ ifeq ($(PLATFORM),gba) C_ASM_SRCS := $(shell find $(C_SUBDIR) -name "*.s") C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS)) -ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) -ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) endif # TEMP SOLUTION UNTIL MAKEFILES ARE COMBINED # Moves any relevant sa2 c files to the build dir -SA2_C_FILES := \ - src/lib/m4a/m4a.c \ - src/lib/m4a/m4a_tables.c \ - src/lib/agb_flash/agb_flash.c \ - src/lib/agb_flash/agb_flash_at_512k.c \ - src/lib/agb_flash/agb_flash_le_512k.c \ - src/lib/agb_flash/agb_flash_mx_512k.c \ - src/multi_sio.c \ - src/sio32_multi_load.c \ - src/multi_boot.c \ - src/core.c \ - src/main.c \ - src/task.c \ - src/sprite.c \ - src/trig.c \ - src/malloc_vram.c \ - src/malloc_ewram.c \ - src/bg_triangles.c \ - src/input_recorder.c \ - src/background.c \ - src/game/globals.c \ - src/game/dummy_task.c \ - src/game/game.c \ - src/game/sa1/ui/time_attack_record.c \ - src/game/sa1/ui/multiplayer_continue_screen.c \ - src/game/sa1/ui/vs_record.c \ - src/game/sa1/ui/edit_language_screen.c \ - src/game/sa1/ui/sound_test.c \ - src/game/sa1/ui/time_attack_records.c \ - src/game/sa1/ui/time_over.c \ - src/game/sa1/ui/game_2_3.c \ - src/game/sa1/ui/time_attack_results.c \ - src/game/sa1/ui/time_attack_lobby.c \ - src/game/sa1/ui/special_stage_intro.c \ - src/game/sa1/ui/player_name_input_menu.c \ - src/game/sa1/ui/course_select.c \ - src/game/sa1/ui/staff_credits.c \ - src/game/sa1/ui/collect_chaos_emeralds_msg.c \ - src/game/sa1/ui/game_over.c \ - src/game/sa1/ui/character_select.c \ - src/game/sa1/ui/extra_stage_results.c \ - src/game/sa1/menus/time_attack.c \ - src/game/sa1/menus/mp_mode_select.c \ - src/game/sa1/menus/player_data.c \ - src/game/sa1/menus/options.c \ - src/game/sa1/stage/mp_unk_1.c \ - src/game/sa1/stage/mp_results.c \ - src/game/sa1/stage/player_controls.c \ - src/game/sa1/stage/to_be_continued_screen.c \ - src/game/sa1/stage/mp_results_b.c \ - src/game/sa1/stage/mp_hud.c \ - src/game/sa1/stage/ui_rendering.c \ - src/game/sa1/stage/mp_unk_0.c \ - src/game/sa1/stage/nuts_and_bolts_task.c \ - src/game/sa1/stage/some_task_manager.c \ - src/game/sa1/save.c \ - src/game/sa1/multiplayer/chao_message.c \ - src/game/shared/stage/palette_loader.c \ - src/game/shared/stage/terrain_collision.c \ - src/game/shared/stage/screen_shake.c \ - src/game/shared/stage/dust_effect_braking.c \ - src/game/shared/stage/dust_cloud.c \ - src/game/shared/stage/collect_ring_effect.c \ - src/game/shared/stage/unused_flash_task.c \ - src/game/shared/stage/magnetic_ring.c \ - src/game/shared/multiplayer/communication_outcome.c \ - src/game/shared/stage/pause_menu.c \ - src/game/shared/stage/item_tasks.c \ - src/game/shared/stage/demo_manager.c \ - src/game/shared/stage/enemy_defeat_score.c \ - src/game/shared/stage/mp_finish.c \ - src/game/shared/stage/music_manager.c \ - src/game/shared/stage/mp_sprite_task.c \ - src/game/shared/stage/dust_effect_spindash.c \ - src/game/shared/stage/amy_attack_heart_effect.c \ - src/game/shared/stage/mp_indicators.c \ - src/game/shared/stage/underwater_effects.c \ - src/game/shared/stage/grind_effect_1.c \ - src/game/shared/stage/mp_event_recv_mgr.c \ - src/game/shared/stage/spot_lights_manager.c \ - src/game/shared/stage/mp_event_mgr.c \ - src/game/shared/stage/mp_player.c \ - src/game/shared/stage/rings_scatter.c \ - src/game/shared/stage/player.c \ - src/game/shared/collect_rings/results.c \ - src/game/shared/menus/unused_level_select.c \ - src/game/shared/stage/collision_1.c \ - src/game/shared/stage/collision_2.c \ - src/game/shared/stage/collision_3.c \ - src/game/shared/stage/water_effects.c \ - src/game/shared/stage/spot_light_beam_task.c \ - src/game/shared/stage/camera.c \ - src/game/shared/stage/stage.c \ - src/game/shared/stage/rings_manager.c \ - src/game/shared/stage/entities_manager.c \ - src/game/sa1/ui/game_2_0.c \ - src/game/sa1/ui/game_2_1.c \ - src/game/sa1/ui/stage_results.c \ - src/game/sa1/menus/mp_mode_select_2.c \ - src/game/sa1/special_stage/main.c \ - src/game/sa1/stage/egg_rocket_transitions.c \ - src/game/sa1/stage/temporary_sound_play_task.c \ - src/game/sa1/stage/itembox.c \ - src/game/sa1/menus/title_screen.c \ - src/game/sa1/stage/interactables/special_spring.c \ - src/game/sa1/stage/interactables/toggle_gravity.c \ - src/game/sa1/stage/interactables/half_pipe.c \ - src/game/sa1/stage/interactables/conveyor_belt_movement.c \ - src/game/sa1/stage/interactables/track.c \ - src/game/sa1/stage/interactables/water_bridge_splash.c \ - src/game/sa1/stage/interactables/updraft.c \ - src/game/sa1/stage/interactables/bounce_block.c \ - src/game/sa1/stage/interactables/pipe.c \ - src/game/sa1/stage/interactables/wall_bumper.c \ - src/game/sa1/stage/interactables/flippers.c \ - src/game/sa1/stage/interactables/ferris_wheel.c \ - src/game/sa1/stage/interactables/platform_square.c \ - src/game/sa1/stage/interactables/booster.c \ - src/game/sa1/stage/interactables/ship_swing.c \ - src/game/sa1/stage/interactables/maze_air_corner.c \ - src/game/sa1/stage/interactables/113.c \ - src/game/sa1/stage/interactables/toggle_player_visibility.c \ - src/game/sa1/stage/interactables/flipper_small_blue.c \ - src/game/sa1/stage/interactables/air_bubbles.c \ - src/game/sa1/stage/interactables/spring.c \ - src/game/sa1/stage/interactables/spikes.c \ - src/game/sa1/stage/interactables/decoration.c \ - src/game/sa1/stage/interactables/hook_rail.c \ - src/game/sa1/stage/interactables/platforms_085_089.c \ - src/game/sa1/stage/interactables/107.c \ - src/game/sa1/stage/interactables/mini_loop.c \ - src/game/sa1/stage/interactables/boulder_spawner.c \ - src/game/sa1/stage/interactables/lava.c \ - src/game/sa1/stage/interactables/fadein_to_be_continued.c \ - src/game/sa1/stage/interactables/039.c \ - src/game/sa1/stage/interactables/checkpoint.c \ - src/game/sa1/stage/interactables/marble_track.c \ - src/game/sa1/stage/interactables/moving_spring.c \ - src/game/sa1/stage/interactables/platform_crumbling.c \ - src/game/sa1/stage/interactables/hang_bar.c \ - src/game/sa1/stage/interactables/shrubbery.c \ - src/game/sa1/stage/interactables/steam_exhaust.c \ - src/game/sa1/stage/interactables/propeller.c \ - src/game/sa1/stage/interactables/spiked_barrel.c \ - src/game/sa1/stage/interactables/stage_goal.c \ - src/game/sa1/stage/interactables/platform_spiked.c \ - src/game/sa1/stage/interactables/conveyor_belt_object.c \ - src/game/sa1/stage/interactables/toggle_player_float.c \ - src/game/sa1/stage/interactables/grind_rail.c \ - src/game/sa1/stage/interactables/party_balloon.c \ - src/game/sa1/stage/interactables/skating_stone.c \ - src/game/sa1/stage/interactables/teleport_orb.c \ - src/game/sa1/stage/interactables/breakable_wall.c \ - src/game/sa1/stage/interactables/trampoline.c \ - src/game/sa1/stage/interactables/waterfall.c \ - src/game/sa1/stage/interactables/spring_hiding.c \ - src/game/sa1/stage/interactables/forced_slide.c \ - src/game/sa1/stage/interactables/platform_thin.c \ - src/game/sa1/stage/interactables/small_fall_block.c \ - src/game/sa1/stage/interactables/crane_claw_and_lift.c \ - src/game/sa1/stage/interactables/incline_ramp.c \ - src/game/sa1/stage/interactables/security_gate.c \ - src/game/sa1/stage/interactables/toggle_player_layer.c \ - src/game/sa1/stage/interactables/bowl.c \ - src/game/sa1/stage/interactables/iron_ball.c \ - src/game/sa1/stage/interactables/034.c \ - src/game/sa1/stage/interactables/run_wheel.c \ - src/game/sa1/stage/interactables/ice_block.c \ - src/game/sa1/stage/interactables/torch.c \ - src/game/sa1/stage/interactables/swinging_hook.c \ - src/game/sa1/stage/interactables/red_flag_and_pole.c \ - src/game/sa1/stage/interactables/underwater_lava_platform.c \ - src/game/sa1/stage/interactables/mini_loop_boost.c \ - src/game/sa1/stage/interactables/sega_sonic_letters.c \ - src/game/sa1/stage/interactables/water_bridge.c \ - src/game/sa1/stage/interactables/096.c \ - src/game/sa1/stage/interactables/panel_gate.c \ - src/game/sa1/stage/interactables/carousel.c \ - src/game/sa1/stage/interactables/swing_rope.c \ - src/game/sa1/stage/interactables/bumpers.c \ - src/game/sa1/stage/enemies/wamu.c \ - src/game/sa1/stage/enemies/bosses_egg_mobile.c \ - src/game/sa1/stage/enemies/tentou.c \ - src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c \ - src/game/sa1/stage/enemies/gamigami.c \ - src/game/sa1/stage/enemies/boss_4_egg_spider.c \ - src/game/sa1/stage/enemies/kerokero.c \ - src/game/sa1/stage/enemies/boss_3_egg_ball.c \ - src/game/sa1/stage/enemies/pen_mk1.c \ - src/game/sa1/stage/enemies/bosses_misc.c \ - src/game/sa1/stage/enemies/drisame.c \ - src/game/sa1/stage/enemies/leon.c \ - src/game/sa1/stage/enemies/slot.c \ - src/game/sa1/stage/enemies/buzzer.c \ - src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.c \ - src/game/sa1/stage/enemies/oct.c \ - src/game/sa1/stage/enemies/boss_x1_egg_wrecker.c \ - src/game/sa1/stage/enemies/fireball.c \ - src/game/sa1/stage/enemies/pierrot.c \ - src/game/sa1/stage/enemies/kiki.c \ - src/game/sa1/stage/enemies/boss_2_egg_press.c \ - src/game/sa1/stage/enemies/boss_x3_egg_x.c \ - src/game/sa1/stage/enemies/mole.c \ - src/game/sa1/stage/enemies/boss_x2_egg_drillster.c \ - src/game/sa1/stage/enemies/senbon.c \ - src/game/sa1/stage/enemies/rhinotank.c \ - src/game/sa1/stage/enemies/mirror.c \ - src/game/sa1/stage/enemies/kuraa.c \ - src/game/sa1/stage/enemies/boss_5_mecha_knuckles.c \ - src/game/sa1/stage/enemies/boss_6_egg_snake.c \ - src/game/sa1/stage/enemies/yukimaru.c \ - src/game/sa1/stage/enemies/hanabii.c \ - src/game/sa1/stage/player_sonic.c \ - src/game/sa1/stage/player_amy.c \ - src/game/sa1/stage/player_knuckles.c \ - src/game/sa1/stage/player_tails.c \ - src/game/sa1/stage/player_super_sonic.c \ - src/game/sa1/stage/mp_chao.c \ - src/game/sa1/stage/trapped_animals.c \ - src/game/sa1/stage/stage_ui_z.c \ - src/game/sa1/stage/stage_ui.c \ - src/game/sa1/stage/mystery_itembox.c \ - src/game/sa1/ui/intro_animation.c \ - -SA2_C_ASM_FILES := \ - src/rom_header.s \ - src/lib/m4a/m4a0.s \ - src/crt0.s \ - src/multi_sio_asm.s +SA2_C_FILES := + +SA2_C_ASM_FILES := SA2_C_SRCS = $(patsubst %.c,$(OBJ_DIR)/sa2/%.c,$(SA2_C_FILES)) SA2_C_OBJS = $(patsubst %.c,%.o,$(SA2_C_SRCS)) @@ -431,7 +209,7 @@ MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS)) SOUND_ASM_SRCS := $(wildcard $(SOUND_ASM_SUBDIR)/*.s) SOUND_ASM_OBJS := $(patsubst $(SOUND_ASM_SUBDIR)/%.s,$(SOUND_ASM_BUILDDIR)/%.o,$(SOUND_ASM_SRCS)) -OBJS := $(C_OBJS) $(ASM_OBJS) $(C_ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(SA2_C_OBJS) $(SA2_C_ASM_OBJS) $(MID_OBJS) +OBJS := $(C_OBJS) $(C_ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(SA2_C_OBJS) $(SA2_C_ASM_OBJS) $(MID_OBJS) OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) FORMAT_SRC_PATHS := $(shell find . -name "*.c" ! -path '*/src/data/*' ! -path '*/build/*' ! -path '*/ext/*') @@ -453,8 +231,8 @@ endif # the C-preprocessor cannot resolve stuff like: # #if (PLATFORM == gba), where PLATFORM is defined via -D. ifeq ($(PLATFORM),gba) - INCLUDE_SCANINC_ARGS += -I ../tools/agbcc/include - CPPFLAGS += -D PLATFORM_GBA=1 -D PLATFORM_SDL=0 -D PLATFORM_WIN32=0 -D CPU_ARCH_X86=0 -D CPU_ARCH_ARM=1 -nostdinc -I ../tools/agbcc/include + INCLUDE_SCANINC_ARGS += -I tools/agbcc/include + CPPFLAGS += -D PLATFORM_GBA=1 -D PLATFORM_SDL=0 -D PLATFORM_WIN32=0 -D CPU_ARCH_X86=0 -D CPU_ARCH_ARM=1 -nostdinc -I tools/agbcc/include CC1FLAGS += -fhex-asm ifeq ($(BUILD_NAME), sa1) @@ -546,7 +324,7 @@ endif # Libs ifeq ($(PLATFORM),gba) - LIBS := $(ROOT_DIR)/../tools/agbcc/lib/libgcc.a $(ROOT_DIR)/../tools/agbcc/lib/libc.a $(LIBABGSYSCALL_LIBS) + LIBS := $(ROOT_DIR)/tools/agbcc/lib/libgcc.a $(ROOT_DIR)/tools/agbcc/lib/libc.a $(LIBABGSYSCALL_LIBS) else ifeq ($(PLATFORM),sdl) LIBS := $(shell sdl2-config --cflags --libs) else ifeq ($(PLATFORM),sdl_win32) @@ -597,11 +375,11 @@ endif ifeq ($(PLATFORM),gba) # Use the old compiler for m4a, as it was prebuilt and statically linked to the original codebase # PROLOGUE_FIX has to be set to nothing, since -fprologue-bugfix does not work with oldagbcc -$(OBJ_DIR)/sa2/src/lib/m4a/m4a.o: CC1 := $(CC1_OLD) -$(OBJ_DIR)/sa2/src/lib/m4a/m4a.o: PROLOGUE_FIX := +$(OBJ_DIR)/src/lib/m4a/m4a.o: CC1 := $(CC1_OLD) +$(OBJ_DIR)/src/lib/m4a/m4a.o: PROLOGUE_FIX := # Use `-O1` for agb_flash libs, as these were also prebuilt -$(OBJ_DIR)/sa2/src/lib/agb_flash/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork -Werror -$(OBJ_DIR)/sa2/src/lib/agb_flash/agb_flash%.o: CC1FLAGS := -O1 -mthumb-interwork -Werror +$(OBJ_DIR)/src/lib/agb_flash/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork -Werror +$(OBJ_DIR)/src/lib/agb_flash/agb_flash%.o: CC1FLAGS := -O1 -mthumb-interwork -Werror endif #### Main Targets #### @@ -620,15 +398,15 @@ rom: $(ROM) tools: $(TOOLDIRS) tool_libs: - @$(MAKE) -C ../tools/_shared + @$(MAKE) -C tools/_shared clean: tidy clean-tools - @$(MAKE) clean -C ../tools/BriBaSA_ex + @$(MAKE) clean -C tools/BriBaSA_ex # @$(MAKE) clean -C chao_garden # @$(MAKE) clean -C multi_boot/subgame_bootstrap # @$(MAKE) clean -C multi_boot/programs/subgame_loader # @$(MAKE) clean -C multi_boot/collect_rings - @$(MAKE) clean -C ../libagbsyscall PLATFORM=$(PLATFORM) CPU_ARCH=$(CPU_ARCH) + @$(MAKE) clean -C libagbsyscall PLATFORM=$(PLATFORM) CPU_ARCH=$(CPU_ARCH) $(RM) $(SAMPLE_SUBDIR)/*.bin $(MID_SUBDIR)/*.s find . \( -iwholename './data/*/maps/*/*/entities/*.bin' -o -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec $(RM) {} + @@ -654,8 +432,8 @@ win32: ; @$(MAKE) PLATFORM=win32 CPU_ARCH=i386 #### RECIPES #### -include songs.mk -include ../graphics.mk +include sa1_songs.mk +include graphics.mk %.png: ; %.pal: ; @@ -673,13 +451,13 @@ data/sa1/mb_chao_garden_japan.gba.lz: data/sa1/mb_chao_garden_japan.gba $(GFX) $< $@ -search 1 %interactables.bin: %interactables.csv - $(ENT_POS) $< $@ -entities INTERACTABLES -header "../include/constants/sa1/interactables.h" + $(ENT_POS) $< $@ -entities INTERACTABLES -header "include/constants/sa1/interactables.h" %itemboxes.bin: %itemboxes.csv - $(ENT_POS) $< $@ -entities ITEMS -header "../include/constants/sa1/items.h" + $(ENT_POS) $< $@ -entities ITEMS -header "include/constants/sa1/items.h" %enemies.bin: %enemies.csv - $(ENT_POS) $< $@ -entities ENEMIES -header "../include/constants/sa1/enemies.h" + $(ENT_POS) $< $@ -entities ENEMIES -header "include/constants/sa1/enemies.h" %rings.bin: %rings.csv $(ENT_POS) $< $@ -entities RINGS @@ -716,11 +494,11 @@ else endif # Copy files from SA2 -$(OBJ_DIR)/sa2/%.c: ../%.c +$(OBJ_DIR)/sa2/%.c: %.c $(shell mkdir -p $(shell dirname '$@')) cp $< $@ -$(OBJ_DIR)/sa2/%.s: ../%.s +$(OBJ_DIR)/sa2/%.s: %.s $(shell mkdir -p $(shell dirname '$@')) cp $< $@ @@ -747,7 +525,7 @@ $(OBJ_DIR)/sa2/%.o: $(OBJ_DIR)/sa2/%.s $(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c @echo "$(CC1) -o $@ $<" @$(shell mkdir -p $(shell dirname '$(C_BUILDDIR)/$*.i')) - @$(CPP) $(CPPFLAGS) $(INCLUDE_CPP_ARGS) $(SA2_INCLUDE_CPP_ARGS) $< -o $(C_BUILDDIR)/$*.i + @$(CPP) $(CPPFLAGS) $(INCLUDE_CPP_ARGS) $< -o $(C_BUILDDIR)/$*.i @$(PREPROC) $(C_BUILDDIR)/$*.i $(PLATFORM) "" | $(CC1) $(PROLOGUE_FIX) $(CC1FLAGS) -o $(C_BUILDDIR)/$*.s - ifeq ($(PLATFORM), gba) @printf ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s @@ -832,7 +610,7 @@ collect_rings: tools @$(MAKE) -C multi_boot/collect_rings DEBUG=0 libagbsyscall: - @$(MAKE) -C ../libagbsyscall MODERN=0 PLATFORM=$(PLATFORM) CPU_ARCH=$(CPU_ARCH) + @$(MAKE) -C libagbsyscall MODERN=0 PLATFORM=$(PLATFORM) CPU_ARCH=$(CPU_ARCH) bribasa: @$(MAKE) -C tools/BriBaSA_ex diff --git a/sa1/config.mk b/sa1_config.mk similarity index 98% rename from sa1/config.mk rename to sa1_config.mk index 18edde5192..5c9b772929 100644 --- a/sa1/config.mk +++ b/sa1_config.mk @@ -22,7 +22,7 @@ else $(error unknown arch: $(CPU_ARCH)) endif -LDSCRIPT := ldscript +LDSCRIPT := sa1_ldscript NON_MATCHING ?= 0 ifeq ($(PLATFORM),gba) diff --git a/sa1_ldscript.txt b/sa1_ldscript.txt new file mode 100644 index 0000000000..70d32abd95 --- /dev/null +++ b/sa1_ldscript.txt @@ -0,0 +1,635 @@ +/* Hack for matching? */ +gNumMusicPlayers = 4; +gMaxLines = 0; + +SECTIONS { + . = 0x8000000; + ROM : + ALIGN(4) { + /* bootstrap */ + src/rom_header.o(.text); + src/crt0.o(.text); + + /* Engine */ + src/multi_sio_asm.o(.text); + data/sa1/rom_header_old.o(.text); + src/core.o(.text); + src/main.o(.text); + src/task.o(.text); + src/background.o(.text); + src/sprite.o(.text); + src/bg_triangles.o(.text); + src/malloc_ewram.o(.text); + src/malloc_vram.o(.text); + src/multi_sio.o(.text); + src/multi_boot.o(.text); + src/sio32_multi_load.o(.text); + + /* Game */ + src/game/shared/stage/rings_manager.o(.text); + src/game/shared/stage/entities_manager.o(.text); + src/game/shared/stage/collision_1.o(.text); + src/game/shared/stage/collision_3.o(.text); + src/game/shared/stage/collision_2.o(.text); + src/game/shared/stage/palette_loader.o(.text); + + /* Menus */ + src/game/sa1/menus/title_screen.o(.text); + src/game/shared/menus/unused_level_select.o(.text); + src/game/sa1/menus/mp_mode_select.o(.text); + src/game/sa1/menus/mp_mode_select_2.o(.text); + src/game/sa1/menus/time_attack.o(.text); + src/game/sa1/menus/options.o(.text); + src/game/sa1/menus/player_data.o(.text); + + src/game/shared/stage/spot_light_beam_task.o(.text); + src/game/sa1/stage/to_be_continued_screen.o(.text); + src/game/shared/stage/enemy_defeat_score.o(.text); + src/game/shared/stage/demo_manager.o(.text); + + src/game/sa1/save.o(.text); + + src/game/shared/stage/unused_flash_task.o(.text); + src/game/shared/stage/mp_player.o(.text); + src/game/shared/stage/mp_indicators.o(.text); + src/game/sa1/stage/enemies/bosses_egg_mobile.o(.text); + src/game/sa1/stage/enemies/bosses_misc.o(.text); + src/game/sa1/stage/nuts_and_bolts_task.o(.text); + src/game/shared/stage/spot_lights_manager.o(.text); + + src/game/shared/stage/mp_event_mgr.o(.text); + src/game/shared/stage/mp_event_recv_mgr.o(.text); + src/game/sa1/stage/mp_results.o(.text); + src/game/sa1/stage/mp_results_b.o(.text); + src/game/shared/stage/mp_finish.o(.text); + + src/game/shared/stage/pause_menu.o(.text); + src/game/shared/collect_rings/results.o(.text); + src/game/sa1/stage/mp_hud.o(.text); + src/game/sa1/stage/mystery_itembox.o(.text); + src/game/sa1/stage/mp_unk_0.o(.text); + src/game/sa1/stage/mp_unk_1.o(.text); + + /* prototype ? */ + src/game/sa1/stage/enemies/kiki.o(.text); + src/game/sa1/stage/enemies/buzzer.o(.text); + src/game/shared/stage/collect_ring_effect.o(.text); + src/game/sa1/stage/itembox.o(.text); + src/game/sa1/stage/interactables/stage_goal.o(.text); + src/game/shared/stage/dust_cloud.o(.text); + src/game/sa1/stage/interactables/spikes.o(.text); + src/game/sa1/stage/interactables/checkpoint.o(.text); + src/game/sa1/stage/interactables/spring.o(.text); + src/game/sa1/stage/interactables/decoration.o(.text); + src/game/sa1/stage/interactables/toggle_player_layer.o(.text); + src/game/sa1/stage/interactables/grind_rail.o(.text); + src/game/sa1/stage/interactables/platform_thin.o(.text); + src/game/shared/stage/magnetic_ring.o(.text); + src/game/sa1/stage/interactables/platform_crumbling.o(.text); + src/game/sa1/stage/interactables/fadein_to_be_continued.o(.text); + src/game/sa1/stage/temporary_sound_play_task.o(.text); + src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.o(.text); + src/game/sa1/stage/interactables/breakable_wall.o(.text); + + src/game/sa1/stage/mp_chao.o(.text); + src/game/sa1/stage/egg_rocket_transitions.o(.text); + + src/game/sa1/special_stage/main.o(.text); + + src/game/sa1/stage/enemies/boss_2_egg_press.o(.text); + src/game/sa1/stage/enemies/boss_3_egg_ball.o(.text); + src/game/sa1/stage/enemies/boss_4_egg_spider.o(.text); + src/game/sa1/stage/enemies/boss_6_egg_snake.o(.text); + src/game/sa1/stage/enemies/boss_x1_egg_wrecker.o(.text); + src/game/sa1/stage/enemies/boss_x2_egg_drillster.o(.text); + src/game/sa1/stage/enemies/boss_x3_egg_x.o(.text); + + src/game/sa1/multiplayer/chao_message.o(.text); + src/game/shared/multiplayer/communication_outcome.o(.text); + + src/game/shared/stage/amy_attack_heart_effect.o(.text); + src/game/shared/stage/music_manager.o(.text); + + src/game/game.o(.text); + src/game/dummy_task.o(.text); + + src/game/shared/stage/stage.o(.text); + src/game/shared/stage/camera.o(.text); + src/game/shared/stage/terrain_collision.o(.text); + src/game/shared/stage/mp_sprite_task.o(.text); + src/game/shared/stage/dust_effect_braking.o(.text); + src/game/shared/stage/dust_effect_spindash.o(.text); + src/game/shared/stage/grind_effect_1.o(.text); + src/game/shared/stage/rings_scatter.o(.text); + src/game/shared/stage/player.o(.text); + src/game/sa1/stage/player_sonic.o(.text); + src/game/sa1/stage/player_tails.o(.text); + src/game/sa1/stage/player_knuckles.o(.text); + src/game/sa1/stage/player_amy.o(.text); + src/game/sa1/stage/player_super_sonic.o(.text); + src/game/shared/stage/item_tasks.o(.text); + src/game/shared/stage/underwater_effects.o(.text); + src/game/shared/stage/water_effects.o(.text); + src/game/shared/stage/screen_shake.o(.text); + + /* NOTE: input_recorder was not part of the engine in this version */ + src/input_recorder.o(.text); + + src/game/sa1/stage/some_task_manager.o(.text); + src/game/sa1/stage/player_controls.o(.text); + + src/game/sa1/stage/interactables/half_pipe.o(.text); + src/game/sa1/stage/interactables/034.o(.text); + src/game/sa1/stage/interactables/mini_loop_boost.o(.text); + src/game/sa1/stage/interactables/water_bridge.o(.text); + src/game/sa1/stage/interactables/water_bridge_splash.o(.text); + src/game/sa1/stage/interactables/mini_loop.o(.text); + src/game/sa1/stage/interactables/039.o(.text); + src/game/sa1/stage/enemies/boss_5_mecha_knuckles.o(.text); + src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.o(.text); + + src/game/sa1/stage/ui_rendering.o(.text); + src/game/sa1/stage/stage_ui.o(.text); + src/game/sa1/stage/trapped_animals.o(.text); + src/game/sa1/stage/stage_ui_z.o(.text); + + /* game/sa1/ui */ + src/game/sa1/ui/game_over.o(.text); + src/game/sa1/ui/stage_results.o(.text); + src/game/sa1/ui/player_name_input_menu.o(.text); + src/game/sa1/ui/character_select.o(.text); + src/game/sa1/ui/time_over.o(.text); + src/game/sa1/ui/game_2_0.o(.text); + src/game/sa1/ui/game_2_1.o(.text); + src/game/sa1/ui/staff_credits.o(.text); + src/game/sa1/ui/sound_test.o(.text); + src/game/sa1/ui/vs_record.o(.text); + src/game/sa1/ui/time_attack_record.o(.text); + src/game/sa1/ui/course_select.o(.text); + src/game/sa1/ui/game_2_3.o(.text); + src/game/sa1/ui/intro_animation.o(.text); + src/game/sa1/ui/extra_stage_results.o(.text); + src/game/sa1/ui/special_stage_intro.o(.text); + src/game/sa1/ui/collect_chaos_emeralds_msg.o(.text); + src/game/sa1/ui/time_attack_results.o(.text); + src/game/sa1/ui/time_attack_lobby.o(.text); + src/game/sa1/ui/edit_language_screen.o(.text); + src/game/sa1/ui/multiplayer_continue_screen.o(.text); + src/game/sa1/ui/time_attack_records.o(.text); + + src/game/sa1/stage/enemies/gamigami.o(.text); + src/game/sa1/stage/enemies/rhinotank.o(.text); + src/game/sa1/stage/enemies/kerokero.o(.text); + src/game/sa1/stage/enemies/hanabii.o(.text); + src/game/sa1/stage/enemies/pierrot.o(.text); + src/game/sa1/stage/enemies/slot.o(.text); + src/game/sa1/stage/enemies/leon.o(.text); + src/game/sa1/stage/enemies/wamu.o(.text); + src/game/sa1/stage/enemies/mirror.o(.text); + src/game/sa1/stage/enemies/oct.o(.text); + src/game/sa1/stage/enemies/senbon.o(.text); + src/game/sa1/stage/enemies/fireball.o(.text); + src/game/sa1/stage/enemies/mole.o(.text); + src/game/sa1/stage/enemies/yukimaru.o(.text); + src/game/sa1/stage/enemies/drisame.o(.text); + src/game/sa1/stage/enemies/kuraa.o(.text); + src/game/sa1/stage/enemies/pen_mk1.o(.text); + src/game/sa1/stage/enemies/tentou.o(.text); + + src/game/sa1/stage/interactables/trampoline.o(.text); + src/game/sa1/stage/interactables/bounce_block.o(.text); + src/game/sa1/stage/interactables/incline_ramp.o(.text); + src/game/sa1/stage/interactables/waterfall.o(.text); + src/game/sa1/stage/interactables/shrubbery.o(.text); + src/game/sa1/stage/interactables/booster.o(.text); + src/game/sa1/stage/interactables/red_flag_and_pole.o(.text); + src/game/sa1/stage/interactables/forced_slide.o(.text); + src/game/sa1/stage/interactables/bumpers.o(.text); + src/game/sa1/stage/interactables/flippers.o(.text); + src/game/sa1/stage/interactables/platform_square.o(.text); + src/game/sa1/stage/interactables/sega_sonic_letters.o(.text); + src/game/sa1/stage/interactables/party_balloon.o(.text); + src/game/sa1/stage/interactables/ship_swing.o(.text); + src/game/sa1/stage/interactables/platform_spiked.o(.text); + src/game/sa1/stage/interactables/bowl.o(.text); + src/game/sa1/stage/interactables/panel_gate.o(.text); + src/game/sa1/stage/interactables/marble_track.o(.text); + src/game/sa1/stage/interactables/conveyor_belt_movement.o(.text); + src/game/sa1/stage/interactables/toggle_player_visibility.o(.text); + src/game/sa1/stage/interactables/wall_bumper.o(.text); + src/game/sa1/stage/interactables/teleport_orb.o(.text); + src/game/sa1/stage/interactables/flipper_small_blue.o(.text); + src/game/sa1/stage/interactables/carousel.o(.text); + src/game/sa1/stage/interactables/hook_rail.o(.text); + src/game/sa1/stage/interactables/swinging_hook.o(.text); + src/game/sa1/stage/interactables/security_gate.o(.text); + src/game/sa1/stage/interactables/swing_rope.o(.text); + src/game/sa1/stage/interactables/steam_exhaust.o(.text); + src/game/sa1/stage/interactables/crane_claw_and_lift.o(.text); + src/game/sa1/stage/interactables/moving_spring.o(.text); + src/game/sa1/stage/interactables/iron_ball.o(.text); + src/game/sa1/stage/interactables/hang_bar.o(.text); + src/game/sa1/stage/interactables/skating_stone.o(.text); + src/game/sa1/stage/interactables/platforms_085_089.o(.text); + src/game/sa1/stage/interactables/run_wheel.o(.text); + src/game/sa1/stage/interactables/torch.o(.text); + src/game/sa1/stage/interactables/toggle_player_float.o(.text); + src/game/sa1/stage/interactables/ferris_wheel.o(.text); + src/game/sa1/stage/interactables/boulder_spawner.o(.text); + src/game/sa1/stage/interactables/spiked_barrel.o(.text); + src/game/sa1/stage/interactables/air_bubbles.o(.text); + src/game/sa1/stage/interactables/ice_block.o(.text); + src/game/sa1/stage/interactables/096.o(.text); + src/game/sa1/stage/interactables/updraft.o(.text); + src/game/sa1/stage/interactables/underwater_lava_platform.o(.text); + src/game/sa1/stage/interactables/conveyor_belt_object.o(.text); + src/game/sa1/stage/interactables/special_spring.o(.text); + src/game/sa1/stage/interactables/propeller.o(.text); + src/game/sa1/stage/interactables/small_fall_block.o(.text); + src/game/sa1/stage/interactables/lava.o(.text); + src/game/sa1/stage/interactables/track.o(.text); + src/game/sa1/stage/interactables/107.o(.text); + src/game/sa1/stage/interactables/spring_hiding.o(.text); + src/game/sa1/stage/interactables/toggle_gravity.o(.text); + src/game/sa1/stage/interactables/pipe.o(.text); + src/game/sa1/stage/interactables/maze_air_corner.o(.text); + src/game/sa1/stage/interactables/113.o(.text); + + /* Libs */ + src/lib/m4a/m4a0.o(.text); + src/lib/m4a/m4a.o(.text); + src/lib/agb_flash/agb_flash.o(.text); + src/lib/agb_flash/agb_flash_le_512k.o(.text); + src/lib/agb_flash/agb_flash_mx_512k.o(.text); + src/lib/agb_flash/agb_flash_at_512k.o(.text); + + *libagbsyscall.a:ArcTan2.o(.text); + *libagbsyscall.a:CpuFastSet.o(.text); + *libagbsyscall.a:CpuSet.o(.text); + *libagbsyscall.a:Div.o(.text); + *libagbsyscall.a:Mod.o(.text); + *libagbsyscall.a:LZ77UnCompWram.o(.text); + *libagbsyscall.a:MultiBoot.o(.text); + *libagbsyscall.a:RLUnCompWram.o(.text); + *libagbsyscall.a:SoftReset.o(.text); + *libagbsyscall.a:Sqrt.o(.text); + *libagbsyscall.a:VBlankIntrWait.o(.text); + *libagbsyscall.a:SoftResetExram.o(.text); + + *libgcc.a:_call_via_rX.o(.text); + *libgcc.a:_divsi3.o(.text); + *libgcc.a:_dvmd_tls.o(.text); + *libgcc.a:_modsi3.o(.text); + *libgcc.a:_udivsi3.o(.text); + *libgcc.a:_umodsi3.o(.text); + *libgcc.a:dp-bit.o(.text); + *libgcc.a:fp-bit.o(.text); + *libgcc.a:_lshrdi3.o(.text); + *libgcc.a:_muldi3.o(.text); + *libgcc.a:_negdi2.o(.text); + *libgcc.a:_udivsi3.o(.text); + *libc.a:memcpy.o(.text); + *libc.a:memset.o(.text); + + /* Data */ + + src/core.o(.rodata); + src/background.o(.rodata); + src/trig.o(.rodata); + src/sprite.o(.rodata); + src/bg_triangles.o(.rodata); + src/multi_sio.o(.rodata); + src/sio32_multi_load.o(.rodata); + src/data/sa1/tileset_debug_ascii.o(.rodata); + src/game/sa1/save.o(.rodata); + data/sa1/chao_garden.o(.rodata); + src/data/sa1/entity_tables.o(.rodata); + src/game/shared/stage/entities_manager.o(.rodata); + src/game/sa1/stage/itembox.o(.rodata); + src/game/sa1/menus/title_screen.o(.rodata); + src/game/shared/menus/unused_level_select.o(.rodata); + src/game/sa1/menus/mp_mode_select.o(.rodata); + src/game/sa1/menus/time_attack.o(.rodata); + src/game/sa1/menus/options.o(.rodata); + src/game/sa1/menus/player_data.o(.rodata); + src/game/shared/stage/unused_flash_task.o(.rodata); + data/sa1/data_0_1_2.o(.rodata); + src/game/shared/stage/mp_event_mgr.o(.rodata); + src/game/sa1/stage/mp_results_b.o(.rodata); + src/game/sa1/stage/mp_results.o(.rodata); + src/game/shared/stage/mp_finish.o(.rodata); + src/game/sa1/stage/mp_hud.o(.rodata); + src/game/sa1/stage/mystery_itembox.o(.rodata); + src/game/sa1/stage/interactables/spring.o(.rodata); + src/game/sa1/stage/interactables/platform_thin.o(.rodata); + src/game/sa1/stage/interactables/platform_crumbling.o(.rodata); + data/sa1/data_0_1_4.o(.rodata); + src/game/sa1/stage/mp_chao.o(.rodata); + src/data/sa1/tilemap_data_0.o(.rodata); + src/data/sa1/sprite_tables.o(.rodata); + src/data/sa1/animations/animations.o(.rodata); + src/data/sa1/animations/animation_table.o(.data); + src/data/sa1/sprite_dimensions.o(.rodata); + src/data/sa1/oam_data.o(.rodata); + src/data/sa1/obj_palettes.o(.rodata); + data/sa1/obj_gfx.o(.rodata); + src/game/sa1/special_stage/main.o(.rodata); + data/sa1/data_0_2.o(.rodata); + src/data/sa1/tilemaps_special_stage.o(.rodata); + src/data/sa1/tilemaps_special_stage.o(.data); + data/sa1/data_0_3.o(.rodata); + src/data/sa1/tilemap_data_2.o(.rodata); + data/sa1/data_0_3_2.o(.rodata); + src/game/shared/multiplayer/communication_outcome.o(.rodata); + src/game/shared/stage/amy_attack_heart_effect.o(.rodata); + src/game/shared/stage/music_manager.o(.rodata); + src/game/shared/stage/stage.o(.rodata); + src/game/shared/stage/camera.o(.rodata); + src/data/sa1/tilemap_table.o(.rodata); + src/game/shared/stage/terrain_collision.o(.rodata); + data/sa1/data_0_4.o(.rodata); + src/game/sa1/stage/enemies/boss_5_mecha_knuckles.o(.rodata); + src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.o(.rodata); + src/data/sa1/tilemap_data_3.o(.rodata); + data/sa1/data_0_5_0.o(.rodata); + src/data/sa1/ui_graphics_data.o(.rodata); + data/sa1/data_0_5.o(.rodata); + src/data/sa1/ui_graphics_table.o(.rodata); + src/game/sa1/stage/trapped_animals.o(.rodata); + data/sa1/data_0_5_2.o(.rodata); + src/game/sa1/ui/character_select.o(.rodata); + src/game/sa1/ui/game_2_0.o(.rodata); + src/game/sa1/ui/game_2_1.o(.rodata); + src/game/sa1/ui/staff_credits.o(.rodata); + src/data/sa1/credits.o(.rodata); + data/sa1/data_sound_test.o(.rodata); + src/game/sa1/ui/sound_test.o(.rodata); + data/sa1/data_0_6.o(.rodata); + src/game/sa1/ui/course_select.o(.rodata); + src/game/sa1/ui/game_2_3.o(.rodata); + src/game/sa1/ui/intro_animation.o(.rodata); + data/sa1/data_0_6_0.o(.rodata); + src/game/sa1/ui/time_attack_results.o(.rodata); + data/sa1/data_0_6_1.o(.rodata); + src/game/sa1/ui/time_attack_records.o(.rodata); + data/sa1/data_0_6_2.o(.rodata); + src/game/sa1/stage/enemies/kerokero.o(.rodata); + src/game/sa1/stage/enemies/drisame.o(.rodata); + data/sa1/data_0_7.o(.rodata); + src/game/sa1/stage/interactables/red_flag_and_pole.o(.rodata); + src/game/sa1/stage/interactables/forced_slide.o(.rodata); + src/game/sa1/stage/interactables/sega_sonic_letters.o(.rodata); + src/game/sa1/stage/interactables/bowl.o(.rodata); + src/game/sa1/stage/interactables/hang_bar.o(.rodata); + src/game/sa1/stage/interactables/platforms_085_089.o(.rodata); + src/game/sa1/stage/interactables/ferris_wheel.o(.rodata); + src/game/sa1/stage/interactables/spiked_barrel.o(.rodata); + src/game/sa1/stage/interactables/air_bubbles.o(.rodata); + src/data/sa1/entities.o(.rodata); + src/lib/m4a/m4a_tables.o(.rodata); + data/sa1/sound_data.o(.rodata); + sound/sa1/songs/song001.o(.rodata); + sound/sa1/songs/midi/song002.o(.rodata); + sound/sa1/songs/midi/song003.o(.rodata); + sound/sa1/songs/midi/song004.o(.rodata); + sound/sa1/songs/midi/song005.o(.rodata); + sound/sa1/songs/midi/song006.o(.rodata); + sound/sa1/songs/midi/song007.o(.rodata); + sound/sa1/songs/midi/song008.o(.rodata); + sound/sa1/songs/midi/song009.o(.rodata); + sound/sa1/songs/midi/song010.o(.rodata); + sound/sa1/songs/midi/song011.o(.rodata); + sound/sa1/songs/midi/song012.o(.rodata); + sound/sa1/songs/midi/song013.o(.rodata); + sound/sa1/songs/midi/song014.o(.rodata); + sound/sa1/songs/midi/song015.o(.rodata); + sound/sa1/songs/midi/song016.o(.rodata); + sound/sa1/songs/song017.o(.rodata); + sound/sa1/songs/midi/song018.o(.rodata); + sound/sa1/songs/midi/song019.o(.rodata); + sound/sa1/songs/song020.o(.rodata); + sound/sa1/songs/midi/song021.o(.rodata); + sound/sa1/songs/midi/song022.o(.rodata); + sound/sa1/songs/midi/song023.o(.rodata); + sound/sa1/songs/midi/song024.o(.rodata); + sound/sa1/songs/midi/song025.o(.rodata); + sound/sa1/songs/midi/song026.o(.rodata); + sound/sa1/songs/midi/song027.o(.rodata); + sound/sa1/songs/midi/song028.o(.rodata); + sound/sa1/songs/midi/song029.o(.rodata); + sound/sa1/songs/song030.o(.rodata); + sound/sa1/songs/midi/song031.o(.rodata); + sound/sa1/songs/midi/song032.o(.rodata); + sound/sa1/songs/midi/song033.o(.rodata); + sound/sa1/songs/midi/song034.o(.rodata); + sound/sa1/songs/midi/song035.o(.rodata); + sound/sa1/songs/midi/song036.o(.rodata); + sound/sa1/songs/midi/song037.o(.rodata); + sound/sa1/songs/midi/song038.o(.rodata); + sound/sa1/songs/song039.o(.rodata); + sound/sa1/songs/song040.o(.rodata); + sound/sa1/songs/midi/song041.o(.rodata); + sound/sa1/songs/midi/song042.o(.rodata); + sound/sa1/songs/midi/mus_sp_stage_trick.o(.rodata); + sound/sa1/songs/midi/song044.o(.rodata); + sound/sa1/songs/midi/song045.o(.rodata); + sound/sa1/songs/midi/song046.o(.rodata); + sound/sa1/songs/midi/song047.o(.rodata); + sound/sa1/songs/midi/song048.o(.rodata); + sound/sa1/songs/midi/song049.o(.rodata); + sound/sa1/songs/midi/song050.o(.rodata); + sound/sa1/songs/midi/song051.o(.rodata); + sound/sa1/songs/midi/song052.o(.rodata); + sound/sa1/songs/midi/song053.o(.rodata); + sound/sa1/songs/midi/song054.o(.rodata); + sound/sa1/songs/midi/song102.o(.rodata); + sound/sa1/songs/midi/song103.o(.rodata); + sound/sa1/songs/midi/song104.o(.rodata); + sound/sa1/songs/midi/song105.o(.rodata); + sound/sa1/songs/midi/song106.o(.rodata); + sound/sa1/songs/midi/song107.o(.rodata); + sound/sa1/songs/midi/song108.o(.rodata); + sound/sa1/songs/midi/song109.o(.rodata); + sound/sa1/songs/midi/song110.o(.rodata); + sound/sa1/songs/midi/song111.o(.rodata); + sound/sa1/songs/midi/song112.o(.rodata); + sound/sa1/songs/midi/song113.o(.rodata); + sound/sa1/songs/midi/song114.o(.rodata); + sound/sa1/songs/midi/song115.o(.rodata); + sound/sa1/songs/midi/song116.o(.rodata); + sound/sa1/songs/midi/se_ring_copy.o(.rodata); + sound/sa1/songs/midi/song118.o(.rodata); + sound/sa1/songs/midi/song119.o(.rodata); + sound/sa1/songs/midi/song120.o(.rodata); + sound/sa1/songs/midi/song121.o(.rodata); + sound/sa1/songs/midi/song122.o(.rodata); + sound/sa1/songs/midi/song123.o(.rodata); + sound/sa1/songs/midi/song124.o(.rodata); + sound/sa1/songs/midi/song125.o(.rodata); + sound/sa1/songs/midi/song126.o(.rodata); + sound/sa1/songs/midi/song127.o(.rodata); + sound/sa1/songs/midi/song128.o(.rodata); + sound/sa1/songs/midi/song129.o(.rodata); + sound/sa1/songs/midi/song130.o(.rodata); + sound/sa1/songs/midi/song131.o(.rodata); + sound/sa1/songs/midi/song132.o(.rodata); + sound/sa1/songs/midi/song133.o(.rodata); + sound/sa1/songs/midi/song134.o(.rodata); + sound/sa1/songs/midi/song135.o(.rodata); + sound/sa1/songs/midi/song136.o(.rodata); + sound/sa1/songs/midi/song137.o(.rodata); + sound/sa1/songs/midi/song138.o(.rodata); + sound/sa1/songs/midi/song139.o(.rodata); + sound/sa1/songs/midi/song140.o(.rodata); + sound/sa1/songs/midi/song141.o(.rodata); + sound/sa1/songs/midi/song142.o(.rodata); + sound/sa1/songs/midi/song143.o(.rodata); + sound/sa1/songs/midi/song144.o(.rodata); + sound/sa1/songs/midi/song145.o(.rodata); + sound/sa1/songs/midi/song146.o(.rodata); + sound/sa1/songs/midi/song147.o(.rodata); + sound/sa1/songs/midi/song148.o(.rodata); + sound/sa1/songs/midi/song149.o(.rodata); + sound/sa1/songs/midi/song150.o(.rodata); + sound/sa1/songs/midi/song151.o(.rodata); + sound/sa1/songs/midi/song152.o(.rodata); + sound/sa1/songs/midi/song153.o(.rodata); + sound/sa1/songs/midi/song154.o(.rodata); + sound/sa1/songs/midi/song155.o(.rodata); + sound/sa1/songs/midi/song156.o(.rodata); + sound/sa1/songs/midi/song157.o(.rodata); + sound/sa1/songs/midi/song158.o(.rodata); + sound/sa1/songs/midi/song159.o(.rodata); + sound/sa1/songs/midi/song160.o(.rodata); + sound/sa1/songs/midi/song161.o(.rodata); + sound/sa1/songs/midi/song162.o(.rodata); + sound/sa1/songs/midi/song163.o(.rodata); + sound/sa1/songs/midi/song164.o(.rodata); + sound/sa1/songs/midi/song166.o(.rodata); + sound/sa1/songs/midi/song167.o(.rodata); + sound/sa1/songs/midi/song168.o(.rodata); + sound/sa1/songs/midi/song169.o(.rodata); + sound/sa1/songs/midi/song170.o(.rodata); + sound/sa1/songs/midi/song171.o(.rodata); + sound/sa1/songs/midi/song172.o(.rodata); + sound/sa1/songs/midi/song173.o(.rodata); + sound/sa1/songs/midi/song174.o(.rodata); + sound/sa1/songs/midi/song175.o(.rodata); + sound/sa1/songs/midi/song176.o(.rodata); + sound/sa1/songs/midi/song177.o(.rodata); + sound/sa1/songs/midi/song178.o(.rodata); + sound/sa1/songs/midi/song179.o(.rodata); + sound/sa1/songs/midi/song180.o(.rodata); + sound/sa1/songs/midi/song181.o(.rodata); + sound/sa1/songs/midi/song182.o(.rodata); + sound/sa1/songs/midi/song183.o(.rodata); + sound/sa1/songs/midi/song184.o(.rodata); + sound/sa1/songs/midi/song185.o(.rodata); + sound/sa1/songs/midi/song188.o(.rodata); + sound/sa1/songs/midi/song189.o(.rodata); + sound/sa1/songs/midi/song190.o(.rodata); + sound/sa1/songs/midi/song191.o(.rodata); + sound/sa1/songs/midi/song192.o(.rodata); + sound/sa1/songs/midi/song193.o(.rodata); + sound/sa1/songs/midi/song194.o(.rodata); + sound/sa1/songs/midi/song195.o(.rodata); + sound/sa1/songs/midi/song196.o(.rodata); + sound/sa1/songs/midi/song198.o(.rodata); + sound/sa1/songs/midi/song199.o(.rodata); + sound/sa1/songs/midi/song200.o(.rodata); + sound/sa1/songs/midi/song201.o(.rodata); + sound/sa1/songs/midi/song202.o(.rodata); + sound/sa1/songs/midi/song203.o(.rodata); + sound/sa1/songs/midi/song204.o(.rodata); + sound/sa1/songs/midi/song205.o(.rodata); + sound/sa1/songs/midi/song206.o(.rodata); + sound/sa1/songs/midi/song207.o(.rodata); + sound/sa1/songs/midi/song208.o(.rodata); + sound/sa1/songs/midi/song209.o(.rodata); + sound/sa1/songs/midi/song210.o(.rodata); + sound/sa1/songs/midi/song211.o(.rodata); + sound/sa1/songs/midi/song212.o(.rodata); + sound/sa1/songs/midi/song213.o(.rodata); + sound/sa1/songs/midi/song214.o(.rodata); + sound/sa1/songs/midi/song215.o(.rodata); + sound/sa1/songs/midi/song216.o(.rodata); + sound/sa1/songs/midi/song217.o(.rodata); + sound/sa1/songs/midi/song218.o(.rodata); + sound/sa1/songs/midi/song219.o(.rodata); + sound/sa1/songs/midi/song220.o(.rodata); + sound/sa1/songs/midi/song221.o(.rodata); + sound/sa1/songs/midi/song222.o(.rodata); + sound/sa1/songs/midi/song223.o(.rodata); + sound/sa1/songs/midi/song224.o(.rodata); + sound/sa1/songs/midi/song301.o(.rodata); + sound/sa1/songs/midi/song302.o(.rodata); + sound/sa1/songs/midi/song303.o(.rodata); + sound/sa1/songs/midi/song304.o(.rodata); + sound/sa1/songs/midi/song305.o(.rodata); + sound/sa1/songs/midi/song306.o(.rodata); + sound/sa1/songs/midi/song307.o(.rodata); + + src/lib/agb_flash/agb_flash.o(.rodata); + src/lib/agb_flash/agb_flash_le_512k.o(.rodata); + src/lib/agb_flash/agb_flash_mx_512k.o(.rodata); + src/lib/agb_flash/agb_flash_at_512k.o(.rodata); + *libgcc.a:_divdi3.o(.rodata); + data/sa1/data1.o(.rodata); + src/game/sa1/stage/mp_unk_0.o(.rodata); + data/sa1/data1_1.o(.rodata); + data/sa1/build_info.o(.rodata); + } = 0 + + . = 0x2000000; + EWRAM (NOLOAD) : + ALIGN(4) { + src/lib/m4a/m4a.o(ewram_data); + src/malloc_ewram.o(ewram_data); + ewram_end = .; + + . = 0x00033000; gUnknown_02033000 = .; + . = 0x00033004; gUnknown_02033004 = .; + . = 0x00033008; gUnknown_02033008 = .; + . = 0x0003300C; gUnknown_0203300C = .; + . = 0x0003B000; gUnknown_0203B000 = .; + . = 0x0003F000; gUnknown_0203F000 = .; + } + + . = 0x03000000; + IWRAM (NOLOAD) : + ALIGN(4) + { + INCLUDE "../../../sa1_sym_iwram.txt" + } + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + /* Discard everything not specifically mentioned above. */ + /DISCARD/ : + { + *(*); + } +} diff --git a/sa1/songs.mk b/sa1_songs.mk similarity index 100% rename from sa1/songs.mk rename to sa1_songs.mk diff --git a/sa1/sym_iwram.txt b/sa1_sym_iwram.txt similarity index 55% rename from sa1/sym_iwram.txt rename to sa1_sym_iwram.txt index f98377e067..1506eab6aa 100644 --- a/sa1/sym_iwram.txt +++ b/sa1_sym_iwram.txt @@ -1,29 +1,29 @@ /**** bss ****/ -sa2/src/lib/m4a/m4a.o(.bss.code); +src/lib/m4a/m4a.o(.bss.code); . = 0x0000400; -sa2/src/multi_boot.o(.bss); -sa2/src/game/shared/stage/terrain_collision.o(.bss); +src/multi_boot.o(.bss); +src/game/shared/stage/terrain_collision.o(.bss); . = 0x00000424; -sa2/src/lib/agb_flash/agb_flash.o(.bss); +src/lib/agb_flash/agb_flash.o(.bss); . = 0x00000440; *libgcc.a:(.bss); . = 0x00000470; -sa2/src/core.o(.data); +src/core.o(.data); . = 0x00004C60; -sa2/src/multi_sio.o(.data); -sa2/src/sio32_multi_load.o(COMMON); +src/multi_sio.o(.data); +src/sio32_multi_load.o(COMMON); . = 0x00004FE0; -sa2/src/game/globals.o(.data); +src/game/globals.o(.data); . = 0x00005154; -sa2/src/game/sa1/special_stage/main.o(.data); +src/game/sa1/special_stage/main.o(.data); . = 0x00005160; gLoadedSaveGame = .; @@ -36,7 +36,7 @@ sa2/src/game/sa1/special_stage/main.o(.data); . = 0x000056F0; gUnknown_030056F0 = .; . = 0x00005730; -sa2/src/game/sa1/stage/temporary_sound_play_task.o(.data); +src/game/sa1/stage/temporary_sound_play_task.o(.data); . = 0x00005740; gUnknown_03005740 = .; . = 0x00005780; gUnknown_03005780 = .; @@ -45,14 +45,14 @@ sa2/src/game/sa1/stage/temporary_sound_play_task.o(.data); . = 0x00005800; gUnknown_03005800 = .; . = 0x00005840; gUnknown_03005840 = .; . = 0x00005860; -sa2/src/game/sa1/stage/enemies/boss_6_egg_snake.o(COMMON); +src/game/sa1/stage/enemies/boss_6_egg_snake.o(COMMON); . = 0x00005890; gUnknown_03005890 = .; . = 0x000058A8; -sa2/src/game/sa1/multiplayer/chao_message.o(.bss); -sa2/src/game/dummy_task.o(.data); +src/game/sa1/multiplayer/chao_message.o(.bss); +src/game/dummy_task.o(.data); . = 0x000058C0; -sa2/src/game/shared/stage/stage.o(.data); +src/game/shared/stage/stage.o(.data); . = 0x000058D0; gStageBackgroundsRam = .; . = 0x000059D0; gCamera = .; @@ -61,23 +61,23 @@ sa2/src/game/shared/stage/stage.o(.data); . = 0x00005A18; gRingsScatterTask = .; . = 0x00005A20; -sa2/src/game/shared/stage/player.o(.data); -sa2/src/game/sa1/stage/player_super_sonic.o(.data); -sa2/src/game/shared/stage/underwater_effects.o(.data); +src/game/shared/stage/player.o(.data); +src/game/sa1/stage/player_super_sonic.o(.data); +src/game/shared/stage/underwater_effects.o(.data); . = 0x00005C80; -sa2/src/game/shared/stage/water_effects.o(.data); +src/game/shared/stage/water_effects.o(.data); . = 0x000060D0; -sa2/src/input_recorder.o(.data); -sa2/src/game/sa1/stage/player_controls.o(.data); -sa2/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.o(.data); +src/input_recorder.o(.data); +src/game/sa1/stage/player_controls.o(.data); +src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.o(.data); . = 0x00006240; -sa2/src/game/sa1/stage/ui_rendering.o(.data); +src/game/sa1/stage/ui_rendering.o(.data); . = 0x00006414; -sa2/src/lib/agb_flash/agb_flash.o(.data); +src/lib/agb_flash/agb_flash.o(.data); iwram_end = .; diff --git a/sa1/sound/sa1/direct_sound_data.inc b/sound/sa1/direct_sound_data.inc similarity index 100% rename from sa1/sound/sa1/direct_sound_data.inc rename to sound/sa1/direct_sound_data.inc diff --git a/sa1/sound/sa1/direct_sound_samples/086DE134.aif b/sound/sa1/direct_sound_samples/086DE134.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086DE134.aif rename to sound/sa1/direct_sound_samples/086DE134.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086DF608.aif b/sound/sa1/direct_sound_samples/086DF608.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086DF608.aif rename to sound/sa1/direct_sound_samples/086DF608.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086E0A1C.aif b/sound/sa1/direct_sound_samples/086E0A1C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086E0A1C.aif rename to sound/sa1/direct_sound_samples/086E0A1C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086E134C.aif b/sound/sa1/direct_sound_samples/086E134C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086E134C.aif rename to sound/sa1/direct_sound_samples/086E134C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086E1ABC.aif b/sound/sa1/direct_sound_samples/086E1ABC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086E1ABC.aif rename to sound/sa1/direct_sound_samples/086E1ABC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086E33B0.aif b/sound/sa1/direct_sound_samples/086E33B0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086E33B0.aif rename to sound/sa1/direct_sound_samples/086E33B0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086E64DC.aif b/sound/sa1/direct_sound_samples/086E64DC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086E64DC.aif rename to sound/sa1/direct_sound_samples/086E64DC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086E6B24.aif b/sound/sa1/direct_sound_samples/086E6B24.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086E6B24.aif rename to sound/sa1/direct_sound_samples/086E6B24.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086EA218.aif b/sound/sa1/direct_sound_samples/086EA218.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086EA218.aif rename to sound/sa1/direct_sound_samples/086EA218.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086ED1F4.aif b/sound/sa1/direct_sound_samples/086ED1F4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086ED1F4.aif rename to sound/sa1/direct_sound_samples/086ED1F4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086F0138.aif b/sound/sa1/direct_sound_samples/086F0138.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086F0138.aif rename to sound/sa1/direct_sound_samples/086F0138.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086F1AC0.aif b/sound/sa1/direct_sound_samples/086F1AC0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086F1AC0.aif rename to sound/sa1/direct_sound_samples/086F1AC0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086F1DC0.aif b/sound/sa1/direct_sound_samples/086F1DC0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086F1DC0.aif rename to sound/sa1/direct_sound_samples/086F1DC0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086F2994.aif b/sound/sa1/direct_sound_samples/086F2994.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086F2994.aif rename to sound/sa1/direct_sound_samples/086F2994.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086F5578.aif b/sound/sa1/direct_sound_samples/086F5578.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086F5578.aif rename to sound/sa1/direct_sound_samples/086F5578.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086F836C.aif b/sound/sa1/direct_sound_samples/086F836C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086F836C.aif rename to sound/sa1/direct_sound_samples/086F836C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086FA790.aif b/sound/sa1/direct_sound_samples/086FA790.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086FA790.aif rename to sound/sa1/direct_sound_samples/086FA790.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086FAEA4.aif b/sound/sa1/direct_sound_samples/086FAEA4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086FAEA4.aif rename to sound/sa1/direct_sound_samples/086FAEA4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086FBBD4.aif b/sound/sa1/direct_sound_samples/086FBBD4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086FBBD4.aif rename to sound/sa1/direct_sound_samples/086FBBD4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086FE150.aif b/sound/sa1/direct_sound_samples/086FE150.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086FE150.aif rename to sound/sa1/direct_sound_samples/086FE150.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086FE7E4.aif b/sound/sa1/direct_sound_samples/086FE7E4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086FE7E4.aif rename to sound/sa1/direct_sound_samples/086FE7E4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/086FF18C.aif b/sound/sa1/direct_sound_samples/086FF18C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/086FF18C.aif rename to sound/sa1/direct_sound_samples/086FF18C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870224C.aif b/sound/sa1/direct_sound_samples/0870224C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870224C.aif rename to sound/sa1/direct_sound_samples/0870224C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08702F60.aif b/sound/sa1/direct_sound_samples/08702F60.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08702F60.aif rename to sound/sa1/direct_sound_samples/08702F60.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870613C.aif b/sound/sa1/direct_sound_samples/0870613C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870613C.aif rename to sound/sa1/direct_sound_samples/0870613C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08708210.aif b/sound/sa1/direct_sound_samples/08708210.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08708210.aif rename to sound/sa1/direct_sound_samples/08708210.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870A724.aif b/sound/sa1/direct_sound_samples/0870A724.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870A724.aif rename to sound/sa1/direct_sound_samples/0870A724.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870CA4C.aif b/sound/sa1/direct_sound_samples/0870CA4C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870CA4C.aif rename to sound/sa1/direct_sound_samples/0870CA4C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870D7EC.aif b/sound/sa1/direct_sound_samples/0870D7EC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870D7EC.aif rename to sound/sa1/direct_sound_samples/0870D7EC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870DC84.aif b/sound/sa1/direct_sound_samples/0870DC84.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870DC84.aif rename to sound/sa1/direct_sound_samples/0870DC84.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870E60C.aif b/sound/sa1/direct_sound_samples/0870E60C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870E60C.aif rename to sound/sa1/direct_sound_samples/0870E60C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870EA00.aif b/sound/sa1/direct_sound_samples/0870EA00.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870EA00.aif rename to sound/sa1/direct_sound_samples/0870EA00.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870EE50.aif b/sound/sa1/direct_sound_samples/0870EE50.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870EE50.aif rename to sound/sa1/direct_sound_samples/0870EE50.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870F254.aif b/sound/sa1/direct_sound_samples/0870F254.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870F254.aif rename to sound/sa1/direct_sound_samples/0870F254.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870FBC0.aif b/sound/sa1/direct_sound_samples/0870FBC0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870FBC0.aif rename to sound/sa1/direct_sound_samples/0870FBC0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0870FFA0.aif b/sound/sa1/direct_sound_samples/0870FFA0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0870FFA0.aif rename to sound/sa1/direct_sound_samples/0870FFA0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087103F8.aif b/sound/sa1/direct_sound_samples/087103F8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087103F8.aif rename to sound/sa1/direct_sound_samples/087103F8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08710D74.aif b/sound/sa1/direct_sound_samples/08710D74.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08710D74.aif rename to sound/sa1/direct_sound_samples/08710D74.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087111D4.aif b/sound/sa1/direct_sound_samples/087111D4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087111D4.aif rename to sound/sa1/direct_sound_samples/087111D4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08711640.aif b/sound/sa1/direct_sound_samples/08711640.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08711640.aif rename to sound/sa1/direct_sound_samples/08711640.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08711ACC.aif b/sound/sa1/direct_sound_samples/08711ACC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08711ACC.aif rename to sound/sa1/direct_sound_samples/08711ACC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087123F8.aif b/sound/sa1/direct_sound_samples/087123F8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087123F8.aif rename to sound/sa1/direct_sound_samples/087123F8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08712950.aif b/sound/sa1/direct_sound_samples/08712950.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08712950.aif rename to sound/sa1/direct_sound_samples/08712950.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08712DB8.aif b/sound/sa1/direct_sound_samples/08712DB8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08712DB8.aif rename to sound/sa1/direct_sound_samples/08712DB8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0871375C.aif b/sound/sa1/direct_sound_samples/0871375C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0871375C.aif rename to sound/sa1/direct_sound_samples/0871375C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0871AED4.aif b/sound/sa1/direct_sound_samples/0871AED4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0871AED4.aif rename to sound/sa1/direct_sound_samples/0871AED4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0871EF30.aif b/sound/sa1/direct_sound_samples/0871EF30.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0871EF30.aif rename to sound/sa1/direct_sound_samples/0871EF30.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08727348.aif b/sound/sa1/direct_sound_samples/08727348.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08727348.aif rename to sound/sa1/direct_sound_samples/08727348.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0872CF68.aif b/sound/sa1/direct_sound_samples/0872CF68.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0872CF68.aif rename to sound/sa1/direct_sound_samples/0872CF68.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0872E77C.aif b/sound/sa1/direct_sound_samples/0872E77C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0872E77C.aif rename to sound/sa1/direct_sound_samples/0872E77C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08730340.aif b/sound/sa1/direct_sound_samples/08730340.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08730340.aif rename to sound/sa1/direct_sound_samples/08730340.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08730BF0.aif b/sound/sa1/direct_sound_samples/08730BF0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08730BF0.aif rename to sound/sa1/direct_sound_samples/08730BF0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08731868.aif b/sound/sa1/direct_sound_samples/08731868.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08731868.aif rename to sound/sa1/direct_sound_samples/08731868.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08732A00.aif b/sound/sa1/direct_sound_samples/08732A00.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08732A00.aif rename to sound/sa1/direct_sound_samples/08732A00.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08733304.aif b/sound/sa1/direct_sound_samples/08733304.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08733304.aif rename to sound/sa1/direct_sound_samples/08733304.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08733D74.aif b/sound/sa1/direct_sound_samples/08733D74.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08733D74.aif rename to sound/sa1/direct_sound_samples/08733D74.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08737EB4.aif b/sound/sa1/direct_sound_samples/08737EB4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08737EB4.aif rename to sound/sa1/direct_sound_samples/08737EB4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873BCBC.aif b/sound/sa1/direct_sound_samples/0873BCBC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873BCBC.aif rename to sound/sa1/direct_sound_samples/0873BCBC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873C470.aif b/sound/sa1/direct_sound_samples/0873C470.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873C470.aif rename to sound/sa1/direct_sound_samples/0873C470.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873CC80.aif b/sound/sa1/direct_sound_samples/0873CC80.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873CC80.aif rename to sound/sa1/direct_sound_samples/0873CC80.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873D430.aif b/sound/sa1/direct_sound_samples/0873D430.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873D430.aif rename to sound/sa1/direct_sound_samples/0873D430.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873DF74.aif b/sound/sa1/direct_sound_samples/0873DF74.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873DF74.aif rename to sound/sa1/direct_sound_samples/0873DF74.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873ECE8.aif b/sound/sa1/direct_sound_samples/0873ECE8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873ECE8.aif rename to sound/sa1/direct_sound_samples/0873ECE8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873F1C0.aif b/sound/sa1/direct_sound_samples/0873F1C0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873F1C0.aif rename to sound/sa1/direct_sound_samples/0873F1C0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873F654.aif b/sound/sa1/direct_sound_samples/0873F654.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873F654.aif rename to sound/sa1/direct_sound_samples/0873F654.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873FAB8.aif b/sound/sa1/direct_sound_samples/0873FAB8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873FAB8.aif rename to sound/sa1/direct_sound_samples/0873FAB8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0873FF64.aif b/sound/sa1/direct_sound_samples/0873FF64.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0873FF64.aif rename to sound/sa1/direct_sound_samples/0873FF64.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087403FC.aif b/sound/sa1/direct_sound_samples/087403FC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087403FC.aif rename to sound/sa1/direct_sound_samples/087403FC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08740854.aif b/sound/sa1/direct_sound_samples/08740854.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08740854.aif rename to sound/sa1/direct_sound_samples/08740854.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08740D00.aif b/sound/sa1/direct_sound_samples/08740D00.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08740D00.aif rename to sound/sa1/direct_sound_samples/08740D00.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08741248.aif b/sound/sa1/direct_sound_samples/08741248.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08741248.aif rename to sound/sa1/direct_sound_samples/08741248.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08741694.aif b/sound/sa1/direct_sound_samples/08741694.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08741694.aif rename to sound/sa1/direct_sound_samples/08741694.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08741B00.aif b/sound/sa1/direct_sound_samples/08741B00.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08741B00.aif rename to sound/sa1/direct_sound_samples/08741B00.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874216C.aif b/sound/sa1/direct_sound_samples/0874216C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874216C.aif rename to sound/sa1/direct_sound_samples/0874216C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087424D8.aif b/sound/sa1/direct_sound_samples/087424D8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087424D8.aif rename to sound/sa1/direct_sound_samples/087424D8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874267C.aif b/sound/sa1/direct_sound_samples/0874267C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874267C.aif rename to sound/sa1/direct_sound_samples/0874267C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08742E90.aif b/sound/sa1/direct_sound_samples/08742E90.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08742E90.aif rename to sound/sa1/direct_sound_samples/08742E90.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087432F0.aif b/sound/sa1/direct_sound_samples/087432F0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087432F0.aif rename to sound/sa1/direct_sound_samples/087432F0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087436FC.aif b/sound/sa1/direct_sound_samples/087436FC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087436FC.aif rename to sound/sa1/direct_sound_samples/087436FC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08743BEC.aif b/sound/sa1/direct_sound_samples/08743BEC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08743BEC.aif rename to sound/sa1/direct_sound_samples/08743BEC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874408C.aif b/sound/sa1/direct_sound_samples/0874408C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874408C.aif rename to sound/sa1/direct_sound_samples/0874408C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087444B4.aif b/sound/sa1/direct_sound_samples/087444B4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087444B4.aif rename to sound/sa1/direct_sound_samples/087444B4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087449BC.aif b/sound/sa1/direct_sound_samples/087449BC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087449BC.aif rename to sound/sa1/direct_sound_samples/087449BC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874621C.aif b/sound/sa1/direct_sound_samples/0874621C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874621C.aif rename to sound/sa1/direct_sound_samples/0874621C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08746C04.aif b/sound/sa1/direct_sound_samples/08746C04.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08746C04.aif rename to sound/sa1/direct_sound_samples/08746C04.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08747908.aif b/sound/sa1/direct_sound_samples/08747908.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08747908.aif rename to sound/sa1/direct_sound_samples/08747908.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08747D18.aif b/sound/sa1/direct_sound_samples/08747D18.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08747D18.aif rename to sound/sa1/direct_sound_samples/08747D18.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08748108.aif b/sound/sa1/direct_sound_samples/08748108.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08748108.aif rename to sound/sa1/direct_sound_samples/08748108.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08748BD8.aif b/sound/sa1/direct_sound_samples/08748BD8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08748BD8.aif rename to sound/sa1/direct_sound_samples/08748BD8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087493A4.aif b/sound/sa1/direct_sound_samples/087493A4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087493A4.aif rename to sound/sa1/direct_sound_samples/087493A4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08749864.aif b/sound/sa1/direct_sound_samples/08749864.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08749864.aif rename to sound/sa1/direct_sound_samples/08749864.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08749D20.aif b/sound/sa1/direct_sound_samples/08749D20.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08749D20.aif rename to sound/sa1/direct_sound_samples/08749D20.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874A750.aif b/sound/sa1/direct_sound_samples/0874A750.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874A750.aif rename to sound/sa1/direct_sound_samples/0874A750.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874AAF8.aif b/sound/sa1/direct_sound_samples/0874AAF8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874AAF8.aif rename to sound/sa1/direct_sound_samples/0874AAF8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874B5D0.aif b/sound/sa1/direct_sound_samples/0874B5D0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874B5D0.aif rename to sound/sa1/direct_sound_samples/0874B5D0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874B844.aif b/sound/sa1/direct_sound_samples/0874B844.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874B844.aif rename to sound/sa1/direct_sound_samples/0874B844.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874CAFC.aif b/sound/sa1/direct_sound_samples/0874CAFC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874CAFC.aif rename to sound/sa1/direct_sound_samples/0874CAFC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874D4D0.aif b/sound/sa1/direct_sound_samples/0874D4D0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874D4D0.aif rename to sound/sa1/direct_sound_samples/0874D4D0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874DDCC.aif b/sound/sa1/direct_sound_samples/0874DDCC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874DDCC.aif rename to sound/sa1/direct_sound_samples/0874DDCC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874E228.aif b/sound/sa1/direct_sound_samples/0874E228.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874E228.aif rename to sound/sa1/direct_sound_samples/0874E228.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0874E6D0.aif b/sound/sa1/direct_sound_samples/0874E6D0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0874E6D0.aif rename to sound/sa1/direct_sound_samples/0874E6D0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08753AEC.aif b/sound/sa1/direct_sound_samples/08753AEC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08753AEC.aif rename to sound/sa1/direct_sound_samples/08753AEC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08758BB4.aif b/sound/sa1/direct_sound_samples/08758BB4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08758BB4.aif rename to sound/sa1/direct_sound_samples/08758BB4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0875A76C.aif b/sound/sa1/direct_sound_samples/0875A76C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0875A76C.aif rename to sound/sa1/direct_sound_samples/0875A76C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0875E854.aif b/sound/sa1/direct_sound_samples/0875E854.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0875E854.aif rename to sound/sa1/direct_sound_samples/0875E854.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087634B0.aif b/sound/sa1/direct_sound_samples/087634B0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087634B0.aif rename to sound/sa1/direct_sound_samples/087634B0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08763F44.aif b/sound/sa1/direct_sound_samples/08763F44.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08763F44.aif rename to sound/sa1/direct_sound_samples/08763F44.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087644B8.aif b/sound/sa1/direct_sound_samples/087644B8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087644B8.aif rename to sound/sa1/direct_sound_samples/087644B8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08764A24.aif b/sound/sa1/direct_sound_samples/08764A24.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08764A24.aif rename to sound/sa1/direct_sound_samples/08764A24.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08764EC8.aif b/sound/sa1/direct_sound_samples/08764EC8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08764EC8.aif rename to sound/sa1/direct_sound_samples/08764EC8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08765524.aif b/sound/sa1/direct_sound_samples/08765524.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08765524.aif rename to sound/sa1/direct_sound_samples/08765524.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08765FF0.aif b/sound/sa1/direct_sound_samples/08765FF0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08765FF0.aif rename to sound/sa1/direct_sound_samples/08765FF0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087665C8.aif b/sound/sa1/direct_sound_samples/087665C8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087665C8.aif rename to sound/sa1/direct_sound_samples/087665C8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08766AE4.aif b/sound/sa1/direct_sound_samples/08766AE4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08766AE4.aif rename to sound/sa1/direct_sound_samples/08766AE4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876701C.aif b/sound/sa1/direct_sound_samples/0876701C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876701C.aif rename to sound/sa1/direct_sound_samples/0876701C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08767588.aif b/sound/sa1/direct_sound_samples/08767588.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08767588.aif rename to sound/sa1/direct_sound_samples/08767588.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08767A20.aif b/sound/sa1/direct_sound_samples/08767A20.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08767A20.aif rename to sound/sa1/direct_sound_samples/08767A20.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08768070.aif b/sound/sa1/direct_sound_samples/08768070.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08768070.aif rename to sound/sa1/direct_sound_samples/08768070.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08768BA0.aif b/sound/sa1/direct_sound_samples/08768BA0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08768BA0.aif rename to sound/sa1/direct_sound_samples/08768BA0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/087692C0.aif b/sound/sa1/direct_sound_samples/087692C0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/087692C0.aif rename to sound/sa1/direct_sound_samples/087692C0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876995C.aif b/sound/sa1/direct_sound_samples/0876995C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876995C.aif rename to sound/sa1/direct_sound_samples/0876995C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876A058.aif b/sound/sa1/direct_sound_samples/0876A058.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876A058.aif rename to sound/sa1/direct_sound_samples/0876A058.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876A7E8.aif b/sound/sa1/direct_sound_samples/0876A7E8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876A7E8.aif rename to sound/sa1/direct_sound_samples/0876A7E8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876AE6C.aif b/sound/sa1/direct_sound_samples/0876AE6C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876AE6C.aif rename to sound/sa1/direct_sound_samples/0876AE6C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876B5CC.aif b/sound/sa1/direct_sound_samples/0876B5CC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876B5CC.aif rename to sound/sa1/direct_sound_samples/0876B5CC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876BCBC.aif b/sound/sa1/direct_sound_samples/0876BCBC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876BCBC.aif rename to sound/sa1/direct_sound_samples/0876BCBC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876C1C4.aif b/sound/sa1/direct_sound_samples/0876C1C4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876C1C4.aif rename to sound/sa1/direct_sound_samples/0876C1C4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876C974.aif b/sound/sa1/direct_sound_samples/0876C974.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876C974.aif rename to sound/sa1/direct_sound_samples/0876C974.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876D0E8.aif b/sound/sa1/direct_sound_samples/0876D0E8.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876D0E8.aif rename to sound/sa1/direct_sound_samples/0876D0E8.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876D79C.aif b/sound/sa1/direct_sound_samples/0876D79C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876D79C.aif rename to sound/sa1/direct_sound_samples/0876D79C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876DF8C.aif b/sound/sa1/direct_sound_samples/0876DF8C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876DF8C.aif rename to sound/sa1/direct_sound_samples/0876DF8C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876E614.aif b/sound/sa1/direct_sound_samples/0876E614.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876E614.aif rename to sound/sa1/direct_sound_samples/0876E614.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876ED88.aif b/sound/sa1/direct_sound_samples/0876ED88.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876ED88.aif rename to sound/sa1/direct_sound_samples/0876ED88.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876F47C.aif b/sound/sa1/direct_sound_samples/0876F47C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876F47C.aif rename to sound/sa1/direct_sound_samples/0876F47C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0876FB20.aif b/sound/sa1/direct_sound_samples/0876FB20.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0876FB20.aif rename to sound/sa1/direct_sound_samples/0876FB20.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08771CC4.aif b/sound/sa1/direct_sound_samples/08771CC4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08771CC4.aif rename to sound/sa1/direct_sound_samples/08771CC4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08773848.aif b/sound/sa1/direct_sound_samples/08773848.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08773848.aif rename to sound/sa1/direct_sound_samples/08773848.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08775640.aif b/sound/sa1/direct_sound_samples/08775640.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08775640.aif rename to sound/sa1/direct_sound_samples/08775640.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08775E7C.aif b/sound/sa1/direct_sound_samples/08775E7C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08775E7C.aif rename to sound/sa1/direct_sound_samples/08775E7C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08778D48.aif b/sound/sa1/direct_sound_samples/08778D48.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08778D48.aif rename to sound/sa1/direct_sound_samples/08778D48.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08779EDC.aif b/sound/sa1/direct_sound_samples/08779EDC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08779EDC.aif rename to sound/sa1/direct_sound_samples/08779EDC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0877AD00.aif b/sound/sa1/direct_sound_samples/0877AD00.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0877AD00.aif rename to sound/sa1/direct_sound_samples/0877AD00.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0877B9A0.aif b/sound/sa1/direct_sound_samples/0877B9A0.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0877B9A0.aif rename to sound/sa1/direct_sound_samples/0877B9A0.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0877CF24.aif b/sound/sa1/direct_sound_samples/0877CF24.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0877CF24.aif rename to sound/sa1/direct_sound_samples/0877CF24.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0877F2A4.aif b/sound/sa1/direct_sound_samples/0877F2A4.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0877F2A4.aif rename to sound/sa1/direct_sound_samples/0877F2A4.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0878306C.aif b/sound/sa1/direct_sound_samples/0878306C.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0878306C.aif rename to sound/sa1/direct_sound_samples/0878306C.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08789214.aif b/sound/sa1/direct_sound_samples/08789214.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08789214.aif rename to sound/sa1/direct_sound_samples/08789214.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0878D964.aif b/sound/sa1/direct_sound_samples/0878D964.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0878D964.aif rename to sound/sa1/direct_sound_samples/0878D964.aif diff --git a/sa1/sound/sa1/direct_sound_samples/0878FAAC.aif b/sound/sa1/direct_sound_samples/0878FAAC.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/0878FAAC.aif rename to sound/sa1/direct_sound_samples/0878FAAC.aif diff --git a/sa1/sound/sa1/direct_sound_samples/08797224.aif b/sound/sa1/direct_sound_samples/08797224.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/08797224.aif rename to sound/sa1/direct_sound_samples/08797224.aif diff --git a/sa1/sound/sa1/direct_sound_samples/spectrasonics__symphony_of_voices__partition_d__big_chord__big_min__c4_r.aif b/sound/sa1/direct_sound_samples/spectrasonics__symphony_of_voices__partition_d__big_chord__big_min__c4_r.aif similarity index 100% rename from sa1/sound/sa1/direct_sound_samples/spectrasonics__symphony_of_voices__partition_d__big_chord__big_min__c4_r.aif rename to sound/sa1/direct_sound_samples/spectrasonics__symphony_of_voices__partition_d__big_chord__big_min__c4_r.aif diff --git a/sa1/sound/sa1/keysplit_tables.inc b/sound/sa1/keysplit_tables.inc similarity index 100% rename from sa1/sound/sa1/keysplit_tables.inc rename to sound/sa1/keysplit_tables.inc diff --git a/sa1/sound/sa1/music_player_table.inc b/sound/sa1/music_player_table.inc similarity index 100% rename from sa1/sound/sa1/music_player_table.inc rename to sound/sa1/music_player_table.inc diff --git a/sa1/sound/sa1/programmable_wave_data.inc b/sound/sa1/programmable_wave_data.inc similarity index 100% rename from sa1/sound/sa1/programmable_wave_data.inc rename to sound/sa1/programmable_wave_data.inc diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD6D0.pcm b/sound/sa1/programmable_wave_samples/086DD6D0.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD6D0.pcm rename to sound/sa1/programmable_wave_samples/086DD6D0.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD6E0.pcm b/sound/sa1/programmable_wave_samples/086DD6E0.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD6E0.pcm rename to sound/sa1/programmable_wave_samples/086DD6E0.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD6F0.pcm b/sound/sa1/programmable_wave_samples/086DD6F0.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD6F0.pcm rename to sound/sa1/programmable_wave_samples/086DD6F0.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD700.pcm b/sound/sa1/programmable_wave_samples/086DD700.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD700.pcm rename to sound/sa1/programmable_wave_samples/086DD700.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD710.pcm b/sound/sa1/programmable_wave_samples/086DD710.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD710.pcm rename to sound/sa1/programmable_wave_samples/086DD710.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD720.pcm b/sound/sa1/programmable_wave_samples/086DD720.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD720.pcm rename to sound/sa1/programmable_wave_samples/086DD720.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD730.pcm b/sound/sa1/programmable_wave_samples/086DD730.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD730.pcm rename to sound/sa1/programmable_wave_samples/086DD730.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD740.pcm b/sound/sa1/programmable_wave_samples/086DD740.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD740.pcm rename to sound/sa1/programmable_wave_samples/086DD740.pcm diff --git a/sa1/sound/sa1/programmable_wave_samples/086DD750.pcm b/sound/sa1/programmable_wave_samples/086DD750.pcm similarity index 100% rename from sa1/sound/sa1/programmable_wave_samples/086DD750.pcm rename to sound/sa1/programmable_wave_samples/086DD750.pcm diff --git a/sa1/sound/sa1/song_table.inc b/sound/sa1/song_table.inc similarity index 100% rename from sa1/sound/sa1/song_table.inc rename to sound/sa1/song_table.inc diff --git a/sa1/sound/sa1/songs/midi/mus_sp_stage_trick.mid b/sound/sa1/songs/midi/mus_sp_stage_trick.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/mus_sp_stage_trick.mid rename to sound/sa1/songs/midi/mus_sp_stage_trick.mid diff --git a/sa1/sound/sa1/songs/midi/non_matching/song001.mid b/sound/sa1/songs/midi/non_matching/song001.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/non_matching/song001.mid rename to sound/sa1/songs/midi/non_matching/song001.mid diff --git a/sa1/sound/sa1/songs/midi/non_matching/song017.mid b/sound/sa1/songs/midi/non_matching/song017.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/non_matching/song017.mid rename to sound/sa1/songs/midi/non_matching/song017.mid diff --git a/sa1/sound/sa1/songs/midi/non_matching/song020.mid b/sound/sa1/songs/midi/non_matching/song020.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/non_matching/song020.mid rename to sound/sa1/songs/midi/non_matching/song020.mid diff --git a/sa1/sound/sa1/songs/midi/non_matching/song030.mid b/sound/sa1/songs/midi/non_matching/song030.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/non_matching/song030.mid rename to sound/sa1/songs/midi/non_matching/song030.mid diff --git a/sa1/sound/sa1/songs/midi/non_matching/song039.mid b/sound/sa1/songs/midi/non_matching/song039.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/non_matching/song039.mid rename to sound/sa1/songs/midi/non_matching/song039.mid diff --git a/sa1/sound/sa1/songs/midi/non_matching/song040.mid b/sound/sa1/songs/midi/non_matching/song040.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/non_matching/song040.mid rename to sound/sa1/songs/midi/non_matching/song040.mid diff --git a/sa1/sound/sa1/songs/midi/se_ring_copy.mid b/sound/sa1/songs/midi/se_ring_copy.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/se_ring_copy.mid rename to sound/sa1/songs/midi/se_ring_copy.mid diff --git a/sa1/sound/sa1/songs/midi/song002.mid b/sound/sa1/songs/midi/song002.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song002.mid rename to sound/sa1/songs/midi/song002.mid diff --git a/sa1/sound/sa1/songs/midi/song003.mid b/sound/sa1/songs/midi/song003.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song003.mid rename to sound/sa1/songs/midi/song003.mid diff --git a/sa1/sound/sa1/songs/midi/song004.mid b/sound/sa1/songs/midi/song004.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song004.mid rename to sound/sa1/songs/midi/song004.mid diff --git a/sa1/sound/sa1/songs/midi/song005.mid b/sound/sa1/songs/midi/song005.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song005.mid rename to sound/sa1/songs/midi/song005.mid diff --git a/sa1/sound/sa1/songs/midi/song006.mid b/sound/sa1/songs/midi/song006.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song006.mid rename to sound/sa1/songs/midi/song006.mid diff --git a/sa1/sound/sa1/songs/midi/song007.mid b/sound/sa1/songs/midi/song007.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song007.mid rename to sound/sa1/songs/midi/song007.mid diff --git a/sa1/sound/sa1/songs/midi/song008.mid b/sound/sa1/songs/midi/song008.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song008.mid rename to sound/sa1/songs/midi/song008.mid diff --git a/sa1/sound/sa1/songs/midi/song009.mid b/sound/sa1/songs/midi/song009.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song009.mid rename to sound/sa1/songs/midi/song009.mid diff --git a/sa1/sound/sa1/songs/midi/song010.mid b/sound/sa1/songs/midi/song010.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song010.mid rename to sound/sa1/songs/midi/song010.mid diff --git a/sa1/sound/sa1/songs/midi/song011.mid b/sound/sa1/songs/midi/song011.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song011.mid rename to sound/sa1/songs/midi/song011.mid diff --git a/sa1/sound/sa1/songs/midi/song012.mid b/sound/sa1/songs/midi/song012.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song012.mid rename to sound/sa1/songs/midi/song012.mid diff --git a/sa1/sound/sa1/songs/midi/song013.mid b/sound/sa1/songs/midi/song013.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song013.mid rename to sound/sa1/songs/midi/song013.mid diff --git a/sa1/sound/sa1/songs/midi/song014.mid b/sound/sa1/songs/midi/song014.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song014.mid rename to sound/sa1/songs/midi/song014.mid diff --git a/sa1/sound/sa1/songs/midi/song015.mid b/sound/sa1/songs/midi/song015.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song015.mid rename to sound/sa1/songs/midi/song015.mid diff --git a/sa1/sound/sa1/songs/midi/song016.mid b/sound/sa1/songs/midi/song016.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song016.mid rename to sound/sa1/songs/midi/song016.mid diff --git a/sa1/sound/sa1/songs/midi/song018.mid b/sound/sa1/songs/midi/song018.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song018.mid rename to sound/sa1/songs/midi/song018.mid diff --git a/sa1/sound/sa1/songs/midi/song019.mid b/sound/sa1/songs/midi/song019.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song019.mid rename to sound/sa1/songs/midi/song019.mid diff --git a/sa1/sound/sa1/songs/midi/song021.mid b/sound/sa1/songs/midi/song021.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song021.mid rename to sound/sa1/songs/midi/song021.mid diff --git a/sa1/sound/sa1/songs/midi/song022.mid b/sound/sa1/songs/midi/song022.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song022.mid rename to sound/sa1/songs/midi/song022.mid diff --git a/sa1/sound/sa1/songs/midi/song023.mid b/sound/sa1/songs/midi/song023.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song023.mid rename to sound/sa1/songs/midi/song023.mid diff --git a/sa1/sound/sa1/songs/midi/song024.mid b/sound/sa1/songs/midi/song024.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song024.mid rename to sound/sa1/songs/midi/song024.mid diff --git a/sa1/sound/sa1/songs/midi/song025.mid b/sound/sa1/songs/midi/song025.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song025.mid rename to sound/sa1/songs/midi/song025.mid diff --git a/sa1/sound/sa1/songs/midi/song026.mid b/sound/sa1/songs/midi/song026.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song026.mid rename to sound/sa1/songs/midi/song026.mid diff --git a/sa1/sound/sa1/songs/midi/song027.mid b/sound/sa1/songs/midi/song027.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song027.mid rename to sound/sa1/songs/midi/song027.mid diff --git a/sa1/sound/sa1/songs/midi/song028.mid b/sound/sa1/songs/midi/song028.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song028.mid rename to sound/sa1/songs/midi/song028.mid diff --git a/sa1/sound/sa1/songs/midi/song029.mid b/sound/sa1/songs/midi/song029.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song029.mid rename to sound/sa1/songs/midi/song029.mid diff --git a/sa1/sound/sa1/songs/midi/song031.mid b/sound/sa1/songs/midi/song031.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song031.mid rename to sound/sa1/songs/midi/song031.mid diff --git a/sa1/sound/sa1/songs/midi/song032.mid b/sound/sa1/songs/midi/song032.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song032.mid rename to sound/sa1/songs/midi/song032.mid diff --git a/sa1/sound/sa1/songs/midi/song033.mid b/sound/sa1/songs/midi/song033.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song033.mid rename to sound/sa1/songs/midi/song033.mid diff --git a/sa1/sound/sa1/songs/midi/song034.mid b/sound/sa1/songs/midi/song034.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song034.mid rename to sound/sa1/songs/midi/song034.mid diff --git a/sa1/sound/sa1/songs/midi/song035.mid b/sound/sa1/songs/midi/song035.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song035.mid rename to sound/sa1/songs/midi/song035.mid diff --git a/sa1/sound/sa1/songs/midi/song036.mid b/sound/sa1/songs/midi/song036.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song036.mid rename to sound/sa1/songs/midi/song036.mid diff --git a/sa1/sound/sa1/songs/midi/song037.mid b/sound/sa1/songs/midi/song037.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song037.mid rename to sound/sa1/songs/midi/song037.mid diff --git a/sa1/sound/sa1/songs/midi/song038.mid b/sound/sa1/songs/midi/song038.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song038.mid rename to sound/sa1/songs/midi/song038.mid diff --git a/sa1/sound/sa1/songs/midi/song041.mid b/sound/sa1/songs/midi/song041.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song041.mid rename to sound/sa1/songs/midi/song041.mid diff --git a/sa1/sound/sa1/songs/midi/song042.mid b/sound/sa1/songs/midi/song042.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song042.mid rename to sound/sa1/songs/midi/song042.mid diff --git a/sa1/sound/sa1/songs/midi/song044.mid b/sound/sa1/songs/midi/song044.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song044.mid rename to sound/sa1/songs/midi/song044.mid diff --git a/sa1/sound/sa1/songs/midi/song045.mid b/sound/sa1/songs/midi/song045.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song045.mid rename to sound/sa1/songs/midi/song045.mid diff --git a/sa1/sound/sa1/songs/midi/song046.mid b/sound/sa1/songs/midi/song046.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song046.mid rename to sound/sa1/songs/midi/song046.mid diff --git a/sa1/sound/sa1/songs/midi/song047.mid b/sound/sa1/songs/midi/song047.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song047.mid rename to sound/sa1/songs/midi/song047.mid diff --git a/sa1/sound/sa1/songs/midi/song048.mid b/sound/sa1/songs/midi/song048.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song048.mid rename to sound/sa1/songs/midi/song048.mid diff --git a/sa1/sound/sa1/songs/midi/song049.mid b/sound/sa1/songs/midi/song049.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song049.mid rename to sound/sa1/songs/midi/song049.mid diff --git a/sa1/sound/sa1/songs/midi/song050.mid b/sound/sa1/songs/midi/song050.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song050.mid rename to sound/sa1/songs/midi/song050.mid diff --git a/sa1/sound/sa1/songs/midi/song051.mid b/sound/sa1/songs/midi/song051.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song051.mid rename to sound/sa1/songs/midi/song051.mid diff --git a/sa1/sound/sa1/songs/midi/song052.mid b/sound/sa1/songs/midi/song052.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song052.mid rename to sound/sa1/songs/midi/song052.mid diff --git a/sa1/sound/sa1/songs/midi/song053.mid b/sound/sa1/songs/midi/song053.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song053.mid rename to sound/sa1/songs/midi/song053.mid diff --git a/sa1/sound/sa1/songs/midi/song054.mid b/sound/sa1/songs/midi/song054.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song054.mid rename to sound/sa1/songs/midi/song054.mid diff --git a/sa1/sound/sa1/songs/midi/song102.mid b/sound/sa1/songs/midi/song102.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song102.mid rename to sound/sa1/songs/midi/song102.mid diff --git a/sa1/sound/sa1/songs/midi/song103.mid b/sound/sa1/songs/midi/song103.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song103.mid rename to sound/sa1/songs/midi/song103.mid diff --git a/sa1/sound/sa1/songs/midi/song104.mid b/sound/sa1/songs/midi/song104.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song104.mid rename to sound/sa1/songs/midi/song104.mid diff --git a/sa1/sound/sa1/songs/midi/song105.mid b/sound/sa1/songs/midi/song105.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song105.mid rename to sound/sa1/songs/midi/song105.mid diff --git a/sa1/sound/sa1/songs/midi/song106.mid b/sound/sa1/songs/midi/song106.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song106.mid rename to sound/sa1/songs/midi/song106.mid diff --git a/sa1/sound/sa1/songs/midi/song107.mid b/sound/sa1/songs/midi/song107.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song107.mid rename to sound/sa1/songs/midi/song107.mid diff --git a/sa1/sound/sa1/songs/midi/song108.mid b/sound/sa1/songs/midi/song108.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song108.mid rename to sound/sa1/songs/midi/song108.mid diff --git a/sa1/sound/sa1/songs/midi/song109.mid b/sound/sa1/songs/midi/song109.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song109.mid rename to sound/sa1/songs/midi/song109.mid diff --git a/sa1/sound/sa1/songs/midi/song110.mid b/sound/sa1/songs/midi/song110.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song110.mid rename to sound/sa1/songs/midi/song110.mid diff --git a/sa1/sound/sa1/songs/midi/song111.mid b/sound/sa1/songs/midi/song111.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song111.mid rename to sound/sa1/songs/midi/song111.mid diff --git a/sa1/sound/sa1/songs/midi/song112.mid b/sound/sa1/songs/midi/song112.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song112.mid rename to sound/sa1/songs/midi/song112.mid diff --git a/sa1/sound/sa1/songs/midi/song113.mid b/sound/sa1/songs/midi/song113.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song113.mid rename to sound/sa1/songs/midi/song113.mid diff --git a/sa1/sound/sa1/songs/midi/song114.mid b/sound/sa1/songs/midi/song114.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song114.mid rename to sound/sa1/songs/midi/song114.mid diff --git a/sa1/sound/sa1/songs/midi/song115.mid b/sound/sa1/songs/midi/song115.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song115.mid rename to sound/sa1/songs/midi/song115.mid diff --git a/sa1/sound/sa1/songs/midi/song116.mid b/sound/sa1/songs/midi/song116.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song116.mid rename to sound/sa1/songs/midi/song116.mid diff --git a/sa1/sound/sa1/songs/midi/song118.mid b/sound/sa1/songs/midi/song118.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song118.mid rename to sound/sa1/songs/midi/song118.mid diff --git a/sa1/sound/sa1/songs/midi/song119.mid b/sound/sa1/songs/midi/song119.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song119.mid rename to sound/sa1/songs/midi/song119.mid diff --git a/sa1/sound/sa1/songs/midi/song120.mid b/sound/sa1/songs/midi/song120.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song120.mid rename to sound/sa1/songs/midi/song120.mid diff --git a/sa1/sound/sa1/songs/midi/song121.mid b/sound/sa1/songs/midi/song121.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song121.mid rename to sound/sa1/songs/midi/song121.mid diff --git a/sa1/sound/sa1/songs/midi/song122.mid b/sound/sa1/songs/midi/song122.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song122.mid rename to sound/sa1/songs/midi/song122.mid diff --git a/sa1/sound/sa1/songs/midi/song123.mid b/sound/sa1/songs/midi/song123.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song123.mid rename to sound/sa1/songs/midi/song123.mid diff --git a/sa1/sound/sa1/songs/midi/song124.mid b/sound/sa1/songs/midi/song124.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song124.mid rename to sound/sa1/songs/midi/song124.mid diff --git a/sa1/sound/sa1/songs/midi/song125.mid b/sound/sa1/songs/midi/song125.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song125.mid rename to sound/sa1/songs/midi/song125.mid diff --git a/sa1/sound/sa1/songs/midi/song126.mid b/sound/sa1/songs/midi/song126.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song126.mid rename to sound/sa1/songs/midi/song126.mid diff --git a/sa1/sound/sa1/songs/midi/song127.mid b/sound/sa1/songs/midi/song127.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song127.mid rename to sound/sa1/songs/midi/song127.mid diff --git a/sa1/sound/sa1/songs/midi/song128.mid b/sound/sa1/songs/midi/song128.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song128.mid rename to sound/sa1/songs/midi/song128.mid diff --git a/sa1/sound/sa1/songs/midi/song129.mid b/sound/sa1/songs/midi/song129.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song129.mid rename to sound/sa1/songs/midi/song129.mid diff --git a/sa1/sound/sa1/songs/midi/song130.mid b/sound/sa1/songs/midi/song130.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song130.mid rename to sound/sa1/songs/midi/song130.mid diff --git a/sa1/sound/sa1/songs/midi/song131.mid b/sound/sa1/songs/midi/song131.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song131.mid rename to sound/sa1/songs/midi/song131.mid diff --git a/sa1/sound/sa1/songs/midi/song132.mid b/sound/sa1/songs/midi/song132.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song132.mid rename to sound/sa1/songs/midi/song132.mid diff --git a/sa1/sound/sa1/songs/midi/song133.mid b/sound/sa1/songs/midi/song133.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song133.mid rename to sound/sa1/songs/midi/song133.mid diff --git a/sa1/sound/sa1/songs/midi/song134.mid b/sound/sa1/songs/midi/song134.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song134.mid rename to sound/sa1/songs/midi/song134.mid diff --git a/sa1/sound/sa1/songs/midi/song135.mid b/sound/sa1/songs/midi/song135.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song135.mid rename to sound/sa1/songs/midi/song135.mid diff --git a/sa1/sound/sa1/songs/midi/song136.mid b/sound/sa1/songs/midi/song136.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song136.mid rename to sound/sa1/songs/midi/song136.mid diff --git a/sa1/sound/sa1/songs/midi/song137.mid b/sound/sa1/songs/midi/song137.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song137.mid rename to sound/sa1/songs/midi/song137.mid diff --git a/sa1/sound/sa1/songs/midi/song138.mid b/sound/sa1/songs/midi/song138.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song138.mid rename to sound/sa1/songs/midi/song138.mid diff --git a/sa1/sound/sa1/songs/midi/song139.mid b/sound/sa1/songs/midi/song139.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song139.mid rename to sound/sa1/songs/midi/song139.mid diff --git a/sa1/sound/sa1/songs/midi/song140.mid b/sound/sa1/songs/midi/song140.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song140.mid rename to sound/sa1/songs/midi/song140.mid diff --git a/sa1/sound/sa1/songs/midi/song141.mid b/sound/sa1/songs/midi/song141.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song141.mid rename to sound/sa1/songs/midi/song141.mid diff --git a/sa1/sound/sa1/songs/midi/song142.mid b/sound/sa1/songs/midi/song142.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song142.mid rename to sound/sa1/songs/midi/song142.mid diff --git a/sa1/sound/sa1/songs/midi/song143.mid b/sound/sa1/songs/midi/song143.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song143.mid rename to sound/sa1/songs/midi/song143.mid diff --git a/sa1/sound/sa1/songs/midi/song144.mid b/sound/sa1/songs/midi/song144.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song144.mid rename to sound/sa1/songs/midi/song144.mid diff --git a/sa1/sound/sa1/songs/midi/song145.mid b/sound/sa1/songs/midi/song145.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song145.mid rename to sound/sa1/songs/midi/song145.mid diff --git a/sa1/sound/sa1/songs/midi/song146.mid b/sound/sa1/songs/midi/song146.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song146.mid rename to sound/sa1/songs/midi/song146.mid diff --git a/sa1/sound/sa1/songs/midi/song147.mid b/sound/sa1/songs/midi/song147.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song147.mid rename to sound/sa1/songs/midi/song147.mid diff --git a/sa1/sound/sa1/songs/midi/song148.mid b/sound/sa1/songs/midi/song148.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song148.mid rename to sound/sa1/songs/midi/song148.mid diff --git a/sa1/sound/sa1/songs/midi/song149.mid b/sound/sa1/songs/midi/song149.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song149.mid rename to sound/sa1/songs/midi/song149.mid diff --git a/sa1/sound/sa1/songs/midi/song150.mid b/sound/sa1/songs/midi/song150.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song150.mid rename to sound/sa1/songs/midi/song150.mid diff --git a/sa1/sound/sa1/songs/midi/song151.mid b/sound/sa1/songs/midi/song151.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song151.mid rename to sound/sa1/songs/midi/song151.mid diff --git a/sa1/sound/sa1/songs/midi/song152.mid b/sound/sa1/songs/midi/song152.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song152.mid rename to sound/sa1/songs/midi/song152.mid diff --git a/sa1/sound/sa1/songs/midi/song153.mid b/sound/sa1/songs/midi/song153.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song153.mid rename to sound/sa1/songs/midi/song153.mid diff --git a/sa1/sound/sa1/songs/midi/song154.mid b/sound/sa1/songs/midi/song154.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song154.mid rename to sound/sa1/songs/midi/song154.mid diff --git a/sa1/sound/sa1/songs/midi/song155.mid b/sound/sa1/songs/midi/song155.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song155.mid rename to sound/sa1/songs/midi/song155.mid diff --git a/sa1/sound/sa1/songs/midi/song156.mid b/sound/sa1/songs/midi/song156.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song156.mid rename to sound/sa1/songs/midi/song156.mid diff --git a/sa1/sound/sa1/songs/midi/song157.mid b/sound/sa1/songs/midi/song157.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song157.mid rename to sound/sa1/songs/midi/song157.mid diff --git a/sa1/sound/sa1/songs/midi/song158.mid b/sound/sa1/songs/midi/song158.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song158.mid rename to sound/sa1/songs/midi/song158.mid diff --git a/sa1/sound/sa1/songs/midi/song159.mid b/sound/sa1/songs/midi/song159.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song159.mid rename to sound/sa1/songs/midi/song159.mid diff --git a/sa1/sound/sa1/songs/midi/song160.mid b/sound/sa1/songs/midi/song160.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song160.mid rename to sound/sa1/songs/midi/song160.mid diff --git a/sa1/sound/sa1/songs/midi/song161.mid b/sound/sa1/songs/midi/song161.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song161.mid rename to sound/sa1/songs/midi/song161.mid diff --git a/sa1/sound/sa1/songs/midi/song162.mid b/sound/sa1/songs/midi/song162.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song162.mid rename to sound/sa1/songs/midi/song162.mid diff --git a/sa1/sound/sa1/songs/midi/song163.mid b/sound/sa1/songs/midi/song163.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song163.mid rename to sound/sa1/songs/midi/song163.mid diff --git a/sa1/sound/sa1/songs/midi/song164.mid b/sound/sa1/songs/midi/song164.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song164.mid rename to sound/sa1/songs/midi/song164.mid diff --git a/sa1/sound/sa1/songs/midi/song166.mid b/sound/sa1/songs/midi/song166.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song166.mid rename to sound/sa1/songs/midi/song166.mid diff --git a/sa1/sound/sa1/songs/midi/song167.mid b/sound/sa1/songs/midi/song167.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song167.mid rename to sound/sa1/songs/midi/song167.mid diff --git a/sa1/sound/sa1/songs/midi/song168.mid b/sound/sa1/songs/midi/song168.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song168.mid rename to sound/sa1/songs/midi/song168.mid diff --git a/sa1/sound/sa1/songs/midi/song169.mid b/sound/sa1/songs/midi/song169.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song169.mid rename to sound/sa1/songs/midi/song169.mid diff --git a/sa1/sound/sa1/songs/midi/song170.mid b/sound/sa1/songs/midi/song170.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song170.mid rename to sound/sa1/songs/midi/song170.mid diff --git a/sa1/sound/sa1/songs/midi/song171.mid b/sound/sa1/songs/midi/song171.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song171.mid rename to sound/sa1/songs/midi/song171.mid diff --git a/sa1/sound/sa1/songs/midi/song172.mid b/sound/sa1/songs/midi/song172.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song172.mid rename to sound/sa1/songs/midi/song172.mid diff --git a/sa1/sound/sa1/songs/midi/song173.mid b/sound/sa1/songs/midi/song173.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song173.mid rename to sound/sa1/songs/midi/song173.mid diff --git a/sa1/sound/sa1/songs/midi/song174.mid b/sound/sa1/songs/midi/song174.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song174.mid rename to sound/sa1/songs/midi/song174.mid diff --git a/sa1/sound/sa1/songs/midi/song175.mid b/sound/sa1/songs/midi/song175.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song175.mid rename to sound/sa1/songs/midi/song175.mid diff --git a/sa1/sound/sa1/songs/midi/song176.mid b/sound/sa1/songs/midi/song176.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song176.mid rename to sound/sa1/songs/midi/song176.mid diff --git a/sa1/sound/sa1/songs/midi/song177.mid b/sound/sa1/songs/midi/song177.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song177.mid rename to sound/sa1/songs/midi/song177.mid diff --git a/sa1/sound/sa1/songs/midi/song178.mid b/sound/sa1/songs/midi/song178.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song178.mid rename to sound/sa1/songs/midi/song178.mid diff --git a/sa1/sound/sa1/songs/midi/song179.mid b/sound/sa1/songs/midi/song179.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song179.mid rename to sound/sa1/songs/midi/song179.mid diff --git a/sa1/sound/sa1/songs/midi/song180.mid b/sound/sa1/songs/midi/song180.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song180.mid rename to sound/sa1/songs/midi/song180.mid diff --git a/sa1/sound/sa1/songs/midi/song181.mid b/sound/sa1/songs/midi/song181.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song181.mid rename to sound/sa1/songs/midi/song181.mid diff --git a/sa1/sound/sa1/songs/midi/song182.mid b/sound/sa1/songs/midi/song182.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song182.mid rename to sound/sa1/songs/midi/song182.mid diff --git a/sa1/sound/sa1/songs/midi/song183.mid b/sound/sa1/songs/midi/song183.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song183.mid rename to sound/sa1/songs/midi/song183.mid diff --git a/sa1/sound/sa1/songs/midi/song184.mid b/sound/sa1/songs/midi/song184.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song184.mid rename to sound/sa1/songs/midi/song184.mid diff --git a/sa1/sound/sa1/songs/midi/song185.mid b/sound/sa1/songs/midi/song185.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song185.mid rename to sound/sa1/songs/midi/song185.mid diff --git a/sa1/sound/sa1/songs/midi/song188.mid b/sound/sa1/songs/midi/song188.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song188.mid rename to sound/sa1/songs/midi/song188.mid diff --git a/sa1/sound/sa1/songs/midi/song189.mid b/sound/sa1/songs/midi/song189.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song189.mid rename to sound/sa1/songs/midi/song189.mid diff --git a/sa1/sound/sa1/songs/midi/song190.mid b/sound/sa1/songs/midi/song190.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song190.mid rename to sound/sa1/songs/midi/song190.mid diff --git a/sa1/sound/sa1/songs/midi/song191.mid b/sound/sa1/songs/midi/song191.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song191.mid rename to sound/sa1/songs/midi/song191.mid diff --git a/sa1/sound/sa1/songs/midi/song192.mid b/sound/sa1/songs/midi/song192.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song192.mid rename to sound/sa1/songs/midi/song192.mid diff --git a/sa1/sound/sa1/songs/midi/song193.mid b/sound/sa1/songs/midi/song193.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song193.mid rename to sound/sa1/songs/midi/song193.mid diff --git a/sa1/sound/sa1/songs/midi/song194.mid b/sound/sa1/songs/midi/song194.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song194.mid rename to sound/sa1/songs/midi/song194.mid diff --git a/sa1/sound/sa1/songs/midi/song195.mid b/sound/sa1/songs/midi/song195.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song195.mid rename to sound/sa1/songs/midi/song195.mid diff --git a/sa1/sound/sa1/songs/midi/song196.mid b/sound/sa1/songs/midi/song196.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song196.mid rename to sound/sa1/songs/midi/song196.mid diff --git a/sa1/sound/sa1/songs/midi/song198.mid b/sound/sa1/songs/midi/song198.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song198.mid rename to sound/sa1/songs/midi/song198.mid diff --git a/sa1/sound/sa1/songs/midi/song199.mid b/sound/sa1/songs/midi/song199.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song199.mid rename to sound/sa1/songs/midi/song199.mid diff --git a/sa1/sound/sa1/songs/midi/song200.mid b/sound/sa1/songs/midi/song200.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song200.mid rename to sound/sa1/songs/midi/song200.mid diff --git a/sa1/sound/sa1/songs/midi/song201.mid b/sound/sa1/songs/midi/song201.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song201.mid rename to sound/sa1/songs/midi/song201.mid diff --git a/sa1/sound/sa1/songs/midi/song202.mid b/sound/sa1/songs/midi/song202.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song202.mid rename to sound/sa1/songs/midi/song202.mid diff --git a/sa1/sound/sa1/songs/midi/song203.mid b/sound/sa1/songs/midi/song203.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song203.mid rename to sound/sa1/songs/midi/song203.mid diff --git a/sa1/sound/sa1/songs/midi/song204.mid b/sound/sa1/songs/midi/song204.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song204.mid rename to sound/sa1/songs/midi/song204.mid diff --git a/sa1/sound/sa1/songs/midi/song205.mid b/sound/sa1/songs/midi/song205.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song205.mid rename to sound/sa1/songs/midi/song205.mid diff --git a/sa1/sound/sa1/songs/midi/song206.mid b/sound/sa1/songs/midi/song206.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song206.mid rename to sound/sa1/songs/midi/song206.mid diff --git a/sa1/sound/sa1/songs/midi/song207.mid b/sound/sa1/songs/midi/song207.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song207.mid rename to sound/sa1/songs/midi/song207.mid diff --git a/sa1/sound/sa1/songs/midi/song208.mid b/sound/sa1/songs/midi/song208.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song208.mid rename to sound/sa1/songs/midi/song208.mid diff --git a/sa1/sound/sa1/songs/midi/song209.mid b/sound/sa1/songs/midi/song209.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song209.mid rename to sound/sa1/songs/midi/song209.mid diff --git a/sa1/sound/sa1/songs/midi/song210.mid b/sound/sa1/songs/midi/song210.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song210.mid rename to sound/sa1/songs/midi/song210.mid diff --git a/sa1/sound/sa1/songs/midi/song211.mid b/sound/sa1/songs/midi/song211.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song211.mid rename to sound/sa1/songs/midi/song211.mid diff --git a/sa1/sound/sa1/songs/midi/song212.mid b/sound/sa1/songs/midi/song212.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song212.mid rename to sound/sa1/songs/midi/song212.mid diff --git a/sa1/sound/sa1/songs/midi/song213.mid b/sound/sa1/songs/midi/song213.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song213.mid rename to sound/sa1/songs/midi/song213.mid diff --git a/sa1/sound/sa1/songs/midi/song214.mid b/sound/sa1/songs/midi/song214.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song214.mid rename to sound/sa1/songs/midi/song214.mid diff --git a/sa1/sound/sa1/songs/midi/song215.mid b/sound/sa1/songs/midi/song215.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song215.mid rename to sound/sa1/songs/midi/song215.mid diff --git a/sa1/sound/sa1/songs/midi/song216.mid b/sound/sa1/songs/midi/song216.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song216.mid rename to sound/sa1/songs/midi/song216.mid diff --git a/sa1/sound/sa1/songs/midi/song217.mid b/sound/sa1/songs/midi/song217.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song217.mid rename to sound/sa1/songs/midi/song217.mid diff --git a/sa1/sound/sa1/songs/midi/song218.mid b/sound/sa1/songs/midi/song218.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song218.mid rename to sound/sa1/songs/midi/song218.mid diff --git a/sa1/sound/sa1/songs/midi/song219.mid b/sound/sa1/songs/midi/song219.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song219.mid rename to sound/sa1/songs/midi/song219.mid diff --git a/sa1/sound/sa1/songs/midi/song220.mid b/sound/sa1/songs/midi/song220.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song220.mid rename to sound/sa1/songs/midi/song220.mid diff --git a/sa1/sound/sa1/songs/midi/song221.mid b/sound/sa1/songs/midi/song221.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song221.mid rename to sound/sa1/songs/midi/song221.mid diff --git a/sa1/sound/sa1/songs/midi/song222.mid b/sound/sa1/songs/midi/song222.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song222.mid rename to sound/sa1/songs/midi/song222.mid diff --git a/sa1/sound/sa1/songs/midi/song223.mid b/sound/sa1/songs/midi/song223.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song223.mid rename to sound/sa1/songs/midi/song223.mid diff --git a/sa1/sound/sa1/songs/midi/song224.mid b/sound/sa1/songs/midi/song224.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song224.mid rename to sound/sa1/songs/midi/song224.mid diff --git a/sa1/sound/sa1/songs/midi/song301.mid b/sound/sa1/songs/midi/song301.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song301.mid rename to sound/sa1/songs/midi/song301.mid diff --git a/sa1/sound/sa1/songs/midi/song302.mid b/sound/sa1/songs/midi/song302.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song302.mid rename to sound/sa1/songs/midi/song302.mid diff --git a/sa1/sound/sa1/songs/midi/song303.mid b/sound/sa1/songs/midi/song303.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song303.mid rename to sound/sa1/songs/midi/song303.mid diff --git a/sa1/sound/sa1/songs/midi/song304.mid b/sound/sa1/songs/midi/song304.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song304.mid rename to sound/sa1/songs/midi/song304.mid diff --git a/sa1/sound/sa1/songs/midi/song305.mid b/sound/sa1/songs/midi/song305.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song305.mid rename to sound/sa1/songs/midi/song305.mid diff --git a/sa1/sound/sa1/songs/midi/song306.mid b/sound/sa1/songs/midi/song306.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song306.mid rename to sound/sa1/songs/midi/song306.mid diff --git a/sa1/sound/sa1/songs/midi/song307.mid b/sound/sa1/songs/midi/song307.mid similarity index 100% rename from sa1/sound/sa1/songs/midi/song307.mid rename to sound/sa1/songs/midi/song307.mid diff --git a/sa1/sound/sa1/songs/song001.s b/sound/sa1/songs/song001.s similarity index 100% rename from sa1/sound/sa1/songs/song001.s rename to sound/sa1/songs/song001.s diff --git a/sa1/sound/sa1/songs/song017.s b/sound/sa1/songs/song017.s similarity index 100% rename from sa1/sound/sa1/songs/song017.s rename to sound/sa1/songs/song017.s diff --git a/sa1/sound/sa1/songs/song020.s b/sound/sa1/songs/song020.s similarity index 100% rename from sa1/sound/sa1/songs/song020.s rename to sound/sa1/songs/song020.s diff --git a/sa1/sound/sa1/songs/song030.s b/sound/sa1/songs/song030.s similarity index 100% rename from sa1/sound/sa1/songs/song030.s rename to sound/sa1/songs/song030.s diff --git a/sa1/sound/sa1/songs/song039.s b/sound/sa1/songs/song039.s similarity index 100% rename from sa1/sound/sa1/songs/song039.s rename to sound/sa1/songs/song039.s diff --git a/sa1/sound/sa1/songs/song040.s b/sound/sa1/songs/song040.s similarity index 100% rename from sa1/sound/sa1/songs/song040.s rename to sound/sa1/songs/song040.s diff --git a/sa1/sound/sa1/voice_groups.inc b/sound/sa1/voice_groups.inc similarity index 100% rename from sa1/sound/sa1/voice_groups.inc rename to sound/sa1/voice_groups.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup000.inc b/sound/sa1/voicegroups/voicegroup000.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup000.inc rename to sound/sa1/voicegroups/voicegroup000.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup001.inc b/sound/sa1/voicegroups/voicegroup001.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup001.inc rename to sound/sa1/voicegroups/voicegroup001.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup002.inc b/sound/sa1/voicegroups/voicegroup002.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup002.inc rename to sound/sa1/voicegroups/voicegroup002.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup003.inc b/sound/sa1/voicegroups/voicegroup003.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup003.inc rename to sound/sa1/voicegroups/voicegroup003.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup004.inc b/sound/sa1/voicegroups/voicegroup004.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup004.inc rename to sound/sa1/voicegroups/voicegroup004.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup005.inc b/sound/sa1/voicegroups/voicegroup005.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup005.inc rename to sound/sa1/voicegroups/voicegroup005.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup006.inc b/sound/sa1/voicegroups/voicegroup006.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup006.inc rename to sound/sa1/voicegroups/voicegroup006.inc diff --git a/sa1/sound/sa1/voicegroups/voicegroup007.inc b/sound/sa1/voicegroups/voicegroup007.inc similarity index 100% rename from sa1/sound/sa1/voicegroups/voicegroup007.inc rename to sound/sa1/voicegroups/voicegroup007.inc diff --git a/sa1/src/data/sa1/animations/animation_table.c b/src/data/sa1/animations/animation_table.c similarity index 100% rename from sa1/src/data/sa1/animations/animation_table.c rename to src/data/sa1/animations/animation_table.c diff --git a/sa1/src/data/sa1/animations/animations.c b/src/data/sa1/animations/animations.c similarity index 100% rename from sa1/src/data/sa1/animations/animations.c rename to src/data/sa1/animations/animations.c diff --git a/sa1/src/data/sa1/credits.c b/src/data/sa1/credits.c similarity index 100% rename from sa1/src/data/sa1/credits.c rename to src/data/sa1/credits.c diff --git a/sa1/src/data/sa1/entities.c b/src/data/sa1/entities.c similarity index 100% rename from sa1/src/data/sa1/entities.c rename to src/data/sa1/entities.c diff --git a/sa1/src/data/sa1/entity_tables.c b/src/data/sa1/entity_tables.c similarity index 100% rename from sa1/src/data/sa1/entity_tables.c rename to src/data/sa1/entity_tables.c diff --git a/sa1/src/data/sa1/oam_data.c b/src/data/sa1/oam_data.c similarity index 100% rename from sa1/src/data/sa1/oam_data.c rename to src/data/sa1/oam_data.c diff --git a/sa1/src/data/sa1/obj_palettes.c b/src/data/sa1/obj_palettes.c similarity index 100% rename from sa1/src/data/sa1/obj_palettes.c rename to src/data/sa1/obj_palettes.c diff --git a/sa1/src/data/sa1/sprite_dimensions.c b/src/data/sa1/sprite_dimensions.c similarity index 100% rename from sa1/src/data/sa1/sprite_dimensions.c rename to src/data/sa1/sprite_dimensions.c diff --git a/sa1/src/data/sa1/sprite_tables.c b/src/data/sa1/sprite_tables.c similarity index 100% rename from sa1/src/data/sa1/sprite_tables.c rename to src/data/sa1/sprite_tables.c diff --git a/sa1/src/data/sa1/tilemap_data_0.c b/src/data/sa1/tilemap_data_0.c similarity index 100% rename from sa1/src/data/sa1/tilemap_data_0.c rename to src/data/sa1/tilemap_data_0.c diff --git a/sa1/src/data/sa1/tilemap_data_2.c b/src/data/sa1/tilemap_data_2.c similarity index 100% rename from sa1/src/data/sa1/tilemap_data_2.c rename to src/data/sa1/tilemap_data_2.c diff --git a/sa1/src/data/sa1/tilemap_data_3.c b/src/data/sa1/tilemap_data_3.c similarity index 100% rename from sa1/src/data/sa1/tilemap_data_3.c rename to src/data/sa1/tilemap_data_3.c diff --git a/sa1/src/data/sa1/tilemap_table.c b/src/data/sa1/tilemap_table.c similarity index 100% rename from sa1/src/data/sa1/tilemap_table.c rename to src/data/sa1/tilemap_table.c diff --git a/sa1/src/data/sa1/tilemaps_special_stage.c b/src/data/sa1/tilemaps_special_stage.c similarity index 100% rename from sa1/src/data/sa1/tilemaps_special_stage.c rename to src/data/sa1/tilemaps_special_stage.c diff --git a/sa1/src/data/sa1/tileset_debug_ascii.c b/src/data/sa1/tileset_debug_ascii.c similarity index 100% rename from sa1/src/data/sa1/tileset_debug_ascii.c rename to src/data/sa1/tileset_debug_ascii.c diff --git a/sa1/src/data/sa1/ui_graphics_data.c b/src/data/sa1/ui_graphics_data.c similarity index 100% rename from sa1/src/data/sa1/ui_graphics_data.c rename to src/data/sa1/ui_graphics_data.c diff --git a/sa1/src/data/sa1/ui_graphics_table.c b/src/data/sa1/ui_graphics_table.c similarity index 100% rename from sa1/src/data/sa1/ui_graphics_table.c rename to src/data/sa1/ui_graphics_table.c diff --git a/src/game/math.c b/src/game/math.c index fb4df10613..a336e7d10c 100644 --- a/src/game/math.c +++ b/src/game/math.c @@ -3,6 +3,8 @@ #include "trig.h" +// This module was only introduced in sa2+ +#if (GAME != GAME_SA1) // TODO: This is just UNK_8085F1C_1 typedef struct { s16 unk0; @@ -1085,3 +1087,4 @@ UNUSED void sub_8085F84(void) { // unused } +#endif diff --git a/src/lib/agb_flash/agb_flash_512k.c b/src/lib/agb_flash/agb_flash_512k.c index bad4c82ad7..b3044b4f1d 100644 --- a/src/lib/agb_flash/agb_flash_512k.c +++ b/src/lib/agb_flash/agb_flash_512k.c @@ -1,6 +1,7 @@ #include "global.h" #include "lib/agb_flash/flash_internal.h" +#ifndef AGBFLASH_USE_V126 static const char AgbLibFlash512KVersion[] = "FLASH512_V130"; const struct FlashSetupInfo *const gSetup512KInfos[] = { &LE39FW512, @@ -73,3 +74,4 @@ u16 WaitForFlashWrite512K_Common(u8 phase, u8 *addr, u8 lastData) return result; } +#endif From f199008fffb3418c8923a1fc14fe5899e7b04726 Mon Sep 17 00:00:00 2001 From: Oliver Bell Date: Sat, 2 May 2026 23:34:49 +0100 Subject: [PATCH 4/4] delete sa1 directory, fix workflow --- .github/workflows/build.yml | 2 +- Makefile | 2 +- sa1/.clang-format | 175 -- sa1/.gitattributes | 25 - sa1/.gitignore | 94 - sa1/README.md | 22 - sa1/asm/macros.inc | 5 - sa1/asm/macros/animations.inc | 85 - sa1/asm/macros/c_decl.inc | 10 - sa1/asm/macros/function.inc | 29 - sa1/asm/macros/m4a.inc | 13 - sa1/asm/macros/maps.inc | 17 - sa1/asm/macros/misc.inc | 7 - sa1/asm/macros/music_voice.inc | 125 - sa1/asm/macros/portable.inc | 29 - sa1/asm/non_matching/engine/.gitkeep | 0 .../non_matching/engine/TransformSprite.inc | 329 --- .../non_matching/engine/UnusedTransform.inc | 430 --- .../engine/sa2__sub_8002B20_sa1.inc | 1476 ----------- .../non_matching/engine/sa2__sub_80039E4.inc | 672 ----- .../non_matching/engine/sa2__sub_8004010.inc | 323 --- .../non_matching/engine/sa2__sub_8004E14.inc | 491 ---- .../engine/sa2__unused_sub_8005C54.inc | 452 ---- .../engine/sa2__unused_sub_8005FB4.inc | 338 --- .../engine/sa2__unused_sub_800672C.inc | 907 ------- ...select__CreateCharacterSelectionScreen.inc | 912 ------- .../game/char_select__Task_805A060.inc | 644 ----- .../game/char_select__Task_805A54C.inc | 288 -- .../game/char_select__Task_805A798.inc | 254 -- .../game/char_select__sub_805B324.inc | 262 -- .../game/egg_rocket_trans__Task_8028CE4.inc | 280 -- .../game/egg_rocket_trans__Task_8029194.inc | 386 --- .../game/egg_rocket_trans__Task_80294A8.inc | 400 --- .../game/gTask_3006240__sub_8052AA4.inc | 120 - .../game/gTask_3006240__sub_8052D64.inc | 114 - .../game/gTask_3006240__sub_8052EF0.inc | 75 - .../game/gTask_3006240__sub_8052F78.inc | 179 -- .../game/gTask_3006240__sub_80530CC.inc | 176 -- .../game/gTask_3006240__sub_805321C.inc | 178 -- .../game/gTask_3006240__sub_8053370.inc | 126 - .../game/gTask_3006240__sub_805345C.inc | 103 - .../game/gTask_3006240__sub_80535FC.inc | 60 - .../game/gTask_3006240__unused_8052B84.inc | 142 - .../game/intro_anim__Task_80640C8.inc | 188 -- .../menus/mp_mode_select__Task_SinglePak.inc | 443 ---- .../multiplayer/chao_message__sub_803AB60.inc | 1303 --------- .../special_stage/UpdateObjectsAndRender.inc | 851 ------ .../game/sa1/special_stage/sub_802A4C4.inc | 80 - .../game/sa1/special_stage/sub_802B07C.inc | 129 - .../game/sa1/special_stage/sub_802B66C.inc | 291 -- .../game/sa1/special_stage/sub_802BC6C.inc | 208 -- .../game/sa1/special_stage/sub_802BE0C.inc | 109 - .../game/sa1/stage/Player__Player_80447D8.inc | 134 - .../stage/Player__Player_Tails_804571C.inc | 315 --- .../game/sa1/stage/Player__Task_804597C.inc | 185 -- .../game/sa1/stage/Player__sub_8044434.inc | 190 -- .../game/sa1/stage/Player__sub_8048230.inc | 353 --- .../game/sa1/stage/Player__sub_8048980.inc | 197 -- .../game/sa1/stage/Player__sub_8049BAC.inc | 54 - .../StageBgUpdate_Zone2_Interior.inc | 229 -- .../game/sa1/stage/enemies/.gitkeep | 0 .../enemies/Drisame__Task_DrisameInit.inc | 315 --- .../sa1/stage/enemies/Kuraa__Task_80737A8.inc | 252 -- .../sa1/stage/enemies/Leon__Task_LeonInit.inc | 321 --- .../enemies/Pen__Task_PenMk1Snowball.inc | 314 --- .../stage/enemies/Senbon__Task_SenbonInit.inc | 246 -- .../enemies/Slot__Task_SlotProjectileMain.inc | 278 -- .../game/sa1/stage/enemies/Task_Pierrot.inc | 381 --- .../stage/enemies/Tentou__Task_TantouMain.inc | 273 -- .../sa1/stage/enemies/Tentou__sub_8074928.inc | 292 -- .../sa1/stage/enemies/Wamu__Task_Wamu.inc | 968 ------- .../enemies/Yukimaru__YukimaruGroundInit.inc | 284 -- .../stage/enemies/boss_1__Task_80264C8.inc | 913 ------- .../stage/enemies/boss_1__Task_80271E4.inc | 116 - .../stage/enemies/boss_1__Task_8027600.inc | 139 - .../stage/enemies/boss_1__Task_EHTHammer.inc | 163 -- .../enemies/boss_4__CreateIciclePlatform.inc | 136 - .../boss_5__Task_MechaKnucklesInit.inc | 412 --- .../boss_5__Task_MechaKnucklesRocketInit.inc | 367 --- .../enemies/boss_6__CreateEntity_EggSnake.inc | 248 -- .../stage/enemies/boss_6__Task_8032370.inc | 555 ---- .../stage/enemies/boss_6__Task_8033AA0.inc | 786 ------ .../enemies/boss_6__Task_EggSnakeInit.inc | 217 -- .../stage/enemies/boss_x1__Task_803491C.inc | 302 --- .../stage/enemies/boss_x1__Task_80352C0.inc | 77 - .../stage/enemies/boss_x1__Task_8035354.inc | 94 - .../stage/enemies/boss_x1__Task_803540C.inc | 113 - .../stage/enemies/boss_x1__Task_80354F4.inc | 79 - .../stage/enemies/boss_x1__Task_8035588.inc | 227 -- .../stage/enemies/boss_x3__Task_803775C.inc | 1090 -------- .../stage/enemies/boss_x3__Task_8039A64.inc | 913 ------- .../stage/enemies/boss_x3__sub_803A170.inc | 58 - .../stage/enemies/boss_x3__sub_803A6EC.inc | 113 - .../stage/enemies/boss_xtra__sub_8050194.inc | 419 --- .../stage/enemies/boss_xtra__sub_80504DC.inc | 435 --- .../stage/enemies/boss_xtra__sub_8050A88.inc | 632 ----- .../stage/enemies/boss_xtra__sub_8050FB4.inc | 448 ---- .../stage/enemies/boss_xtra__sub_8051344.inc | 342 --- .../stage/enemies/boss_xtra__sub_8051604.inc | 351 --- .../stage/enemies/boss_xtra__sub_80519E8.inc | 288 -- .../stage/enemies/boss_xtra__sub_8051C44.inc | 235 -- .../stage/enemies/boss_xtra__sub_8051E38.inc | 233 -- .../fireball__CreateFireballSparks.inc | 99 - .../sa1/stage/game_over__Task_8056348.inc | 157 -- .../sa1/stage/game_over__Task_805648C.inc | 154 -- .../sa1/stage/game_over__Task_805676C.inc | 253 -- .../BreakableWall__Task_BreakableWall2.inc | 348 --- .../CreateEntity_SecurityGate.inc | 112 - .../CreateEntity_SegaSonicLetter.inc | 161 -- .../interactables/Spring__sub_8022640.inc | 236 -- .../stage/interactables/Task_InclineRamp.inc | 606 ----- .../interactables/Task_Interactable034.inc | 152 -- .../stage/interactables/Task_PartyBalloon.inc | 384 --- .../interactables/Task_SegaSonicLetter.inc | 287 -- .../TeleportOrb__Task_TeleportOrb.inc | 729 ----- .../air_bubbles__Task_BubbleContainingAir.inc | 408 --- .../interactables/bowl__Task_BowlRotating.inc | 961 ------- .../bumpers__BumperCheckCollAndPosC1.inc | 574 ---- .../bumpers__BumperCheckCollAndPosC3.inc | 1160 -------- .../carousel__Task_CarouselIdle.inc | 640 ----- .../carousel__Task_RidingCarousel.inc | 1155 -------- .../grind_rail__Task_GrindRailStart.inc | 194 -- .../interactables/half_pipe__sub_804D4A0.inc | 189 -- .../interactables/hook__Task_SwingingHook.inc | 1399 ---------- .../hook_rail__Task_HookRail_Type0_2.inc | 452 ---- .../hook_rail__Task_HookRail_Type1_2.inc | 351 --- .../ice_block__Task_IceBlock.inc | 320 --- .../lava_platform__Task_80929A0.inc | 724 ----- ...arble_track_exit__Task_MarbleTrack_Dir.inc | 869 ------ ...rble_track_exit__Task_MarbleTrack_Exit.inc | 887 ------- ...arble_track_exit__Task_MarbleTrack_Unk.inc | 776 ------ .../interactables/pipe__Task_8095E90.inc | 316 --- .../interactables/pipe__Task_PipeExit.inc | 228 -- .../platform_spiked__sub_80805C8.inc | 185 -- .../platform_sq__Task_BarrelOfDoomMini.inc | 620 ----- .../platform_sq__sub_807E914.inc | 188 -- .../interactables/red_flag__sub_8077FA4.inc | 139 - .../interactables/red_flag__sub_80780B4.inc | 155 -- .../interactables/red_flag__sub_80781E4.inc | 178 -- .../interactables/run_wheel__sub_808EC84.inc | 553 ---- .../spiked_barrel__Task_SpikedBarrel.inc | 582 ---- .../spring_hiding__sub_8095224.inc | 329 --- .../stage_goal__Task_StageGoal.inc | 500 ---- .../swing_rope__Task_SwingRope.inc | 1087 -------- .../toggle_gravity__Task_ToggleGravity.inc | 254 -- .../water_bridge__Task_WaterBridge.inc | 305 --- .../stage/intro__LoadStageIntroGraphics.inc | 793 ------ .../sa1/stage/results_2__Task_ChaoHuntHUD.inc | 460 ---- .../game/sa1/stage/results_2__sub_800FD9C.inc | 150 -- .../game/sa1/stage/results__Task_801874C.inc | 439 ---- .../sa1/stage/results_b__Task_8018ECC.inc | 561 ---- .../sa1/stage/results_b__Task_80196FC.inc | 636 ----- .../RingsScatterMultipak_FlippedGravity.inc | 641 ----- .../RingsScatterMultipak_NormalGravity.inc | 642 ----- ...ingsScatterSingleplayer_FlippedGravity.inc | 533 ---- ...RingsScatterSingleplayer_NormalGravity.inc | 566 ---- .../stage/some_task_manager__sub_804D060.inc | 93 - .../stage_results__CreateStageResults.inc | 589 ----- .../stage/stage_ui__CreateSpecialStageUI.inc | 36 - .../game/sa1/stage/stage_ui__Task_8055458.inc | 348 --- .../game/sa1/stage/stage_ui__Task_8055798.inc | 190 -- .../stage_ui__Task_SpecialStageUIMain.inc | 411 --- .../sa1/stage/stage_ui__Task_StageUIMain.inc | 223 -- .../game/sa1/stage/stage_ui__sub_8053BAC.inc | 184 -- .../game/sa1/stage/stage_ui__sub_80550F8.inc | 401 --- .../game/sa1/stage/unk_1__Task_801D200.inc | 177 -- .../course_select__Task_CourseSelectInit.inc | 348 --- .../ui/extra_stage_results__Task_8066520.inc | 131 - .../ui/extra_stage_results__Task_8067C24.inc | 290 -- .../game/sa1/ui/game2_0__sub_805BC94.inc | 951 ------- .../game/sa1/ui/game2_1__sub_805D048.inc | 563 ---- .../game/sa1/ui/game2_1__sub_805D4F0.inc | 197 -- .../game/sa1/ui/game2_3__Task_8063638.inc | 243 -- ..._input_menu__CreatePlayerNameInputMenu.inc | 585 ---- .../player_name_input_menu__Task_80595DC.inc | 239 -- .../player_name_input_menu__sub_8058830.inc | 1687 ------------ .../game/sa1/ui/sound_test__sub_805F950.inc | 189 -- .../sa1/ui/staff_credits__Task_805E888.inc | 155 -- .../ui/time_attack_record__sub_8061144.inc | 308 --- .../ui/time_attack_record__sub_8061480.inc | 449 ---- .../ui/time_attack_records__Task_806BBC0.inc | 171 -- .../game/sa1/ui/vs_record__Task_8060874.inc | 523 ---- .../non_matching/game/save__WriteSaveGame.inc | 133 - .../stage/collision__Coll_Player_Itembox.inc | 538 ---- .../stage/collision__sa2__sub_800D0A0.inc | 1561 ----------- .../shared/stage/collision__sub_800C1E8.inc | 115 - .../shared/stage/collision__sub_800C934.inc | 349 --- .../shared/stage/collision__sub_800CBBC.inc | 333 --- ...mgr__ReceiveRoomEvent_ReachedStageGoal.inc | 375 --- .../stage/item_box__Task_ItemBoxMain.inc | 553 ---- .../shared/stage/sa1_Task_SpotlightBeam.inc | 582 ---- ...p_player__Task_CreateMultiplayerPlayer.inc | 1275 --------- .../stage/sa1_mp_player__sa2__sub_8017670.inc | 757 ------ sa1/chao_garden/include/program_params.h | 6 - sa1/constants/constants.inc | 3 - sa1/constants/gba_constants.inc | 495 ---- sa1/constants/m4a_constants.inc | 257 -- sa1/constants/misc_constants.inc | 28 - sa1/constants/multi_sio_constants.inc | 66 - sa1/genctx.py | 77 - sa1/include/platform/ext/gbagfx/LICENSE | 19 - sa1/include/platform/ext/gbagfx/global.h | 33 - sa1/include/platform/ext/gbagfx/lz.h | 11 - sa1/include/platform/ext/gbagfx/rl.h | 11 - sa1/include/platform/platform.h | 26 - sa1/include/platform/shared/audio/README.txt | 4 - sa1/include/platform/shared/audio/cgb_audio.h | 36 - .../platform/shared/audio/cgb_tables.h | 2100 --------------- sa1/include/platform/shared/dma.h | 30 - sa1/include/platform/shared/input.h | 13 - sa1/include/platform/shared/opengl.h | 10 - sa1/scripts/disasm.cfg | 2222 ---------------- sa1/scripts/extract_credits_data.py | 72 - sa1/scripts/extract_rom_data.py | 59 - sa1/scripts/extract_rom_sym.py | 43 - sa1/scripts/extract_ui_graphics_data.py | 293 --- sa1/scripts/progress.py | 179 -- sa1/scripts/sonicn.cfg | 2341 ----------------- sa1/scripts/sound/SoundDumper.cs | 1177 --------- sa1/scripts/sound/add_global_voicegroups.py | 17 - sa1/scripts/sound/edit_time_signature.py | 29 - .../sound/extract_non_matching_songs.py | 33 - sa1/scripts/sound/extract_songs_info.py | 302 --- .../sound/extract_songs_info_chao_garden.py | 143 - sa1/scripts/sound/extract_sound_samples.py | 8 - sa1/scripts/sound/extract_voicegroups.py | 56 - sa1/scripts/sound/fix_song_names.py | 7 - sa1/scripts/sound/generate_vg_mapping.py | 12 - sa1/scripts/sound/match_next_midi.py | 51 - .../sound/match_next_midi_chao_garden.py | 46 - sa1/scripts/sound/match_songs_to_song_ids.py | 19 - sa1/scripts/sound/match_to_samples.py | 21 - .../sound/name_direct_sound_samples.py | 56 - .../sound/name_programmable_wave_data.py | 46 - sa1/scripts/sound/name_songs.py | 57 - sa1/scripts/sound/update_unmatched_songs.py | 45 - sa1/sound/MPlayDef.s | 430 --- sa1/src/.gitkeep | 0 sa1/src/platform/ext/gbagfx/LICENSE | 19 - sa1/src/platform/ext/gbagfx/lz.c | 206 -- sa1/src/platform/ext/gbagfx/rl.c | 197 -- sa1/src/platform/pret_sdl/README.txt | 4 - sa1/src/platform/pret_sdl/sdl2.c | 1953 -------------- sa1/src/platform/shared/audio/README.txt | 4 - sa1/src/platform/shared/audio/cgb_audio.c | 267 -- .../platform/shared/audio/m4a_sound_mixer.c | 932 ------- sa1/src/platform/shared/common.c | 54 - sa1/src/platform/shared/compression.c | 59 - sa1/src/platform/shared/dma.c | 135 - sa1/src/platform/shared/input.c | 51 - sa1/src/platform/shared/sio_stub.c | 4 - sa1/src/platform/shared/stub.c | 9 - sa1/src/platform/win32/opengl.c | 252 -- sa1/src/platform/win32/win32.c | 452 ---- 254 files changed, 2 insertions(+), 88055 deletions(-) delete mode 100644 sa1/.clang-format delete mode 100644 sa1/.gitattributes delete mode 100644 sa1/.gitignore delete mode 100644 sa1/README.md delete mode 100644 sa1/asm/macros.inc delete mode 100644 sa1/asm/macros/animations.inc delete mode 100644 sa1/asm/macros/c_decl.inc delete mode 100644 sa1/asm/macros/function.inc delete mode 100644 sa1/asm/macros/m4a.inc delete mode 100644 sa1/asm/macros/maps.inc delete mode 100644 sa1/asm/macros/misc.inc delete mode 100644 sa1/asm/macros/music_voice.inc delete mode 100644 sa1/asm/macros/portable.inc delete mode 100644 sa1/asm/non_matching/engine/.gitkeep delete mode 100644 sa1/asm/non_matching/engine/TransformSprite.inc delete mode 100644 sa1/asm/non_matching/engine/UnusedTransform.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__sub_80039E4.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__sub_8004010.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__sub_8004E14.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc delete mode 100644 sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc delete mode 100644 sa1/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc delete mode 100644 sa1/asm/non_matching/game/char_select__Task_805A060.inc delete mode 100644 sa1/asm/non_matching/game/char_select__Task_805A54C.inc delete mode 100644 sa1/asm/non_matching/game/char_select__Task_805A798.inc delete mode 100644 sa1/asm/non_matching/game/char_select__sub_805B324.inc delete mode 100644 sa1/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc delete mode 100644 sa1/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc delete mode 100644 sa1/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_8052D64.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_8052F78.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_80530CC.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_805321C.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_8053370.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_805345C.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__sub_80535FC.inc delete mode 100644 sa1/asm/non_matching/game/gTask_3006240__unused_8052B84.inc delete mode 100644 sa1/asm/non_matching/game/intro_anim__Task_80640C8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc delete mode 100644 sa1/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc delete mode 100644 sa1/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc delete mode 100644 sa1/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/.gitkeep delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/results__Task_801874C.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc delete mode 100644 sa1/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc delete mode 100644 sa1/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc delete mode 100644 sa1/asm/non_matching/game/save__WriteSaveGame.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/collision__sub_800C934.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc delete mode 100644 sa1/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc delete mode 100644 sa1/chao_garden/include/program_params.h delete mode 100644 sa1/constants/constants.inc delete mode 100644 sa1/constants/gba_constants.inc delete mode 100644 sa1/constants/m4a_constants.inc delete mode 100644 sa1/constants/misc_constants.inc delete mode 100644 sa1/constants/multi_sio_constants.inc delete mode 100644 sa1/genctx.py delete mode 100644 sa1/include/platform/ext/gbagfx/LICENSE delete mode 100644 sa1/include/platform/ext/gbagfx/global.h delete mode 100644 sa1/include/platform/ext/gbagfx/lz.h delete mode 100644 sa1/include/platform/ext/gbagfx/rl.h delete mode 100644 sa1/include/platform/platform.h delete mode 100644 sa1/include/platform/shared/audio/README.txt delete mode 100644 sa1/include/platform/shared/audio/cgb_audio.h delete mode 100644 sa1/include/platform/shared/audio/cgb_tables.h delete mode 100644 sa1/include/platform/shared/dma.h delete mode 100644 sa1/include/platform/shared/input.h delete mode 100644 sa1/include/platform/shared/opengl.h delete mode 100644 sa1/scripts/disasm.cfg delete mode 100644 sa1/scripts/extract_credits_data.py delete mode 100644 sa1/scripts/extract_rom_data.py delete mode 100644 sa1/scripts/extract_rom_sym.py delete mode 100644 sa1/scripts/extract_ui_graphics_data.py delete mode 100644 sa1/scripts/progress.py delete mode 100644 sa1/scripts/sonicn.cfg delete mode 100644 sa1/scripts/sound/SoundDumper.cs delete mode 100644 sa1/scripts/sound/add_global_voicegroups.py delete mode 100644 sa1/scripts/sound/edit_time_signature.py delete mode 100644 sa1/scripts/sound/extract_non_matching_songs.py delete mode 100644 sa1/scripts/sound/extract_songs_info.py delete mode 100644 sa1/scripts/sound/extract_songs_info_chao_garden.py delete mode 100644 sa1/scripts/sound/extract_sound_samples.py delete mode 100644 sa1/scripts/sound/extract_voicegroups.py delete mode 100644 sa1/scripts/sound/fix_song_names.py delete mode 100644 sa1/scripts/sound/generate_vg_mapping.py delete mode 100644 sa1/scripts/sound/match_next_midi.py delete mode 100644 sa1/scripts/sound/match_next_midi_chao_garden.py delete mode 100644 sa1/scripts/sound/match_songs_to_song_ids.py delete mode 100644 sa1/scripts/sound/match_to_samples.py delete mode 100644 sa1/scripts/sound/name_direct_sound_samples.py delete mode 100644 sa1/scripts/sound/name_programmable_wave_data.py delete mode 100644 sa1/scripts/sound/name_songs.py delete mode 100644 sa1/scripts/sound/update_unmatched_songs.py delete mode 100644 sa1/sound/MPlayDef.s delete mode 100644 sa1/src/.gitkeep delete mode 100644 sa1/src/platform/ext/gbagfx/LICENSE delete mode 100644 sa1/src/platform/ext/gbagfx/lz.c delete mode 100644 sa1/src/platform/ext/gbagfx/rl.c delete mode 100644 sa1/src/platform/pret_sdl/README.txt delete mode 100644 sa1/src/platform/pret_sdl/sdl2.c delete mode 100644 sa1/src/platform/shared/audio/README.txt delete mode 100644 sa1/src/platform/shared/audio/cgb_audio.c delete mode 100644 sa1/src/platform/shared/audio/m4a_sound_mixer.c delete mode 100644 sa1/src/platform/shared/common.c delete mode 100644 sa1/src/platform/shared/compression.c delete mode 100644 sa1/src/platform/shared/dma.c delete mode 100644 sa1/src/platform/shared/input.c delete mode 100644 sa1/src/platform/shared/sio_stub.c delete mode 100644 sa1/src/platform/shared/stub.c delete mode 100644 sa1/src/platform/win32/opengl.c delete mode 100644 sa1/src/platform/win32/win32.c diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b782c1fd20..ef90cf4e92 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -145,7 +145,7 @@ jobs: working-directory: agbcc - name: Fetch assets - run: curl -o sa1/baserom_sa1.gba -u ${{ secrets.STORAGE_USERNAME }}:${{ secrets.STORAGE_PASSWORD }} ${{ secrets.STORAGE_BASE_URL }}/sa1/baserom.gba + run: curl -o baserom_sa1.gba -u ${{ secrets.STORAGE_USERNAME }}:${{ secrets.STORAGE_PASSWORD }} ${{ secrets.STORAGE_BASE_URL }}/sa1/baserom.gba - name: Compare run: make sa1 -j${nproc} diff --git a/Makefile b/Makefile index 8f800532a9..1e3a6d98cd 100644 --- a/Makefile +++ b/Makefile @@ -437,7 +437,7 @@ tool_libs: clean: tidy clean-tools @$(MAKE) clean -C tools/BriBaSA_ex @$(MAKE) clean -C chao_garden - @$(MAKE) clean -C sa1 + @$(MAKE) clean -f sa1_Makefile @$(MAKE) clean -C multi_boot/subgame_bootstrap @$(MAKE) clean -C multi_boot/programs/subgame_loader @$(MAKE) clean -C multi_boot/collect_rings diff --git a/sa1/.clang-format b/sa1/.clang-format deleted file mode 100644 index 6618450ed4..0000000000 --- a/sa1/.clang-format +++ /dev/null @@ -1,175 +0,0 @@ ---- -AccessModifierOffset: -4 -AlignConsecutiveMacros: Consecutive -AlignConsecutiveAssignments: None -AlignConsecutiveBitFields: None -AlignConsecutiveDeclarations: None -AlignEscapedNewlines: Right -AlignOperands: DontAlign -AlignTrailingComments: false -AllowAllArgumentsOnNextLine: false -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortEnumsOnASingleLine: true -AllowShortBlocksOnASingleLine: Empty -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: All -AllowShortLambdasOnASingleLine: All -AllowShortIfStatementsOnASingleLine: Never -AllowShortLoopsOnASingleLine: false -AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: false -AlwaysBreakTemplateDeclarations: MultiLine -AttributeMacros: - - __capability -BinPackArguments: true -BinPackParameters: true -BraceWrapping: - AfterCaseLabel: false - AfterClass: false - AfterControlStatement: Never - AfterEnum: false - AfterFunction: true - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: false - AfterUnion: false - AfterExternBlock: false - BeforeCatch: false - BeforeElse: false - BeforeLambdaBody: false - BeforeWhile: false - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakBeforeBinaryOperators: All -BreakBeforeConceptDeclarations: true -BreakBeforeBraces: WebKit -BreakBeforeInheritanceComma: false -BreakInheritanceList: BeforeColon -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BreakConstructorInitializers: BeforeComma -BreakAfterJavaFieldAnnotations: false -BreakStringLiterals: true -ColumnLimit: 140 -CommentPragmas: '^ IWYU pragma:' -CompactNamespaces: false -ConstructorInitializerIndentWidth: 4 -ContinuationIndentWidth: 4 -Cpp11BracedListStyle: false -DeriveLineEnding: true -DerivePointerAlignment: false -DisableFormat: false -EmptyLineAfterAccessModifier: Never -EmptyLineBeforeAccessModifier: LogicalBlock -ExperimentalAutoDetectBinPacking: false -BasedOnStyle: '' -ConstructorInitializerAllOnOneLineOrOnePerLine: false -AllowAllConstructorInitializersOnNextLine: true -FixNamespaceComments: false -ForEachMacros: - - foreach - - Q_FOREACH - - BOOST_FOREACH -IfMacros: - - KJ_IF_MAYBE -IncludeBlocks: Preserve -IncludeCategories: - - Regex: '^"(llvm|llvm-c|clang|clang-c)/' - Priority: 2 - SortPriority: 0 - CaseSensitive: false - - Regex: '^(<|"(gtest|gmock|isl|json)/)' - Priority: 3 - SortPriority: 0 - CaseSensitive: false - - Regex: '.*' - Priority: 1 - SortPriority: 0 - CaseSensitive: false -IncludeIsMainRegex: '(Test)?$' -IncludeIsMainSourceRegex: '' -IndentAccessModifiers: false -IndentCaseLabels: true -IndentCaseBlocks: false -IndentGotoLabels: true -IndentPPDirectives: None -IndentExternBlock: AfterExternBlock -IndentRequires: false -IndentWidth: 4 -IndentWrappedFunctionNames: false -InsertTrailingCommas: None -JavaScriptQuotes: Leave -JavaScriptWrapImports: true -KeepEmptyLinesAtTheStartOfBlocks: true -LambdaBodyIndentation: Signature -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: Inner -ObjCBinPackProtocolList: Auto -ObjCBlockIndentWidth: 4 -ObjCBreakBeforeNestedBlockParam: true -ObjCSpaceAfterProperty: true -ObjCSpaceBeforeProtocolList: true -PenaltyBreakAssignment: 2 -PenaltyBreakBeforeFirstCallParameter: 19 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyBreakTemplateDeclaration: 10 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 60 -PenaltyIndentedWhitespace: 0 -PointerAlignment: Right -PPIndentWidth: -1 -ReferenceAlignment: Pointer -ReflowComments: true -ShortNamespaceLines: 1 -SortIncludes: Never -SortJavaStaticImport: Before -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: true -SpaceBeforeAssignmentOperators: true -SpaceBeforeCaseColon: false -SpaceBeforeCpp11BracedList: true -SpaceBeforeCtorInitializerColon: true -SpaceBeforeInheritanceColon: true -SpaceBeforeParens: ControlStatements -SpaceAroundPointerQualifiers: Default -SpaceBeforeRangeBasedForLoopColon: true -SpaceInEmptyBlock: true -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 1 -SpacesInAngles: Never -SpacesInConditionalStatement: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInLineCommentPrefix: - Minimum: 1 - Maximum: -1 -SpacesInParentheses: false -SpacesInSquareBrackets: false -SpaceBeforeSquareBrackets: false -BitFieldColonSpacing: Both -Standard: Latest -StatementAttributeLikeMacros: - - Q_EMIT -StatementMacros: - - Q_UNUSED - - QT_REQUIRE_VERSION -TabWidth: 8 -UseCRLF: false -UseTab: Never -WhitespaceSensitiveMacros: - - STRINGIZE - - PP_STRINGIZE - - BOOST_PP_STRINGIZE - - NS_SWIFT_NAME - - CF_SWIFT_NAME -... - diff --git a/sa1/.gitattributes b/sa1/.gitattributes deleted file mode 100644 index 1520f837b1..0000000000 --- a/sa1/.gitattributes +++ /dev/null @@ -1,25 +0,0 @@ -*.pal text eol=crlf - -*.s text eol=lf -*.txt text eol=lf -Makefile text eol=lf -*.mk text eol=lf -*.c text eol=lf -*.h text eol=lf -*.pl text eol=lf -*.inc text eol=lf -*.sha1 text eol=lf -*.sed text eol=lf -*.sh text eol=lf -*.json text eol=lf - -*.png binary -*.bin binary -*.gba binary -*.pcm binary - -*.h linguist-language=C -*.inc linguist-language=Assembly - -tools/** linguist-vendored -scripts/** linguist-vendored diff --git a/sa1/.gitignore b/sa1/.gitignore deleted file mode 100644 index 943b51ab00..0000000000 --- a/sa1/.gitignore +++ /dev/null @@ -1,94 +0,0 @@ -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Visual Studio folder -.vs -*.pdb - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# ========================= -# Operating System Files -# ========================= - -# OSX -# ========================= - -.DS_Store -.AppleDouble -.LSOverride - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# ========================= -# Build Outputs -# ========================= -*.gba -*.sav -*.elf -*.map -*.bin - -*.a - -*.hex -*.o -*.obj -*.rdi -*.dump -build -tools/agbcc -**/sound/*/songs/midi/*.s -/ctx.c -reports -.vscode/*.log -*.gbapal -*.lz -*.rl -*.gba -./maps -*.4bpp -*.8bpp -libagbsyscall/*.s - -!data/*/maps/*/*/tilemaps/*/*.bin -*.exe -*.dll -*.lib -*.sdl - -# Third Party deps -/ext - -# Generated nob files -/nob* diff --git a/sa1/README.md b/sa1/README.md deleted file mode 100644 index 6c3632e50b..0000000000 --- a/sa1/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Sonic Advance (Europe) - -This is a work in progress matching decompilation of Sonic Advance -

- CI status - Decompilation Progress - Decompilation Matching Progress - Contributors - Discord -

- -> :warning: **This project is not completed and still under active development** - -This is a work in progress matching decompilation of Sonic Advance - -It so far builds the following ROM: -* [**sa1.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=0330) `sha1: eb00f101af23d728075ac2117e27ecd8a4b4c3e9` (Europe) (En,Ja,Fr,De,Es) - -**Provide assets** - -You must have a copy of the Sonic Advance ROM mentioned above named `baserom_sa1.gba` in the repository's root directory. - diff --git a/sa1/asm/macros.inc b/sa1/asm/macros.inc deleted file mode 100644 index 497a8576b4..0000000000 --- a/sa1/asm/macros.inc +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros/misc.inc" - - .include "asm/macros/function.inc" - .include "asm/macros/m4a.inc" - .include "asm/macros/music_voice.inc" diff --git a/sa1/asm/macros/animations.inc b/sa1/asm/macros/animations.inc deleted file mode 100644 index 975504937e..0000000000 --- a/sa1/asm/macros/animations.inc +++ /dev/null @@ -1,85 +0,0 @@ -.equ AnimCmd_GetTiles, -1 -.equ AnimCmd_GetPalette, -2 -.equ AnimCmd_JumpBack, -3 -.equ AnimCmd_4, -4 -.equ AnimCmd_PlaySoundEffect, -5 -.equ AnimCmd_6, -6 -.equ AnimCmd_TranslateSprite, -7 -.equ AnimCmd_8, -8 -.equ AnimCmd_SetIdAndVariant, -9 -.equ AnimCmd_10, -10 -.equ AnimCmd_11, -11 -.equ AnimCmd_12, -12 - -.equ NUM_ANIMATION_TABLE_ENTRIES, 1133 - - -.macro mGetTiles tile_index:req, num_tiles_to_copy:req -.4byte AnimCmd_GetTiles - .4byte \tile_index - .4byte \num_tiles_to_copy -.endm - -.macro mGetPalette pal_id:req, num_colors_to_copy:req, insert_offset:req -.4byte AnimCmd_GetPalette - .4byte \pal_id - .2byte \num_colors_to_copy - .2byte \insert_offset -.endm - -.macro mJumpBack offset:req -.4byte AnimCmd_JumpBack - .4byte \offset -.endm - -.macro mAnimCmd4 -.4byte AnimCmd_4 -.endm - -.macro mPlaySoundEffect songId:req -.4byte AnimCmd_PlaySoundEffect - .2byte \songId - .space 2 -.endm - -.macro mAnimCmd6 unk4:req, unk8:req -.4byte AnimCmd_6 - .4byte \unk4 - .4byte \unk8 -.endm - -.macro mTranslateSprite x:req y:req -.4byte AnimCmd_TranslateSprite - .2byte \x - .2byte \y -.endm - -.macro mAnimCmd8 unk4:req, unk8:req -.4byte AnimCmd_8 - .4byte \unk4 - .4byte \unk8 -.endm - -.macro mSetIdAndVariant animId:req, variant:req -.4byte AnimCmd_SetIdAndVariant - .2byte \animId - .2byte \variant -.endm - -.macro mAnimCmd10 unk4:req, unk8:req, unkC:req -.4byte AnimCmd_10 - .4byte \unk4 - .4byte \unk8 - .4byte \unkC -.endm - -.macro mAnimCmd11 unk4:req -.4byte AnimCmd_11 - .4byte \unk4 -.endm - -.macro mAnimCmd12 unk4:req -.4byte AnimCmd_12 - .4byte \unk4 -.endm - diff --git a/sa1/asm/macros/c_decl.inc b/sa1/asm/macros/c_decl.inc deleted file mode 100644 index 72820ce208..0000000000 --- a/sa1/asm/macros/c_decl.inc +++ /dev/null @@ -1,10 +0,0 @@ -// NOTE: -// For this to work, the file that is including this file HAS to be passed through the C preprocessor before assembling! - -// 32bit Windows and MacOS versions prefix labels using an underscore. -// For interoperability we need to replicate that behavior here. -#if ( (CPU_ARCH_X86 && defined(_WIN32) && !defined(_WIN64)) || defined(__APPLE__) ) - #define C_DECL(label) _##label -#else - #define C_DECL(label) label -#endif diff --git a/sa1/asm/macros/function.inc b/sa1/asm/macros/function.inc deleted file mode 100644 index f3bcb50f8e..0000000000 --- a/sa1/asm/macros/function.inc +++ /dev/null @@ -1,29 +0,0 @@ - .macro arm_func_start name - .align 2, 0 - .global \name - .arm - .type \name, function - .endm - - .macro arm_func_end name - .size \name, .-\name - .endm - - .macro THUMB_FUNC_START name - .align 2, 0 - .global \name - .thumb - .thumb_func - .type \name, function - .endm - - .macro non_word_aligned_thumb_func_start name - .global \name - .thumb - .thumb_func - .type \name, function - .endm - - .macro thumb_func_end name - .size \name, .-\name - .endm diff --git a/sa1/asm/macros/m4a.inc b/sa1/asm/macros/m4a.inc deleted file mode 100644 index 1e5a98e6d0..0000000000 --- a/sa1/asm/macros/m4a.inc +++ /dev/null @@ -1,13 +0,0 @@ - .macro song label, music_player, unknown - mPtr \label - .short \music_player - .short \unknown - .endm - - .macro music_player info_struct, track_struct, unknown_1, unknown_2 - mPtr \info_struct - mPtr \track_struct - .byte \unknown_1 - .space 1 - .short \unknown_2 - .endm diff --git a/sa1/asm/macros/maps.inc b/sa1/asm/macros/maps.inc deleted file mode 100644 index 932f90af0a..0000000000 --- a/sa1/asm/macros/maps.inc +++ /dev/null @@ -1,17 +0,0 @@ - -@ TODO: Replace MapHeaders in ASM format with C structs -.macro MapHeader_BG xTiles:req, yTiles:req, animTileSize:req, animFrameCount:req, animDelay:req, tileset:req, num_colors:req, palette:req, palOffset:req, palLength:req, metatiles:req, map:req - .2byte \xTiles, \yTiles - .2byte \animTileSize - .byte \animFrameCount, \animDelay - .4byte \tileset, \num_colors - .4byte \palette - .2byte \palOffset, \palLength - .4byte \metatiles - .4byte \map -.endm - -.macro MapHeader xTiles:req, yTiles:req, animTileSize:req, animFrameCount:req, animDelay:req, tileset:req, num_colors:req, palette:req, palOffset:req, palLength:req, metatiles:req, map:req, width:req, height:req - MapHeader_BG \xTiles, \yTiles, \animTileSize, \animFrameCount, \animDelay, \tileset, \num_colors, \palette, \palOffset, \palLength, \metatiles, \map - .2byte \width, \height -.endm diff --git a/sa1/asm/macros/misc.inc b/sa1/asm/macros/misc.inc deleted file mode 100644 index 99520eea10..0000000000 --- a/sa1/asm/macros/misc.inc +++ /dev/null @@ -1,7 +0,0 @@ -.macro mDataSize label:req - .size \label, .-\label -.endm - -.macro RGB r:req g:req b:req - .short ((\r << 0) | (\g << 5) | (\b << 10)) -.endm diff --git a/sa1/asm/macros/music_voice.inc b/sa1/asm/macros/music_voice.inc deleted file mode 100644 index 28f8173af3..0000000000 --- a/sa1/asm/macros/music_voice.inc +++ /dev/null @@ -1,125 +0,0 @@ - .macro voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte 0 - _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release - .endm - - .macro voice_directsound_no_resample base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte 8 - _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release - .endm - - .macro voice_directsound_alt base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte 16 - _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release - .endm - - .macro _voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte \base_midi_key - .byte 0 - .if \pan != 0 - .byte (0x80 | \pan) - .else - .byte 0 - .endif -mAlignWord - mPtr \sample_data_pointer - .byte \attack - .byte \decay - .byte \sustain - .byte \release - .endm - - .macro voice_square_1 sweep, duty_cycle, attack, decay, sustain, release - _voice_square_1 1, \sweep, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro voice_square_1_alt sweep, duty_cycle, attack, decay, sustain, release - _voice_square_1 9, \sweep, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro _voice_square_1 type, sweep, duty_cycle, attack, decay, sustain, release - .byte \type, 60, 0 - .byte \sweep -mAlignWord - .byte (\duty_cycle & 0x3) - .byte 0, 0, 0 -mAlignWord - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_square_2 duty_cycle, attack, decay, sustain, release - _voice_square_2 2, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro voice_square_2_alt duty_cycle, attack, decay, sustain, release - _voice_square_2 10, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro _voice_square_2 type, duty_cycle, attack, decay, sustain, release - .byte \type, 60, 0, 0 -mAlignWord - .byte (\duty_cycle & 0x3) - .byte 0, 0, 0 -mAlignWord - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_programmable_wave wave_samples_pointer, attack, decay, sustain, release - _voice_programmable_wave 3, \wave_samples_pointer, \attack, \decay, \sustain, \release - .endm - - .macro voice_programmable_wave_alt wave_samples_pointer, attack, decay, sustain, release - _voice_programmable_wave 11, \wave_samples_pointer, \attack, \decay, \sustain, \release - .endm - - .macro _voice_programmable_wave type, wave_samples_pointer, attack, decay, sustain, release - .byte \type, 60, 0, 0 -mAlignWord - mPtr \wave_samples_pointer - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_noise unk1, unk2, unk3, period, attack, decay, sustain, release - _voice_noise 4, \unk1, \unk2, \unk3, \period, \attack, \decay, \sustain, \release - .endm - - .macro voice_noise_alt unk1, unk2, unk3, period, attack, decay, sustain, release - _voice_noise 12, \unk1, \unk2, \unk3, \period, \attack, \decay, \sustain, \release - .endm - - .macro _voice_noise type, unk1, unk2, unk3, period, attack, decay, sustain, release - .byte \type, \unk1, \unk2, \unk3 -mAlignWord - .byte (\period & 0x1) - .byte 0, 0, 0 -mAlignWord - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_keysplit voice_group_pointer, keysplit_table_pointer -mAlignWord - .byte 0x40, 0, 0, 0 -mAlignWord - mPtr \voice_group_pointer - mPtr \keysplit_table_pointer - .endm - - .macro voice_keysplit_all voice_group_pointer -mAlignWord - .byte 0x80, 0, 0, 0 -mAlignWord - mPtr \voice_group_pointer - mPtr 0 - .endm diff --git a/sa1/asm/macros/portable.inc b/sa1/asm/macros/portable.inc deleted file mode 100644 index b389fb26a0..0000000000 --- a/sa1/asm/macros/portable.inc +++ /dev/null @@ -1,29 +0,0 @@ -.macro mSectionRodata -#if (!CPU_ARCH_X86 && defined(__APPLE__)) // On macos, native compilation uses this name for the rodata section - .section __DATA,__data -#else - .section .rodata -#endif -.endm - -// Used so that we can have cross platform (32bit or 64bit) pointers -.macro mPtr value -#if defined(__aarch64__) || defined(__x86_64__) - .quad \value -#else - .int \value -#endif -.endm - -// Used for cross platform aligning of labels -.macro mAlignWord -#if defined(__APPLE__) && (defined(__aarch64__) || defined(__x86_64__)) - .align 3 // Align to 8 bytes on macOS (2^3 = 8) -#elif defined(__aarch64__) || defined(__x86_64__) - .align 8 // Align to 8 bytes on other platforms -#elif defined(PLATFORM_GBA) - .align 2 // Align to 4 bytes on GBA -#else - .align 4 // Default alignment to 4 bytes -#endif -.endm diff --git a/sa1/asm/non_matching/engine/.gitkeep b/sa1/asm/non_matching/engine/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/sa1/asm/non_matching/engine/TransformSprite.inc b/sa1/asm/non_matching/engine/TransformSprite.inc deleted file mode 100644 index 67bc6853f5..0000000000 --- a/sa1/asm/non_matching/engine/TransformSprite.inc +++ /dev/null @@ -1,329 +0,0 @@ -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - str r0, [sp, #0x24] @ sp24 = s - adds r6, r1, #0 @ r6 = transform - ldr r1, [r0, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 @ if (dimensions != (SpriteOffset *)-1) - bne _sa2_0800487C - b _sa2_08004AAA -_sa2_0800487C: - mov r8, r1 @ r8 = dimensions - add r2, sp, #0x20 @ r2 = sp20 = &big.affineIndex - ldr r1, [sp, #0x24] @ r1 = s - ldr r0, [r1, #0x10] - movs r1, #0x1f - ands r0, r1 - strh r0, [r2] @ big.affineIndex = (frameFlags & SPRITE_FLAG_MASK_ROT_SCALE); - ldrh r4, [r2] @ r2 = big.affineIndex - lsls r4, r4, #5 - ldr r0, _sa2_08004A14 @ =gOamBuffer + 0x6 - adds r4, r4, r0 @ r4 = affine = &gOamBuffer[big.affineIndex * 4].all.affineParam; - subs r2, #0x18 - str r2, [sp, #0x28] @; sp28 = sp08 = &big.qDirX - ldr r2, _sa2_08004A18 @ =gSineTable - ldrh r0, [r6] @ r0 = transform.rotation - ldr r1, _sa2_08004A1C @ =0x000003FF - ands r1, r0 @ r1 = (transform->rotation & ONE_CYCLE) - movs r3, #0x80 - lsls r3, r3, #1 @ r3 = 0x100 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] @ r0 = COS(transform->rotation & ONE_CYCLE) - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r7, [sp, #0x28] @ r7 = sp28 = sp08 = &big.qDirX - strh r0, [r7] @ sp00.offsetX = *sp28 = COS_24_8(transform->rotation & ONE_CYCLE) - movs r0, #0xa - add r0, sp - mov sl, r0 @ sl = &big.qDirY - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] @ r0 = SIN(transform->rotation & ONE_CYCLE) - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, sl - strh r0, [r1] @ big.qDirY = SIN_24_8(transform->rotation & ONE_CYCLE); - add r7, sp, #0xc @ r7 = &big.unkC[0] - ldrh r0, [r6, #2] - strh r0, [r7] @ big.unkC[0] = transform->width - movs r2, #0xe - add r2, sp - mov sb, r2 @ sb = big.unkC[1] - ldrh r0, [r6, #4] - strh r0, [r2] @ big.unkC[1] = transform->height -__Div_1: - movs r5, #0x80 - lsls r5, r5, #9 @ r5 = 0x10000 - ldrh r1, [r7] @ r1 = big.unkC[0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 @ r0 = r5 = 0x10000 - bl Div @ res = Div(0x10000, big.unkC[0]); - ldr r3, [sp, #0x28] @ r3 = sp28 = &big.qDirX - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 @ r1 = x16 = big.qDirX; - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4] @ affine[0] = I(x16 * res); -__Div_2: - ldrh r1, [r7] @ r1 = big.unkC[0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 @ r5 = 0x10000 - bl Div @ Div 2 - mov r2, sl @ r2 = sl = &big.qDirY - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #8] -__Div_3: - mov r3, sb @ r3 = sb = &big.unkC[1] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 @ r5 = 0x10000 - bl Div @ Div 3 - mov r2, sl @ r2 = sl = &big.qDirY - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x10] -__Div_4: - mov r3, sb @ r3 = sb = big.unkC[1] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 @ r5 = 0x10000 - bl Div @ Div 4 - ldr r2, [sp, #0x28] @ r2 = sp28 = &big.qDirX - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x18] -__post_Divs: - ldrh r0, [r6, #2] @ r0 = (u16)transform.width - movs r3, #2 - ldrsh r5, [r6, r3] @ r5 = transform.width - cmp r5, #0 - bge _sa2_08004966 @ if (transform->width < 0) - rsbs r0, r0, #0 - strh r0, [r7] @ big.unkC[0] = -transform->width; -_sa2_08004966: - movs r1, #4 - ldrsh r0, [r6, r1] - ldrh r2, [r6, #4] - mov ip, r2 @ ip = transform.height - cmp r0, #0 - bge _sa2_0800497A @ if (transform->height < 0) - mov r3, ip - rsbs r0, r3, #0 - mov r1, sb - strh r0, [r1] @ big.unkC[1] = -transform->height; -_sa2_0800497A: - mov r2, sp @ r2 = sp00 = &big - ldr r3, [sp, #0x28] @ r3 = sp28 = &big.qDirX - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r2] @ big.unk0[0] = big.qDirX * big.unkC[0] - -__sa2_08004990: - mov r4, sp - adds r4, #2 @ r4 = &big.unk0[1] - mov r0, sl @ r0 = sl = &big.qDirY - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4] @ big.unk0[1] = - -__sa2_080049AA: - add r3, sp, #4 - mov r2, sl @ r2 = sl = &big.qDirY - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r7, sb @ r7 = sb = big.unkC[1] - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r3] @ big.unk0[2] = (big.qDirY * big.unkC[1]) >> 8 - -__sa2_080049C2: - mov r2, sp - adds r2, #6 - ldr r0, [sp, #0x28] @ r0 = sp28 = &big.qDirX - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r2] @ big.unk0[3] = (big.qDirX * big.unkC[1]) >> 8 - - add r0, sp, #0x18 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] @ big.unk18[0][0] = 0x100; - - adds r0, #2 - movs r1, #0 - strh r1, [r0] @ big.unk18[0][1] = 0; - - add r0, sp, #0x1c - strh r1, [r0] @ big.unk18[1][0] = 0; - - adds r0, #2 - movs r7, #0x80 - lsls r7, r7, #1 - strh r7, [r0] @ big.unk18[1][1] = 0x100; - - movs r1, #6 - ldrsh r0, [r6, r1] - str r0, [sp, #0x10] @ big.posX = transform->x; - - movs r7, #8 - ldrsh r0, [r6, r7] - str r0, [sp, #0x14] @ big.posY = transform->y; - - adds r6, r4, #0 @ r6 = &big.unk0[1] - adds r7, r3, #0 @ r7 = r3 = &big.unk0[2] - mov sb, r2 @ sb = r2 = &big.unk0[3] -__sa2_08004A04: - cmp r5, #0 @ if (transform->width > 0) - ble _sa2_08004A20 -__sa2_08004A08: - mov r0, r8 @ r0 = r8 = dimensions - ldrh r4, [r0, #8] - ldrh r2, [r0, #4] - b _sa2_08004A2E - .align 2, 0 -_sa2_08004A14: .4byte gOamBuffer + 0x6 -_sa2_08004A18: .4byte gSineTable -_sa2_08004A1C: .4byte 0x000003FF -_sa2_08004A20: - mov r2, r8 @ r2 = r8 = dimensions - ldrh r1, [r2, #4] - ldrh r0, [r2, #8] - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r2, r1, #0 -_sa2_08004A2E: - mov r3, ip @ r3 = ip = - lsls r0, r3, #0x10 - cmp r0, #0 - ble _sa2_08004A3E - mov r0, r8 @ r0 = r8 = dimensions - ldrh r3, [r0, #0xa] - ldrh r5, [r0, #6] - b _sa2_08004A4C -_sa2_08004A3E: - mov r3, r8 @ r3 = r8 = dimensions - ldrh r1, [r3, #6] - ldrh r0, [r3, #0xa] - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r5, r1, #0 -_sa2_08004A4C: - mov r0, sp @ r0 = big.unk0[0] - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsrs r2, r2, #1 - subs r4, r4, r2 @ r4 = (r4 - (r2 / 2)) - adds r1, r0, #0 - muls r1, r4, r1 @ r1 = big.unk0[0] * r4; - ldrh r0, [r6] @ r0 = *r6 = big.unk0[1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsrs r5, r5, #1 - subs r3, r3, r5 @ r3 = r3 - (r5 / 2) - muls r0, r3, r0 - adds r1, r1, r0 - lsls r2, r2, #8 - adds r1, r1, r2 - asrs r1, r1, #8 - ldr r0, [sp, #0x10] - subs r0, r0, r1 - str r0, [sp, #0x10] - -__sa2_080004A7E: - ldrh r0, [r7] @ r0 = big.unk0[2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r0, #0 - muls r1, r4, r1 - mov r7, sb @ r7 = sb = &big.unk0[3] - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r3, r0 - adds r1, r1, r0 - lsls r5, r5, #8 - adds r1, r1, r5 - asrs r1, r1, #8 - ldr r0, [sp, #0x14] - subs r0, r0, r1 - str r0, [sp, #0x14] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x24] - strh r0, [r1, #0x16] - ldr r0, [sp, #0x14] - strh r0, [r1, #0x18] -_sa2_08004AAA: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/engine/UnusedTransform.inc b/sa1/asm/non_matching/engine/UnusedTransform.inc deleted file mode 100644 index 69db09bc92..0000000000 --- a/sa1/asm/non_matching/engine/UnusedTransform.inc +++ /dev/null @@ -1,430 +0,0 @@ -.syntax unified -.text -@ VERY similar to sub_8004860 and sub_8004E14 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - str r0, [sp, #0x24] - adds r7, r1, #0 - ldr r1, [r0, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _sa2_08004AD8 - b _sa2_08004E04 -_sa2_08004AD8: - mov sb, r1 - add r2, sp, #0x20 - ldr r1, [sp, #0x24] - ldr r0, [r1, #0x10] - movs r1, #0x1f - ands r0, r1 - strh r0, [r2] - ldrh r4, [r2] - lsls r4, r4, #5 - ldr r0, _sa2_08004D58 @ =gOamBuffer + 0x6 - adds r4, r4, r0 - subs r2, #0x18 - str r2, [sp, #0x28] - ldrh r0, [r7] - ldr r3, _sa2_08004D5C @ =gSpriteTransformRotation - ldrh r1, [r3] - adds r0, r0, r1 - ldr r2, _sa2_08004D60 @ =0x000003FF - ands r0, r2 - movs r5, #0x80 - lsls r5, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #1 - ldr r6, _sa2_08004D64 @ =gSineTable - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [sp, #0x28] - strh r0, [r1] - movs r3, #0xa - add r3, sp - mov r8, r3 - ldrh r0, [r7] - ldr r5, _sa2_08004D5C @ =gSpriteTransformRotation - ldrh r1, [r5] - adds r0, r0, r1 - ands r0, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - strh r0, [r3] - add r6, sp, #0xc - movs r0, #2 - ldrsh r1, [r7, r0] - ldr r2, _sa2_08004D68 @ =gSpriteTransformScaleX - ldrh r0, [r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r6] - movs r3, #0xe - add r3, sp - mov sl, r3 - movs r5, #4 - ldrsh r1, [r7, r5] - ldr r2, _sa2_08004D6C @ =gSpriteTransformScaleY - ldrh r0, [r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r3] - movs r5, #0x80 - lsls r5, r5, #9 - ldrh r1, [r6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - ldr r3, [sp, #0x28] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4] - ldrh r1, [r6] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - mov r2, r8 - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #8] - mov r3, sl - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - mov r2, r8 - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x10] - mov r3, sl - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - ldr r5, [sp, #0x28] - ldrh r1, [r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x18] - movs r1, #2 - ldrsh r0, [r7, r1] - str r0, [sp, #0x2c] - cmp r0, #0 - bge _sa2_08004BF0 - movs r2, #2 - ldrsh r0, [r7, r2] - rsbs r0, r0, #0 - ldr r3, _sa2_08004D68 @ =gSpriteTransformScaleX - ldrh r1, [r3] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r6] -_sa2_08004BF0: - movs r4, #4 - ldrsh r0, [r7, r4] - ldr r5, _sa2_08004D6C @ =gSpriteTransformScaleY - ldrh r3, [r5] - ldrh r2, [r7, #4] - mov r1, sp - strh r2, [r1, #0x34] - cmp r0, #0 - bge _sa2_08004C14 - movs r4, #4 - ldrsh r0, [r7, r4] - rsbs r0, r0, #0 - muls r0, r3, r0 - asrs r0, r0, #8 - mov r5, sl - strh r0, [r5] - ldr r0, _sa2_08004D6C @ =gSpriteTransformScaleY - ldrh r3, [r0] -_sa2_08004C14: - mov r2, sp - ldr r4, [sp, #0x28] - ldrh r1, [r4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r2] - mov r5, sp - adds r5, #2 - str r5, [sp, #0x30] - mov r0, r8 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - ldrh r0, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r5] - add r1, sp, #4 - mov ip, r1 - mov r2, r8 - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r4, sl - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - mov r5, ip - strh r0, [r5] - mov r6, sp - adds r6, #6 - str r6, [sp, #0x38] - ldr r0, [sp, #0x28] - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r6] - add r5, sp, #0x18 - ldr r1, _sa2_08004D5C @ =gSpriteTransformRotation - ldrh r0, [r1] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - ldr r4, _sa2_08004D64 @ =gSineTable - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r6, _sa2_08004D68 @ =gSpriteTransformScaleX - ldrh r1, [r6] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r5] - mov r2, sp - adds r2, #0x1a - ldr r1, _sa2_08004D5C @ =gSpriteTransformRotation - ldrh r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r4, #0 - ldrsh r0, [r0, r4] - rsbs r0, r0, #0 - asrs r0, r0, #6 - ldrh r1, [r6] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r2] - add r4, sp, #0x1c - ldr r6, _sa2_08004D5C @ =gSpriteTransformRotation - ldrh r0, [r6] - lsls r0, r0, #1 - ldr r1, _sa2_08004D64 @ =gSineTable - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r3, r0 - asrs r0, r0, #8 - strh r0, [r4] - mov r3, sp - adds r3, #0x1e - ldrh r0, [r6] - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r6, _sa2_08004D6C @ =gSpriteTransformScaleY - ldrh r1, [r6] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r3] - ldrh r0, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #6 - ldrsh r1, [r7, r5] - muls r1, r0, r1 - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #8 - ldrsh r2, [r7, r6] - muls r0, r2, r0 - adds r1, r1, r0 - ldr r0, _sa2_08004D70 @ =gSpriteTransformX - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #8 - str r1, [sp, #0x10] - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #6 - ldrsh r1, [r7, r4] - muls r1, r0, r1 - ldrh r0, [r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #8 - ldrsh r2, [r7, r5] - muls r0, r2, r0 - adds r1, r1, r0 - ldr r0, _sa2_08004D74 @ =gSpriteTransformY - movs r6, #0 - ldrsh r0, [r0, r6] - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #8 - str r1, [sp, #0x14] - ldr r7, [sp, #0x30] - mov r8, ip - ldr r6, [sp, #0x38] - ldr r0, [sp, #0x2c] - cmp r0, #0 - ble _sa2_08004D78 - mov r1, sb - ldrh r4, [r1, #8] - ldrh r2, [r1, #4] - b _sa2_08004D86 - .align 2, 0 -_sa2_08004D58: .4byte gOamBuffer + 0x6 -_sa2_08004D5C: .4byte gSpriteTransformRotation -_sa2_08004D60: .4byte 0x000003FF -_sa2_08004D64: .4byte gSineTable -_sa2_08004D68: .4byte gSpriteTransformScaleX -_sa2_08004D6C: .4byte gSpriteTransformScaleY -_sa2_08004D70: .4byte gSpriteTransformX -_sa2_08004D74: .4byte gSpriteTransformY -_sa2_08004D78: - mov r2, sb - ldrh r1, [r2, #4] - ldrh r0, [r2, #8] - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r2, r1, #0 -_sa2_08004D86: - mov r3, sp - ldrh r3, [r3, #0x34] - lsls r0, r3, #0x10 - cmp r0, #0 - ble _sa2_08004D98 - mov r5, sb - ldrh r3, [r5, #0xa] - ldrh r5, [r5, #6] - b _sa2_08004DA6 -_sa2_08004D98: - mov r0, sb - ldrh r1, [r0, #6] - ldrh r0, [r0, #0xa] - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r5, r1, #0 -_sa2_08004DA6: - mov r0, sp - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - lsrs r2, r2, #1 - subs r4, r4, r2 - adds r1, r0, #0 - muls r1, r4, r1 - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsrs r5, r5, #1 - subs r3, r3, r5 - muls r0, r3, r0 - adds r1, r1, r0 - lsls r2, r2, #8 - adds r1, r1, r2 - asrs r1, r1, #8 - ldr r0, [sp, #0x10] - subs r0, r0, r1 - str r0, [sp, #0x10] - mov r1, r8 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r0, #0 - muls r1, r4, r1 - ldrh r0, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r3, r0 - adds r1, r1, r0 - lsls r5, r5, #8 - adds r1, r1, r5 - asrs r1, r1, #8 - ldr r0, [sp, #0x14] - subs r0, r0, r1 - str r0, [sp, #0x14] - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x24] - strh r0, [r2, #0x16] - ldr r0, [sp, #0x14] - strh r0, [r2, #0x18] -_sa2_08004E04: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc b/sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc deleted file mode 100644 index b9560e9520..0000000000 --- a/sa1/asm/non_matching/engine/sa2__sub_8002B20_sa1.inc +++ /dev/null @@ -1,1476 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - movs r0, #0 - str r0, [sp, #4] - ldr r0, _08001ADC @ =gBackgroundsCopyQueueCursor - ldr r1, _08001AE0 @ =gBackgroundsCopyQueueIndex - ldrb r2, [r0] - adds r3, r0, #0 - adds r4, r1, #0 - ldrb r1, [r4] - cmp r2, r1 - bne _08001AC8 - bl _0800258C -_08001AC8: - ldr r0, _08001AE4 @ =0x04000004 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08001AE8 - movs r0, #0 - bl sub_800258E - .align 2, 0 -_08001ADC: .4byte gBackgroundsCopyQueueCursor -_08001AE0: .4byte gBackgroundsCopyQueueIndex -_08001AE4: .4byte 0x04000004 -_08001AE8: - ldr r0, _08001B48 @ =0x04000006 - ldrh r0, [r0] - ldr r2, _08001B4C @ =gBackgroundsCopyQueue - ldrb r1, [r3] - lsls r0, r1, #2 - adds r0, r0, r2 - ldr r6, [r0] - adds r1, #1 - movs r0, #0xf - ands r1, r0 - strb r1, [r3] - ldrh r2, [r6, #0x2e] - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08001B14 - ldr r1, [r6, #0x30] - ldr r0, [r6, #0x34] - cmp r1, r0 - bne _08001B14 - bl _8002580 -_08001B14: - ldrh r3, [r6, #0x14] - str r3, [sp] - movs r3, #3 - adds r5, r3, #0 - ands r5, r2 - ldr r4, [sp] - cmp r5, #1 - bls _08001B58 - ldr r0, _08001B50 @ =gDispCnt - ldrh r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08001B58 - ldr r1, _08001B54 @ =gBgCntRegs - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsrs r3, r0, #0xe - movs r0, #0x80 - lsls r0, r0, #0xd - lsls r0, r3 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - movs r0, #1 - b _08001B76 - .align 2, 0 -_08001B48: .4byte 0x04000006 -_08001B4C: .4byte gBackgroundsCopyQueue -_08001B50: .4byte gDispCnt -_08001B54: .4byte gBgCntRegs -_08001B58: - movs r1, #0x20 - str r1, [sp, #0xc] - ldr r0, _08001C48 @ =gBgCntRegs - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - lsrs r3, r0, #0xe - cmp r3, #1 - beq _08001B6E - cmp r3, #3 - bne _08001B74 -_08001B6E: - movs r2, #0x80 - lsls r2, r2, #4 - str r2, [sp, #4] -_08001B74: - movs r0, #2 -_08001B76: - str r0, [sp, #8] - ldr r1, [sp, #0xc] - ldr r2, [sp, #8] - adds r0, r1, #0 - muls r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - ldrh r2, [r6, #0x2e] - movs r0, #0x20 - mov sb, r0 - ands r0, r2 - cmp r0, #0 - beq _08001B94 - b _08001F60 -_08001B94: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _08001B9E - b _08001E50 -_08001B9E: - ldrh r0, [r6, #0x24] - ldr r1, [sp, #0xc] - muls r0, r1, r0 - ldr r1, [r6, #0xc] - adds r1, r1, r0 - ldrh r5, [r6, #0x22] - mov r8, r5 - ldr r5, [sp, #8] - mov r0, r8 - muls r0, r5, r0 - adds r7, r1, r0 - ldrh r5, [r6, #0x28] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - bne _08001BC4 - b _08001CCC -_08001BC4: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08001C50 - ldrh r0, [r6, #0x20] - adds r0, r0, r5 - subs r0, #1 - muls r0, r4, r0 - ldr r2, [sp, #8] - muls r0, r2, r0 - ldr r2, [r6, #0x10] - adds r2, r2, r0 - ldrh r0, [r6, #0x1e] - ldrh r1, [r6, #0x26] - adds r0, r0, r1 - subs r0, #1 - ldr r3, [sp, #8] - muls r0, r3, r0 - adds r4, r2, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08001C4C @ =0x0000FFFF - cmp r5, r0 - bne _08001BFA - bl _08002570 -_08001BFA: - ldr r2, [sp] - adds r1, r2, #0 - muls r1, r3, r1 - mov sb, r1 - mov sl, r0 -_08001C04: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _08001C36 - movs r0, #0xc0 - lsls r0, r0, #4 - mov r8, r0 -_08001C18: - lsls r0, r3, #1 - adds r1, r0, r7 - mov ip, r1 - subs r0, r4, r0 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - mov r1, ip - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _08001C18 -_08001C36: - adds r7, r2, #0 - mov r1, sb - subs r4, r4, r1 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sl - bne _08001C04 - bl _08002570 - .align 2, 0 -_08001C48: .4byte gBgCntRegs -_08001C4C: .4byte 0x0000FFFF -_08001C50: - ldrh r0, [r6, #0x20] - muls r0, r4, r0 - ldr r2, [sp, #8] - muls r0, r2, r0 - ldr r2, [r6, #0x10] - adds r2, r2, r0 - ldrh r0, [r6, #0x1e] - ldrh r1, [r6, #0x26] - adds r0, r0, r1 - subs r0, #1 - ldr r3, [sp, #8] - muls r0, r3, r0 - adds r4, r2, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08001CC8 @ =0x0000FFFF - cmp r5, r0 - bne _08001C7A - bl _08002570 -_08001C7A: - ldr r2, [sp] - adds r1, r2, #0 - muls r1, r3, r1 - mov sb, r1 - mov sl, r0 -_08001C84: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _08001CB6 - movs r0, #0x80 - lsls r0, r0, #3 - mov r8, r0 -_08001C98: - lsls r0, r3, #1 - adds r1, r0, r7 - mov ip, r1 - subs r0, r4, r0 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - mov r1, ip - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _08001C98 -_08001CB6: - adds r7, r2, #0 - add r4, sb - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sl - bne _08001C84 - bl _08002570 - .align 2, 0 -_08001CC8: .4byte 0x0000FFFF -_08001CCC: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08001D50 - ldrh r0, [r6, #0x20] - adds r0, r0, r5 - subs r0, #1 - muls r0, r4, r0 - ldr r1, [sp, #8] - muls r0, r1, r0 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - ldrh r0, [r6, #0x1e] - ldr r2, [sp, #8] - muls r0, r2, r0 - adds r4, r1, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r3, _08001D4C @ =0x0000FFFF - cmp r5, r3 - bne _08001CFC - bl _08002570 -_08001CFC: - ldr r1, [sp] - adds r0, r1, #0 - muls r0, r2, r0 - mov sb, r0 - mov sl, r3 -_08001D06: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _08001D38 - movs r0, #0x80 - lsls r0, r0, #4 - mov r8, r0 -_08001D1A: - lsls r0, r3, #1 - adds r1, r0, r7 - mov ip, r1 - adds r0, r0, r4 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - mov r1, ip - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _08001D1A -_08001D38: - adds r7, r2, #0 - mov r1, sb - subs r4, r4, r1 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sl - bne _08001D06 - bl _08002570 - .align 2, 0 -_08001D4C: .4byte 0x0000FFFF -_08001D50: - movs r0, #1 - ands r3, r0 - cmp r3, #0 - beq _08001DF0 - ldr r2, [sp, #8] - cmp r2, #2 - bne _08001DF0 - mov r3, sb - mov r0, r8 - subs r3, r3, r0 - cmp r3, #0 - ble _08001DF0 - ldrh r0, [r6, #0x26] - add r0, r8 - adds r2, r0, #0 - subs r2, #0x20 - cmp r2, #0 - ble _08001DF0 - ldrh r0, [r6, #0x20] - muls r0, r4, r0 - lsls r0, r0, #1 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - ldrh r0, [r6, #0x1e] - lsls r0, r0, #1 - adds r4, r1, r0 - lsls r3, r3, #1 - mov sb, r3 - lsls r2, r2, #1 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _08001DE8 @ =0x0000FFFF - cmp r5, r1 - bne _08001D98 - b _08002570 -_08001D98: - ldr r1, _08001DEC @ =0x040000D4 - asrs r3, r3, #1 - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r3, r0 - mov r8, r3 - asrs r2, r2, #1 - mov ip, r2 - orrs r2, r0 - mov ip, r2 -_08001DAC: - str r4, [r1] - str r7, [r1, #4] - mov r3, r8 - str r3, [r1, #8] - ldr r0, [r1, #8] - adds r0, r4, #0 - add r0, sb - str r0, [r1] - ldr r2, [sp, #4] - adds r2, r2, r7 - str r2, [r1, #4] - mov r3, ip - str r3, [r1, #8] - ldr r0, [r1, #8] - ldr r0, [sp, #0xc] - adds r7, r7, r0 - ldr r3, [sp] - ldr r0, [sp, #8] - adds r2, r3, #0 - muls r2, r0, r2 - mov sl, r2 - add r4, sl - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r2, _08001DE8 @ =0x0000FFFF - cmp r5, r2 - bne _08001DAC - b _08002570 - .align 2, 0 -_08001DE8: .4byte 0x0000FFFF -_08001DEC: .4byte 0x040000D4 -_08001DF0: - ldrh r0, [r6, #0x20] - muls r0, r4, r0 - ldr r3, [sp, #8] - muls r0, r3, r0 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - ldrh r0, [r6, #0x1e] - muls r0, r3, r0 - adds r4, r1, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08001E48 @ =0x0000FFFF - cmp r5, r0 - bne _08001E10 - b _08002570 -_08001E10: - ldr r1, _08001E4C @ =0x040000D4 - movs r2, #0x80 - lsls r2, r2, #0x18 - mov r8, r2 - mov sb, r0 - ldr r0, [sp] - adds r2, r0, #0 - muls r2, r3, r2 -_08001E20: - str r4, [r1] - str r7, [r1, #4] - ldrh r0, [r6, #0x26] - ldr r3, [sp, #8] - muls r0, r3, r0 - asrs r0, r0, #1 - mov r3, r8 - orrs r0, r3 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, [sp, #0xc] - adds r7, r7, r0 - adds r4, r4, r2 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sb - bne _08001E20 - b _08002570 - .align 2, 0 -_08001E48: .4byte 0x0000FFFF -_08001E4C: .4byte 0x040000D4 -_08001E50: - ldrh r1, [r6, #0x1e] - str r1, [sp, #0x10] - ldrh r2, [r6, #0x20] - str r2, [sp, #0x14] - movs r3, #0 - mov sl, r3 - ldrh r4, [r6, #0x26] - cmp sl, r4 - blt _08001E64 - b _08002570 -_08001E64: - ldr r4, [sp, #0x10] - add r4, sl - ldrh r1, [r6, #0x14] - adds r0, r4, #0 - bl Div - str r0, [sp, #0x18] - ldrh r1, [r6, #0x14] - adds r5, r0, #0 - adds r0, r5, #0 - muls r0, r1, r0 - subs r4, r4, r0 - str r4, [sp, #0x1c] - ldrh r0, [r6, #0x28] - mov r8, r0 - ldrh r0, [r6, #0x26] - mov r2, sl - subs r0, r0, r2 - subs r1, r1, r4 - cmp r1, r0 - ble _08001E90 - adds r1, r0, #0 -_08001E90: - ldr r4, [sp, #8] - adds r3, r1, #0 - muls r3, r4, r3 - str r3, [sp, #0x20] - movs r5, #0 - mov sb, r5 - add r1, sl - str r1, [sp, #0x38] - cmp sb, r8 - bge _08001F50 -_08001EA4: - ldr r4, [sp, #0x14] - add r4, sb - ldrh r1, [r6, #0x16] - adds r0, r4, #0 - bl Div - ldrh r3, [r6, #0x16] - adds r1, r0, #0 - muls r1, r3, r1 - subs r4, r4, r1 - subs r5, r3, r4 - ldrh r1, [r6, #0x3c] - muls r1, r0, r1 - ldr r0, [r6, #0x38] - adds r0, r0, r1 - ldr r1, [sp, #0x18] - adds r0, r0, r1 - ldrb r0, [r0] - ldrh r2, [r6, #0x14] - muls r0, r2, r0 - adds r1, r0, #0 - muls r1, r3, r1 - adds r0, r4, #0 - muls r0, r2, r0 - ldr r2, [sp, #0x1c] - adds r0, r0, r2 - adds r1, r1, r0 - ldr r3, [sp, #8] - muls r1, r3, r1 - ldr r0, [r6, #0x10] - adds r4, r0, r1 - ldrh r1, [r6, #0x24] - ldr r0, [r6, #0xc] - adds r0, r0, r1 - ldr r2, [sp, #0xc] - mov r1, sb - muls r1, r2, r1 - adds r0, r0, r1 - ldrh r3, [r6, #0x22] - adds r0, r0, r3 - ldr r2, [sp, #8] - mov r1, sl - muls r1, r2, r1 - adds r7, r0, r1 - add sb, r5 - cmp r5, r8 - ble _08001F04 - mov r5, r8 -_08001F04: - mov r3, r8 - subs r3, r3, r5 - mov r8, r3 - adds r0, r5, #0 - subs r5, #1 - cmp r0, #0 - beq _08001F4A - ldr r3, _08001F5C @ =0x040000D4 - ldr r1, [sp, #0x20] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - str r0, [sp, #0x3c] - movs r0, #0x80 - lsls r0, r0, #0x18 - ldr r2, [sp, #0x3c] - orrs r2, r0 - str r2, [sp, #0x3c] - ldr r1, [sp] - ldr r2, [sp, #8] - adds r0, r1, #0 - muls r0, r2, r0 - mov ip, r0 -_08001F32: - str r4, [r3] - str r7, [r3, #4] - ldr r0, [sp, #0x3c] - str r0, [r3, #8] - ldr r0, [r3, #8] - ldr r1, [sp, #0xc] - adds r7, r7, r1 - add r4, ip - adds r0, r5, #0 - subs r5, #1 - cmp r0, #0 - bne _08001F32 -_08001F4A: - ldrh r2, [r6, #0x28] - cmp sb, r2 - blt _08001EA4 -_08001F50: - ldr r3, [sp, #0x38] - mov sl, r3 - ldrh r4, [r6, #0x26] - cmp sl, r4 - blt _08001E64 - b _08002570 - .align 2, 0 -_08001F5C: .4byte 0x040000D4 -_08001F60: - movs r0, #0x40 - ands r0, r2 - ldrh r3, [r6, #0x30] - ldr r1, _08002030 @ =gBgScrollRegs - mov sb, r1 - lsls r5, r5, #2 - mov r8, r5 - cmp r0, #0 - bne _08001FAC - adds r2, r4, #0 - lsls r0, r4, #3 - ldrh r5, [r6, #0x16] - ldrh r7, [r6, #0x32] - cmp r3, r0 - blt _08001F90 -_08001F7E: - lsls r1, r2, #3 - ldrh r0, [r6, #0x30] - subs r0, r0, r1 - strh r0, [r6, #0x30] - ldrh r1, [r6, #0x30] - adds r2, r4, #0 - lsls r0, r4, #3 - cmp r1, r0 - bge _08001F7E -_08001F90: - adds r2, r5, #0 - lsls r0, r2, #3 - ldrh r3, [r6, #0x30] - cmp r7, r0 - blt _08001FAC -_08001F9A: - lsls r1, r2, #3 - ldrh r0, [r6, #0x32] - subs r0, r0, r1 - strh r0, [r6, #0x32] - ldrh r1, [r6, #0x32] - adds r2, r5, #0 - lsls r0, r2, #3 - cmp r1, r0 - bge _08001F9A -_08001FAC: - mov r0, r8 - add r0, sb - movs r2, #7 - ands r3, r2 - strh r3, [r0] - mov r1, sb - adds r1, #2 - add r1, r8 - ldrh r0, [r6, #0x32] - ands r0, r2 - strh r0, [r1] - ldrh r0, [r6, #0x34] - ldrh r4, [r6, #0x30] - lsrs r2, r4, #3 - lsrs r0, r0, #3 - cmp r0, r2 - bne _08001FDC - ldrh r1, [r6, #0x36] - ldrh r0, [r6, #0x32] - lsrs r1, r1, #3 - lsrs r0, r0, #3 - cmp r1, r0 - bne _08001FDC - b _08002570 -_08001FDC: - ldrh r1, [r6, #0x2e] - movs r0, #0x40 - ands r0, r1 - adds r3, r1, #0 - cmp r0, #0 - beq _08001FEA - b _08002454 -_08001FEA: - ldrh r0, [r6, #0x1e] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - ldrh r0, [r6, #0x32] - lsrs r0, r0, #3 - ldrh r2, [r6, #0x20] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x14] - ldrh r0, [r6, #0x24] - ldr r4, [sp, #0xc] - muls r0, r4, r0 - ldr r1, [r6, #0xc] - adds r1, r1, r0 - ldrh r0, [r6, #0x22] - ldr r5, [sp, #8] - muls r0, r5, r0 - adds r7, r1, r0 - ldrh r0, [r6, #0x26] - ldr r1, [sp, #0x10] - adds r2, r1, r0 - adds r1, r2, #1 - ldrh r4, [r6, #0x14] - mov r8, r0 - cmp r1, r4 - ble _08002034 - subs r0, r4, #1 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _08002036 - .align 2, 0 -_08002030: .4byte gBgScrollRegs -_08002034: - movs r2, #0 -_08002036: - ldrh r0, [r6, #0x28] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - bne _0800204C - b _08002148 -_0800204C: - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _080020D0 - ldrh r0, [r6, #0x20] - adds r0, r0, r5 - subs r0, #1 - muls r0, r4, r0 - ldr r3, [sp, #8] - muls r0, r3, r0 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - ldrh r0, [r6, #0x1e] - add r0, r8 - subs r0, #1 - muls r0, r3, r0 - adds r4, r1, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r2, r2, #0x10 - mov sl, r2 - ldr r0, _080020CC @ =0x0000FFFF - cmp r5, r0 - bne _08002080 - b _0800223C -_08002080: - ldr r2, [sp] - adds r1, r2, #0 - muls r1, r3, r1 - mov sb, r1 - mov ip, r0 -_0800208A: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _080020BC - movs r0, #0xc0 - lsls r0, r0, #4 - mov r8, r0 -_0800209E: - lsls r0, r3, #1 - adds r1, r0, r7 - str r1, [sp, #0x3c] - subs r0, r4, r0 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - ldr r1, [sp, #0x3c] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _0800209E -_080020BC: - adds r7, r2, #0 - mov r1, sb - subs r4, r4, r1 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, ip - bne _0800208A - b _0800223C - .align 2, 0 -_080020CC: .4byte 0x0000FFFF -_080020D0: - ldrh r0, [r6, #0x20] - muls r0, r4, r0 - ldr r3, [sp, #8] - muls r0, r3, r0 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - ldrh r0, [r6, #0x1e] - add r0, r8 - subs r0, #1 - muls r0, r3, r0 - adds r4, r1, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r2, r2, #0x10 - mov sl, r2 - ldr r0, _08002144 @ =0x0000FFFF - cmp r5, r0 - bne _080020F8 - b _0800223C -_080020F8: - ldr r2, [sp] - adds r1, r2, #0 - muls r1, r3, r1 - mov sb, r1 - mov ip, r0 -_08002102: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _08002134 - movs r0, #0x80 - lsls r0, r0, #3 - mov r8, r0 -_08002116: - lsls r0, r3, #1 - adds r1, r0, r7 - str r1, [sp, #0x3c] - subs r0, r4, r0 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - ldr r1, [sp, #0x3c] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _08002116 -_08002134: - adds r7, r2, #0 - add r4, sb - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, ip - bne _08002102 - b _0800223C - .align 2, 0 -_08002144: .4byte 0x0000FFFF -_08002148: - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _080021CC - ldr r1, [sp, #0x14] - adds r0, r1, r5 - subs r0, #1 - muls r0, r4, r0 - ldr r3, [sp, #8] - adds r1, r0, #0 - muls r1, r3, r1 - ldr r0, [r6, #0x10] - adds r0, r0, r1 - ldr r4, [sp, #0x10] - adds r1, r4, #0 - muls r1, r3, r1 - adds r4, r0, r1 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r2, r2, #0x10 - mov sl, r2 - ldr r0, _080021C8 @ =0x0000FFFF - cmp r5, r0 - beq _0800223C - ldr r2, [sp] - adds r1, r2, #0 - muls r1, r3, r1 - mov sb, r1 - mov ip, r0 -_08002184: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _080021B6 - movs r0, #0x80 - lsls r0, r0, #4 - mov r8, r0 -_08002198: - lsls r0, r3, #1 - adds r1, r0, r7 - str r1, [sp, #0x3c] - adds r0, r0, r4 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - ldr r1, [sp, #0x3c] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _08002198 -_080021B6: - adds r7, r2, #0 - mov r1, sb - subs r4, r4, r1 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, ip - bne _08002184 - b _0800223C - .align 2, 0 -_080021C8: .4byte 0x0000FFFF -_080021CC: - ldr r3, [sp, #0x14] - adds r0, r3, #0 - muls r0, r4, r0 - ldr r4, [sp, #8] - adds r1, r0, #0 - muls r1, r4, r1 - ldr r0, [r6, #0x10] - adds r0, r0, r1 - ldr r3, [sp, #0x10] - adds r1, r3, #0 - muls r1, r4, r1 - adds r4, r0, r1 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r2, r2, #0x10 - mov sl, r2 - ldr r0, _080022F0 @ =0x0000FFFF - cmp r5, r0 - beq _0800223C - ldr r2, _080022F4 @ =0x040000D4 - mov r1, sl - asrs r0, r1, #0x10 - subs r0, #1 - mov r8, r0 - ldr r3, _080022F0 @ =0x0000FFFF - mov ip, r3 - movs r0, #0x80 - lsls r0, r0, #0x18 - mov sb, r0 - ldr r1, [sp] - ldr r0, [sp, #8] - adds r3, r1, #0 - muls r3, r0, r3 -_08002210: - str r4, [r2] - str r7, [r2, #4] - ldrh r0, [r6, #0x26] - mov r1, r8 - subs r0, r0, r1 - ldr r1, [sp, #8] - muls r0, r1, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - mov r1, sb - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r0, [sp, #0xc] - adds r7, r7, r0 - adds r4, r4, r3 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, ip - bne _08002210 -_0800223C: - mov r1, sl - asrs r3, r1, #0x10 - cmp r3, #0 - bne _08002246 - b _08002570 -_08002246: - ldrh r0, [r6, #0x24] - ldr r2, [sp, #0xc] - muls r0, r2, r0 - ldr r1, [r6, #0xc] - adds r1, r1, r0 - ldrh r0, [r6, #0x22] - ldrh r4, [r6, #0x14] - adds r0, r0, r4 - ldr r5, [sp, #0x10] - subs r0, r0, r5 - ldr r2, [sp, #8] - muls r0, r2, r0 - adds r7, r1, r0 - ldrh r0, [r6, #0x28] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldrh r1, [r6, #0x2e] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0800236C - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080022F8 - ldr r1, [sp, #0x14] - adds r0, r1, r5 - subs r0, #1 - muls r0, r4, r0 - ldr r2, [sp, #8] - muls r0, r2, r0 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - subs r0, r3, #1 - muls r0, r2, r0 - adds r4, r1, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r3, _080022F0 @ =0x0000FFFF - cmp r5, r3 - bne _080022A2 - b _08002570 -_080022A2: - ldr r1, [sp] - adds r0, r1, #0 - muls r0, r2, r0 - mov sb, r0 - mov sl, r3 -_080022AC: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _080022DE - movs r0, #0xc0 - lsls r0, r0, #4 - mov r8, r0 -_080022C0: - lsls r0, r3, #1 - adds r1, r0, r7 - mov ip, r1 - subs r0, r4, r0 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - mov r1, ip - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _080022C0 -_080022DE: - adds r7, r2, #0 - mov r1, sb - subs r4, r4, r1 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sl - bne _080022AC - b _08002570 - .align 2, 0 -_080022F0: .4byte 0x0000FFFF -_080022F4: .4byte 0x040000D4 -_080022F8: - ldr r2, [sp, #0x14] - adds r0, r2, #0 - muls r0, r4, r0 - ldr r4, [sp, #8] - muls r0, r4, r0 - ldr r1, [r6, #0x10] - adds r1, r1, r0 - subs r0, r3, #1 - muls r0, r4, r0 - adds r4, r1, r0 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08002368 @ =0x0000FFFF - cmp r5, r0 - bne _0800231A - b _08002570 -_0800231A: - ldr r2, [sp] - ldr r3, [sp, #8] - adds r1, r2, #0 - muls r1, r3, r1 - mov sb, r1 - mov sl, r0 -_08002326: - movs r3, #0 - subs r5, #1 - ldr r0, [sp, #0xc] - adds r2, r7, r0 - ldrh r1, [r6, #0x26] - cmp r3, r1 - bhs _08002358 - movs r0, #0x80 - lsls r0, r0, #3 - mov r8, r0 -_0800233A: - lsls r0, r3, #1 - adds r1, r0, r7 - mov ip, r1 - subs r0, r4, r0 - ldrh r0, [r0] - mov r1, r8 - eors r0, r1 - mov r1, ip - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r0, [r6, #0x26] - cmp r3, r0 - blo _0800233A -_08002358: - adds r7, r2, #0 - add r4, sb - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - cmp r5, sl - bne _08002326 - b _08002570 - .align 2, 0 -_08002368: .4byte 0x0000FFFF -_0800236C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080023EC - ldr r1, [sp, #0x14] - adds r0, r1, r5 - subs r0, #1 - muls r0, r4, r0 - ldr r2, [sp, #8] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r6, #0x10] - adds r4, r0, r1 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _080023E8 @ =0x0000FFFF - cmp r5, r0 - bne _08002394 - b _08002570 -_08002394: - mov r1, sl - str r1, [sp, #0x30] - mov ip, r3 - ldr r0, [sp] - adds r3, r0, #0 - muls r3, r2, r3 - mov sb, r3 -_080023A2: - movs r3, #0 - subs r5, #1 - ldr r1, [sp, #0xc] - adds r2, r7, r1 - cmp r3, ip - bge _080023D6 - movs r0, #0x80 - lsls r0, r0, #4 - mov sl, r0 - ldr r1, [sp, #0x30] - asrs r1, r1, #0x10 - mov r8, r1 -_080023BA: - lsls r0, r3, #1 - adds r1, r0, r7 - str r1, [sp, #0x3c] - adds r0, r0, r4 - ldrh r0, [r0] - mov r1, sl - eors r0, r1 - ldr r1, [sp, #0x3c] - strh r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, r8 - blt _080023BA -_080023D6: - adds r7, r2, #0 - mov r2, sb - subs r4, r4, r2 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - ldr r3, _080023E8 @ =0x0000FFFF - cmp r5, r3 - bne _080023A2 - b _08002570 - .align 2, 0 -_080023E8: .4byte 0x0000FFFF -_080023EC: - ldr r1, [sp, #0x14] - adds r0, r1, #0 - muls r0, r4, r0 - ldr r2, [sp, #8] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r6, #0x10] - adds r4, r0, r1 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _0800244C @ =0x0000FFFF - cmp r5, r0 - bne _0800240A - b _08002570 -_0800240A: - ldr r2, _08002450 @ =0x040000D4 - ldr r1, [sp, #8] - adds r0, r3, #0 - muls r0, r1, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - mov sb, r0 - movs r0, #0x80 - lsls r0, r0, #0x18 - mov r3, sb - orrs r3, r0 - mov sb, r3 - ldr r1, [sp] - ldr r3, [sp, #8] - adds r0, r1, #0 - muls r0, r3, r0 - mov r8, r0 -_0800242E: - str r4, [r2] - str r7, [r2, #4] - mov r0, sb - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r1, [sp, #0xc] - adds r7, r7, r1 - add r4, r8 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r3, _0800244C @ =0x0000FFFF - cmp r5, r3 - bne _0800242E - b _08002570 - .align 2, 0 -_0800244C: .4byte 0x0000FFFF -_08002450: .4byte 0x040000D4 -_08002454: - lsrs r0, r4, #3 - ldrh r4, [r6, #0x1e] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] - ldrh r0, [r6, #0x32] - lsrs r0, r0, #3 - ldrh r5, [r6, #0x20] - adds r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x14] - movs r0, #0 - mov sl, r0 - ldrh r1, [r6, #0x26] - cmp sl, r1 - bge _08002570 -_08002478: - ldr r4, [sp, #0x10] - add r4, sl - ldrh r1, [r6, #0x14] - adds r0, r4, #0 - bl Div - str r0, [sp, #0x24] - ldrh r1, [r6, #0x14] - adds r2, r0, #0 - adds r0, r2, #0 - muls r0, r1, r0 - subs r4, r4, r0 - str r4, [sp, #0x28] - ldrh r3, [r6, #0x28] - mov r8, r3 - ldrh r0, [r6, #0x26] - mov r4, sl - subs r0, r0, r4 - ldr r5, [sp, #0x28] - subs r1, r1, r5 - cmp r1, r0 - ble _080024A6 - adds r1, r0, #0 -_080024A6: - ldr r2, [sp, #8] - adds r0, r1, #0 - muls r0, r2, r0 - str r0, [sp, #0x2c] - movs r3, #0 - mov sb, r3 - add r1, sl - str r1, [sp, #0x34] - cmp sb, r8 - bge _08002566 -_080024BA: - ldr r4, [sp, #0x14] - add r4, sb - ldrh r1, [r6, #0x16] - adds r0, r4, #0 - bl Div - ldrh r3, [r6, #0x16] - adds r1, r0, #0 - muls r1, r3, r1 - subs r4, r4, r1 - subs r5, r3, r4 - ldrh r1, [r6, #0x3c] - muls r1, r0, r1 - ldr r0, [r6, #0x38] - adds r0, r0, r1 - ldr r1, [sp, #0x24] - adds r0, r0, r1 - ldrb r0, [r0] - ldrh r2, [r6, #0x14] - muls r0, r2, r0 - adds r1, r0, #0 - muls r1, r3, r1 - adds r0, r4, #0 - muls r0, r2, r0 - ldr r2, [sp, #0x28] - adds r0, r0, r2 - adds r1, r1, r0 - ldr r3, [sp, #8] - muls r1, r3, r1 - ldr r0, [r6, #0x10] - adds r4, r0, r1 - ldrh r1, [r6, #0x24] - ldr r0, [r6, #0xc] - adds r0, r0, r1 - ldr r2, [sp, #0xc] - mov r1, sb - muls r1, r2, r1 - adds r0, r0, r1 - ldrh r3, [r6, #0x22] - adds r0, r0, r3 - ldr r2, [sp, #8] - mov r1, sl - muls r1, r2, r1 - adds r7, r0, r1 - add sb, r5 - cmp r5, r8 - ble _0800251A - mov r5, r8 -_0800251A: - mov r3, r8 - subs r3, r3, r5 - mov r8, r3 - adds r0, r5, #0 - subs r5, #1 - cmp r0, #0 - beq _08002560 - ldr r3, _080025A0 @ =0x040000D4 - ldr r1, [sp, #0x2c] - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r0, r0, #1 - str r0, [sp, #0x3c] - movs r0, #0x80 - lsls r0, r0, #0x18 - ldr r2, [sp, #0x3c] - orrs r2, r0 - str r2, [sp, #0x3c] - ldr r1, [sp] - ldr r2, [sp, #8] - adds r0, r1, #0 - muls r0, r2, r0 - mov ip, r0 -_08002548: - str r4, [r3] - str r7, [r3, #4] - ldr r0, [sp, #0x3c] - str r0, [r3, #8] - ldr r0, [r3, #8] - ldr r1, [sp, #0xc] - adds r7, r7, r1 - add r4, ip - adds r0, r5, #0 - subs r5, #1 - cmp r0, #0 - bne _08002548 -_08002560: - ldrh r2, [r6, #0x28] - cmp sb, r2 - blt _080024BA -_08002566: - ldr r3, [sp, #0x34] - mov sl, r3 - ldrh r4, [r6, #0x26] - cmp sl, r4 - blt _08002478 -_08002570: - ldr r0, _080025A4 @ =0x04000006 - ldrh r0, [r0] - ldrh r0, [r6, #0x30] - strh r0, [r6, #0x34] - ldrh r0, [r6, #0x32] - strh r0, [r6, #0x36] - ldr r3, _080025A8 @ =gBackgroundsCopyQueueCursor - ldr r4, _080025AC @ =gBackgroundsCopyQueueIndex -_8002580: @ 0x08002580 - ldrb r0, [r3] - ldrb r5, [r4] - cmp r0, r5 - beq _0800258C - bl _08001AC8 -_0800258C: - movs r0, #1 -sub_800258E: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080025A0: .4byte 0x040000D4 -_080025A4: .4byte REG_VCOUNT -_080025A8: .4byte gBackgroundsCopyQueueCursor -_080025AC: .4byte gBackgroundsCopyQueueIndex - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc b/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc deleted file mode 100644 index 4759ad7f6b..0000000000 --- a/sa1/asm/non_matching/engine/sa2__sub_80039E4.inc +++ /dev/null @@ -1,672 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - movs r0, #5 - str r0, [sp, #0x28] - ldr r0, _sa2_08003A04 @ =REG_DISPSTAT - ldrh r1, [r0] - movs r0, #1 @ DISPSTAT_VBLANK - ands r0, r1 - cmp r0, #0 - bne _sa2_08003A08 - movs r0, #0 - b sub_80039E4_return - .align 2, 0 -_sa2_08003A04: .4byte REG_DISPSTAT -_sa2_08003A08: - ldr r0, _sa2_08003BA4 @ =gBgSpritesCount - ldrb r1, [r0] - cmp r1, #0 - bne _sa2_08003A12 - b sub_80039E4_return_1 -_sa2_08003A12: - movs r5, #0 @ r5 = r5 = 0 - cmp r5, r1 @ for(; r5 < gBgSpritesCount; r5++) - blo _sa2_08003A1A - b _sa2_08003EC2 -_sa2_08003A1A: - lsls r0, r5, #2 - ldr r1, _sa2_08003BA8 @ =gBgSprites - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0xc] @ sp0C = s - ldr r1, [r0, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - adds r2, r5, #1 - str r2, [sp, #0x3c] - cmp r1, r0 - bne _sa2_08003A34 - b _sa2_08003EB2 -_sa2_08003A34: - mov sl, r1 @ sl = dims - ldr r3, [sp, #0xc] @ r3 = sp0C = s - ldr r0, [r3, #0x10] - movs r1, #0xc0 - lsls r1, r1, #9 - ands r0, r1 - lsrs r3, r0, #0xf - lsls r0, r3, #1 - ldr r4, _sa2_08003BAC @ =gBgCntRegs - adds r0, r0, r4 - ldrh r2, [r0] - movs r0, #0xc - ands r0, r2 - lsls r0, r0, #0xc - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - str r0, [sp, #0x14] @ sp14 = bgVram - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - str r0, [sp, #0x18] @ sp18 = bgBase - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _sa2_08003A70 - movs r6, #6 - str r6, [sp, #0x28] -_sa2_08003A70: - cmp r3, #1 - bhi _sa2_08003A76 - b _sa2_08003C2C -_sa2_08003A76: - ldr r7, _sa2_08003BB0 @ =gDispCnt - ldrh r1, [r7] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _sa2_08003A84 - b _sa2_08003C2C -_sa2_08003A84: - lsrs r1, r2, #0xe - movs r0, #0x80 - lsls r0, r0, #0xd - lsls r0, r1 - lsrs r0, r0, #0x10 - str r0, [sp, #0x10] @ sp10 = bg_affine_pixelcount - ldr r0, _sa2_08003BB4 @ =gRefSpriteTables - ldr r1, [r0] - ldr r2, [sp, #0xc] @ r2 = sp0C = s - ldrh r0, [r2, #0xa] - ldr r1, [r1, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x1c] - mov r3, sl @ r3 = sl = dims - ldrb r1, [r3, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r4, [sp, #0x1c] - adds r4, r4, r0 - str r4, [sp, #0x1c] - movs r5, #0 - str r5, [sp, #8] - ldrh r6, [r3, #2] - cmp r5, r6 - blo _sa2_08003ABE - b _sa2_08003EB2 -_sa2_08003ABE: - mov sb, sp @ sb = sp = oam - ldr r7, [sp, #0x10] - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x30] -_sa2_08003AC8: - ldr r0, [sp, #0x1c] - ldr r1, _sa2_08003BB8 @ =0x040000D4 - str r0, [r1] - mov r2, sp - str r2, [r1, #4] - ldr r0, _sa2_08003BBC @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r3, [sp, #0x1c] - adds r3, #6 - str r3, [sp, #0x1c] - mov r4, sb @ r4 = sb = sp = oam - ldrh r3, [r4] - movs r1, #0xc0 - lsls r1, r1, #8 - ands r1, r3 - lsrs r1, r1, #0xc - ldrh r2, [r4, #2] - movs r0, #0xc0 - lsls r0, r0, #8 - ands r0, r2 - lsrs r0, r0, #0xe - orrs r1, r0 - lsls r1, r1, #1 - ldr r5, _sa2_08003BC0 @ =gOamShapesSizes - adds r0, r1, r5 - ldrb r0, [r0] - lsrs r0, r0, #3 - str r0, [sp, #0x20] @ sp20 = tilesX - ldr r6, _sa2_08003BC4 @ =gOamShapesSizes+1 - adds r1, r1, r6 - ldrb r0, [r1] - lsrs r0, r0, #3 - mov ip, r0 - mov r4, ip @ r4 = ip = tilesY - ldr r7, [sp, #0xc] @ r7 = sp0C = s - movs r0, #0x18 - ldrsh r1, [r7, r0] - mov r2, sl @ r2 = sl = dims - movs r5, #0xa - ldrsh r0, [r2, r5] - subs r5, r1, r0 @ r5 = yPos - movs r6, #0x16 - ldrsh r1, [r7, r6] - movs r7, #8 - ldrsh r0, [r2, r7] - subs r1, r1, r0 - mov r8, r1 @ r8 = xPos - movs r0, #0x10 - rsbs r0, r0, #0 - ands r1, r0 - mov r8, r1 - movs r0, #0xff - ands r0, r3 - adds r0, r5, r0 - asrs r0, r0, #3 - ldr r2, [sp, #0x10] - muls r0, r2, r0 - ldr r3, [sp, #0x18] @ r3 = sp18 = bgBase - adds r7, r3, r0 @ r7 = r3 - ldr r5, [sp, #0xc] @ r5 = sp0C = s - ldr r1, [r5, #4] - ldr r6, [sp, #0x14] - subs r1, r1, r6 - ldr r0, [sp, #0x28] - lsrs r1, r0 @ r1 = tileId = ((size_t)(s->graphics.dest - bgVram)) >> sp28 - mov r3, sb @ r3 = oam - ldrh r2, [r3, #4] - ldr r0, _sa2_08003BC8 @ =0x000003FF - ands r0, r2 - adds r5, r1, r0 - movs r6, #0xff - ands r5, r6 @ r5 = shrunkTileId - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - ldr r0, [sp, #8] - adds r0, #1 - str r0, [sp, #0x40] -__sa2_08003B68: - cmp r4, #0 - beq _sa2_08003C18 - ldr r1, [sp, #0x30] - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - str r0, [sp, #0x34] -_sa2_08003B74: - mov r2, sb @ r2 = sb = oam - ldrh r0, [r2, #2] - ldr r1, _sa2_08003BCC @ =0x000001FF - ands r1, r0 @ r1 = oam->tileNum - add r1, r8 - asrs r1, r1, #3 - adds r2, r7, r1 @ r2 = (bgBase + (oam.tileNum >> 3)) - ldr r0, [sp, #0x20] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r6, ip - subs r6, #1 - ldr r4, [sp, #0x20] - cmp r4, #0 - beq _sa2_08003BF2 - movs r4, #1 -_sa2_08003B96: - adds r0, r2, #0 - ands r0, r4 - cmp r0, #0 - bne _sa2_08003BD0 - str r5, [sp, #0x24] - b _sa2_08003BDE - .align 2, 0 -_sa2_08003BA4: .4byte gBgSpritesCount -_sa2_08003BA8: .4byte gBgSprites -_sa2_08003BAC: .4byte gBgCntRegs -_sa2_08003BB0: .4byte gDispCnt -_sa2_08003BB4: .4byte gRefSpriteTables -_sa2_08003BB8: .4byte 0x040000D4 -_sa2_08003BBC: .4byte 0x80000003 -_sa2_08003BC0: .4byte gOamShapesSizes -_sa2_08003BC4: .4byte gOamShapesSizes+1 -_sa2_08003BC8: .4byte 0x000003FF -_sa2_08003BCC: .4byte 0x000001FF -_sa2_08003BD0: - lsls r0, r5, #8 - ldr r1, [sp, #0x24] - orrs r1, r0 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x24] - strh r0, [r2] -_sa2_08003BDE: - adds r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r2, #1 - adds r1, r3, #0 - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r1, #0 - bne _sa2_08003B96 -_sa2_08003BF2: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _sa2_08003C08 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - ldr r1, [sp, #0x24] - orrs r0, r1 - strh r0, [r2] -_sa2_08003C08: - ldr r2, [sp, #0x34] - adds r7, r7, r2 - mov r1, ip - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r1, #0 - bne _sa2_08003B74 -_sa2_08003C18: - ldr r3, [sp, #0x40] - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - mov r4, sl - ldrh r4, [r4, #2] - cmp r0, r4 - bhs _sa2_08003C2A - b _sa2_08003AC8 @ -> for (sp08 = 0; sp08 < dims->numSubframes; sp08++) -_sa2_08003C2A: - b _sa2_08003EB2 -_sa2_08003C2C: - movs r6, #0x20 - str r6, [sp, #0x10] - lsls r0, r3, #1 @ r3 = bgId - adds r0, r0, r4 - ldrh r0, [r0] @ r0 = gBgCntRegs[bgId] - lsrs r1, r0, #0xe - subs r0, r1, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _sa2_08003C46 - movs r7, #0x40 - str r7, [sp, #0x10] -_sa2_08003C46: - ldr r0, _sa2_08003D14 @ =gRefSpriteTables - ldr r1, [r0] - ldr r2, [sp, #0xc] @ r2 = sp0C = s - ldrh r0, [r2, #0xa] - ldr r1, [r1, #8] @ r1 = gRefSpriteTables->oamData - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x1c] @ sp1C = gRefSpriteTables->oamData[s->graphics.anim]; - mov r3, sl @ r3 = dims - ldrb r1, [r3, #1] @ r1 = dims->oamIndex - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r4, [sp, #0x1c] - adds r4, r4, r0 - str r4, [sp, #0x1c] @ sp1C = &sp1C[dims->oamIndex]; - movs r6, #0 - str r6, [sp, #8] - adds r5, #1 - str r5, [sp, #0x3c] - ldrh r7, [r3, #2] - cmp r6, r7 - blo _sa2_08003C78 - b _sa2_08003EB2 -_sa2_08003C78: - mov sb, sp @ sb = sp = oam -_sa2_08003C7A: - ldr r0, [sp, #0x1c] - ldr r1, _sa2_08003D18 @ =0x040000D4 - str r0, [r1] - mov r2, sp - str r2, [r1, #4] - ldr r0, _sa2_08003D1C @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r3, [sp, #0x1c] - adds r3, #6 - str r3, [sp, #0x1c] - mov r4, sb @ r4 = sb = sp = oam - ldrh r2, [r4] - movs r1, #0xc0 - lsls r1, r1, #8 - ands r1, r2 - lsrs r1, r1, #0xc @ r1 = oam.shape << 2 - ldrh r3, [r4, #2] - movs r0, #0xc0 - lsls r0, r0, #8 - ands r0, r3 - lsrs r0, r0, #0xe @ r0 = oam.size - orrs r1, r0 @ r1 = shapeAndSize - lsls r1, r1, #1 - ldr r5, _sa2_08003D20 @ =gOamShapesSizes - adds r0, r1, r5 - ldrb r0, [r0] - lsrs r0, r0, #3 - str r0, [sp, #0x20] @ sp20 = tilesX - ldr r6, _sa2_08003D24 @ =gOamShapesSizes+1 - adds r1, r1, r6 - ldrb r0, [r1] - lsrs r0, r0, #3 - mov ip, r0 @ ip = tilesY - ldr r4, _sa2_08003D28 @ =0x000001FF - ands r4, r3 - movs r6, #0xff - ands r6, r2 @ r6 = oamX - ldr r0, [sp, #0xc] @ r0 = sp0C = s - adds r0, #0x25 - ldrb r0, [r0] @ r0 = s->palId - lsls r0, r0, #0xc - mov r7, sb - ldrh r7, [r7, #4] - adds r0, r0, r7 - mov r1, sb - strh r0, [r1, #4] -__sa2_08003CD8: - ldr r2, [sp, #0xc] @ r2 = sp0C = s - ldr r1, [r2, #0x10] - lsrs r1, r1, #0xb - mov r5, sl - ldrb r0, [r5] - lsrs r0, r0, #1 - eors r0, r1 - movs r7, #1 - ands r0, r7 - cmp r0, #0 - beq _sa2_08003D4A -___sa2_08003CEE: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r1, #0 - eors r0, r3 - mov r2, sb - strh r0, [r2, #2] - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _sa2_08003D2C -__sa2_08003D04: - ldr r3, [sp, #0xc] @ r3 = sp0C = s - movs r5, #0x18 - ldrsh r0, [r3, r5] - mov r7, sl @ r7 = sl = dims - movs r2, #0xa - ldrsh r1, [r7, r2] - b _sa2_08003D3C - .align 2, 0 -_sa2_08003D14: .4byte gRefSpriteTables -_sa2_08003D18: .4byte 0x040000D4 -_sa2_08003D1C: .4byte 0x80000003 -_sa2_08003D20: .4byte gOamShapesSizes -_sa2_08003D24: .4byte gOamShapesSizes+1 -_sa2_08003D28: .4byte 0x000001FF -_sa2_08003D2C: - ldr r3, [sp, #0xc] @ r3 = sp0C = s - movs r5, #0x18 - ldrsh r0, [r3, r5] - mov r7, sl @ r7 = sl = dims - ldrh r1, [r7, #6] - movs r3, #0xa - ldrsh r2, [r7, r3] - subs r1, r1, r2 -_sa2_08003D3C: - adds r0, r0, r1 - adds r5, r0, #0 - subs r5, #8 @ r5 = someOffsetY - lsls r0, r6, #0x10 - rsbs r0, r0, #0 - lsrs r6, r0, #0x10 - b _sa2_08003D58 -_sa2_08003D4A: - ldr r5, [sp, #0xc] @ r5 = sp0C = s - movs r7, #0x18 - ldrsh r1, [r5, r7] - mov r2, sl @ r2 = sl = dims - movs r3, #0xa - ldrsh r0, [r2, r3] - subs r5, r1, r0 @ r5 = someOffsetY -_sa2_08003D58: - ldr r7, [sp, #0xc] @ r7 = sp0C = s - ldr r0, [r7, #0x10] - lsrs r0, r0, #0xa - movs r3, #1 - ands r0, r3 - mov r1, sl @ r1 = sl = dims - ldrb r2, [r1] - adds r1, r3, #0 - ands r1, r2 - cmp r0, r1 - beq _sa2_08003DB4 -__sa2_08003D6E: - mov r2, sb @ r2 = sb = oam - ldrh r0, [r2, #2] - movs r7, #0x80 - lsls r7, r7, #5 - adds r1, r7, #0 - eors r0, r1 - strh r0, [r2, #2] - mov r0, sl @ r0 = sl = dims - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _sa2_08003D96 - ldr r1, [sp, #0xc] @ r1 = sp0C = s - movs r2, #0x16 - ldrsh r0, [r1, r2] - mov r3, sl - movs r7, #8 - ldrsh r1, [r3, r7] - b _sa2_08003DA6 -_sa2_08003D96: - ldr r1, [sp, #0xc] @ r1 = sp0C = s - movs r2, #0x16 - ldrsh r0, [r1, r2] - mov r3, sl @ r3 = sl = dims - ldrh r1, [r3, #4] - movs r7, #8 - ldrsh r2, [r3, r7] - subs r1, r1, r2 -_sa2_08003DA6: - adds r0, r0, r1 - subs r0, #8 - mov r8, r0 - lsls r0, r4, #0x10 - rsbs r0, r0, #0 - lsrs r4, r0, #0x10 - b _sa2_08003DC4 -_sa2_08003DB4: - ldr r0, [sp, #0xc] @ r0 = sp0C = s - movs r2, #0x16 - ldrsh r1, [r0, r2] - mov r3, sl @ r3 = sl = dims - movs r7, #8 - ldrsh r0, [r3, r7] - subs r1, r1, r0 - mov r8, r1 -_sa2_08003DC4: - movs r0, #0x10 - rsbs r0, r0, #0 - mov r1, r8 - ands r1, r0 - mov r8, r1 - adds r0, #8 - ands r5, r0 - mov r2, sb - ldrh r1, [r2, #2] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - movs r3, #2 - str r3, [sp, #0x2c] - cmp r0, #0 - beq _sa2_08003DE8 - movs r7, #0xfe - str r7, [sp, #0x2c] -_sa2_08003DE8: - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - beq _sa2_08003DFA - ldr r1, [sp, #0x10] - lsls r0, r1, #0x19 - rsbs r0, r0, #0 - b _sa2_08003DFE -_sa2_08003DFA: - ldr r2, [sp, #0x10] - lsls r0, r2, #0x19 -_sa2_08003DFE: - lsrs r0, r0, #0x18 - str r0, [sp, #0x30] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - adds r0, r5, r0 - asrs r0, r0, #2 - ldr r3, [sp, #0x10] - muls r0, r3, r0 - ldr r5, [sp, #0x18] - adds r7, r5, r0 - ldr r6, [sp, #0xc] @ r6 = sp0C = s - ldr r1, [r6, #4] - ldr r0, [sp, #0x14] - subs r1, r1, r0 - ldr r2, [sp, #0x28] - lsrs r1, r2 - mov r3, sb - ldrh r2, [r3, #4] - ldr r0, _sa2_08003EDC @ =0x0000F3FF - ands r0, r2 - adds r1, r1, r0 - ldrh r2, [r3, #2] - movs r0, #0xc0 - lsls r0, r0, #6 - ands r0, r2 - lsrs r0, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - mov r1, ip @ r1 = ip = tilesY - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 @ ip = tilesY--; - ldr r6, [sp, #8] - adds r6, #1 - str r6, [sp, #0x40] - cmp r1, #0 - beq _sa2_08003EA0 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - add r0, r8 - asrs r0, r0, #2 - str r0, [sp, #0x38] - ldr r1, [sp, #0x30] - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - mov r8, r0 -_sa2_08003E5E: - ldr r3, [sp, #0x38] - adds r2, r7, r3 - ldr r0, [sp, #0x20] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov r6, ip - subs r6, #1 - ldr r4, [sp, #0x20] - cmp r4, #0 - beq _sa2_08003E92 - ldr r1, [sp, #0x2c] - lsls r0, r1, #0x18 - asrs r4, r0, #0x18 -_sa2_08003E7A: - adds r1, r5, #0 - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - strh r1, [r2] - adds r2, r2, r4 - adds r1, r3, #0 - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r1, #0 - bne _sa2_08003E7A -_sa2_08003E92: - add r7, r8 - mov r1, ip - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov ip, r0 - cmp r1, #0 - bne _sa2_08003E5E -_sa2_08003EA0: - ldr r2, [sp, #0x40] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - mov r3, sl @ r3 = sl = dims - ldrh r3, [r3, #2] - cmp r0, r3 - bhs _sa2_08003EB2 - b _sa2_08003C7A -_sa2_08003EB2: - ldr r4, [sp, #0x3c] - lsls r0, r4, #0x18 - lsrs r5, r0, #0x18 - ldr r6, _sa2_08003EE0 @ =gBgSpritesCount - ldrb r6, [r6] - cmp r5, r6 - bhs _sa2_08003EC2 - b _sa2_08003A1A -_sa2_08003EC2: - movs r0, #0 - ldr r7, _sa2_08003EE0 @ =gBgSpritesCount - strb r0, [r7] -sub_80039E4_return_1: - movs r0, #1 -sub_80039E4_return: - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_sa2_08003EDC: .4byte 0x0000F3FF -_sa2_08003EE0: .4byte gBgSpritesCount - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_8004010.inc b/sa1/asm/non_matching/engine/sa2__sub_8004010.inc deleted file mode 100644 index 64ba293cb6..0000000000 --- a/sa1/asm/non_matching/engine/sa2__sub_8004010.inc +++ /dev/null @@ -1,323 +0,0 @@ -.include "asm/macros.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - movs r0, #0 - mov r8, r0 @ r8 = bg = 0 - mov r1, sp - str r1, [sp, #0x10] @ sp+0x10 = sp -sub_8004010_loop: - mov r2, r8 @ r8 = bg - lsls r0, r2, #2 @ r0 = bg*4 - ldr r1, _sa2_080040DC @ =gBgSprites_Unknown2 - adds r1, #1 - adds r4, r0, r1 @ r4 = gBgSprites_Unknown2[bg][1] - ldr r6, _sa2_080040E0 @ =gBgSprites_Unknown2 + 3 - adds r6, r0, r6 @ r6 = &gBgSprites_Unknown2[bg][3] - str r6, [sp, #0xc] @ sp0C = r6 = &gBgSprites_Unknown2[bg][3] - ldrb r1, [r4] @ r1 = *r4 = gBgSprites_Unknown2[bg][1] - ldrb r2, [r6] @ r2 = *r6 = gBgSprites_Unknown2[bg][3] - mov ip, r2 @ ip = r2 = gBgSprites_Unknown2[bg][3] - mov sl, r0 @ sl = bg*4 -__sa2_0800403C: - cmp r1, ip - bne _sa2_08004056 - ldr r0, _sa2_080040DC @ =gBgSprites_Unknown2 + 0 - add r0, sl - ldr r1, _sa2_080040E4 @ =gBgSprites_Unknown2 + 2 - add r1, sl @ r1 = gBgSprites_Unknown2[bg][2] - ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][0] - mov r7, r8 - adds r7, #1 @ r7 = bg+1 - ldrb r1, [r1] -__sa2_08004050: - cmp r0, r1 - bne _sa2_08004056 - b sub_8004010_continue -_sa2_08004056: - ldr r2, _sa2_080040E8 @ =gBgCntRegs - mov r6, r8 @ r6 = r8 = bg - lsls r3, r6, #1 @ r3 = bg*2 - adds r0, r3, r2 @ r0 = &gBgCntRegs[bg] - ldrh r6, [r0] @ r6 = bgCtrl = gBgCntRegs[bg] - movs r1, #0xc0 - lsls r1, r1, #0x13 @ r1 = VRAM - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r6 @ bgCtrl & 0x1F00 - lsls r0, r0, #3 - adds r5, r0, r1 @ r5 = vramBase - ldrb r4, [r4] @ r4 = gBgSprites_Unknown2[bg][1] - ldr r0, _sa2_080040DC @ =gBgSprites_Unknown2 - add r0, sl @ r0 = &gBgSprites_Unknown2[bg][0] - ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][0] - str r0, [sp, #8] - adds r7, r2, #0 @ r7 = gBgCntRegs - adds r2, r3, #0 @ r2 = r3 = bg * 2 - mov r0, r8 -__sa2_0800407E: - cmp r0, #1 - bls _sa2_08004168 - ldr r0, _sa2_080040EC @ =gDispCnt - ldrh r1, [r0] - movs r0, #3 - ands r0, r1 -__sa2_0800408A: - cmp r0, #0 - beq _sa2_08004168 -__sa2_0800408E: - ldr r1, [sp, #8] - adds r5, r5, r1 @ r5 = vramBase + sp08 - lsrs r2, r6, #14 @ r2 = (r6 = bgCtrl) >> 14 - movs r0, #0x80 - lsls r0, r0, #0xd - lsls r0, r2 - lsrs r3, r0, #0x10 @ r3 = affineSize = (16 << (gBgCntRegs[bg] >> 14)) - mov r2, ip @ r2 = ip = gBgSprites_Unknown2[bg][3] -__sa2_0800409E: - cmp r2, #0xff - bne _sa2_080040F8 -__sa2_080040A2: - ldr r0, _sa2_080040F0 @ =gBgSprites_Unknown1 - add r0, r8 @ r0 = &gBgSprites_Unknown1[bg] - ldrb r1, [r0] @ r1 = gBgSprites_Unknown1[bg] - lsls r0, r1, #8 @ combine(v) : ((v) << 8 | (v)) - orrs r1, r0 @ r1 = cb = combine(gBgSprites_Unknown1[bg]) - adds r0, r4, #0 @ r0 = r4 = gBgSprites_Unknown2[bg][1] - muls r0, r3, r0 @ r0 = affineSize * gBgSprites_Unknown2[bg][1] - adds r0, r5, r0 @ r0 = vramBase + (affineSize * gBgSprites_Unknown2[bg][1]) - ldr r6, [sp, #0x10] @ --- DMA Start --- - strh r1, [r6] @ *sp10 = cb - mov r1, sp - ldr r2, _sa2_080040F4 @ =0x040000D4 - str r1, [r2] @ DMASrc = sp00 (fill: cb) - str r0, [r2, #4] @ vramBase - ldr r6, [sp, #0xc] @ sp0C = &gBgSprites_Unknown2[bg][3] - ldrb r0, [r6] - subs r0, r0, r4 - muls r0, r3, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - movs r1, #0x81 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] @ @ --- DMA End --- - add r2, sp, #4 - mov sb, r2 @ sb = 2nd dmaTarget - b _sa2_080041C0 - .align 2, 0 -_sa2_080040DC: .4byte gBgSprites_Unknown2 -_sa2_080040E0: .4byte gBgSprites_Unknown2 + 3 -_sa2_080040E4: .4byte gBgSprites_Unknown2 + 2 -_sa2_080040E8: .4byte gBgCntRegs -_sa2_080040EC: .4byte gDispCnt -_sa2_080040F0: .4byte gBgSprites_Unknown1 -_sa2_080040F4: .4byte 0x040000D4 -_sa2_080040F8: - add r6, sp, #4 - mov sb, r6 @ sb = sp04 (2nd dmaTarget) - mov r7, r8 @ r7 = r8 = bg - adds r7, #1 @ r7 = bg + 1 -__sa2_08004100: - cmp r4, ip @ ip = p3 - bls _sa2_08004106 - b _sa2_0800422C -_sa2_08004106: - ldr r0, _sa2_0800415C @ =gBgSprites_Unknown1 - add r0, r8 - mov ip, r0 @ ip = &gBgSprites_Unknown1[bg] - ldr r2, _sa2_08004160 @ =0x040000D4 - ldr r1, _sa2_08004164 @ =gBgSprites_Unknown2 + 2 - add r1, sl - mov r8, r1 @ r8 = &gBgSprites_Unknown2[bg][2] - ldr r6, [sp, #0xc] - str r6, [sp, #0x14] -_sa2_08004118_loop: - mov r0, ip @ r0 = ip = &gBgSprites_Unknown1[bg] - ldrb r1, [r0] - lsls r0, r1, #8 - orrs r1, r0 @ r1 = cb = combine(gBgSprites_Unknown1[bg]) - adds r0, r4, #0 - muls r0, r3, r0 @ r0 *= affineSize - adds r0, r5, r0 - ldr r6, [sp, #0x10] @ r6 = sp00 - strh r1, [r6] @ sp00[0] = cb - mov r1, sp - str r1, [r2] - str r0, [r2, #4] - mov r6, r8 @ r6 = r8 = &gBgSprites_Unknown2[bg][2] - ldrb r0, [r6] - ldr r1, [sp, #8] - subs r0, r0, r1 @ r0 = gBgSprites_Unknown2[bg][2] - gBgSprites_Unknown2[bg][0] - adds r0, #1 - asrs r1, r0, #1 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - movs r6, #0x81 - lsls r6, r6, #0x18 - orrs r1, r6 - str r1, [r2, #8] - ldr r0, [r2, #8] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, [sp, #0x14] - ldrb r0, [r0] - cmp r4, r0 - bls _sa2_08004118_loop - b _sa2_0800422C - .align 2, 0 -_sa2_0800415C: .4byte gBgSprites_Unknown1 -_sa2_08004160: .4byte 0x040000D4 -_sa2_08004164: .4byte gBgSprites_Unknown2 + 2 -_sa2_08004168: - ldr r1, [sp, #8] @ r1 = sp08 = gBgSprites_Unknown2[bg][0] - lsls r0, r1, #1 - adds r5, r5, r0 @ r5 = vramBase + (sp08 * 2) - movs r3, #0x20 @ r3 = tileSize = 32 - @ r7 = gBgCntRegs - @ r2 = bg*2 - adds r0, r2, r7 @ r0 = &gBgCntRegs[bg] - ldrh r0, [r0] - lsrs r2, r0, #14 - subs r0, r2, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 @ r0 = affineSize -__sa2_0800417C: - cmp r0, #1 - bhi _sa2_08004182 - movs r3, #0x40 @ r3 = tileSize = 64 -_sa2_08004182: - ldr r1, _sa2_080041C8 @ =&gBgSprites_Unknown2[0][2] - add r1, sl @ r1 = &gBgSprites_Unknown2[bg][2] - ldrb r0, [r1] -__sa2_08004188: - cmp r0, #0xff - bne _sa2_080041D8 -__sa2_0800418C: - ldr r0, _sa2_080041CC @ =gBgSprites_Unknown1 - add r0, r8 - ldrb r1, [r0] @ r1 = gBgSprites_Unknown1[bg] - lsls r0, r3, #1 @ r3 = tileSize - muls r0, r4, r0 @ r0 = tileSize * gBgSprites_Unknown2[bg][1] - adds r0, r5, r0 - ldr r2, [sp, #0x10] @ r2 = &sp00[0] - strh r1, [r2] @ sp00[0] = gBgSprites_Unknown1[bg]; - mov r6, sp @ r6 = sp - ldr r1, _sa2_080041D0 @ =0x040000D4 - str r6, [r1] - str r0, [r1, #4] - ldr r0, _sa2_080041D4 @ r0 = &gBgSprites_Unknown2[0][3] - add r0, sl @ r0 = &gBgSprites_Unknown2[bg][3] - ldrb r0, [r0] @ r0 = gBgSprites_Unknown2[bg][3] - subs r0, r0, r4 @ r0 = r0 - gBgSprites_Unknown2[bg][1] - muls r0, r3, r0 - lsls r0, r0, #1 - asrs r0, r0, #1 - movs r2, #0x81 - lsls r2, r2, #0x18 - orrs r0, r2 - str r0, [r1, #8] - ldr r0, [r1, #8] - add r6, sp, #4 - mov sb, r6 @ sb = dmaTarget -_sa2_080041C0: - mov r7, r8 - adds r7, #1 - b _sa2_0800422C - .align 2, 0 -_sa2_080041C8: .4byte gBgSprites_Unknown2 + 2 -_sa2_080041CC: .4byte gBgSprites_Unknown1 -_sa2_080041D0: .4byte 0x040000D4 -_sa2_080041D4: .4byte gBgSprites_Unknown2 + 3 -_sa2_080041D8: - ldr r0, _sa2_08004260 @ =gBgSprites_Unknown2 + 3 - add r0, sl @ r0 = &gBgSprites_Unknown2[bg][3] - add r2, sp, #4 - mov sb, r2 @ sb = dmaTarget - mov r7, r8 @ r7 = bg+1 (done by loop) - adds r7, #1 - ldrb r6, [r0] @ r6 = gBgSprites_Unknown2[bg][3] -__sa2_080041E6: - cmp r4, r6 - bhi _sa2_0800422C - ldr r2, _sa2_08004264 @ r2 = gBgSprites_Unknown1 - add r8, r2 @ r8 = gBgSprites_Unknown1[bg] - ldr r2, _sa2_08004268 @ =0x040000D4 - mov ip, r1 @ ip = r1 = &gBgSprites_Unknown2[bg][2] - str r0, [sp, #0x14] - lsls r3, r3, #1 -_sa2_080041F6: - mov r6, r8 @ r6 = &gBgSprites_Unknown1[bg] - ldrb r1, [r6] @ r1 = gBgSprites_Unknown1[bg] - adds r0, r4, #0 @ r0 = r4 = gBgSprites_Unknown2[bg][1] - muls r0, r3, r0 @ r0 = tileSize * gBgSprites_Unknown2[bg][1] - adds r0, r5, r0 - ldr r6, [sp, #0x10] - strh r1, [r6] @ sp00[0] = gBgSprites_Unknown1[bg] - mov r1, sp - str r1, [r2] - str r0, [r2, #4] - mov r6, ip @ r6 = ip = &gBgSprites_Unknown2[bg][2] - ldrb r0, [r6] - ldr r1, [sp, #8] - subs r0, r0, r1 @ r0 = (gBgSprites_Unknown2[bg][2] - gBgSprites_Unknown2[bg][0]) - adds r0, #1 - movs r6, #0x81 - lsls r6, r6, #0x18 - orrs r0, r6 - str r0, [r2, #8] - ldr r0, [r2, #8] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r0, [sp, #0x14] - ldrb r0, [r0] - cmp r4, r0 - bls _sa2_080041F6 -_sa2_0800422C: - movs r0, #0 - str r0, [sp, #4] - mov r1, sb @ r1 = sb = &sp04 = dmaTarget - ldr r2, _sa2_08004268 @ r2 = 0x040000D4 - str r1, [r2] - ldr r0, _sa2_0800426C @ =gBgSprites_Unknown2 - add r0, sl @ r0 = &gBgSprites_Unknown2[bg][0] - str r0, [r2, #4] - ldr r0, _sa2_08004270 @ =0x85000001 - str r0, [r2, #8] - ldr r0, [r2, #8] -sub_8004010_continue: - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #3 - bhi sub_8004010_return - b sub_8004010_loop -sub_8004010_return: - movs r0, #1 - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_sa2_08004260: .4byte gBgSprites_Unknown2 + 3 -_sa2_08004264: .4byte gBgSprites_Unknown1 -_sa2_08004268: .4byte 0x040000D4 -_sa2_0800426C: .4byte gBgSprites_Unknown2 -_sa2_08004270: .4byte 0x85000001 - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc b/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc deleted file mode 100644 index 8576cd49aa..0000000000 --- a/sa1/asm/non_matching/engine/sa2__sub_8004E14.inc +++ /dev/null @@ -1,491 +0,0 @@ -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - str r0, [sp, #0x24] @ sp24 = s - adds r6, r1, #0 @ r6 = transform - ldr r1, [r0, #0xc] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _sa2_08004E30 - b _sa2_080051D8 -_sa2_08004E30: - mov sb, r1 @ sb = sprDims - add r2, sp, #0x20 - ldr r1, [sp, #0x24] - ldr r0, [r1, #0x10] - movs r1, #0x1f - ands r0, r1 - strh r0, [r2] @ us->affineIndex = s->unk10 & SPRITE_FLAG_MASK_ROT_SCALE; - ldrh r4, [r2] - lsls r4, r4, #5 - ldr r0, _sa2_08005128 @ =gOamBuffer + 0x6 - adds r4, r4, r0 @ r4 = u16 *affine = &gOamBuffer[us->affineIndex * 4 + 3]; - subs r2, #0x18 - str r2, [sp, #0x28] @ sp28 = &us->qDirX - ldrh r0, [r6] - ldr r3, _sa2_0800512C @ =gSpriteTransformRotation - ldrh r1, [r3] - adds r0, r0, r1 - ldr r2, _sa2_08005130 @ =0x000003FF - ands r0, r2 - movs r5, #0x80 - lsls r5, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #1 - ldr r7, _sa2_08005134 @ =gSineTable - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [sp, #0x28] - strh r0, [r1] @ us.qDirX = COS_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); - movs r3, #0xa - add r3, sp - mov r8, r3 @ r8 = r3 = &us.qDirY - ldrh r0, [r6] @ r0 = transform->rotation - ldr r5, _sa2_0800512C @ =gSpriteTransformRotation - ldrh r1, [r5] - adds r0, r0, r1 - ands r0, r2 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - strh r0, [r3] @ us.qDirY = SIN_24_8((transform->rotation + gSpriteTransformRotation) & ONE_CYCLE); - add r7, sp, #0xc @ r7 = us->unkC[0] - movs r0, #2 - ldrsh r1, [r6, r0] @ r1 = transform->width - ldr r2, _sa2_08005138 @ =gSpriteTransformScaleX - ldrh r0, [r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r7] @ us->unkC[0] = ((transform->width * gSpriteTransformScaleX) >> 8) - movs r3, #0xe - add r3, sp - mov sl, r3 - movs r5, #4 - ldrsh r1, [r6, r5] @ r1 = transform->height - ldr r2, _sa2_0800513C @ =gSpriteTransformScaleY - ldrh r0, [r2] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r3] @ us->unkC[1] = ((transform->height * gSpriteTransformScaleY) >> 8); - movs r5, #0x80 - lsls r5, r5, #9 - ldrh r1, [r7] @ r1 = us->unkC[0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - ldr r3, [sp, #0x28] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4] - ldrh r1, [r7] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - mov r2, r8 @ r2 = r8 = &us.qDirY - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #8] - mov r3, sl @ r3 = &us->unkC[1] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - mov r2, r8 @ r2 = r8 = &us.qDirY - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x10] - mov r3, sl @ r3 = &us->unkC[1] - ldrh r1, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r0, r5, #0 - bl Div - ldr r5, [sp, #0x28] - ldrh r1, [r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r4, #0x18] - movs r1, #2 - ldrsh r0, [r6, r1] @ r0 = transform->width - str r0, [sp, #0x2c] - cmp r0, #0 - bge _sa2_08004F48 - movs r2, #2 - ldrsh r0, [r6, r2] - rsbs r0, r0, #0 - ldr r3, _sa2_08005138 @ =gSpriteTransformScaleX - ldrh r1, [r3] - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r7] @ us->unkC[0] = I(-transform->width * gSpriteTransformScaleX); -_sa2_08004F48: - movs r4, #4 - ldrsh r0, [r6, r4] - ldr r5, _sa2_0800513C @ =gSpriteTransformScaleY - ldrh r4, [r5] - ldrh r2, [r6, #4] - mov r1, sp - strh r2, [r1, #0x3c] @ sp3C = (u16)transform->height - cmp r0, #0 - bge _sa2_08004F6A - movs r3, #4 - ldrsh r0, [r6, r3] - rsbs r0, r0, #0 - muls r0, r4, r0 - asrs r0, r0, #8 - mov r4, sl @ r4 = sl = &us->unkC[1] - strh r0, [r4] - ldrh r4, [r5] @ r4 = gSpriteTransformScaleY -_sa2_08004F6A: - mov r2, sp @ r2 = &us - ldr r5, [sp, #0x28] - ldrh r1, [r5] @ r1 = us->qDirX - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r2] @ us.unk0[0] = I(us->unkC[0] * us->qDirX) - mov r0, sp - adds r0, #2 - str r0, [sp, #0x30] @ sp30 = &us.unk0[1] - mov r2, r8 @ r2 = r8 = &us.qDirY - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 @ r1 = -us.qDirY - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - ldr r3, [sp, #0x30] - strh r0, [r3] @ us.unk0[1] = I(-us.qDirY * us->unkC[0]) - mov r5, sp - adds r5, #4 - str r5, [sp, #0x34] @ sp34 = &us.unk0[2] - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r2, sl @ r2 = sl = &us->unkC[1] - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r5] @ us.unk0[2] = I(+us.qDirY * us->unkC[1]) - mov r3, sp - adds r3, #6 - str r3, [sp, #0x38] @ sp38 = &us.unk0[3] - ldr r5, [sp, #0x28] - ldrh r1, [r5] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - strh r0, [r3] @ us.unk0[3] = I(+us.qDirX * us.unkC[1]); - add r0, sp, #0x18 - mov r8, r0 @ r8 = &us.unk18[0][0] - ldr r1, _sa2_0800512C @ =gSpriteTransformRotation - ldrh r0, [r1] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - ldr r3, _sa2_08005134 @ =gSineTable - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r5, _sa2_08005138 @ =gSpriteTransformScaleX - ldrh r1, [r5] - adds r2, r0, #0 - muls r2, r1, r2 - lsls r2, r2, #8 - asrs r2, r2, #0x10 @ r2 = (COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r3, _sa2_08005140 @ =gSpriteTransformScaleUnknown - movs r5, #0 - ldrsh r1, [r3, r5] - muls r0, r1, r0 - lsls r0, r0, #8 @ r0 = Q(us.unkC[0] * gSpriteTransformScaleUnknown) - asrs r0, r0, #0x10 @ r0 = (Q(us.unkC[0] * gSpriteTransformScaleUnknown) >> 16) - muls r0, r2, r0 - asrs r0, r0, #8 @ r0 = I((COS_24_8(gSpriteTransformRotation) * gSpriteTransformScaleX) * (Q(us.unkC[0] * gSpriteTransformScaleUnknown) >> 16)) - mov r1, r8 - strh r0, [r1] @ us.unk18[0][0] = I(r2 * r0) - movs r2, #0x1a - add r2, sp - mov ip, r2 @ ip = us.unk18[0][1] - ldr r5, _sa2_0800512C @ =gSpriteTransformRotation - ldrh r0, [r5] - lsls r0, r0, #1 - ldr r1, _sa2_08005134 @ =gSineTable - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - rsbs r0, r0, #0 - asrs r0, r0, #6 @ r0 = (SIN(-gSpriteTransformRotation) >> 6) - ldr r5, _sa2_08005138 @ =gSpriteTransformScaleX - ldrh r1, [r5] - adds r2, r0, #0 - muls r2, r1, r2 - lsls r2, r2, #8 - asrs r2, r2, #0x10 - ldrh r0, [r7] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r7, #0 - ldrsh r1, [r3, r7] - muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 - muls r0, r2, r0 - asrs r0, r0, #8 - mov r1, ip - strh r0, [r1] @ us.unk18[0][1] = - add r5, sp, #0x1c - ldr r2, _sa2_0800512C @ =gSpriteTransformRotation - ldrh r0, [r2] - lsls r0, r0, #1 - ldr r7, _sa2_08005134 @ =gSineTable - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r0, #0 @ r2 = SIN_24_8(gSpriteTransformRotation) - muls r2, r4, r2 @ r2 *= gSpriteTransformScaleY - lsls r2, r2, #8 @ r2 = Q(+SIN_24_8(gSpriteTransformRotation) * gSpriteTransformScaleY) - asrs r2, r2, #0x10 - mov r1, sl @ r1 = sl = &us->unkC[1] - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0 - ldrsh r1, [r3, r4] - muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 - muls r0, r2, r0 - asrs r0, r0, #8 - strh r0, [r5] @ us.unk18[1][0] = - mov r4, sp - adds r4, #0x1e - ldr r7, _sa2_0800512C @ =gSpriteTransformRotation - ldrh r0, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r2, _sa2_08005134 @ =gSineTable - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r7, _sa2_0800513C @ =gSpriteTransformScaleY - ldrh r1, [r7] - adds r2, r0, #0 - muls r2, r1, r2 - lsls r2, r2, #8 - asrs r2, r2, #0x10 - mov r1, sl @ r1 = sl = &us->unkC[1] - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r7, #0 - ldrsh r1, [r3, r7] - muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 - muls r0, r2, r0 - asrs r0, r0, #8 - strh r0, [r4] @ us.unk18[1][1] = - mov r1, r8 @ r1 = r8 = &us.unk18[0][0] - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #6 - ldrsh r1, [r6, r2] @ r1 = transform.x - muls r1, r0, r1 @ r1 = transform.x * us.unk18[0][0] - mov r3, ip - ldrh r0, [r3] @ r0 = us.unk18[0][1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r7, #8 - ldrsh r2, [r6, r7] @ r2 = transform.y - muls r0, r2, r0 @ r0 = transform.y * us.unk18[0][1] - adds r1, r1, r0 @ r1 = r1 + r0 - ldr r0, _sa2_08005144 @ =gSpriteTransformX - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r0, r0, #8 - adds r1, r1, r0 @ r1 += Q(gSpriteTransformX) - asrs r1, r1, #8 @ r1 = I(r1) - str r1, [sp, #0x10] @ us.posX = I(transform.x * us.unk18[0][0] + transform.y * us.unk18[0][1] + Q(gSpriteTransformX)) - ldrh r0, [r5] @ r0 = us.unk18[1][0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r3, #6 - ldrsh r1, [r6, r3] - muls r1, r0, r1 @ r1 = transform.x * us.unk18[1][0] - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 @ r0 = us.unk18[1][1] - movs r4, #8 - ldrsh r2, [r6, r4] @ r2 = transform.y - muls r0, r2, r0 @ r0 = transform.y * us.unk18[1][1] - adds r1, r1, r0 @ r1 = r1 + r0 - ldr r0, _sa2_08005148 @ =gSpriteTransformY - movs r5, #0 - ldrsh r0, [r0, r5] - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #8 - str r1, [sp, #0x14] @ us.posY = I(transform.x * us.unk18[1][0] + transform.y * us.unk18[1][1] + Q(gSpriteTransformX)); - ldr r6, [sp, #0x30] @ r6 = &us.unk0[1] - ldr r7, [sp, #0x34] @ r7 = &us.unk0[2] - ldr r0, [sp, #0x38] @ r0 = &us.unk0[3] - mov r8, r0 @ r8 = r0 - ldr r1, [sp, #0x2c] @ r1 = transform->width - cmp r1, #0 - ble _sa2_0800514C - mov r2, sb @ r2 = sb = sprDims - ldrh r4, [r2, #8] @ r4 = offsetX - ldrh r2, [r2, #4] @ r2 = width - b _sa2_0800515A - .align 2, 0 -_sa2_08005128: .4byte gOamBuffer + 0x6 -_sa2_0800512C: .4byte gSpriteTransformRotation -_sa2_08005130: .4byte 0x000003FF -_sa2_08005134: .4byte gSineTable -_sa2_08005138: .4byte gSpriteTransformScaleX -_sa2_0800513C: .4byte gSpriteTransformScaleY -_sa2_08005140: .4byte gSpriteTransformScaleUnknown -_sa2_08005144: .4byte gSpriteTransformX -_sa2_08005148: .4byte gSpriteTransformY -_sa2_0800514C: - mov r3, sb @ r3 = sb = sprDims - ldrh r1, [r3, #4] - ldrh r0, [r3, #8] - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 @ r4 = offsetX - adds r2, r1, #0 @ r2 = width -_sa2_0800515A: - mov r5, sp - ldrh r5, [r5, #0x3c] @ r5 = (u16)transform->height - lsls r0, r5, #0x10 - cmp r0, #0 - ble _sa2_0800516C - mov r0, sb @ r0 = sb = sprDims - ldrh r3, [r0, #0xa] @ r3 = offsetY = sprDims->offsetY - ldrh r5, [r0, #6] @ r5 = height = sprDims->height - b _sa2_0800517A -_sa2_0800516C: - mov r3, sb @ r3 = sb = sprDims - ldrh r1, [r3, #6] - ldrh r0, [r3, #0xa] - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 @ r3 = offsetY = sprDims->height - sprDims->offsetY - adds r5, r1, #0 @ r5 = height = sprDims->height -_sa2_0800517A: - mov r0, sp @ r0 = sp = us - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 @ r0 = us.unk0[0] - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 @ r4 = offsetX - lsrs r2, r2, #1 @ r2 = halfWidth = (width/2) - subs r4, r4, r2 @ r4 = offsetX -= halfWidth - adds r1, r0, #0 - muls r1, r4, r1 @ r1 = (offsetX - halfWidth) * us.unk0[0] - ldrh r0, [r6] @ r0 = us.unk0[1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - lsrs r5, r5, #1 @ r5 = halfHeight - subs r3, r3, r5 @ r3 = (offsetY - halfHeight) - muls r0, r3, r0 @ r0 = (offsetY - halfHeight) * us.unk0[1] - adds r1, r1, r0 @ r1 += r0 - lsls r2, r2, #8 - adds r1, r1, r2 @ r1 += Q(halfWidth) - asrs r1, r1, #8 - ldr r0, [sp, #0x10] - subs r0, r0, r1 - str r0, [sp, #0x10] @ us.posX -= I(r1) - ldrh r0, [r7] @ r0 = us.unk0[2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r0, #0 - muls r1, r4, r1 @ r1 = offsetX * us.unk0[2] - mov r4, r8 - ldrh r0, [r4] @ r0 = us.unk0[3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r3, r0 @ r0 = r3 * us.unk0[3] - adds r1, r1, r0 @ r1 += r0 - lsls r5, r5, #8 - adds r1, r1, r5 @ r1 += Q(halfHeight) - asrs r1, r1, #8 - ldr r0, [sp, #0x14] - subs r0, r0, r1 - str r0, [sp, #0x14] @ us.posY -= I(r1); - ldr r0, [sp, #0x10] - ldr r5, [sp, #0x24] @ r5 = sprite - strh r0, [r5, #0x16] @ sprite.x = us.posX - ldr r0, [sp, #0x14] - strh r0, [r5, #0x18] @ sprite.y = us.posY -_sa2_080051D8: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc b/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc deleted file mode 100644 index 08521da053..0000000000 --- a/sa1/asm/non_matching/engine/sa2__unused_sub_8005C54.inc +++ /dev/null @@ -1,452 +0,0 @@ -.include "asm/macros.inc" -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - ldr r4, [sp, #0x4c] - ldr r5, [sp, #0x50] - mov sb, r5 - ldr r5, [sp, #0x54] - ldr r6, [sp, #0x58] - ldr r7, [sp, #0x5c] - mov r8, r7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #4] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sl, r3 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #8] - mov r0, sb - lsls r0, r0, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r5, [sp, #0xc] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - mov r1, r8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x10] - movs r2, #1 - str r2, [sp, #0x14] - lsrs r5, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - beq _sa2_08005CB6 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - bne _sa2_08005CC8 -_sa2_08005CB6: - ldr r0, _sa2_08005CC4 @ =gFlags - ldr r1, [r0] - movs r2, #5 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0] - b _sa2_08005F9E - .align 2, 0 -_sa2_08005CC4: .4byte gFlags -_sa2_08005CC8: - ldr r3, [sp, #0xc] - mov r4, ip - subs r0, r3, r4 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r7, [sp, #4] - subs r0, r7, r3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r2, #0 - bge _sa2_08005D08 - movs r0, #0xff - str r0, [sp, #0x14] - rsbs r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r2, [sp, #0xc] - adds r0, r2, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - subs r0, r2, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - eors r1, r3 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - eors r3, r0 - lsls r0, r3, #0x10 - eors r0, r1 - lsrs r1, r0, #0x10 -_sa2_08005D08: - lsls r0, r1, #0x10 - asrs r4, r0, #0x10 - lsls r1, r5, #0x10 - asrs r7, r1, #0x10 - adds r0, r4, #0 - muls r0, r7, r0 - asrs r0, r0, #8 - mov r5, sl - subs r2, r6, r5 - str r1, [sp, #0x20] - lsls r3, r3, #0x10 - mov r8, r3 - ldr r1, [sp, #8] - subs r1, r1, r6 - str r1, [sp, #0x28] - ldr r3, [sp] - lsls r3, r3, #2 - str r3, [sp, #0x1c] - ldr r5, [sp, #0x14] - lsls r5, r5, #0x18 - str r5, [sp, #0x24] - cmp r0, r2 - bge _sa2_08005D7C - mov r3, sl - lsls r0, r7, #8 - muls r0, r4, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x18 - subs r0, r6, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - lsls r1, r3, #2 - ldr r7, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary - ldr r0, [r7] - adds r4, r0, r1 - mov r0, ip - subs r5, r0, r3 - ldr r1, _sa2_08005E2C @ =0x000001FF - adds r0, r1, #0 - ands r5, r0 - cmp r3, sl - bhs _sa2_08005D7C -_sa2_08005D5E: - mov r2, sp - ldrh r2, [r2, #0x10] - strh r2, [r4] - adds r4, #2 - adds r0, r5, #0 - subs r1, r0, #1 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - strh r0, [r4] - adds r4, #2 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, sl - blo _sa2_08005D5E -_sa2_08005D7C: - mov r3, r8 - asrs r2, r3, #0x10 - ldr r4, [sp, #0x20] - asrs r1, r4, #0x10 - adds r0, r2, #0 - muls r0, r1, r0 - asrs r0, r0, #8 - mov r5, sl - subs r5, r6, r5 - mov r8, r5 - mov r7, sl - lsls r7, r7, #2 - mov sb, r7 - ldr r3, [sp, #0x28] - cmp r0, r3 - bge _sa2_08005DE4 - ldr r7, [sp, #8] - lsls r0, r1, #8 - muls r0, r2, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x18 - adds r0, r6, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] - adds r3, r0, #0 - lsls r1, r0, #2 - ldr r4, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary - ldr r0, [r4] - adds r4, r0, r1 - ldr r0, [sp, #4] - subs r5, r0, r3 - ldr r1, _sa2_08005E2C @ =0x000001FF - adds r0, r1, #0 - ands r5, r0 - cmp r3, r7 - bhs _sa2_08005DE4 -_sa2_08005DC6: - mov r2, sp - ldrh r2, [r2, #0x10] - strh r2, [r4] - adds r4, #2 - adds r0, r5, #0 - subs r1, r0, #1 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - strh r0, [r4] - adds r4, #2 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r7 - blo _sa2_08005DC6 -_sa2_08005DE4: - ldr r3, _sa2_08005E30 @ =gFlags - ldr r0, [r3] - movs r1, #4 - orrs r0, r1 - str r0, [r3] - ldr r4, [sp, #0x1c] - ldr r5, _sa2_08005E34 @ =0x04000010 - adds r0, r4, r5 - ldr r7, _sa2_08005E38 @ =gHBlankCopyTarget - str r0, [r7] - ldr r0, _sa2_08005E3C @ =gHBlankCopySize - strb r1, [r0] - ldr r1, _sa2_08005E28 @ =gBgOffsetsHBlankPrimary - ldr r0, [r1] - mov r2, sb - adds r4, r0, r2 - mov r3, r8 - lsls r6, r3, #8 - lsls r0, r3, #0x10 - ldr r5, [sp, #0x20] - asrs r1, r5, #0x10 - bl __divsi3 - asrs r2, r0, #8 - ldr r7, [sp, #0x24] - asrs r1, r7, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _sa2_08005E40 - ldr r1, [sp, #0xc] - subs r0, r1, r2 - b _sa2_08005E44 - .align 2, 0 -_sa2_08005E28: .4byte gBgOffsetsHBlankPrimary -_sa2_08005E2C: .4byte 0x000001FF -_sa2_08005E30: .4byte gFlags -_sa2_08005E34: .4byte 0x04000010 -_sa2_08005E38: .4byte gHBlankCopyTarget -_sa2_08005E3C: .4byte gHBlankCopySize -_sa2_08005E40: - ldr r1, [sp, #0xc] - adds r0, r1, r2 -_sa2_08005E44: - mov r3, sl - subs r5, r0, r3 - ldr r7, _sa2_08005EEC @ =0x000001FF - adds r0, r7, #0 - ands r5, r0 - ldr r0, [sp, #0x20] - asrs r7, r0, #0x10 - adds r0, r2, #0 - muls r0, r7, r0 - subs r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - beq _sa2_08005E72 - ldr r2, [sp, #0x24] - asrs r0, r2, #0x18 - subs r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - subs r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_sa2_08005E72: - movs r3, #0x80 - lsls r3, r3, #1 - mov r8, r3 - cmp r7, r8 - ble _sa2_08005EF0 - mov r3, sl - ldr r0, [sp, #8] - cmp r3, r0 - blo _sa2_08005E86 - b _sa2_08005F9E -_sa2_08005E86: - ldr r1, [sp, #0x20] - mov sl, r1 - mov sb, r7 - ldr r2, _sa2_08005EEC @ =0x000001FF - mov ip, r2 -_sa2_08005E90: - mov r7, sp - ldrh r7, [r7, #0x10] - strh r7, [r4] - adds r4, #2 - strh r5, [r4] - adds r4, #2 - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r2, r6, #0x10 - asrs r0, r2, #0x10 - mov r7, sl - adds r3, #1 - mov r8, r3 - cmp r0, sb - ble _sa2_08005EDA - ldr r0, [sp, #0x24] - asrs r3, r0, #0x18 -_sa2_08005EC2: - adds r0, r5, r3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r2, #0x10 - asrs r1, r7, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r2, r6, #0x10 - asrs r0, r2, #0x10 - cmp r0, r1 - bgt _sa2_08005EC2 -_sa2_08005EDA: - mov r1, ip - ands r5, r1 - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r3, r0, #0x18 - ldr r7, [sp, #8] - cmp r3, r7 - blo _sa2_08005E90 - b _sa2_08005F9E - .align 2, 0 -_sa2_08005EEC: .4byte 0x000001FF -_sa2_08005EF0: - movs r0, #0x80 - lsls r0, r0, #9 - adds r1, r7, #0 - bl __udivsi3 - lsrs r0, r0, #8 - movs r1, #0xff - ands r0, r1 - adds r1, r0, #0 - muls r1, r7, r1 - mov r2, r8 - subs r1, r2, r1 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - subs r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r3, [sp, #0x24] - asrs r1, r3, #0x18 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _sa2_08005F30 - mov r1, sb - lsls r0, r1, #0x10 - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r0, r3 - rsbs r0, r0, #0 - lsrs r0, r0, #0x10 - mov sb, r0 -_sa2_08005F30: - mov r3, sl - ldr r0, [sp, #8] - cmp r3, r0 - bhs _sa2_08005F9E - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0x18] - ldr r1, [sp, #0x20] - mov ip, r1 - mov sl, r7 -_sa2_08005F44: - mov r2, sp - ldrh r2, [r2, #0x10] - strh r2, [r4] - adds r4, #2 - strh r5, [r4] - adds r4, #2 - mov r7, sb - adds r0, r5, r7 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - ldr r1, [sp, #0x18] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r2, r6, #0x10 - asrs r0, r2, #0x10 - mov r7, ip - adds r3, #1 - mov r8, r3 - cmp r0, sl - ble _sa2_08005F8E - ldr r0, [sp, #0x24] - asrs r3, r0, #0x18 -_sa2_08005F76: - adds r0, r5, r3 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r2, #0x10 - asrs r1, r7, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r2, r6, #0x10 - asrs r0, r2, #0x10 - cmp r0, r1 - bgt _sa2_08005F76 -_sa2_08005F8E: - ldr r1, _sa2_08005FB0 @ =0x000001FF - ands r5, r1 - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r3, r0, #0x18 - ldr r7, [sp, #8] - cmp r3, r7 - blo _sa2_08005F44 -_sa2_08005F9E: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_sa2_08005FB0: .4byte 0x000001FF - - @ Unused - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc b/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc deleted file mode 100644 index 0dfc260be0..0000000000 --- a/sa1/asm/non_matching/engine/sa2__unused_sub_8005FB4.inc +++ /dev/null @@ -1,338 +0,0 @@ - - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, [sp, #0x20] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - mov sl, r2 - lsls r3, r3, #0x18 - lsrs r2, r3, #0x18 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _sa2_08005FF8 @ =gFlags - ldr r0, [r1] - movs r7, #4 - orrs r0, r7 - str r0, [r1] - cmp r6, #1 - bls _sa2_08006010 - ldr r1, _sa2_08005FFC @ =gHBlankCopySize - strb r7, [r1] - movs r0, #1 - ands r0, r6 - cmp r0, #0 - beq _sa2_08006004 - ldr r0, _sa2_08006000 @ =gBgOffsetsHBlankPrimary - ldr r0, [r0] - adds r3, r0, #2 - b _sa2_08006038 - .align 2, 0 -_sa2_08005FF8: .4byte gFlags -_sa2_08005FFC: .4byte gHBlankCopySize -_sa2_08006000: .4byte gBgOffsetsHBlankPrimary -_sa2_08006004: - ldr r0, _sa2_0800600C @ =gBgOffsetsHBlankPrimary - ldr r3, [r0] - b _sa2_08006038 - .align 2, 0 -_sa2_0800600C: .4byte gBgOffsetsHBlankPrimary -_sa2_08006010: - ldr r1, _sa2_08006028 @ =gHBlankCopySize - movs r0, #2 - strb r0, [r1] - ldr r0, _sa2_0800602C @ =gBgOffsetsHBlankPrimary - ldr r3, [r0] - movs r0, #1 - ands r0, r6 - cmp r0, #0 - beq _sa2_08006038 - ldr r1, _sa2_08006030 @ =gHBlankCopyTarget - ldr r0, _sa2_08006034 @ =0x04000042 - b _sa2_0800603C - .align 2, 0 -_sa2_08006028: .4byte gHBlankCopySize -_sa2_0800602C: .4byte gBgOffsetsHBlankPrimary -_sa2_08006030: .4byte gHBlankCopyTarget -_sa2_08006034: .4byte 0x04000042 -_sa2_08006038: - ldr r1, _sa2_080060A0 @ =gHBlankCopyTarget - ldr r0, _sa2_080060A4 @ =0x04000040 -_sa2_0800603C: - str r0, [r1] - subs r1, r2, r5 - mov r2, sl - subs r0, r4, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - lsls r7, r1, #0x10 - asrs r2, r7, #0x10 - adds r0, r2, #0 - cmp r2, #0 - bge _sa2_08006054 - rsbs r0, r2, #0 -_sa2_08006054: - lsls r0, r0, #0x11 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r0, r4, #0x10 - asrs r1, r0, #0x10 - adds r4, r1, #0 - mov sb, r0 - cmp r1, #0 - bge _sa2_08006068 - rsbs r4, r1, #0 -_sa2_08006068: - lsls r0, r4, #0x11 - lsrs r0, r0, #0x10 - mov ip, r0 - ldr r4, _sa2_080060A8 @ =gHBlankCopySize - ldrb r0, [r4] - mov r4, sl - muls r4, r0, r4 - adds r0, r4, #0 - adds r3, r3, r0 - adds r6, r2, #0 - cmp r2, #0 - bge _sa2_08006082 - rsbs r6, r2, #0 -_sa2_08006082: - adds r0, r1, #0 - cmp r1, #0 - bge _sa2_0800608A - rsbs r0, r1, #0 -_sa2_0800608A: - cmp r6, r0 - ble _sa2_0800615C - rsbs r0, r2, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r2, #0 - ble _sa2_080060FC - strb r5, [r3, #1] - movs r2, #0 - adds r6, r7, #0 - b _sa2_080060E4 - .align 2, 0 -_sa2_080060A0: .4byte gHBlankCopyTarget -_sa2_080060A4: .4byte 0x04000040 -_sa2_080060A8: .4byte gHBlankCopySize -_sa2_080060AC: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - mov r4, ip - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - blt _sa2_080060DE - mov r4, r8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - strb r5, [r3] - ldr r1, _sa2_080060F8 @ =gHBlankCopySize - ldrb r0, [r1] - adds r3, r3, r0 - strb r5, [r3, #1] -_sa2_080060DE: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_sa2_080060E4: - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - asrs r0, r6, #0x10 - cmp r0, #0 - bge _sa2_080060F0 - rsbs r0, r0, #0 -_sa2_080060F0: - cmp r2, r0 - blt _sa2_080060AC - strb r5, [r3] - b _sa2_08006214 - .align 2, 0 -_sa2_080060F8: .4byte gHBlankCopySize -_sa2_080060FC: - strb r5, [r3] - adds r3, #1 - movs r2, #0 - adds r6, r7, #0 - b _sa2_08006142 -_sa2_08006106: - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - mov r4, ip - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - blt _sa2_0800613C - mov r4, r8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - strb r5, [r3] - ldr r1, _sa2_08006158 @ =gHBlankCopySize - ldrb r0, [r1] - adds r0, r0, r3 - subs r3, r0, #1 - strb r5, [r3] - adds r3, #1 -_sa2_0800613C: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_sa2_08006142: - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - asrs r0, r6, #0x10 - cmp r0, #0 - bge _sa2_0800614E - rsbs r0, r0, #0 -_sa2_0800614E: - cmp r2, r0 - blt _sa2_08006106 - strb r5, [r3] - b _sa2_08006214 - .align 2, 0 -_sa2_08006158: .4byte gHBlankCopySize -_sa2_0800615C: - rsbs r0, r1, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r2, #0 - ble _sa2_080061C0 - movs r2, #0 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - mov r1, ip - lsls r0, r1, #0x10 - asrs r7, r0, #0x10 - b _sa2_080061A8 -_sa2_08006178: - adds r2, r5, #1 - strb r2, [r3] - adds r3, #1 - strb r5, [r3] - ldr r1, _sa2_080061BC @ =gHBlankCopySize - ldrb r0, [r1] - adds r0, r0, r3 - subs r3, r0, #1 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - add r0, r8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - blt _sa2_080061A2 - lsls r0, r2, #0x18 - lsrs r5, r0, #0x18 - subs r0, r1, r7 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_sa2_080061A2: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_sa2_080061A8: - lsls r0, r2, #0x10 - asrs r6, r0, #0x10 - mov r2, sb - asrs r0, r2, #0x10 - cmp r0, #0 - bge _sa2_080061B6 - rsbs r0, r0, #0 -_sa2_080061B6: - cmp r6, r0 - blt _sa2_08006178 - b _sa2_08006214 - .align 2, 0 -_sa2_080061BC: .4byte gHBlankCopySize -_sa2_080061C0: - movs r2, #0 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r7, r0, #0x10 - mov r1, ip - lsls r0, r1, #0x10 - asrs r6, r0, #0x10 - b _sa2_08006202 -_sa2_080061D0: - adds r0, r5, #1 - strb r0, [r3] - adds r3, #1 - strb r5, [r3] - ldr r1, _sa2_08006224 @ =gHBlankCopySize - ldrb r0, [r1] - adds r0, r0, r3 - subs r3, r0, #1 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r7 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - blt _sa2_080061FC - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - subs r0, r1, r6 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_sa2_080061FC: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_sa2_08006202: - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - mov r1, sb - asrs r0, r1, #0x10 - cmp r0, #0 - bge _sa2_08006210 - rsbs r0, r0, #0 -_sa2_08006210: - cmp r2, r0 - blt _sa2_080061D0 -_sa2_08006214: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_sa2_08006224: .4byte gHBlankCopySize - -.syntax divided diff --git a/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc b/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc deleted file mode 100644 index 4da223bb63..0000000000 --- a/sa1/asm/non_matching/engine/sa2__unused_sub_800672C.inc +++ /dev/null @@ -1,907 +0,0 @@ -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - mov ip, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - ldr r1, _08006760 @ =gFlags - ldr r0, [r1] - movs r3, #4 - orrs r0, r3 - str r0, [r1] - cmp r2, #1 - bls _08006778 - ldr r1, _08006764 @ =gHBlankCopySize - strb r3, [r1] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0800676C - ldr r0, _08006768 @ =gBgOffsetsHBlankPrimary - ldr r0, [r0] - adds r7, r0, #2 - b _080067A0 - .align 2, 0 -_08006760: .4byte gFlags -_08006764: .4byte gHBlankCopySize -_08006768: .4byte gBgOffsetsHBlankPrimary -_0800676C: - ldr r0, _08006774 @ =gBgOffsetsHBlankPrimary - ldr r7, [r0] - b _080067A0 - .align 2, 0 -_08006774: .4byte gBgOffsetsHBlankPrimary -_08006778: - ldr r1, _08006790 @ =gHBlankCopySize - movs r0, #2 - strb r0, [r1] - ldr r0, _08006794 @ =gBgOffsetsHBlankPrimary - ldr r7, [r0] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080067A0 - ldr r1, _08006798 @ =gHBlankCopyTarget - ldr r0, _0800679C @ =0x04000042 - b _080067A4 - .align 2, 0 -_08006790: .4byte gHBlankCopySize -_08006794: .4byte gBgOffsetsHBlankPrimary -_08006798: .4byte gHBlankCopyTarget -_0800679C: .4byte 0x04000042 -_080067A0: - ldr r1, _080068A4 @ =gHBlankCopyTarget - ldr r0, _080068A8 @ =0x04000040 -_080067A4: - str r0, [r1] - mov r2, sp - mov r1, ip - ldrb r0, [r1, #2] - ldrb r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - add r2, sp, #4 - mov r3, ip - ldrb r0, [r3, #3] - ldrb r1, [r3, #1] - subs r0, r0, r1 - strh r0, [r2] - mov r0, sp - movs r5, #0 - ldrsh r0, [r0, r5] - ldrb r3, [r3] - mov r1, ip - ldrb r4, [r1, #1] - adds r2, #8 - str r2, [sp, #0x24] - cmp r0, #0 - bge _080067D4 - rsbs r0, r0, #0 -_080067D4: - lsls r0, r0, #1 - ldr r5, [sp, #0x24] - strh r0, [r5] - mov r1, sp - movs r2, #4 - ldrsh r0, [r1, r2] - adds r1, #0x10 - str r1, [sp, #0x28] - cmp r0, #0 - bge _080067EA - rsbs r0, r0, #0 -_080067EA: - lsls r0, r0, #1 - ldr r5, [sp, #0x28] - strh r0, [r5] - mov r1, sp - mov r2, ip - ldrb r0, [r2, #4] - subs r0, r0, r3 - strh r0, [r1, #2] - ldrb r0, [r2, #5] - subs r0, r0, r4 - strh r0, [r1, #6] - mov r0, sp - movs r3, #2 - ldrsh r0, [r0, r3] - cmp r0, #0 - bge _0800680C - rsbs r0, r0, #0 -_0800680C: - lsls r0, r0, #1 - ldr r5, [sp, #0x24] - strh r0, [r5, #2] - mov r1, sp - movs r2, #6 - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _0800681E - rsbs r0, r0, #0 -_0800681E: - lsls r0, r0, #1 - ldr r3, [sp, #0x28] - strh r0, [r3, #2] - add r2, sp, #0x14 - mov r5, ip - ldrb r0, [r5] - strb r0, [r2, #1] - strb r0, [r2] - ldr r1, _080068AC @ =gHBlankCopySize - ldrb r0, [r1] - muls r0, r4, r0 - adds r7, r7, r0 - add r1, sp, #8 - mov r3, sp - ldrh r0, [r3, #4] - rsbs r0, r0, #0 - strh r0, [r1] - ldrh r0, [r3, #6] - rsbs r0, r0, #0 - strh r0, [r1, #2] - ldrb r0, [r5, #5] - ldrb r3, [r5, #3] - adds r6, r2, #0 - mov sb, r1 - cmp r0, r3 - bls _08006854 - adds r0, r3, #0 -_08006854: - str r0, [sp, #0x18] - cmp r4, r0 - bhs _0800693A - mov r8, sb -_0800685C: - ldrb r0, [r6, #1] - strb r0, [r7] - ldrb r0, [r6] - strb r0, [r7, #1] - mov r3, r8 - mov r5, sp - ldrh r2, [r5, #0xc] - ldrh r0, [r3] - adds r2, r2, r0 - strh r2, [r3] - ldrh r0, [r3, #2] - ldrh r1, [r5, #0xe] - adds r0, r0, r1 - strh r0, [r3, #2] - lsls r2, r2, #0x10 - adds r4, #1 - mov sl, r4 - cmp r2, #0 - blt _080068D6 - str r6, [sp, #0x2c] - ldr r4, [sp, #0x28] - mov r2, sb -_08006888: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _080068B0 - ldr r5, [sp, #0x2c] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrh r0, [r3] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r3] - b _080068CC - .align 2, 0 -_080068A4: .4byte gHBlankCopyTarget -_080068A8: .4byte 0x04000040 -_080068AC: .4byte gHBlankCopySize -_080068B0: - ldrb r0, [r6] - cmp r0, #0 - beq _080068BA - subs r0, #1 - strb r0, [r6] -_080068BA: - ldrh r0, [r2] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _080068CC - ldrb r0, [r6] - strb r0, [r7, #1] -_080068CC: - mov r3, sb - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _08006888 -_080068D6: - mov r2, r8 - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006928 - adds r3, r6, #0 - ldr r5, [sp, #0x28] - mov r4, sb -_080068E6: - mov r0, sp - ldrh r0, [r0, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _0800690C - ldrb r0, [r3, #1] - adds r0, #1 - strb r0, [r3, #1] - ldrh r0, [r2, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0800691E - ldrb r0, [r6, #1] - adds r0, #1 - strb r0, [r7] - b _0800691E -_0800690C: - ldrb r0, [r3, #1] - cmp r0, #0 - beq _08006916 - subs r0, #1 - strb r0, [r6, #1] -_08006916: - ldrh r0, [r4, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r4, #2] -_0800691E: - mov r2, sb - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080068E6 -_08006928: - ldr r2, _080069EC @ =gHBlankCopySize - ldrb r0, [r2] - adds r7, r7, r0 - mov r3, sl - lsls r0, r3, #0x18 - lsrs r4, r0, #0x18 - ldr r5, [sp, #0x18] - cmp r4, r5 - blo _0800685C -_0800693A: - mov r1, ip - ldrb r0, [r1, #3] - ldrb r2, [r1, #5] - cmp r0, r2 - bne _08006946 - b _08006C30 -_08006946: - ldr r3, [sp, #0x18] - cmp r3, r0 - beq _0800694E - b _08006AB4 -_0800694E: - mov r2, sp - ldrb r0, [r1, #6] - ldrb r1, [r1, #2] - subs r0, r0, r1 - strh r0, [r2] - mov r5, ip - ldrb r0, [r5, #7] - ldrb r1, [r5, #3] - subs r0, r0, r1 - strh r0, [r2, #4] - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _0800696E - rsbs r0, r0, #0 -_0800696E: - lsls r0, r0, #1 - ldr r2, [sp, #0x24] - strh r0, [r2] - mov r3, sp - movs r5, #4 - ldrsh r0, [r3, r5] - cmp r0, #0 - bge _08006980 - rsbs r0, r0, #0 -_08006980: - lsls r0, r0, #1 - ldr r1, [sp, #0x28] - strh r0, [r1] - mov r2, sp - ldrh r0, [r2, #4] - rsbs r0, r0, #0 - mov r3, sb - strh r0, [r3] - mov r5, ip - ldrb r0, [r5, #2] - strb r0, [r6] - ldrb r0, [r5, #5] - str r0, [sp, #0x18] - cmp r4, r0 - bhs _08006A7A - mov r8, sb - ldr r1, [sp, #0x24] - str r1, [sp, #0x1c] -_080069A4: - ldrb r0, [r6, #1] - strb r0, [r7] - ldrb r0, [r6] - strb r0, [r7, #1] - mov r3, r8 - ldr r5, [sp, #0x1c] - ldrh r2, [r5] - ldrh r0, [r3] - adds r2, r2, r0 - strh r2, [r3] - ldrh r0, [r3, #2] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r3, #2] - lsls r2, r2, #0x10 - adds r4, #1 - mov sl, r4 - cmp r2, #0 - blt _08006A16 - str r6, [sp, #0x2c] - ldr r4, [sp, #0x28] - mov r2, sb -_080069D0: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _080069F0 - ldr r5, [sp, #0x2c] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrh r0, [r3] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r3] - b _08006A0C - .align 2, 0 -_080069EC: .4byte gHBlankCopySize -_080069F0: - ldrb r0, [r6] - cmp r0, #0 - beq _080069FA - subs r0, #1 - strb r0, [r6] -_080069FA: - ldrh r0, [r2] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006A0C - ldrb r0, [r6] - strb r0, [r7, #1] -_08006A0C: - mov r3, sb - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _080069D0 -_08006A16: - mov r2, r8 - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006A68 - adds r3, r6, #0 - ldr r5, [sp, #0x28] - mov r4, sb -_08006A26: - mov r0, sp - ldrh r0, [r0, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08006A4C - ldrb r0, [r3, #1] - adds r0, #1 - strb r0, [r3, #1] - ldrh r0, [r2, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006A5E - ldrb r0, [r6, #1] - adds r0, #1 - strb r0, [r7] - b _08006A5E -_08006A4C: - ldrb r0, [r3, #1] - cmp r0, #0 - beq _08006A56 - subs r0, #1 - strb r0, [r6, #1] -_08006A56: - ldrh r0, [r4, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r4, #2] -_08006A5E: - mov r2, sb - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08006A26 -_08006A68: - ldr r2, _08006AB0 @ =gHBlankCopySize - ldrb r0, [r2] - adds r7, r7, r0 - mov r3, sl - lsls r0, r3, #0x18 - lsrs r4, r0, #0x18 - ldr r5, [sp, #0x18] - cmp r4, r5 - blo _080069A4 -_08006A7A: - mov r2, sp - mov r1, ip - ldrb r0, [r1, #6] - ldrb r1, [r1, #4] - subs r0, r0, r1 - strh r0, [r2, #2] - mov r2, ip - ldrb r0, [r2, #7] - ldrb r1, [r2, #5] - subs r0, r0, r1 - mov r3, sp - strh r0, [r3, #6] - mov r0, sp - movs r5, #2 - ldrsh r0, [r0, r5] - ldrb r3, [r2, #7] - cmp r0, #0 - bge _08006AA0 - rsbs r0, r0, #0 -_08006AA0: - lsls r0, r0, #1 - ldr r1, [sp, #0x24] - strh r0, [r1, #2] - mov r2, sp - movs r5, #6 - ldrsh r0, [r2, r5] - b _08006CA4 - .align 2, 0 -_08006AB0: .4byte gHBlankCopySize -_08006AB4: - mov r2, sp - mov r3, ip - ldrb r0, [r3, #6] - ldrb r1, [r3, #4] - subs r0, r0, r1 - strh r0, [r2, #2] - ldrb r0, [r3, #7] - ldrb r1, [r3, #5] - subs r0, r0, r1 - strh r0, [r2, #6] - mov r0, sp - movs r5, #2 - ldrsh r0, [r0, r5] - cmp r0, #0 - bge _08006AD4 - rsbs r0, r0, #0 -_08006AD4: - lsls r0, r0, #1 - ldr r1, [sp, #0x24] - strh r0, [r1, #2] - mov r2, sp - movs r3, #6 - ldrsh r0, [r2, r3] - cmp r0, #0 - bge _08006AE6 - rsbs r0, r0, #0 -_08006AE6: - lsls r0, r0, #1 - ldr r5, [sp, #0x28] - strh r0, [r5, #2] - mov r1, sp - ldrh r0, [r1, #6] - rsbs r0, r0, #0 - mov r2, sb - strh r0, [r2, #2] - mov r3, ip - ldrb r0, [r3, #4] - strb r0, [r6, #1] - ldrb r5, [r3, #3] - str r5, [sp, #0x18] - cmp r4, r5 - bhs _08006BDC - mov r8, sb - ldr r0, [sp, #0x24] - str r0, [sp, #0x20] -_08006B0A: - ldrb r0, [r6, #1] - strb r0, [r7] - ldrb r0, [r6] - strb r0, [r7, #1] - mov r3, r8 - ldr r1, [sp, #0x20] - ldrh r2, [r1] - ldrh r5, [r3] - adds r2, r2, r5 - strh r2, [r3] - ldrh r0, [r3, #2] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r3, #2] - lsls r2, r2, #0x10 - adds r4, #1 - mov sl, r4 - cmp r2, #0 - blt _08006B78 - str r6, [sp, #0x2c] - ldr r4, [sp, #0x28] - mov r2, sb -_08006B36: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _08006B52 - ldr r5, [sp, #0x2c] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrh r0, [r3] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r3] - b _08006B6E -_08006B52: - ldrb r0, [r6] - cmp r0, #0 - beq _08006B5C - subs r0, #1 - strb r0, [r6] -_08006B5C: - ldrh r0, [r2] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006B6E - ldrb r0, [r6] - strb r0, [r7, #1] -_08006B6E: - mov r3, sb - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _08006B36 -_08006B78: - mov r2, r8 - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006BCA - adds r3, r6, #0 - ldr r5, [sp, #0x28] - mov r4, sb -_08006B88: - mov r0, sp - ldrh r0, [r0, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08006BAE - ldrb r0, [r3, #1] - adds r0, #1 - strb r0, [r3, #1] - ldrh r0, [r2, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006BC0 - ldrb r0, [r6, #1] - adds r0, #1 - strb r0, [r7] - b _08006BC0 -_08006BAE: - ldrb r0, [r3, #1] - cmp r0, #0 - beq _08006BB8 - subs r0, #1 - strb r0, [r6, #1] -_08006BB8: - ldrh r0, [r4, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r4, #2] -_08006BC0: - mov r2, sb - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08006B88 -_08006BCA: - ldr r2, _08006C2C @ =gHBlankCopySize - ldrb r0, [r2] - adds r7, r7, r0 - mov r3, sl - lsls r0, r3, #0x18 - lsrs r4, r0, #0x18 - ldr r5, [sp, #0x18] - cmp r4, r5 - blo _08006B0A -_08006BDC: - mov r2, sp - mov r1, ip - ldrb r0, [r1, #6] - ldrb r1, [r1, #2] - subs r0, r0, r1 - strh r0, [r2] - mov r2, ip - ldrb r0, [r2, #7] - ldrb r1, [r2, #3] - subs r0, r0, r1 - mov r3, sp - strh r0, [r3, #4] - mov r0, sp - movs r5, #0 - ldrsh r0, [r0, r5] - ldrb r3, [r2, #7] - cmp r0, #0 - bge _08006C02 - rsbs r0, r0, #0 -_08006C02: - lsls r0, r0, #1 - ldr r1, [sp, #0x24] - strh r0, [r1] - mov r2, sp - movs r5, #4 - ldrsh r0, [r2, r5] - cmp r0, #0 - bge _08006C14 - rsbs r0, r0, #0 -_08006C14: - lsls r0, r0, #1 - ldr r1, [sp, #0x28] - strh r0, [r1] - mov r2, sp - ldrh r0, [r2, #4] - rsbs r0, r0, #0 - mov r5, sb - strh r0, [r5] - mov r1, ip - ldrb r0, [r1, #2] - strb r0, [r6] - b _08006CC0 - .align 2, 0 -_08006C2C: .4byte gHBlankCopySize -_08006C30: - mov r2, sp - mov r3, ip - ldrb r0, [r3, #6] - ldrb r1, [r3, #2] - subs r0, r0, r1 - strh r0, [r2] - add r2, sp, #4 - ldrb r0, [r3, #7] - ldrb r1, [r3, #3] - subs r0, r0, r1 - strh r0, [r2] - mov r0, sp - movs r5, #0 - ldrsh r0, [r0, r5] - ldrb r1, [r3, #6] - mov r8, r1 - ldrb r3, [r3, #7] - cmp r0, #0 - bge _08006C58 - rsbs r0, r0, #0 -_08006C58: - lsls r0, r0, #1 - ldr r5, [sp, #0x24] - strh r0, [r5] - movs r1, #0 - ldrsh r0, [r2, r1] - cmp r0, #0 - bge _08006C68 - rsbs r0, r0, #0 -_08006C68: - lsls r0, r0, #1 - ldr r5, [sp, #0x28] - strh r0, [r5] - ldrh r0, [r2] - rsbs r0, r0, #0 - mov r1, sb - strh r0, [r1] - mov r5, ip - ldrb r0, [r5, #2] - strb r0, [r6] - mov r1, sp - ldrb r0, [r5, #4] - mov r5, r8 - subs r0, r5, r0 - strh r0, [r1, #2] - mov r1, ip - ldrb r0, [r1, #5] - subs r0, r3, r0 - strh r0, [r2, #2] - mov r0, sp - movs r5, #2 - ldrsh r0, [r0, r5] - cmp r0, #0 - bge _08006C9A - rsbs r0, r0, #0 -_08006C9A: - lsls r0, r0, #1 - ldr r1, [sp, #0x24] - strh r0, [r1, #2] - movs r5, #2 - ldrsh r0, [r2, r5] -_08006CA4: - cmp r0, #0 - bge _08006CAA - rsbs r0, r0, #0 -_08006CAA: - lsls r0, r0, #1 - ldr r1, [sp, #0x28] - strh r0, [r1, #2] - mov r2, sp - ldrh r0, [r2, #6] - rsbs r0, r0, #0 - mov r5, sb - strh r0, [r5, #2] - mov r1, ip - ldrb r0, [r1, #4] - strb r0, [r6, #1] -_08006CC0: - str r3, [sp, #0x18] - cmp r4, r3 - bhs _08006D9E - mov r8, sb - ldr r2, [sp, #0x24] - mov ip, r2 -_08006CCC: - ldrb r0, [r6, #1] - strb r0, [r7] - ldrb r0, [r6] - strb r0, [r7, #1] - mov r3, r8 - mov r5, ip - ldrh r2, [r5] - ldrh r0, [r3] - adds r2, r2, r0 - strh r2, [r3] - ldrh r0, [r3, #2] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r3, #2] - lsls r2, r2, #0x10 - adds r4, #1 - mov sl, r4 - cmp r2, #0 - blt _08006D3A - str r6, [sp, #0x2c] - ldr r4, [sp, #0x28] - mov r2, sb -_08006CF8: - mov r0, sp - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - ble _08006D14 - ldr r5, [sp, #0x2c] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrh r0, [r3] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r3] - b _08006D30 -_08006D14: - ldrb r0, [r6] - cmp r0, #0 - beq _08006D1E - subs r0, #1 - strb r0, [r6] -_08006D1E: - ldrh r0, [r2] - ldrh r1, [r4] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006D30 - ldrb r0, [r6] - strb r0, [r7, #1] -_08006D30: - mov r3, sb - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _08006CF8 -_08006D3A: - mov r2, r8 - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006D8C - adds r3, r6, #0 - ldr r5, [sp, #0x28] - mov r4, sb -_08006D4A: - mov r0, sp - ldrh r0, [r0, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08006D70 - ldrb r0, [r3, #1] - adds r0, #1 - strb r0, [r3, #1] - ldrh r0, [r2, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _08006D82 - ldrb r0, [r6, #1] - adds r0, #1 - strb r0, [r7] - b _08006D82 -_08006D70: - ldrb r0, [r3, #1] - cmp r0, #0 - beq _08006D7A - subs r0, #1 - strb r0, [r6, #1] -_08006D7A: - ldrh r0, [r4, #2] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r4, #2] -_08006D82: - mov r2, sb - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08006D4A -_08006D8C: - ldr r2, _08006DB0 @ =gHBlankCopySize - ldrb r0, [r2] - adds r7, r7, r0 - mov r3, sl - lsls r0, r3, #0x18 - lsrs r4, r0, #0x18 - ldr r5, [sp, #0x18] - cmp r4, r5 - blo _08006CCC -_08006D9E: - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08006DB0: .4byte gHBlankCopySize - - @ Unused - @ Very similar to sub_800724C - -.syntax divided diff --git a/sa1/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc b/sa1/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc deleted file mode 100644 index aa44bf2bf3..0000000000 --- a/sa1/asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc +++ /dev/null @@ -1,912 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x34] - ldr r1, _08059BD8 @ =gTailsEnabled - movs r0, #0 - strb r0, [r1] - ldr r0, _08059BDC @ =gMultiplayerMissingHeartbeats - movs r5, #0 - strb r5, [r0, #3] - strb r5, [r0, #2] - strb r5, [r0, #1] - strb r5, [r0] - bl sub_80535FC - bl UiGfxStackInit - ldr r1, _08059BE0 @ =gDispCnt - movs r2, #0x92 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - ldr r3, _08059BE4 @ =gBgCntRegs - mov r8, r3 - ldr r0, _08059BE8 @ =0x00001907 - strh r0, [r3, #2] - ldr r0, _08059BEC @ =gBgScrollRegs - strh r5, [r0, #4] - strh r5, [r0, #6] - strh r5, [r0, #8] - strh r5, [r0, #0xa] - ldr r0, _08059BF0 @ =Task_8059F9C - movs r4, #0x80 - lsls r4, r4, #6 - str r5, [sp] - movs r1, #0x3c - adds r2, r4, #0 - movs r3, #0 - bl TaskCreate - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r2, r0 - ldr r1, [sp, #0x34] - movs r3, #3 - ands r1, r3 - lsls r0, r1, #8 - adds r0, r0, r4 - strh r0, [r7, #0x28] - adds r1, #0x20 - ldr r4, _08059BF4 @ =0x0300002A - adds r0, r2, r4 - strb r1, [r0] - ldr r3, _08059BF8 @ =0x0300002B - adds r0, r2, r3 - strb r1, [r0] - adds r4, #2 - adds r0, r2, r4 - movs r1, #0 - strb r1, [r0] - adds r3, #2 - adds r0, r2, r3 - strb r1, [r0] - adds r4, #2 - adds r0, r2, r4 - strb r1, [r0] - str r5, [r7, #0x24] - ldr r0, _08059BFC @ =0x03000039 - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] - ldr r1, _08059C00 @ =0x0300002F - adds r2, r2, r1 - movs r3, #0 - strb r3, [r2] - strh r5, [r7] - strh r5, [r7, #2] - movs r4, #2 - strh r4, [r7, #4] - strh r5, [r7, #6] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r7, #8] - movs r4, #1 - strb r4, [r7, #0xa] - ldr r6, _08059C04 @ =0x00002030 - str r5, [sp] - ldr r0, _08059C08 @ =Task_nullsub_805B980 - movs r1, #0x20 - adds r2, r6, #0 - movs r3, #0 - bl TaskCreate - adds r3, r0, #0 - ldrh r0, [r3, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r0, #0xa] - movs r1, #0x40 - strh r1, [r0, #0xc] - movs r1, #8 - strh r1, [r0, #0xe] - strh r5, [r0, #0x10] - movs r1, #0xf - strh r1, [r0, #0x12] - strb r4, [r0, #0x16] - movs r1, #0x5a - strh r1, [r0, #8] - str r5, [r0, #0x18] - ldrh r1, [r7, #0x28] - strh r1, [r0, #0x1c] - ldrh r1, [r7, #0x28] - strh r1, [r0, #0x1e] - str r3, [r7, #0x10] - movs r2, #0x81 - lsls r2, r2, #6 - str r5, [sp] - ldr r0, _08059C08 @ =Task_nullsub_805B980 - movs r1, #0x20 - movs r3, #0 - bl TaskCreate - adds r3, r0, #0 - ldrh r0, [r3, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r0, r0, r2 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0, #0xa] - movs r1, #0x28 - strh r1, [r0, #0xc] - strh r4, [r0, #0xe] - strh r4, [r0, #0x10] - strh r5, [r0, #0x12] - movs r2, #1 - strb r2, [r0, #0x16] - strh r5, [r0, #8] - str r5, [r0, #0x18] - strh r5, [r0, #0x1c] - str r3, [r7, #0x1c] - str r5, [sp] - ldr r0, _08059C08 @ =Task_nullsub_805B980 - movs r1, #0x20 - adds r2, r6, #0 - movs r3, #0 - bl TaskCreate - adds r3, r0, #0 - ldrh r0, [r3, #6] - movs r4, #0xc0 - lsls r4, r4, #0x12 - adds r0, r0, r4 - strh r5, [r0, #0xa] - movs r1, #0x54 - strh r1, [r0, #0xc] - movs r1, #6 - strh r1, [r0, #0xe] - movs r2, #2 - strh r2, [r0, #0x10] - strh r5, [r0, #0x12] - movs r4, #1 - strb r4, [r0, #0x16] - movs r1, #0x14 - strh r1, [r0, #8] - str r5, [r0, #0x18] - strh r5, [r0, #0x1c] - strh r5, [r0, #0x1e] - str r3, [r7, #0x18] - str r5, [sp] - ldr r0, _08059C08 @ =Task_nullsub_805B980 - movs r1, #0x44 - adds r2, r6, #0 - movs r3, #0 - bl TaskCreate - adds r3, r0, #0 - ldrh r2, [r3, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r2, r1 - strb r4, [r0, #0x16] - movs r4, #3 - strh r4, [r0, #0x10] - strh r5, [r0, #0xa] - movs r1, #0x38 - strh r1, [r0, #0xc] - movs r1, #8 - strh r1, [r0, #0xe] - strh r5, [r0, #0x12] - movs r1, #0x78 - strh r1, [r0, #8] - movs r4, #0x8c - lsls r4, r4, #1 - strh r4, [r0, #0x22] - movs r1, #0x3a - strh r1, [r0, #0x24] - movs r1, #9 - strh r1, [r0, #0x26] - movs r4, #4 - strh r4, [r0, #0x28] - strh r5, [r0, #0x2a] - ldr r4, _08059C0C @ =0x0300002E - adds r1, r2, r4 - movs r4, #1 - strb r4, [r1] - movs r1, #0x64 - strh r1, [r0, #0x20] - str r5, [r0, #0x38] - str r5, [r0, #0x30] - movs r1, #0x8c - lsls r1, r1, #7 - str r1, [r0, #0x34] - str r1, [r0, #0x3c] - ldr r0, _08059C10 @ =0x03000040 - adds r2, r2, r0 - strh r5, [r2] - str r3, [r7, #0x14] - ldr r0, _08059C14 @ =Task_805B984 - ldr r2, _08059C18 @ =0x00002020 - str r5, [sp] - movs r1, #0x34 - movs r3, #0 - bl TaskCreate - adds r3, r0, #0 - ldrh r2, [r3, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r4, r2, r1 - strh r5, [r4, #0x30] - strh r5, [r4, #0x32] - mov r0, r8 - ldrh r1, [r0, #2] - movs r0, #0xc - ands r0, r1 - lsls r0, r0, #0xc - ldr r1, _08059C1C @ =0x06000040 - adds r0, r0, r1 - str r0, [r4, #4] - strh r5, [r4, #8] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x10] - strh r5, [r4, #0x16] - strh r5, [r4, #0x18] - strh r5, [r4, #0x1a] - strh r5, [r4, #0x1c] - ldr r0, _08059C20 @ =0x03000021 - adds r1, r2, r0 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldr r1, _08059C24 @ =0x03000022 - adds r0, r2, r1 - movs r1, #0x10 - strb r1, [r0] - ldr r1, _08059C28 @ =0x03000025 - adds r0, r2, r1 - movs r1, #0 - strb r1, [r0] - ldr r0, _08059C2C @ =0x000002D3 - strh r0, [r4, #0xa] - ldr r0, _08059C30 @ =0x03000020 - adds r2, r2, r0 - strb r1, [r2] - str r3, [r7, #0x20] - adds r0, r4, #0 - bl UpdateSpriteAnimation_BG - adds r0, r4, #0 - bl DisplaySprite_BG - add r4, sp, #0x30 - movs r0, #0x27 - strb r0, [r4] - mov r1, sp - adds r1, #0x2f - str r1, [sp, #0x3c] - movs r2, #0 - strb r2, [r1] - ldr r6, _08059C34 @ =gUiGraphics - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - str r0, [sp, #0x18] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C38 @ =gUiGraphics + 0x4 - adds r0, r0, r3 - ldr r1, [sp, #0x34] - lsls r1, r1, #1 - mov r8, r1 - ldr r2, [sp, #0x34] - add r8, r2 - mov r3, r8 - lsls r1, r3, #1 - ldr r0, [r0] - adds r0, r0, r1 - str r0, [sp, #0x24] - movs r0, #0x80 - lsls r0, r0, #3 - str r0, [sp, #0x1c] - movs r1, #8 - str r1, [sp, #0x28] - add r2, sp, #0x2c - mov sb, r2 - movs r3, #0xf - strb r3, [r2] - ldr r0, _08059C3C @ =0x06010020 - str r0, [sp, #0x10] - movs r0, #0x2e - add r0, sp - mov sl, r0 - movs r0, #0xd - mov r1, sl - strb r0, [r1] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _08059C40 @ =gUiGraphics + 0x8 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C44 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059C48 @ =gUiGraphics + 0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C4C @ =gUiGraphics + 0x14 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059C50 @ =gUiGraphics + 0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r2, #0x28 - strb r2, [r4] - movs r0, #1 - ldr r3, [sp, #0x3c] - strb r0, [r3] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - str r0, [sp, #0x18] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059C38 @ =gUiGraphics + 0x4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x24] - movs r2, #0x80 - lsls r2, r2, #3 - str r2, [sp, #0x1c] - movs r3, #0x20 - str r3, [sp, #0x28] - movs r1, #0 - mov r0, sb - strb r1, [r0] - ldr r0, _08059C54 @ =0x06010420 - str r0, [sp, #0x10] - movs r0, #0xd - mov r2, sl - strb r0, [r2] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C40 @ =gUiGraphics + 0x8 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059C44 @ =gUiGraphics + 0xC - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C48 @ =gUiGraphics + 0x10 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059C4C @ =gUiGraphics + 0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C50 @ =gUiGraphics + 0x18 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r0, #0x29 - strb r0, [r4] - movs r1, #2 - ldr r0, [sp, #0x3c] - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - mov r2, r8 - lsls r2, r2, #0xa - mov r8, r2 - ldr r0, [r0] - add r0, r8 - str r0, [sp, #0x18] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C38 @ =gUiGraphics + 0x4 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [sp, #0x24] - movs r0, #0xc0 - lsls r0, r0, #4 - str r0, [sp, #0x1c] - ldr r0, _08059C58 @ =0x06011120 - str r0, [sp, #0x10] - movs r0, #0x20 - str r0, [sp, #0x28] - movs r2, #0 - mov r1, sb - strb r2, [r1] - movs r0, #9 - mov r3, sl - strb r0, [r3] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059C40 @ =gUiGraphics + 0x8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059C44 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r4] - lsls r0, r1, #3 - b _08059C5C - .align 2, 0 -_08059BD8: .4byte gTailsEnabled -_08059BDC: .4byte gMultiplayerMissingHeartbeats -_08059BE0: .4byte gDispCnt -_08059BE4: .4byte gBgCntRegs -_08059BE8: .4byte 0x00001907 -_08059BEC: .4byte gBgScrollRegs -_08059BF0: .4byte Task_8059F9C -_08059BF4: .4byte 0x0300002A -_08059BF8: .4byte 0x0300002B -_08059BFC: .4byte 0x03000039 -_08059C00: .4byte 0x0300002F -_08059C04: .4byte 0x00002030 -_08059C08: .4byte Task_nullsub_805B980 -_08059C0C: .4byte 0x0300002E -_08059C10: .4byte 0x03000040 -_08059C14: .4byte Task_805B984 -_08059C18: .4byte 0x00002020 -_08059C1C: .4byte 0x06000040 -_08059C20: .4byte 0x03000021 -_08059C24: .4byte 0x03000022 -_08059C28: .4byte 0x03000025 -_08059C2C: .4byte 0x000002D3 -_08059C30: .4byte 0x03000020 -_08059C34: .4byte gUiGraphics -_08059C38: .4byte gUiGraphics + 0x4 -_08059C3C: .4byte 0x06010020 -_08059C40: .4byte gUiGraphics + 0x8 -_08059C44: .4byte gUiGraphics + 0xC -_08059C48: .4byte gUiGraphics + 0x10 -_08059C4C: .4byte gUiGraphics + 0x14 -_08059C50: .4byte gUiGraphics + 0x18 -_08059C54: .4byte 0x06010420 -_08059C58: .4byte 0x06011120 -_08059C5C: - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059F10 @ =gUiGraphics + 0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059F14 @ =gUiGraphics + 0x14 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059F18 @ =gUiGraphics + 0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r0, #0x2b - strb r0, [r4] - movs r3, #3 - ldr r2, [sp, #0x3c] - strb r3, [r2] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - str r0, [sp, #0x18] - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp, #0x1c] - ldr r0, _08059F1C @ =0x06010820 - str r0, [sp, #0x10] - movs r1, #0x20 - str r1, [sp, #0x28] - movs r3, #0 - mov r2, sb - strb r3, [r2] - movs r1, #9 - mov r0, sl - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _08059F20 @ =gUiGraphics + 0x8 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059F24 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059F10 @ =gUiGraphics + 0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059F14 @ =gUiGraphics + 0x14 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059F18 @ =gUiGraphics + 0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r0, #0x2a - strb r0, [r4] - movs r3, #4 - ldr r2, [sp, #0x3c] - strb r3, [r2] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - str r0, [sp, #0x18] - movs r0, #0x80 - lsls r0, r0, #4 - str r0, [sp, #0x1c] - ldr r0, _08059F28 @ =0x06010920 - str r0, [sp, #0x10] - movs r0, #0x20 - str r0, [sp, #0x28] - movs r2, #0 - mov r1, sb - strb r2, [r1] - movs r0, #9 - mov r3, sl - strb r0, [r3] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059F20 @ =gUiGraphics + 0x8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059F24 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08059F10 @ =gUiGraphics + 0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08059F14 @ =gUiGraphics + 0x14 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r4, _08059F18 @ =gUiGraphics + 0x18 - adds r0, r0, r4 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - ldr r2, _08059F2C @ =0x00002010 - str r5, [sp] - ldr r0, _08059F30 @ =Task_nullsub_805B980 - movs r1, #0xcc - movs r3, #0 - bl TaskCreate - ldrh r2, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r1, r2, r1 - str r1, [sp, #0x38] - ldr r3, _08059F34 @ =0x030000C0 - adds r1, r2, r3 - str r5, [r1] - ldr r4, _08059F38 @ =0x030000C4 - adds r1, r2, r4 - strh r5, [r1] - adds r3, #6 - adds r1, r2, r3 - movs r4, #0 - strb r4, [r1] - adds r3, #2 - adds r1, r2, r3 - strb r4, [r1] - str r0, [r7, #0xc] - ldr r4, _08059F3C @ =0x03000030 - adds r1, r2, r4 - ldr r0, _08059F40 @ =0x06012520 - str r0, [r1, #4] - strh r5, [r1, #8] - str r5, [r1, #0x10] - movs r0, #0x8c - lsls r0, r0, #1 - strh r0, [r1, #0x16] - movs r3, #0x6e - mov r8, r3 - mov r4, r8 - strh r4, [r1, #0x18] - movs r6, #0xf8 - lsls r6, r6, #3 - strh r6, [r1, #0x1a] - strh r5, [r1, #0x1c] - ldr r0, _08059F44 @ =0x03000051 - adds r3, r2, r0 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r3] - ldr r3, _08059F48 @ =0x03000052 - adds r0, r2, r3 - movs r4, #0x10 - strb r4, [r0] - adds r3, #3 - adds r0, r2, r3 - movs r4, #0 - strb r4, [r0] - ldr r4, _08059F4C @ =0x000002D2 - strh r4, [r1, #0xa] - ldr r1, _08059F50 @ =0x03000050 - adds r0, r2, r1 - movs r3, #0 - strb r3, [r0] - ldr r0, _08059F54 @ =0x06013920 - ldr r1, [sp, #0x38] - str r0, [r1, #4] - strh r5, [r1, #8] - str r5, [r1, #0x10] - ldr r0, _08059F58 @ =0x0000FFCE - strh r0, [r1, #0x16] - mov r3, r8 - strh r3, [r1, #0x18] - strh r6, [r1, #0x1a] - strh r5, [r1, #0x1c] - ldr r0, _08059F5C @ =0x03000021 - adds r1, r2, r0 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldr r1, _08059F60 @ =0x03000022 - adds r0, r2, r1 - movs r3, #0x10 - strb r3, [r0] - adds r1, #3 - adds r0, r2, r1 - movs r3, #0 - strb r3, [r0] - ldr r0, [sp, #0x38] - strh r4, [r0, #0xa] - subs r1, #5 - adds r0, r2, r1 - movs r3, #6 - strb r3, [r0] - ldr r0, _08059F64 @ =0x03000060 - adds r1, r2, r0 - ldr r0, _08059F68 @ =0x06014D20 - str r0, [r1, #4] - strh r5, [r1, #8] - str r5, [r1, #0x10] - movs r3, #0x91 - lsls r3, r3, #1 - strh r3, [r1, #0x16] - mov r0, r8 - strh r0, [r1, #0x18] - strh r6, [r1, #0x1a] - strh r5, [r1, #0x1c] - ldr r0, _08059F6C @ =0x03000081 - adds r3, r2, r0 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r3] - ldr r3, _08059F70 @ =0x03000082 - adds r0, r2, r3 - movs r3, #0x10 - strb r3, [r0] - ldr r3, _08059F74 @ =0x03000085 - adds r0, r2, r3 - movs r3, #0 - strb r3, [r0] - strh r4, [r1, #0xa] - ldr r4, _08059F78 @ =0x03000080 - adds r0, r2, r4 - movs r1, #2 - strb r1, [r0] - ldr r3, _08059F7C @ =0x03000090 - adds r0, r2, r3 - ldr r1, _08059F80 @ =0x06016120 - str r1, [r0, #4] - strh r5, [r0, #8] - str r5, [r0, #0x10] - movs r4, #0x91 - lsls r4, r4, #1 - strh r4, [r0, #0x16] - mov r1, r8 - strh r1, [r0, #0x18] - movs r1, #0xe0 - lsls r1, r1, #3 - strh r1, [r0, #0x1a] - strh r5, [r0, #0x1c] - ldr r4, _08059F84 @ =0x030000B1 - adds r3, r2, r4 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r3] - ldr r3, _08059F88 @ =0x030000B2 - adds r1, r2, r3 - movs r4, #0x10 - strb r4, [r1] - adds r3, #3 - adds r1, r2, r3 - movs r4, #0 - strb r4, [r1] - ldr r1, _08059F8C @ =0x000002DA - strh r1, [r0, #0xa] - ldr r1, _08059F90 @ =0x030000B0 - adds r2, r2, r1 - strb r4, [r2] - bl UpdateSpriteAnimation - ldr r0, _08059F94 @ =gBgSprites_Unknown1 - strb r4, [r0, #1] - ldr r0, _08059F98 @ =gBgSprites_Unknown2 - strb r4, [r0, #4] - strb r4, [r0, #5] - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0, #6] - movs r2, #0x20 - strb r2, [r0, #7] - movs r0, #3 @ MUS_CHARACTER_SELECTION - bl m4aSongNumStartOrContinue - adds r0, r7, #0 - bl sub_805423C - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08059F10: .4byte gUiGraphics + 0x10 -_08059F14: .4byte gUiGraphics + 0x14 -_08059F18: .4byte gUiGraphics + 0x18 -_08059F1C: .4byte 0x06010820 -_08059F20: .4byte gUiGraphics + 0x8 -_08059F24: .4byte gUiGraphics + 0xC -_08059F28: .4byte 0x06010920 -_08059F2C: .4byte 0x00002010 -_08059F30: .4byte Task_nullsub_805B980 -_08059F34: .4byte 0x030000C0 -_08059F38: .4byte 0x030000C4 -_08059F3C: .4byte 0x03000030 -_08059F40: .4byte 0x06012520 -_08059F44: .4byte 0x03000051 -_08059F48: .4byte 0x03000052 -_08059F4C: .4byte 0x000002D2 -_08059F50: .4byte 0x03000050 -_08059F54: .4byte 0x06013920 -_08059F58: .4byte 0x0000FFCE -_08059F5C: .4byte 0x03000021 -_08059F60: .4byte 0x03000022 -_08059F64: .4byte 0x03000060 -_08059F68: .4byte 0x06014D20 -_08059F6C: .4byte 0x03000081 -_08059F70: .4byte 0x03000082 -_08059F74: .4byte 0x03000085 -_08059F78: .4byte 0x03000080 -_08059F7C: .4byte 0x03000090 -_08059F80: .4byte 0x06016120 -_08059F84: .4byte 0x030000B1 -_08059F88: .4byte 0x030000B2 -_08059F8C: .4byte 0x000002DA -_08059F90: .4byte 0x030000B0 -_08059F94: .4byte gBgSprites_Unknown1 -_08059F98: .4byte gBgSprites_Unknown2 - -.syntax divided diff --git a/sa1/asm/non_matching/game/char_select__Task_805A060.inc b/sa1/asm/non_matching/game/char_select__Task_805A060.inc deleted file mode 100644 index e3d782344e..0000000000 --- a/sa1/asm/non_matching/game/char_select__Task_805A060.inc +++ /dev/null @@ -1,644 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _0805A0FC @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r0, r1 - ldr r0, [r5, #0x18] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #8] - ldr r0, [r5, #0x10] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp] - ldr r0, [r5, #0xc] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sl, r0 - ldr r0, [r5, #0x14] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #4] - ldr r0, [r5, #0x20] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #0xc] - ldr r0, _0805A100 @ =gGameMode - ldrb r1, [r0] - cmp r1, #1 - bls _0805A18E - movs r3, #0 - ldr r0, _0805A104 @ =gMultiplayerConnections - ldrb r1, [r0] - movs r2, #1 - ands r1, r2 - adds r7, r0, #0 - cmp r1, #0 - beq _0805A13E - movs r6, #1 - ldr r2, _0805A108 @ =gMultiplayerMissingHeartbeats -_0805A0BC: - ldr r1, _0805A10C @ =gMultiSioStatusFlags - adds r0, r6, #0 - lsls r0, r3 - ldr r4, [r1] - ands r4, r0 - cmp r4, #0 - bne _0805A128 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _0805A12C - movs r0, #0 - ldr r1, _0805A110 @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _0805A114 @ =gBackgroundsCopyQueueCursor - ldr r0, _0805A118 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0805A11C @ =gBgSpritesCount - strb r4, [r0] - ldr r1, _0805A120 @ =gVramGraphicsCopyCursor - ldr r0, _0805A124 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _0805A52C - .align 2, 0 -_0805A0FC: .4byte gCurTask -_0805A100: .4byte gGameMode -_0805A104: .4byte gMultiplayerConnections -_0805A108: .4byte gMultiplayerMissingHeartbeats -_0805A10C: .4byte gMultiSioStatusFlags -_0805A110: .4byte 0x0000FFFF -_0805A114: .4byte gBackgroundsCopyQueueCursor -_0805A118: .4byte gBackgroundsCopyQueueIndex -_0805A11C: .4byte gBgSpritesCount -_0805A120: .4byte gVramGraphicsCopyCursor -_0805A124: .4byte gVramGraphicsCopyQueueIndex -_0805A128: - movs r0, #0 - strb r0, [r2] -_0805A12C: - adds r2, #1 - adds r3, #1 - cmp r3, #3 - bhi _0805A13E - ldrb r0, [r7] - asrs r0, r3 - ands r0, r6 - cmp r0, #0 - bne _0805A0BC -_0805A13E: - ldr r1, _0805A1E8 @ =gGameMode - ldrb r0, [r1] - cmp r0, #1 - bls _0805A18E - adds r1, r5, #0 - adds r1, #0x2f - movs r0, #0 - strb r0, [r1] - movs r3, #0 - adds r4, r1, #0 - ldr r2, _0805A1EC @ =gMultiSioRecv - mov r8, r2 - movs r6, #0 -_0805A158: - ldr r0, _0805A1F0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r3, r0 - beq _0805A186 - ldrb r0, [r7] - asrs r0, r3 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805A186 - mov r0, r8 - adds r2, r6, r0 - ldrh r0, [r2] - cmp r0, #0x20 - bls _0805A186 - adds r0, r1, #0 - ldrb r2, [r2, #2] - lsls r0, r2 - ldrb r1, [r4] - orrs r0, r1 - strb r0, [r4] -_0805A186: - adds r6, #0x14 - adds r3, #1 - cmp r3, #3 - bls _0805A158 -_0805A18E: - adds r4, r5, #0 - adds r4, #0x2b - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - bl CheckCPUPartnerUnlock - ldr r0, _0805A1F4 @ =gRepeatedKeys - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - mov sb, r4 - adds r7, r5, #0 - adds r7, #0x2a - cmp r0, #0 - beq _0805A1F8 - ldr r0, [r5, #0x24] - cmp r0, #0x21 - bls _0805A1F8 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0 - ldrsb r1, [r7, r1] - cmp r0, r1 - bne _0805A1F8 - ldr r0, _0805A1E8 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bhi _0805A1F8 - movs r0, #0x6b - bl m4aSongNumStart - bl sub_805B858 - adds r2, r5, #0 - adds r2, #0x2f - str r2, [sp, #0x10] - adds r6, r5, #0 - adds r6, #0x2c - adds r4, #2 - b _0805A358 - .align 2, 0 -_0805A1E8: .4byte gGameMode -_0805A1EC: .4byte gMultiSioRecv -_0805A1F0: .4byte 0x04000128 -_0805A1F4: .4byte gRepeatedKeys -_0805A1F8: - ldr r2, _0805A244 @ =gRepeatedKeys - ldrh r1, [r2] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - adds r3, r5, #0 - adds r3, #0x2f - str r3, [sp, #0x10] - mov r1, r8 - lsls r6, r1, #0x10 - cmp r0, #0 - beq _0805A270 - asrs r3, r6, #0x10 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r3, r0 - bne _0805A270 - ldr r0, [r5, #0x24] - cmp r0, #0x21 - bls _0805A270 - ldr r0, [sp, #0x10] - ldrb r1, [r0] - movs r0, #3 - ands r0, r3 - asrs r1, r0 - ands r1, r4 - cmp r1, #0 - bne _0805A270 - movs r0, #0x6a - bl m4aSongNumStart - ldr r0, _0805A248 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bhi _0805A24C - bl sub_805A9A4 - b _0805A25E - .align 2, 0 -_0805A244: .4byte gRepeatedKeys -_0805A248: .4byte gGameMode -_0805A24C: - ldr r2, [r5, #0x1c] - ldrh r0, [r2, #0x12] - movs r1, #1 - orrs r0, r1 - strh r0, [r2, #0x12] - ldr r0, _0805A268 @ =gCurTask - ldr r1, [r0] - ldr r0, _0805A26C @ =Task_805A54C - str r0, [r1, #8] -_0805A25E: - adds r6, r5, #0 - adds r6, #0x2c - adds r4, r5, #0 - adds r4, #0x2d - b _0805A358 - .align 2, 0 -_0805A268: .4byte gCurTask -_0805A26C: .4byte Task_805A54C -_0805A270: - ldrh r1, [r2] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0805A290 - ldr r0, [r5, #0x24] - cmp r0, #0x21 - bls _0805A290 - ldr r1, _0805A28C @ =0xFFFF0000 - adds r0, r6, r1 - lsrs r0, r0, #0x10 - mov r8, r0 - b _0805A2E8 - .align 2, 0 -_0805A28C: .4byte 0xFFFF0000 -_0805A290: - ldrh r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0805A2C6 - ldr r0, [r5, #0x24] - cmp r0, #0x21 - bls _0805A2C6 - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r6, r2 - lsrs r0, r0, #0x10 - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x2c - ldrb r1, [r0] - adds r6, r0, #0 - adds r4, r5, #0 - adds r4, #0x2d - cmp r1, #0 - bne _0805A358 - movs r0, #1 - strb r0, [r6] - adds r1, r5, #0 - adds r1, #0x2e - movs r0, #0x10 - b _0805A302 -_0805A2C6: - asrs r2, r6, #0x10 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r2, r0 - ble _0805A2E4 - adds r0, r5, #0 - adds r0, #0x2c - ldrb r1, [r0] - adds r6, r0, #0 - adds r4, r5, #0 - adds r4, #0x2d - cmp r1, #0 - bne _0805A358 - movs r0, #1 - b _0805A2FA -_0805A2E4: - cmp r2, r0 - bge _0805A30C -_0805A2E8: - adds r0, r5, #0 - adds r0, #0x2c - ldrb r1, [r0] - adds r6, r0, #0 - adds r4, r5, #0 - adds r4, #0x2d - cmp r1, #0 - bne _0805A358 - movs r0, #2 -_0805A2FA: - strb r0, [r6] - adds r1, r5, #0 - adds r1, #0x2e - movs r0, #0x10 -_0805A302: - strb r0, [r1] - movs r0, #0x67 @ SE_SHIFT - bl m4aSongNumStart - b _0805A358 -_0805A30C: - ldr r3, [sp, #0x10] - ldrb r1, [r3] - movs r0, #3 - ands r0, r2 - asrs r1, r0 - movs r3, #1 - ands r1, r3 - adds r6, r5, #0 - adds r6, #0x2c - adds r4, r5, #0 - adds r4, #0x2d - cmp r1, #0 - beq _0805A358 - ldr r0, [r5, #0x24] - cmp r0, #0x21 - bls _0805A358 - ldrb r1, [r4] - cmp r1, #0 - beq _0805A348 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0805A33E - adds r0, r2, #1 - b _0805A340 -_0805A33E: - subs r0, r2, #1 -_0805A340: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - b _0805A358 -_0805A348: - strb r3, [r6] - adds r1, r5, #0 - adds r1, #0x2e - movs r0, #0x10 - strb r0, [r1] - movs r0, #0x67 @ SE_SHIFT - bl m4aSongNumStart -_0805A358: - ldrb r0, [r6] - strb r0, [r4] - ldrb r1, [r6] - cmp r1, #0 - beq _0805A39A - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805A37A - adds r1, r5, #0 - adds r1, #0x2e - ldrb r0, [r1] - cmp r0, #0 - beq _0805A39A - ldrh r0, [r5, #0x28] - adds r0, #0x10 - b _0805A388 -_0805A37A: - adds r1, r5, #0 - adds r1, #0x2e - ldrb r0, [r1] - cmp r0, #0 - beq _0805A39A - ldrh r0, [r5, #0x28] - subs r0, #0x10 -_0805A388: - strh r0, [r5, #0x28] - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A39A - movs r0, #0 - strb r0, [r6] -_0805A39A: - ldrh r1, [r5, #0x28] - ldr r0, _0805A3BC @ =0x00003FFF - ands r0, r1 - strh r0, [r5, #0x28] - movs r0, #0x3f - mov r1, r8 - ands r0, r1 - mov r2, sb - strb r0, [r2] - movs r1, #0 - ldrsb r1, [r7, r1] - cmp r1, r0 - bgt _0805A3C0 - ldrh r0, [r5, #0x28] - lsrs r0, r0, #8 - b _0805A3D4 - .align 2, 0 -_0805A3BC: .4byte 0x00003FFF -_0805A3C0: - ldrh r0, [r5, #0x28] - lsls r0, r0, #0x10 - asrs r2, r0, #0x18 - strb r2, [r7] - ldrh r1, [r5, #0x28] - movs r0, #0xff - ands r0, r1 - cmp r0, #0 - beq _0805A3D6 - adds r0, r2, #1 -_0805A3D4: - strb r0, [r7] -_0805A3D6: - adds r2, r7, #0 - ldrb r1, [r7] - movs r0, #0x3f - ands r0, r1 - strb r0, [r7] - cmp r0, #0x24 - ble _0805A458 - mov r3, sb - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0x24 - ble _0805A458 - movs r0, #0x28 - ldrsh r1, [r5, r0] - movs r0, #0x90 - lsls r0, r0, #6 - movs r3, #0xc4 - add r3, sl - mov r8, r3 - movs r3, #0xc6 - add r3, sl - mov ip, r3 - mov r3, sl - adds r3, #0xc8 - str r3, [sp, #0x14] - cmp r1, r0 - ble _0805A458 -_0805A40C: - ldrb r0, [r2] - subs r0, #4 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x24 - bgt _0805A40C - mov r4, sb - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0x24 - ble _0805A432 -_0805A424: - ldrb r0, [r4] - subs r0, #4 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x24 - bgt _0805A424 -_0805A432: - movs r1, #0x28 - ldrsh r0, [r5, r1] - adds r1, r0, #0 - movs r2, #0x90 - lsls r2, r2, #6 - cmp r0, r2 - ble _0805A4D0 - ldr r0, _0805A454 @ =0xFFFFFC00 - adds r3, r0, #0 -_0805A444: - adds r0, r1, r3 - strh r0, [r5, #0x28] - adds r1, r0, #0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r2 - bgt _0805A444 - b _0805A4D0 - .align 2, 0 -_0805A454: .4byte 0xFFFFFC00 -_0805A458: - adds r2, r7, #0 - movs r0, #0 - ldrsb r0, [r2, r0] - movs r1, #0xc4 - add r1, sl - mov r8, r1 - movs r3, #0xc6 - add r3, sl - mov ip, r3 - mov r1, sl - adds r1, #0xc8 - str r1, [sp, #0x14] - cmp r0, #0x1b - bgt _0805A4D0 - mov r3, sb - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0x1b - bgt _0805A4D0 - movs r0, #0x28 - ldrsh r1, [r5, r0] - ldr r0, _0805A53C @ =0x00001BFF - cmp r1, r0 - bgt _0805A4D0 -_0805A488: - ldrb r0, [r2] - adds r0, #4 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x1b - ble _0805A488 - mov r4, sb - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0x1b - bgt _0805A4AE -_0805A4A0: - ldrb r0, [r4] - adds r0, #4 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x1b - ble _0805A4A0 -_0805A4AE: - movs r1, #0x28 - ldrsh r0, [r5, r1] - adds r2, r0, #0 - ldr r1, _0805A53C @ =0x00001BFF - cmp r0, r1 - bgt _0805A4D0 - movs r3, #0x80 - lsls r3, r3, #3 - adds r4, r3, #0 - adds r3, r1, #0 -_0805A4C2: - adds r1, r2, r4 - adds r2, r1, #0 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - cmp r0, r3 - ble _0805A4C2 - strh r1, [r5, #0x28] -_0805A4D0: - ldrh r2, [r5, #0x28] - ldr r1, _0805A540 @ =0x000003FF - adds r0, r1, #0 - ands r0, r2 - ldr r2, [sp, #8] - strh r0, [r2, #0x1c] - ldrh r2, [r5, #0x28] - adds r0, r1, #0 - ands r0, r2 - ldr r3, [sp] - strh r0, [r3, #0x1c] - ldrh r2, [r5, #0x28] - adds r0, r1, #0 - ands r0, r2 - mov r2, r8 - strh r0, [r2] - ldrb r0, [r6] - mov r3, ip - strb r0, [r3] - ldrh r0, [r5, #0x28] - ands r1, r0 - ldr r0, [sp, #0xc] - strh r1, [r0, #0x32] - ldr r1, [sp, #0x10] - ldrb r0, [r1] - ldr r2, [sp, #0x14] - strb r0, [r2] - ldr r0, [r5, #0x24] - adds r0, #1 - str r0, [r5, #0x24] - ldr r3, [sp, #4] - str r0, [r3, #0x38] - ldr r1, _0805A544 @ =gGameMode - ldrb r0, [r1] - cmp r0, #1 - bls _0805A52C - ldr r2, _0805A548 @ =gMultiSioSend - movs r0, #0x20 - strh r0, [r2] - ldr r3, [sp, #8] - ldrh r1, [r3, #0x1c] - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r2, #2] -_0805A52C: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A53C: .4byte 0x00001BFF -_0805A540: .4byte 0x000003FF -_0805A544: .4byte gGameMode -_0805A548: .4byte gMultiSioSend - -.syntax divided diff --git a/sa1/asm/non_matching/game/char_select__Task_805A54C.inc b/sa1/asm/non_matching/game/char_select__Task_805A54C.inc deleted file mode 100644 index 7a323f26bf..0000000000 --- a/sa1/asm/non_matching/game/char_select__Task_805A54C.inc +++ /dev/null @@ -1,288 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov r0, sp - movs r1, #0 - movs r2, #4 - bl memset - ldr r0, _0805A5C8 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r1, r0 - ldr r0, _0805A5CC @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _0805A60C - movs r3, #0 - ldr r0, _0805A5D0 @ =gMultiplayerConnections - ldrb r1, [r0] - movs r2, #1 - ands r1, r2 - mov ip, r0 - cmp r1, #0 - beq _0805A60C - movs r6, #1 - ldr r2, _0805A5D4 @ =gMultiplayerMissingHeartbeats -_0805A58A: - ldr r1, _0805A5D8 @ =gMultiSioStatusFlags - adds r0, r6, #0 - lsls r0, r3 - ldr r4, [r1] - ands r4, r0 - cmp r4, #0 - bne _0805A5F4 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _0805A5F8 - movs r0, #0 - ldr r1, _0805A5DC @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _0805A5E0 @ =gBackgroundsCopyQueueCursor - ldr r0, _0805A5E4 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0805A5E8 @ =gBgSpritesCount - strb r4, [r0] - ldr r1, _0805A5EC @ =gVramGraphicsCopyCursor - ldr r0, _0805A5F0 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _0805A788 - .align 2, 0 -_0805A5C8: .4byte gCurTask -_0805A5CC: .4byte gGameMode -_0805A5D0: .4byte gMultiplayerConnections -_0805A5D4: .4byte gMultiplayerMissingHeartbeats -_0805A5D8: .4byte gMultiSioStatusFlags -_0805A5DC: .4byte 0x0000FFFF -_0805A5E0: .4byte gBackgroundsCopyQueueCursor -_0805A5E4: .4byte gBackgroundsCopyQueueIndex -_0805A5E8: .4byte gBgSpritesCount -_0805A5EC: .4byte gVramGraphicsCopyCursor -_0805A5F0: .4byte gVramGraphicsCopyQueueIndex -_0805A5F4: - movs r0, #0 - strb r0, [r2] -_0805A5F8: - adds r2, #1 - adds r3, #1 - cmp r3, #3 - bhi _0805A60C - mov r1, ip - ldrb r0, [r1] - asrs r0, r3 - ands r0, r6 - cmp r0, #0 - bne _0805A58A -_0805A60C: - ldr r0, _0805A62C @ =gPressedKeys - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0805A63C - ldr r2, [r5, #0x1c] - ldrh r1, [r2, #0x12] - ldr r0, _0805A630 @ =0x0000FFFE - ands r0, r1 - strh r0, [r2, #0x12] - ldr r0, _0805A634 @ =gCurTask - ldr r1, [r0] - ldr r0, _0805A638 @ =Task_805A060 - str r0, [r1, #8] - b _0805A788 - .align 2, 0 -_0805A62C: .4byte gPressedKeys -_0805A630: .4byte 0x0000FFFE -_0805A634: .4byte gCurTask -_0805A638: .4byte Task_805A060 -_0805A63C: - ldr r1, _0805A678 @ =gMultiSioRecv - ldrh r0, [r1] - adds r7, r1, #0 - cmp r0, #0x22 - bne _0805A68C - movs r3, #0 - ldr r5, _0805A67C @ =gCurTask - mov ip, r5 - ldr r7, _0805A680 @ =Task_805A798 - ldr r6, _0805A684 @ =gMultiplayerConnections - movs r5, #1 - adds r2, r1, #0 - ldr r4, _0805A688 @ =gMultiplayerCharacters -_0805A656: - ldrb r0, [r6] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - beq _0805A666 - adds r1, r3, r4 - ldrb r0, [r2, #2] - strb r0, [r1] -_0805A666: - adds r2, #0x14 - adds r3, #1 - cmp r3, #3 - bls _0805A656 - mov r1, ip - ldr r0, [r1] - str r7, [r0, #8] - b _0805A788 - .align 2, 0 -_0805A678: .4byte gMultiSioRecv -_0805A67C: .4byte gCurTask -_0805A680: .4byte Task_805A798 -_0805A684: .4byte gMultiplayerConnections -_0805A688: .4byte gMultiplayerCharacters -_0805A68C: - movs r3, #0 - ldr r0, _0805A750 @ =gMultiplayerConnections - mov ip, r0 - ldr r1, _0805A754 @ =gMultiSioSend - mov sl, r1 - movs r0, #0xc0 - lsls r0, r0, #2 - mov sb, r0 - ldr r1, _0805A758 @ =0x0000FFFE - mov r8, r1 - movs r6, #0 -_0805A6A2: - mov r1, ip - ldrb r0, [r1] - asrs r0, r3 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805A6EE - ldr r4, _0805A75C @ =0x04000128 - ldr r0, [r4] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r3, r0 - beq _0805A6EE - adds r1, r6, r7 - ldrh r0, [r1] - cmp r0, #0x21 - bne _0805A6EE - ldrb r2, [r1, #2] - ldrh r1, [r5, #0x28] - mov r0, sb - ands r0, r1 - lsrs r0, r0, #8 - cmp r2, r0 - bne _0805A6EE - ldr r0, [r4] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r3, r0 - bhs _0805A6EE - ldr r2, [r5, #0x1c] - ldrh r1, [r2, #0x12] - mov r0, r8 - ands r0, r1 - strh r0, [r2, #0x12] - ldr r0, _0805A760 @ =gCurTask - ldr r1, [r0] - ldr r0, _0805A764 @ =Task_805A060 - str r0, [r1, #8] -_0805A6EE: - adds r6, #0x14 - adds r3, #1 - cmp r3, #3 - bls _0805A6A2 - ldr r1, _0805A768 @ =gMultiSioStatusFlags - ldr r0, [r1] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805A776 - mov r6, sl - movs r0, #0x22 - strh r0, [r6] - ldrh r1, [r5, #0x28] - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r6, #2] - movs r3, #0 - ldr r0, _0805A750 @ =gMultiplayerConnections - ldrb r0, [r0] - mov r8, r0 - movs r4, #0 -_0805A71E: - mov r0, r8 - asrs r0, r3 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805A746 - adds r1, r4, r7 - ldrh r2, [r1] - cmp r2, #0x21 - bne _0805A76C - ldrb r0, [r1, #2] - mov r5, sp - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0805A772 -_0805A746: - adds r4, #0x14 - adds r3, #1 - cmp r3, #3 - bls _0805A71E - b _0805A788 - .align 2, 0 -_0805A750: .4byte gMultiplayerConnections -_0805A754: .4byte gMultiSioSend -_0805A758: .4byte 0x0000FFFE -_0805A75C: .4byte 0x04000128 -_0805A760: .4byte gCurTask -_0805A764: .4byte Task_805A060 -_0805A768: .4byte gMultiSioStatusFlags -_0805A76C: - movs r0, #0x21 - strh r0, [r6] - b _0805A788 -_0805A772: - strh r2, [r6] - b _0805A788 -_0805A776: - mov r6, sl - movs r0, #0x21 - strh r0, [r6] - ldrh r1, [r5, #0x28] - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r6, #2] -_0805A788: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -.syntax divided diff --git a/sa1/asm/non_matching/game/char_select__Task_805A798.inc b/sa1/asm/non_matching/game/char_select__Task_805A798.inc deleted file mode 100644 index 91cda8f021..0000000000 --- a/sa1/asm/non_matching/game/char_select__Task_805A798.inc +++ /dev/null @@ -1,254 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _0805A808 @ =gCurTask - ldr r0, [r2] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - ldr r0, _0805A80C @ =gGameMode - ldrb r0, [r0] - mov r8, r2 - cmp r0, #1 - bls _0805A84C - movs r3, #0 - ldr r0, _0805A810 @ =gMultiplayerConnections - ldrb r1, [r0] - movs r2, #1 - ands r1, r2 - mov ip, r0 - cmp r1, #0 - beq _0805A84C - movs r5, #1 - ldr r2, _0805A814 @ =gMultiplayerMissingHeartbeats -_0805A7C8: - ldr r1, _0805A818 @ =gMultiSioStatusFlags - adds r0, r5, #0 - lsls r0, r3 - ldr r4, [r1] - ands r4, r0 - cmp r4, #0 - bne _0805A834 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _0805A838 - movs r0, #0 - ldr r1, _0805A81C @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _0805A820 @ =gBackgroundsCopyQueueCursor - ldr r0, _0805A824 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0805A828 @ =gBgSpritesCount - strb r4, [r0] - ldr r1, _0805A82C @ =gVramGraphicsCopyCursor - ldr r0, _0805A830 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _0805A992 - .align 2, 0 -_0805A808: .4byte gCurTask -_0805A80C: .4byte gGameMode -_0805A810: .4byte gMultiplayerConnections -_0805A814: .4byte gMultiplayerMissingHeartbeats -_0805A818: .4byte gMultiSioStatusFlags -_0805A81C: .4byte 0x0000FFFF -_0805A820: .4byte gBackgroundsCopyQueueCursor -_0805A824: .4byte gBackgroundsCopyQueueIndex -_0805A828: .4byte gBgSpritesCount -_0805A82C: .4byte gVramGraphicsCopyCursor -_0805A830: .4byte gVramGraphicsCopyQueueIndex -_0805A834: - movs r0, #0 - strb r0, [r2] -_0805A838: - adds r2, #1 - adds r3, #1 - cmp r3, #3 - bhi _0805A84C - mov r1, ip - ldrb r0, [r1] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - bne _0805A7C8 -_0805A84C: - ldr r3, _0805A8A4 @ =gMultiSioRecv - ldrh r0, [r3] - adds r7, r3, #0 - cmp r0, #0x23 - bne _0805A8B8 - ldr r1, _0805A8A8 @ =gUnknown_03005140 - movs r0, #0 - strb r0, [r1] - movs r2, #0 - ldr r0, _0805A8AC @ =gMultiplayerConnections - mov ip, r0 - adds r5, r1, #0 - movs r4, #0 -_0805A866: - mov r1, ip - ldrb r0, [r1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805A896 - adds r3, r4, r7 - ldrb r0, [r3, #3] - ldrb r1, [r5] - cmp r0, r1 - bhs _0805A880 - adds r0, r1, #0 -_0805A880: - strb r0, [r5] - ldr r0, _0805A8B0 @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805A896 - ldr r0, _0805A8B4 @ =gMultiplayerCharacters - adds r0, r2, r0 - ldrb r1, [r3, #2] - strb r1, [r0] -_0805A896: - adds r4, #0x14 - adds r2, #1 - cmp r2, #3 - bls _0805A866 - bl sub_805A9A4 - b _0805A992 - .align 2, 0 -_0805A8A4: .4byte gMultiSioRecv -_0805A8A8: .4byte gUnknown_03005140 -_0805A8AC: .4byte gMultiplayerConnections -_0805A8B0: .4byte gMultiSioStatusFlags -_0805A8B4: .4byte gMultiplayerCharacters -_0805A8B8: - cmp r0, #0x21 - bne _0805A8E4 - ldr r5, _0805A8D8 @ =gMultiSioSend - movs r0, #0x20 - strh r0, [r5] - ldr r2, [r6, #0x1c] - ldrh r1, [r2, #0x12] - ldr r0, _0805A8DC @ =0x0000FFFE - ands r0, r1 - strh r0, [r2, #0x12] - mov r0, r8 - ldr r1, [r0] - ldr r0, _0805A8E0 @ =Task_805A060 - str r0, [r1, #8] - b _0805A992 - .align 2, 0 -_0805A8D8: .4byte gMultiSioSend -_0805A8DC: .4byte 0x0000FFFE -_0805A8E0: .4byte Task_805A060 -_0805A8E4: - ldr r0, _0805A950 @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805A972 - ldr r5, _0805A954 @ =gMultiSioSend - movs r0, #0x23 - strh r0, [r5] - ldrh r1, [r6, #0x28] - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r5, #2] - ldr r1, _0805A958 @ =gLoadedSaveGame - ldrb r0, [r5, #2] - lsls r0, r0, #1 - adds r1, #8 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r5, #3] - movs r2, #0 - ldr r1, _0805A95C @ =gMultiplayerConnections - mov ip, r1 - movs r4, #0 -_0805A918: - mov r1, ip - ldrb r0, [r1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0805A968 - cmp r2, #0 - beq _0805A968 - adds r3, r4, r7 - ldr r0, _0805A960 @ =gMultiplayerCharacters - adds r0, r2, r0 - ldrb r1, [r3, #2] - strb r1, [r0] - ldrh r0, [r3] - cmp r0, #0x22 - beq _0805A968 - movs r0, #0x22 - strh r0, [r5] - ldr r0, _0805A964 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0805A992 - movs r0, #0x21 - strh r0, [r5] - b _0805A992 - .align 2, 0 -_0805A950: .4byte gMultiSioStatusFlags -_0805A954: .4byte gMultiSioSend -_0805A958: .4byte gLoadedSaveGame -_0805A95C: .4byte gMultiplayerConnections -_0805A960: .4byte gMultiplayerCharacters -_0805A964: .4byte gPressedKeys -_0805A968: - adds r4, #0x14 - adds r2, #1 - cmp r2, #3 - bls _0805A918 - b _0805A992 -_0805A972: - ldr r5, _0805A99C @ =gMultiSioSend - movs r0, #0x22 - strh r0, [r5] - ldrh r1, [r6, #0x28] - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r5, #2] - ldr r1, _0805A9A0 @ =gLoadedSaveGame - ldrb r0, [r5, #2] - lsls r0, r0, #1 - adds r1, #8 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r5, #3] -_0805A992: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805A99C: .4byte gMultiSioSend -_0805A9A0: .4byte gLoadedSaveGame - -.syntax divided diff --git a/sa1/asm/non_matching/game/char_select__sub_805B324.inc b/sa1/asm/non_matching/game/char_select__sub_805B324.inc deleted file mode 100644 index 0d12e66566..0000000000 --- a/sa1/asm/non_matching/game/char_select__sub_805B324.inc +++ /dev/null @@ -1,262 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified - -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _0805B37C @ =gUnknown_08688602 - mov r0, sp - movs r2, #6 - bl memcpy - ldr r0, _0805B380 @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r2, r0 - ldr r1, _0805B384 @ =0x030000C4 - adds r0, r2, r1 - ldrh r1, [r0] - ldrb r0, [r0] - lsrs r4, r0, #4 - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #8 - mov sl, r0 - ldr r1, _0805B388 @ =0x030000C6 - adds r0, r2, r1 - ldrb r1, [r0] - cmp r1, #0 - bne _0805B398 - ldr r0, _0805B38C @ =0x0000FFF8 - strh r0, [r5, #0x16] - ldr r0, _0805B390 @ =0x03000046 - adds r1, r2, r0 - movs r0, #0x78 - strh r0, [r1] - ldr r0, _0805B394 @ =0x03000076 - adds r1, r2, r0 - movs r0, #0xf8 - strh r0, [r1] - movs r6, #0 - b _0805B434 - .align 2, 0 -_0805B37C: .4byte gUnknown_08688602 -_0805B380: .4byte gCurTask -_0805B384: .4byte 0x030000C4 -_0805B388: .4byte 0x030000C6 -_0805B38C: .4byte 0x0000FFF8 -_0805B390: .4byte 0x03000046 -_0805B394: .4byte 0x03000076 -_0805B398: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805B3A6 - movs r3, #1 - movs r2, #0xff - b _0805B3B6 -_0805B3A6: - movs r3, #0 - movs r2, #1 - movs r1, #0x10 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 -_0805B3B6: - lsls r0, r4, #0x10 - asrs r7, r0, #0x10 - lsls r6, r2, #0x18 - cmp r7, #4 - bne _0805B416 - lsls r2, r3, #1 - adds r2, r2, r3 - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - add r0, sl - movs r3, #3 - ands r0, r3 - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x50 - strb r0, [r1] - mov r0, sp - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - add r0, sl - ands r0, r3 - lsls r0, r0, #1 - adds r1, #0x30 - strb r0, [r1] - mov r0, sp - adds r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - add r0, sl - ands r0, r3 - lsls r0, r0, #1 - subs r1, #0x60 - strb r0, [r1] - asrs r1, r6, #0x11 - ldrh r0, [r5, #0x16] - subs r0, r0, r1 - strh r0, [r5, #0x16] - adds r2, r5, #0 - adds r2, #0x46 - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r2] - adds r2, #0x30 - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r2] -_0805B416: - cmp r7, #8 - bgt _0805B434 - asrs r1, r6, #0x14 - ldrh r0, [r5, #0x16] - adds r0, r0, r1 - strh r0, [r5, #0x16] - adds r2, r5, #0 - adds r2, #0x46 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - adds r2, #0x30 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] -_0805B434: - asrs r1, r6, #0x18 - cmp r1, #1 - bne _0805B448 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r2, #0 - cmp r0, #3 - bgt _0805B45C - movs r2, #1 - b _0805B45C -_0805B448: - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0805B45A - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r2, #1 - cmp r0, #3 - bgt _0805B45C -_0805B45A: - movs r2, #0 -_0805B45C: - adds r7, r5, #0 - adds r7, #0xc8 - ldrb r1, [r7] - adds r6, r2, #0 - subs r0, r6, #1 - add r0, sl - movs r2, #3 - mov sb, r2 - ands r0, r2 - asrs r1, r0 - movs r0, #1 - mov r8, r0 - ands r1, r0 - cmp r1, #0 - beq _0805B490 - ldrh r0, [r5, #0x16] - adds r1, r5, #0 - adds r1, #0xa6 - strh r0, [r1] - ldrh r1, [r5, #0x18] - adds r0, r5, #0 - adds r0, #0xa8 - strh r1, [r0] - subs r0, #0x18 - bl DisplaySprite -_0805B490: - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - bl DisplaySprite - ldrb r1, [r7] - mov r2, sl - adds r0, r2, r6 - mov r2, sb - ands r0, r2 - asrs r1, r0 - mov r0, r8 - ands r1, r0 - cmp r1, #0 - beq _0805B4CC - adds r0, r5, #0 - adds r0, #0x46 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0xa6 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x48 - ldrh r1, [r0] - adds r0, #0x60 - strh r1, [r0] - subs r0, #0x18 - bl DisplaySprite -_0805B4CC: - adds r4, r5, #0 - adds r4, #0x30 - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - ldrb r1, [r7] - adds r0, r6, #1 - add r0, sl - mov r2, sb - ands r0, r2 - asrs r1, r0 - mov r0, r8 - ands r1, r0 - cmp r1, #0 - beq _0805B50C - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0xa6 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #0x30 - strh r1, [r0] - subs r0, #0x18 - bl DisplaySprite -_0805B50C: - adds r4, r5, #0 - adds r4, #0x60 - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc b/sa1/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc deleted file mode 100644 index 5698e04f41..0000000000 --- a/sa1/asm/non_matching/game/egg_rocket_trans__Task_8028CE4.inc +++ /dev/null @@ -1,280 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _08028EEC @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - str r1, [sp, #4] @ sp04 = shake - ldr r3, _08028EF0 @ =gCamera - ldrh r0, [r3, #0xe] - adds r0, #1 - strh r0, [r3, #0xe] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #4 - ldrsh r1, [r1, r2] - movs r4, #2 - ldrsh r2, [r3, r4] - subs r1, r1, r2 - adds r1, #0x50 - cmp r0, r1 - bge _08028D1C - b _08028EDC_return -_08028D1C: - ldrh r1, [r3] - ldrh r0, [r3, #2] - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] @ sp08 = prevCamY - movs r6, #0 @ r6 = i - ldr r5, _08028EF4 @ =gPseudoRandom - ldr r0, _08028EF8 @ =0x00196225 - mov r8, r0 - ldr r7, _08028EFC @ =0x3C6EF35F - lsls r1, r1, #0x10 - asrs r2, r1, #0x10 - str r2, [sp, #0xc] @ sp0C = prevCamX - ldr r3, _08028F00 @ =gSineTable - mov sl, r3 - str r1, [sp, #0x10] @ sp10 = prevCamX << 16 -_08028D3E_loop: - ldr r0, [r5] - mov r4, r8 - muls r4, r0, r4 - adds r0, r4, #0 - adds r0, r0, r7 - str r0, [r5] - movs r4, #7 - ands r4, r0 - ldr r0, _08028F04 @ =gUnknown_080BB434 - adds r0, r4, r0 - ldrb r0, [r0] - bl VramMalloc - adds r1, r0, #0 @ r1 = tiles - ldr r2, _08028F08 @ =gUnknown_080BB41C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ldr r0, _08028F0C @ =gUnknown_080BB42C - adds r0, r4, r0 - ldrb r3, [r0] - ldr r0, _08028F10 @ =TaskDestructor_NutsAndBolts - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #6 - bl CreateNutsAndBoltsTask - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r2, r0 @ r4 = strc - ldr r0, [r5] - mov r1, r8 - muls r1, r0, r1 - adds r1, r1, r7 - str r1, [r5] - movs r0, #0xff - ands r0, r1 - ldr r3, [sp, #0xc] - adds r0, r3, r0 - lsls r0, r0, #8 - str r0, [r4, #0x30] - ldr r0, [sp, #8] - lsls r3, r0, #0x10 - asrs r0, r3, #8 - str r0, [r4, #0x34] - movs r0, #0xc0 - lsls r0, r0, #6 - str r0, [r4, #0x10] - movs r0, #0xf8 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0x28 - strh r0, [r4, #0x3e] - ldr r0, _08028F14 @ =0x03000040 - adds r2, r2, r0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2] - mov r0, r8 - muls r0, r1, r0 - adds r0, r0, r7 - str r0, [r5] - ldr r1, _08028F18 @ =0x000001FF - ands r1, r0 - lsls r0, r1, #1 - add r0, sl - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #6 - strh r0, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - mov sb, r3 - cmp r0, #0 - bge _08028DD8 - rsbs r0, r0, #0 -_08028DD8: - strh r0, [r4, #0x3a] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - add r0, sl - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r0, r0, #8 - rsbs r0, r0, #0 - asrs r0, r0, #0xe - strh r0, [r4, #0x38] - adds r6, #1 - cmp r6, #2 - bls _08028D3E_loop - movs r6, #0 - ldr r5, _08028EF4 @ =gPseudoRandom - ldr r2, _08028EF8 @ =0x00196225 - mov r8, r2 - ldr r7, _08028EFC @ =0x3C6EF35F - ldr r3, _08028F00 @ =gSineTable - mov sl, r3 -_08028E04_loop_2: - ldr r0, [r5] - mov r4, r8 - muls r4, r0, r4 - adds r0, r4, #0 - adds r0, r0, r7 - str r0, [r5] - movs r4, #7 - ands r4, r0 - ldr r0, _08028F04 @ =gUnknown_080BB434 - adds r0, r4, r0 - ldrb r0, [r0] - bl VramMalloc - adds r1, r0, #0 - ldr r2, _08028F08 @ =gUnknown_080BB41C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ldr r0, _08028F0C @ =gUnknown_080BB42C - adds r0, r4, r0 - ldrb r3, [r0] - ldr r0, _08028F10 @ =TaskDestructor_NutsAndBolts - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #6 - bl CreateNutsAndBoltsTask - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r3, r0 - ldr r0, [r5] - mov r2, r8 - muls r2, r0, r2 - adds r2, r2, r7 - str r2, [r5] - ldr r0, [sp, #0x10] - asrs r1, r0, #0x10 - movs r0, #0xff - ands r0, r2 - adds r1, r1, r0 - lsls r1, r1, #8 - str r1, [r4, #0x30] - mov r1, sb - asrs r0, r1, #8 - str r0, [r4, #0x34] - movs r0, #0 - str r0, [r4, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0x28 - strh r0, [r4, #0x3e] - ldr r0, _08028F14 @ =0x03000040 - adds r3, r3, r0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r3] - mov r0, r8 - muls r0, r2, r0 - adds r0, r0, r7 - str r0, [r5] - adds r1, #0xff - ands r1, r0 - lsls r0, r1, #1 - add r0, sl - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #5 - strh r0, [r4, #0x3a] - movs r3, #0x3a - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _08028E9A - rsbs r0, r0, #0 -_08028E9A: - strh r0, [r4, #0x3a] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #1 - add r0, sl - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r0, r0, #9 - rsbs r0, r0, #0 - asrs r0, r0, #0xe - strh r0, [r4, #0x38] - adds r6, #1 - cmp r6, #2 - bls _08028E04_loop_2 - movs r0, #0x80 - lsls r0, r0, #4 - movs r1, #0x80 - str r1, [sp] - movs r1, #8 - movs r2, #0x10 - movs r3, #0xa - bl CreateScreenShake - ldr r4, [sp, #4] - str r0, [r4] - movs r0, #0xad - bl m4aSongNumStart - ldr r0, _08028EEC @ =gCurTask - ldr r1, [r0] - ldr r0, _08028F1C @ =Task_8028F20 - str r0, [r1, #8] -_08028EDC_return: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028EEC: .4byte gCurTask -_08028EF0: .4byte gCamera -_08028EF4: .4byte gPseudoRandom -_08028EF8: .4byte 0x00196225 -_08028EFC: .4byte 0x3C6EF35F -_08028F00: .4byte gSineTable -_08028F04: .4byte gUnknown_080BB434 -_08028F08: .4byte gUnknown_080BB41C -_08028F0C: .4byte gUnknown_080BB42C -_08028F10: .4byte TaskDestructor_NutsAndBolts -_08028F14: .4byte 0x03000040 -_08028F18: .4byte 0x000001FF -_08028F1C: .4byte Task_8028F20 - -.syntax divided diff --git a/sa1/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc b/sa1/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc deleted file mode 100644 index 11de59ab24..0000000000 --- a/sa1/asm/non_matching/game/egg_rocket_trans__Task_8029194.inc +++ /dev/null @@ -1,386 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _080293BC @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - movs r0, #0x80 - lsls r0, r0, #2 - adds r2, r0, #0 - ldrh r1, [r6, #8] - adds r2, r2, r1 - strh r2, [r6, #8] - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - ldrh r0, [r6, #6] - adds r1, r1, r0 - strh r1, [r6, #6] - ldrh r0, [r6, #0xa] - subs r0, #1 - strh r0, [r6, #0xa] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x18 - ldrh r0, [r6, #4] - adds r1, r0, r1 - ldr r4, _080293C0 @ =gCamera - ldrh r3, [r4, #2] - subs r1, r1, r3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x18 - adds r0, r0, r2 - subs r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - ldrh r1, [r6, #0xc] - adds r0, r1, #1 - strh r0, [r6, #0xc] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080291FC - b _080293A2 -_080291FC: - ldrh r1, [r4] - ldrh r0, [r4, #2] - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - movs r7, #0 - ldr r5, _080293C4 @ =gPseudoRandom - ldr r2, _080293C8 @ =0x00196225 - mov sb, r2 - ldr r3, _080293CC @ =0x3C6EF35F - mov r8, r3 - lsls r1, r1, #0x10 - asrs r0, r1, #0x10 - str r0, [sp, #0x10] - str r1, [sp, #0x14] -_0802921C: - ldr r0, [r5] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - str r0, [r5] - movs r4, #7 - ands r4, r0 - ldr r0, _080293D0 @ =gUnknown_080BB434 - adds r0, r4, r0 - ldrb r0, [r0] - bl VramMalloc - adds r1, r0, #0 - ldr r2, _080293D4 @ =gUnknown_080BB41C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ldr r0, _080293D8 @ =gUnknown_080BB42C - adds r0, r4, r0 - ldrb r3, [r0] - ldr r0, _080293DC @ =TaskDestructor_NutsAndBolts - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #6 - bl CreateNutsAndBoltsTask - ldrh r2, [r0, #6] - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r4, r2, r3 - ldr r0, [r5] - mov r1, sb - muls r1, r0, r1 - add r1, r8 - str r1, [r5] - movs r0, #0xff - ands r0, r1 - ldr r3, [sp, #0x10] - adds r0, r3, r0 - lsls r0, r0, #8 - str r0, [r4, #0x30] - ldr r0, [sp, #0xc] - lsls r3, r0, #0x10 - asrs r0, r3, #8 - str r0, [r4, #0x34] - movs r0, #0xc0 - lsls r0, r0, #6 - str r0, [r4, #0x10] - movs r0, #0xf8 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0x28 - strh r0, [r4, #0x3e] - ldr r0, _080293E0 @ =0x03000040 - adds r2, r2, r0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2] - mov r0, sb - muls r0, r1, r0 - add r0, r8 - str r0, [r5] - ldr r1, _080293E4 @ =0x000001FF - ands r1, r0 - lsls r0, r1, #1 - ldr r2, _080293E8 @ =gSineTable - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #6 - strh r0, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - mov sl, r3 - cmp r0, #0 - bge _080292B8 - rsbs r0, r0, #0 -_080292B8: - strh r0, [r4, #0x3a] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - ldr r1, _080293E8 @ =gSineTable - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r0, r0, #8 - rsbs r0, r0, #0 - asrs r0, r0, #0xe - strh r0, [r4, #0x38] - adds r7, #1 - cmp r7, #2 - bls _0802921C - movs r7, #0 - ldr r5, _080293C4 @ =gPseudoRandom - ldr r3, _080293C8 @ =0x00196225 - mov sb, r3 - ldr r0, _080293CC @ =0x3C6EF35F - mov r8, r0 -_080292E4: - ldr r0, [r5] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - add r0, r8 - str r0, [r5] - movs r4, #7 - ands r4, r0 - ldr r0, _080293D0 @ =gUnknown_080BB434 - adds r0, r4, r0 - ldrb r0, [r0] - bl VramMalloc - adds r1, r0, #0 - ldr r2, _080293D4 @ =gUnknown_080BB41C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ldr r0, _080293D8 @ =gUnknown_080BB42C - adds r0, r4, r0 - ldrb r3, [r0] - ldr r0, _080293DC @ =TaskDestructor_NutsAndBolts - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #6 - bl CreateNutsAndBoltsTask - ldrh r3, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r4, r3, r2 - ldr r0, [r5] - mov r2, sb - muls r2, r0, r2 - add r2, r8 - str r2, [r5] - ldr r0, [sp, #0x14] - asrs r1, r0, #0x10 - movs r0, #0xff - ands r0, r2 - adds r1, r1, r0 - lsls r1, r1, #8 - str r1, [r4, #0x30] - mov r1, sl - asrs r0, r1, #8 - str r0, [r4, #0x34] - movs r0, #0 - str r0, [r4, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0x28 - strh r0, [r4, #0x3e] - ldr r0, _080293E0 @ =0x03000040 - adds r3, r3, r0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r3] - mov r0, sb - muls r0, r2, r0 - add r0, r8 - str r0, [r5] - adds r1, #0xff - ands r1, r0 - lsls r0, r1, #1 - ldr r2, _080293E8 @ =gSineTable - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - asrs r0, r0, #5 - strh r0, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _0802937C - rsbs r0, r0, #0 -_0802937C: - strh r0, [r4, #0x3a] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - ldr r1, _080293E8 @ =gSineTable - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r0, r0, #9 - rsbs r0, r0, #0 - asrs r0, r0, #0xe - strh r0, [r4, #0x38] - adds r7, #1 - cmp r7, #2 - bls _080292E4 - movs r0, #0x90 - bl m4aSongNumStart -_080293A2: - ldr r3, [sp, #8] - lsls r0, r3, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0xa0 - ble _080293F0 - ldr r0, _080293BC @ =gCurTask - ldr r1, [r0] - ldr r0, _080293EC @ =Task_80294A8 - str r0, [r1, #8] - bl _call_via_r0 - b _08029494 - .align 2, 0 -_080293BC: .4byte gCurTask -_080293C0: .4byte gCamera -_080293C4: .4byte gPseudoRandom -_080293C8: .4byte 0x00196225 -_080293CC: .4byte 0x3C6EF35F -_080293D0: .4byte gUnknown_080BB434 -_080293D4: .4byte gUnknown_080BB41C -_080293D8: .4byte gUnknown_080BB42C -_080293DC: .4byte TaskDestructor_NutsAndBolts -_080293E0: .4byte 0x03000040 -_080293E4: .4byte 0x000001FF -_080293E8: .4byte gSineTable -_080293EC: .4byte Task_80294A8 -_080293F0: - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - cmp r0, #0 - ble _08029488 - cmp r1, #0x9f - bgt _08029488 - movs r3, #4 - ldrsh r0, [r6, r3] - ldr r5, _08029448 @ =gCamera - movs r2, #2 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - cmp r0, #0 - ble _08029450 - ldrb r2, [r6, #4] - ldrb r0, [r5, #2] - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _0802944C @ =gBgScrollRegs - ldrh r3, [r4, #8] - ldrh r0, [r4, #0xa] - str r0, [sp] - movs r0, #2 - movs r1, #0 - bl sa2__sub_80078D4 - ldrb r1, [r6, #4] - ldrb r0, [r5, #2] - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, [sp, #8] - lsls r5, r3, #0x18 - lsrs r2, r5, #0x18 - ldrh r3, [r4, #8] - movs r0, #0xf0 - str r0, [sp] - movs r0, #2 - bl sa2__sub_8007858 - adds r4, r5, #0 - b _08029466 - .align 2, 0 -_08029448: .4byte gCamera -_0802944C: .4byte gBgScrollRegs -_08029450: - ldr r0, [sp, #8] - lsls r4, r0, #0x18 - lsrs r2, r4, #0x18 - ldr r0, _08029484 @ =gBgScrollRegs - ldrh r3, [r0, #8] - movs r0, #0xf0 - str r0, [sp] - movs r0, #2 - movs r1, #0 - bl sa2__sub_8007858 -_08029466: - lsrs r1, r4, #0x18 - ldr r0, _08029484 @ =gBgScrollRegs - ldrh r3, [r0, #8] - ldrh r2, [r6, #8] - lsrs r2, r2, #8 - ldrh r0, [r0, #0xa] - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - movs r0, #2 - movs r2, #0xa0 - bl sa2__sub_80078D4 - b _08029494 - .align 2, 0 -_08029484: .4byte gBgScrollRegs -_08029488: - ldr r0, _080294A4 @ =gFlags - ldr r1, [r0] - movs r2, #5 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0] -_08029494: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080294A4: .4byte gFlags - -.syntax divided diff --git a/sa1/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc b/sa1/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc deleted file mode 100644 index 37a6ca8409..0000000000 --- a/sa1/asm/non_matching/game/egg_rocket_trans__Task_80294A8.inc +++ /dev/null @@ -1,400 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _08029724 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - str r1, [sp, #4] - ldr r2, _08029728 @ =gCamera - ldrh r0, [r2, #0xe] - subs r0, #1 - strh r0, [r2, #0xe] - ldrh r1, [r1, #0xc] - adds r0, r1, #1 - ldr r3, [sp, #4] - strh r0, [r3, #0xc] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080294DC - b _0802967E -_080294DC: - ldrh r1, [r2] - ldrh r0, [r2, #2] - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - movs r6, #0 - ldr r5, _0802972C @ =gPseudoRandom - ldr r0, _08029730 @ =0x00196225 - mov r8, r0 - ldr r7, _08029734 @ =0x3C6EF35F - lsls r1, r1, #0x10 - asrs r2, r1, #0x10 - str r2, [sp, #0xc] - ldr r3, _08029738 @ =gSineTable - mov sl, r3 - str r1, [sp, #0x10] -_080294FE: - ldr r0, [r5] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - str r0, [r5] - movs r4, #7 - ands r4, r0 - ldr r0, _0802973C @ =gUnknown_080BB434 - adds r0, r4, r0 - ldrb r0, [r0] - bl VramMalloc - adds r1, r0, #0 - ldr r2, _08029740 @ =gUnknown_080BB41C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ldr r0, _08029744 @ =gUnknown_080BB42C - adds r0, r4, r0 - ldrb r3, [r0] - ldr r0, _08029748 @ =TaskDestructor_NutsAndBolts - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #6 - bl CreateNutsAndBoltsTask - ldrh r2, [r0, #6] - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r4, r2, r3 - ldr r0, [r5] - mov r1, r8 - muls r1, r0, r1 - adds r1, r1, r7 - str r1, [r5] - movs r0, #0xff - ands r0, r1 - ldr r3, [sp, #0xc] - adds r0, r3, r0 - lsls r0, r0, #8 - str r0, [r4, #0x30] - ldr r0, [sp, #8] - lsls r3, r0, #0x10 - asrs r0, r3, #8 - str r0, [r4, #0x34] - movs r0, #0xc0 - lsls r0, r0, #6 - str r0, [r4, #0x10] - movs r0, #0xf8 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0x28 - strh r0, [r4, #0x3e] - ldr r0, _0802974C @ =0x03000040 - adds r2, r2, r0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2] - mov r0, r8 - muls r0, r1, r0 - adds r0, r0, r7 - str r0, [r5] - ldr r1, _08029750 @ =0x000001FF - ands r1, r0 - lsls r0, r1, #1 - add r0, sl - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #6 - strh r0, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - mov sb, r3 - cmp r0, #0 - bge _08029598 - rsbs r0, r0, #0 -_08029598: - strh r0, [r4, #0x3a] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - add r0, sl - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r0, r0, #8 - rsbs r0, r0, #0 - asrs r0, r0, #0xe - strh r0, [r4, #0x38] - adds r6, #1 - cmp r6, #2 - bls _080294FE - movs r6, #0 - ldr r5, _0802972C @ =gPseudoRandom - ldr r2, _08029730 @ =0x00196225 - mov r8, r2 - ldr r7, _08029734 @ =0x3C6EF35F - ldr r3, _08029738 @ =gSineTable - mov sl, r3 -_080295C4: - ldr r0, [r5] - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - str r0, [r5] - movs r4, #7 - ands r4, r0 - ldr r0, _0802973C @ =gUnknown_080BB434 - adds r0, r4, r0 - ldrb r0, [r0] - bl VramMalloc - adds r1, r0, #0 - ldr r2, _08029740 @ =gUnknown_080BB41C - lsls r0, r4, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ldr r0, _08029744 @ =gUnknown_080BB42C - adds r0, r4, r0 - ldrb r3, [r0] - ldr r0, _08029748 @ =TaskDestructor_NutsAndBolts - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #6 - bl CreateNutsAndBoltsTask - ldrh r3, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r4, r3, r2 - ldr r0, [r5] - mov r2, r8 - muls r2, r0, r2 - adds r2, r2, r7 - str r2, [r5] - ldr r0, [sp, #0x10] - asrs r1, r0, #0x10 - movs r0, #0xff - ands r0, r2 - adds r1, r1, r0 - lsls r1, r1, #8 - str r1, [r4, #0x30] - mov r1, sb - asrs r0, r1, #8 - str r0, [r4, #0x34] - movs r0, #0 - str r0, [r4, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0x28 - strh r0, [r4, #0x3e] - ldr r0, _0802974C @ =0x03000040 - adds r3, r3, r0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r3] - mov r0, r8 - muls r0, r2, r0 - adds r0, r0, r7 - str r0, [r5] - adds r1, #0xff - ands r1, r0 - lsls r0, r1, #1 - add r0, sl - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #5 - strh r0, [r4, #0x3a] - movs r3, #0x3a - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _0802965A - rsbs r0, r0, #0 -_0802965A: - strh r0, [r4, #0x3a] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #1 - add r0, sl - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r0, r0, #9 - rsbs r0, r0, #0 - asrs r0, r0, #0xe - strh r0, [r4, #0x38] - adds r6, #1 - cmp r6, #2 - bls _080295C4 - movs r0, #0x90 - bl m4aSongNumStart -_0802967E: - ldr r5, _08029728 @ =gCamera - movs r0, #2 - ldrsh r2, [r5, r0] - ldr r3, [sp, #4] - movs r0, #4 - ldrsh r1, [r3, r0] - adds r0, r1, #0 - subs r0, #0xa0 - adds r6, r5, #0 - cmp r2, r0 - bgt _0802977C - movs r0, #0 - strh r0, [r5, #0xe] - ldr r0, _08029754 @ =gBossIndex - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #1 - bls _080296C8 - movs r0, #0xae - lsls r0, r0, #5 - strh r0, [r5, #0x16] - ldr r3, _08029758 @ =gStageFlags - ldrh r0, [r3] - ldr r2, _0802975C @ =0x0000FFFE - ands r2, r0 - strh r2, [r3] - ldr r0, _08029760 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _080296C8 - movs r1, #4 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3] - ldr r1, _08029764 @ =gCourseTime - ldr r0, _08029768 @ =0x00004650 - str r0, [r1] -_080296C8: - ldrb r0, [r4] - cmp r0, #2 - bls _080296F4 - movs r0, #0xcc - lsls r0, r0, #4 - strh r0, [r6, #0x16] - ldr r3, _08029758 @ =gStageFlags - ldrh r0, [r3] - ldr r2, _0802975C @ =0x0000FFFE - ands r2, r0 - strh r2, [r3] - ldr r0, _08029760 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _080296F4 - movs r1, #4 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3] - ldr r1, _08029764 @ =gCourseTime - ldr r0, _08029768 @ =0x00004650 - str r0, [r1] -_080296F4: - ldr r2, _0802976C @ =gPlayer - ldr r0, [r2, #0x10] - ldr r1, _08029770 @ =0xFFDFFFFF - ands r0, r1 - str r0, [r2, #0x10] - movs r0, #0 - strh r0, [r2, #0x38] - ldr r0, _08029724 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r2, _08029774 @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldr r2, _08029728 @ =gCamera - ldrh r1, [r2, #0x26] - ldr r0, _08029778 @ =0x00007FFF - ands r0, r1 - strh r0, [r2, #0x26] - b _080297D2 - .align 2, 0 -_08029724: .4byte gCurTask -_08029728: .4byte gCamera -_0802972C: .4byte gPseudoRandom -_08029730: .4byte 0x00196225 -_08029734: .4byte 0x3C6EF35F -_08029738: .4byte gSineTable -_0802973C: .4byte gUnknown_080BB434 -_08029740: .4byte gUnknown_080BB41C -_08029744: .4byte gUnknown_080BB42C -_08029748: .4byte TaskDestructor_NutsAndBolts -_0802974C: .4byte 0x03000040 -_08029750: .4byte 0x000001FF -_08029754: .4byte gBossIndex -_08029758: .4byte gStageFlags -_0802975C: .4byte 0x0000FFFE -_08029760: .4byte gGameMode -_08029764: .4byte gCourseTime -_08029768: .4byte 0x00004650 -_0802976C: .4byte gPlayer -_08029770: .4byte 0xFFDFFFFF -_08029774: .4byte gFlags -_08029778: .4byte 0x00007FFF -_0802977C: - subs r0, r1, r2 - cmp r0, #0 - ble _080297C0 - ldr r1, [sp, #4] - ldrb r2, [r1, #4] - ldrb r0, [r5, #2] - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _080297BC @ =gBgScrollRegs - ldrh r3, [r4, #8] - ldrh r0, [r4, #0xa] - str r0, [sp] - movs r0, #2 - movs r1, #0 - bl sa2__sub_80078D4 - ldr r2, [sp, #4] - ldrb r1, [r2, #4] - ldrb r0, [r5, #2] - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrh r3, [r4, #8] - movs r0, #0xf0 - str r0, [sp] - movs r0, #2 - movs r2, #0xa0 - bl sa2__sub_8007858 - b _080297D2 - .align 2, 0 -_080297BC: .4byte gBgScrollRegs -_080297C0: - ldr r0, _080297E4 @ =gBgScrollRegs - ldrh r3, [r0, #8] - movs r0, #0xf0 - str r0, [sp] - movs r0, #2 - movs r1, #0 - movs r2, #0xa0 - bl sa2__sub_8007858 -_080297D2: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080297E4: .4byte gBgScrollRegs - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc deleted file mode 100644 index 46d753c730..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_8052AA4.inc +++ /dev/null @@ -1,120 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08052B74 @ =gUnknown_030063C0 - mov ip, r0 - ldr r0, [r0] - cmp r0, #0 - beq _08052B50 - ldr r1, _08052B78 @ =gTask_03006240 - mov sl, r1 -_08052ABC_loop: - mov r2, ip - ldr r2, [r2] @ r2 = list - mov ip, r2 - mov r1, sl - ldr r0, [r1] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r1, r0 @ r5 = strc0 = TASK_DATA(gTask_03006240); - ldr r1, [r2, #0x1c] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r5, r0 @ r5 = strc0 - ldr r1, [r2, #0x14] - lsls r1, r1, #6 - mov r6, ip - adds r6, #0x20 - ldrb r3, [r6] @ r3 = list->unk20 - ldr r0, [r2, #0x10] - adds r0, r0, r3 - lsls r0, r0, #1 - adds r1, r1, r0 @ r1 = - ldr r0, [r2, #0x18] - lsls r0, r0, #1 - ldr r2, _08052B7C @ =gBgCntRegs - adds r0, r0, r2 - ldrh r2, [r0] - movs r0, #0xf8 - lsls r0, r0, #5 @ r0 = 0x1F00 - ands r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - movs r0, #0xc0 - lsls r0, r0, #0x13 @ r0 = VRAM - adds r0, r0, r1 - mov sb, r0 @ sb = vram = BG_CHAR_ADDR_FROM_SCREENBASE(list->unk18) + vramOffset; - movs r4, #0 - movs r1, #0 - cmp r1, r3 - bhs _08052B48 - mov r8, r6 @ r8 = r6 = &list->unk20 -_08052B10: - movs r2, #0 - adds r7, r1, #1 - adds r6, r4, #1 - ldrb r0, [r5, #0xb] - cmp r2, r0 - bhs _08052B3C - ldr r3, [r5, #4] - muls r1, r3, r1 - mov r0, ip - adds r0, #4 - adds r4, r0, r4 - add r1, sb @ r1 = vram + (strc0->unk4 * i) -_08052B28: - ldrb r0, [r4] - subs r0, #0x20 - muls r0, r3, r0 - adds r0, r0, r2 - strh r0, [r1] - adds r1, #0x40 - adds r2, #1 - ldrb r0, [r5, #0xb] - cmp r2, r0 - blo _08052B28 -_08052B3C: - adds r1, r7, #0 - adds r4, r6, #0 - mov r2, r8 - ldrb r2, [r2] - cmp r1, r2 - blo _08052B10 -_08052B48: - mov r1, ip - ldr r0, [r1] - cmp r0, #0 - bne _08052ABC_loop -_08052B50: - ldr r2, _08052B80 @ =gUnknown_030063F0 - ldr r0, [r2] - mov r1, ip - str r0, [r1] - ldr r2, _08052B74 @ =gUnknown_030063C0 - ldr r0, [r2] - ldr r1, _08052B80 @ =gUnknown_030063F0 - str r0, [r1] - movs r0, #0 - str r0, [r2] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052B74: .4byte gUnknown_030063C0 -_08052B78: .4byte gTask_03006240 -_08052B7C: .4byte gBgCntRegs -_08052B80: .4byte gUnknown_030063F0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_8052D64.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_8052D64.inc deleted file mode 100644 index 5a23d92540..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_8052D64.inc +++ /dev/null @@ -1,114 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sb, r0 - adds r4, r1, #0 - ldr r0, _08052DC8 @ =gTask_03006240 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r1, r0 - ldrh r1, [r4, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r5, r5, r0 - ldrh r0, [r4, #4] @ r0: angle - movs r2, #0 - ldrsh r1, [r4, r2] @ r1: p1 - movs r3, #2 - ldrsh r2, [r4, r3] @ r2: p2 - ldrh r3, [r4, #6] @ r3: affineIndex - bl sa2__sub_80047A0 - ldrh r7, [r4, #6] - mov r8, r7 - mov r2, sp - movs r1, #0xc0 - lsls r1, r1, #2 - ldrb r0, [r5, #9] - lsls r0, r0, #0xe - orrs r0, r1 - ldrb r1, [r4, #0xc] - orrs r0, r1 - strh r0, [r2] - mov r3, sp - ldrh r1, [r4, #0x12] - lsls r1, r1, #0xc - ldr r0, [r5] - ldr r2, _08052DCC @ =0x000003FF - ands r0, r2 - orrs r1, r0 - strh r1, [r3, #4] - movs r6, #0 - mov sl, sp - b _08052E0A - .align 2, 0 -_08052DC8: .4byte gTask_03006240 -_08052DCC: .4byte 0x000003FF -_08052DD0: - mov r1, sl - ldrh r0, [r1] - strh r0, [r3] - ldrb r2, [r5, #8] - lsls r2, r2, #0xe - mov r7, r8 - lsls r0, r7, #9 - orrs r2, r0 - ldrb r0, [r5, #0xa] - muls r0, r6, r0 - lsls r0, r0, #3 - ldrh r1, [r4, #0xa] - adds r0, r0, r1 - ldr r7, _08052E38 @ =0x000001FF - adds r1, r7, #0 - ands r0, r1 - orrs r2, r0 - strh r2, [r3, #2] - mov r1, sb - adds r0, r1, r6 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r5, #4] - muls r0, r1, r0 - mov r2, sl - ldrh r2, [r2, #4] - adds r0, r0, r2 - strh r0, [r3, #4] - adds r6, #1 -_08052E0A: - movs r3, #0xe - ldrsh r0, [r4, r3] - cmp r6, r0 - bge _08052E28 - ldrh r0, [r4, #8] - lsrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl OamMalloc - adds r3, r0, #0 - ldr r0, _08052E3C @ =iwram_end - ldr r0, [r0] - cmp r0, r3 - bne _08052DD0 -_08052E28: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08052E38: .4byte 0x000001FF -_08052E3C: .4byte iwram_end - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc deleted file mode 100644 index ca5019c431..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_8052EF0.inc +++ /dev/null @@ -1,75 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r6, r0, #0 - adds r4, r1, #0 @ r4 = (sub_8052C84*) - movs r7, #0 - strh r7, [r4, #0xe] @ param1->byteCount = 0; - movs r5, #9 -_08052EFE: - adds r0, r6, #0 - movs r1, #0xa - bl Div - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 @ r0 = divRes - mov r1, sp - adds r3, r1, r5 - lsls r1, r0, #3 - lsls r2, r0, #1 - adds r1, r1, r2 - subs r1, r6, r1 - adds r1, #0x30 - strb r1, [r3] - lsls r0, r0, #0x10 - asrs r6, r0, #0x10 - ldrh r1, [r4, #0xe] - adds r0, r1, #1 - strh r0, [r4, #0xe] - subs r5, #1 - cmp r5, #0 - bge _08052EFE - movs r5, #0 - mov r0, sp - ldrb r0, [r0] - ldrh r2, [r4] - ldrh r3, [r4, #0xa] - cmp r0, #0x30 - bne _08052F56 - adds r7, #1 - strh r1, [r4, #0xe] -_08052F3C: - adds r5, #1 - cmp r5, #9 - bgt _08052F56 - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #0x30 - bne _08052F56 - adds r7, #1 - ldrh r0, [r4, #0xe] - subs r0, #1 - strh r0, [r4, #0xe] - b _08052F3C -_08052F56: - movs r1, #0xe - ldrsh r0, [r4, r1] - subs r0, #1 - muls r0, r2, r0 - asrs r0, r0, #5 - subs r0, r3, r0 - strh r0, [r4, #0xa] - mov r1, sp - adds r0, r1, r7 - adds r1, r4, #0 - bl sub_8052C84 - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_8052F78.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_8052F78.inc deleted file mode 100644 index bcb0bb037d..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_8052F78.inc +++ /dev/null @@ -1,179 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sl, r0 - adds r5, r1, #0 - ldr r0, _08052FE8 @ =gTask_03006240 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - ldrh r1, [r5, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r7, r7, r0 - ldrb r0, [r7, #0xa] - lsls r0, r0, #3 - mov sb, r0 - ldrb r0, [r7, #0xb] - lsls r0, r0, #3 - str r0, [sp, #8] - mov r2, sp - ldrb r0, [r7, #9] - lsls r0, r0, #0xe - ldrb r1, [r5, #0xc] - adds r0, r0, r1 - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r0, r1 - strh r0, [r2] - mov r3, sp - ldrb r1, [r7, #8] - lsls r1, r1, #0xe - ldrh r2, [r5, #0xa] - ldr r6, _08052FEC @ =0x000001FF - adds r0, r6, #0 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r3, #2] - ldrh r1, [r5, #0x12] - lsls r1, r1, #0xc - ldr r0, [r7] - ldr r2, _08052FF0 @ =0x000003FF - ands r0, r2 - orrs r1, r0 - strh r1, [r3, #4] - ldrb r0, [r5, #0x16] - cmp r0, #0 - beq _0805303C - movs r6, #0 - mov r4, sp - b _08053016 - .align 2, 0 -_08052FE8: .4byte gTask_03006240 -_08052FEC: .4byte 0x000001FF -_08052FF0: .4byte 0x000003FF -_08052FF4: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, sb - strh r0, [r4, #2] - mov r1, sl - adds r0, r1, r6 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r7, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r6, #1 -_08053016: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r6, r0 - bge _080530B8 - ldrh r0, [r5, #8] - lsrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl OamMalloc - adds r2, r0, #0 - ldr r0, _08053038 @ =iwram_end - ldr r0, [r0] - cmp r0, r2 - bne _08052FF4 - b _080530B8 - .align 2, 0 -_08053038: .4byte iwram_end -_0805303C: - movs r3, #0 - ldrh r0, [r5, #0x14] - cmp r3, r0 - bge _080530B8 - mov r4, sp - mov r8, r6 -_08053048: - ldrb r1, [r7, #8] - lsls r1, r1, #0xe - ldrh r2, [r5, #0xa] - mov r0, r8 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r4, #2] - movs r1, #0xa - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - mov r1, r8 - ands r0, r1 - asrs r6, r0, #7 - adds r3, #1 - b _08053088 -_08053066: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, sb - strh r0, [r4, #2] - mov r1, sl - adds r0, r1, r6 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r7, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r6, #1 -_08053088: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r6, r0 - bge _080530AA - ldrh r0, [r5, #8] - lsrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp, #0xc] - bl OamMalloc - adds r2, r0, #0 - ldr r0, _080530C8 @ =iwram_end - ldr r0, [r0] - ldr r3, [sp, #0xc] - cmp r0, r2 - bne _08053066 -_080530AA: - ldrh r0, [r4] - ldr r1, [sp, #8] - adds r0, r1, r0 - strh r0, [r4] - ldrh r0, [r5, #0x14] - cmp r3, r0 - blt _08053048 -_080530B8: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080530C8: .4byte iwram_end - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_80530CC.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_80530CC.inc deleted file mode 100644 index ab55d876cf..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_80530CC.inc +++ /dev/null @@ -1,176 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sl, r0 - adds r5, r1, #0 - ldr r0, _08053138 @ =gTask_03006240 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - ldrh r1, [r5, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r7, r7, r0 - ldrb r0, [r7, #0xa] - lsls r0, r0, #3 - mov sb, r0 - ldrb r0, [r7, #0xb] - lsls r0, r0, #3 - str r0, [sp, #8] - mov r2, sp - ldrb r0, [r7, #9] - lsls r0, r0, #0xe - ldrb r1, [r5, #0xc] - adds r0, r0, r1 - strh r0, [r2] - mov r3, sp - ldrb r1, [r7, #8] - lsls r1, r1, #0xe - ldrh r2, [r5, #0xa] - ldr r6, _0805313C @ =0x000001FF - adds r0, r6, #0 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r3, #2] - ldrh r1, [r5, #0x12] - lsls r1, r1, #0xc - ldr r0, [r7] - ldr r2, _08053140 @ =0x000003FF - ands r0, r2 - orrs r1, r0 - strh r1, [r3, #4] - ldrb r0, [r5, #0x16] - cmp r0, #0 - beq _0805318C - movs r6, #0 - mov r4, sp - b _08053166 - .align 2, 0 -_08053138: .4byte gTask_03006240 -_0805313C: .4byte 0x000001FF -_08053140: .4byte 0x000003FF -_08053144: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, sb - strh r0, [r4, #2] - mov r1, sl - adds r0, r1, r6 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r7, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r6, #1 -_08053166: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r6, r0 - bge _08053208 - ldrh r0, [r5, #8] - lsrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl OamMalloc - adds r2, r0, #0 - ldr r0, _08053188 @ =iwram_end - ldr r0, [r0] - cmp r0, r2 - bne _08053144 - b _08053208 - .align 2, 0 -_08053188: .4byte iwram_end -_0805318C: - movs r3, #0 - ldrh r0, [r5, #0x14] - cmp r3, r0 - bge _08053208 - mov r4, sp - mov r8, r6 -_08053198: - ldrb r1, [r7, #8] - lsls r1, r1, #0xe - ldrh r2, [r5, #0xa] - mov r0, r8 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r4, #2] - movs r1, #0xa - ldrsh r0, [r5, r1] - rsbs r0, r0, #0 - mov r1, r8 - ands r0, r1 - asrs r6, r0, #7 - adds r3, #1 - b _080531D8 -_080531B6: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, sb - strh r0, [r4, #2] - mov r1, sl - adds r0, r1, r6 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r7, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r6, #1 -_080531D8: - movs r1, #0xe - ldrsh r0, [r5, r1] - cmp r6, r0 - bge _080531FA - ldrh r0, [r5, #8] - lsrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp, #0xc] - bl OamMalloc - adds r2, r0, #0 - ldr r0, _08053218 @ =iwram_end - ldr r0, [r0] - ldr r3, [sp, #0xc] - cmp r0, r2 - bne _080531B6 -_080531FA: - ldrh r0, [r4] - ldr r1, [sp, #8] - adds r0, r1, r0 - strh r0, [r4] - ldrh r0, [r5, #0x14] - cmp r3, r0 - blt _08053198 -_08053208: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053218: .4byte iwram_end - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_805321C.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_805321C.inc deleted file mode 100644 index 2e3feee446..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_805321C.inc +++ /dev/null @@ -1,178 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sl, r0 - adds r6, r1, #0 - ldr r0, _08053288 @ =gTask_03006240 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - ldrh r1, [r6, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r7, r7, r0 - ldrb r0, [r7, #0xa] - lsls r0, r0, #3 - mov sb, r0 - ldrb r0, [r7, #0xb] - lsls r0, r0, #3 - str r0, [sp, #8] - mov r2, sp - ldrb r0, [r7, #9] - lsls r0, r0, #0xe - ldrb r1, [r6, #0xc] - adds r0, r0, r1 - strh r0, [r2] - mov r3, sp - ldrb r1, [r7, #8] - lsls r1, r1, #0xe - ldrh r2, [r6, #0xa] - ldr r5, _0805328C @ =0x000001FF - adds r0, r5, #0 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r3, #2] - ldrh r1, [r6, #0x12] - lsls r1, r1, #0xc - ldr r0, [r7] - ldr r2, _08053290 @ =0x000003FF - ands r0, r2 - orrs r1, r0 - strh r1, [r3, #4] - ldrb r0, [r6, #0x16] - cmp r0, #0 - beq _080532DC - movs r5, #0 - mov r4, sp - b _080532B6 - .align 2, 0 -_08053288: .4byte gTask_03006240 -_0805328C: .4byte 0x000001FF -_08053290: .4byte 0x000003FF -_08053294: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, sb - strh r0, [r4, #2] - mov r1, sl - adds r0, r1, r5 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r7, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r5, #1 -_080532B6: - movs r1, #0xe - ldrsh r0, [r6, r1] - cmp r5, r0 - bge _0805335A - ldrh r0, [r6, #8] - adds r0, r0, r5 - asrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl OamMalloc - adds r2, r0, #0 - ldr r0, _080532D8 @ =iwram_end - ldr r0, [r0] - cmp r0, r2 - bne _08053294 - b _0805335A - .align 2, 0 -_080532D8: .4byte iwram_end -_080532DC: - movs r3, #0 - ldrh r0, [r6, #0x14] - cmp r3, r0 - bge _0805335A - mov r4, sp - mov r8, r5 -_080532E8: - ldrb r1, [r7, #8] - lsls r1, r1, #0xe - ldrh r2, [r6, #0xa] - mov r0, r8 - ands r0, r2 - adds r1, r1, r0 - strh r1, [r4, #2] - movs r1, #0xa - ldrsh r0, [r6, r1] - rsbs r0, r0, #0 - mov r1, r8 - ands r0, r1 - asrs r5, r0, #7 - adds r3, #1 - b _08053328 -_08053306: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, sb - strh r0, [r4, #2] - mov r1, sl - adds r0, r1, r5 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r7, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r5, #1 -_08053328: - movs r1, #0xe - ldrsh r0, [r6, r1] - cmp r5, r0 - bge _0805334C - ldrh r0, [r6, #8] - adds r0, r0, r5 - asrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp, #0xc] - bl OamMalloc - adds r2, r0, #0 - ldr r0, _0805336C @ =iwram_end - ldr r0, [r0] - ldr r3, [sp, #0xc] - cmp r0, r2 - bne _08053306 -_0805334C: - ldrh r0, [r4] - ldr r1, [sp, #8] - adds r0, r1, r0 - strh r0, [r4] - ldrh r0, [r6, #0x14] - cmp r3, r0 - blt _080532E8 -_0805335A: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805336C: .4byte iwram_end - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_8053370.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_8053370.inc deleted file mode 100644 index 0fb57b1363..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_8053370.inc +++ /dev/null @@ -1,126 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0xc - adds r5, r0, #0 - adds r7, r1, #0 - ldr r0, _080533DC @ =gTask_03006240 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - ldrh r1, [r7, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r6, r6, r0 - ldrb r0, [r6, #0xa] - lsls r0, r0, #3 - mov r8, r0 - mov r2, sp - ldrb r0, [r6, #9] - lsls r0, r0, #0xe - ldrb r1, [r7, #0xc] - adds r0, r0, r1 - strh r0, [r2] - mov r3, sp - ldrb r1, [r6, #8] - lsls r1, r1, #0xe - ldrh r2, [r7, #0xa] - ldr r0, _080533E0 @ =0x000001FF - ands r0, r2 - adds r1, r1, r0 - strh r1, [r3, #2] - ldrh r1, [r7, #0x12] - lsls r1, r1, #0xc - ldr r0, [r6] - ldr r2, _080533E4 @ =0x000003FF - ands r0, r2 - orrs r1, r0 - strh r1, [r3, #4] - movs r3, #0 - movs r1, #0xe - ldrsh r0, [r7, r1] - cmp r3, r0 - bge _0805344A - mov r4, sp -_080533CE: - ldrb r0, [r5] - cmp r0, #0x20 - bne _080533E8 - ldrh r0, [r4, #2] - add r0, r8 - strh r0, [r4, #2] - b _0805343E - .align 2, 0 -_080533DC: .4byte gTask_03006240 -_080533E0: .4byte 0x000001FF -_080533E4: .4byte 0x000003FF -_080533E8: - ldrh r0, [r7, #8] - adds r0, r0, r3 - asrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r3, [sp, #8] - bl OamMalloc - adds r2, r0, #0 - ldr r0, _08053424 @ =iwram_end - ldr r0, [r0] - ldr r3, [sp, #8] - cmp r0, r2 - beq _0805344A - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, r8 - strh r0, [r4, #2] - ldrb r0, [r5] - cmp r0, #0x60 - bls _08053428 - ldrh r0, [r2] - adds r0, #8 - strh r0, [r2] - ldrb r0, [r5] - subs r0, #0x11 - b _0805342C - .align 2, 0 -_08053424: .4byte iwram_end -_08053428: - ldrb r0, [r5] - subs r0, #0x20 -_0805342C: - ldr r1, [r6, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - ldr r1, _08053458 @ =0x0000F3FF - mov ip, r1 - mov r1, ip - ands r0, r1 - strh r0, [r2, #4] -_0805343E: - adds r5, #1 - adds r3, #1 - movs r1, #0xe - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _080533CE -_0805344A: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053458: .4byte 0x0000F3FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_805345C.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_805345C.inc deleted file mode 100644 index abe8cbc55f..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_805345C.inc +++ /dev/null @@ -1,103 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #8 - mov sb, r0 @ sb = param0 - adds r7, r1, #0 @ r7 = param1 - ldr r0, _080534C0 @ =gTask_03006240 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = strc - ldrh r1, [r7, #0x10] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r6, r6, r0 @ r6 = strc0 - ldrb r0, [r6, #0xa] - lsls r0, r0, #3 - mov r8, r0 @ r8 = r8 = strc0->unkA * 8; - mov r2, sp - ldrb r0, [r6, #9] - lsls r0, r0, #0xe - ldrb r1, [r7, #0xc] - adds r0, r0, r1 - strh r0, [r2] - mov r3, sp - ldrb r1, [r6, #8] - lsls r1, r1, #0xe - ldrh r2, [r7, #0xa] - ldr r0, _080534C4 @ =0x000001FF - ands r0, r2 - adds r1, r1, r0 - strh r1, [r3, #2] - ldrh r0, [r7, #0x12] - lsls r0, r0, #0xc - ldr r1, [r6] - ldr r2, _080534C8 @ =0x000003FF - ands r1, r2 - orrs r0, r1 - movs r2, #0x80 - lsls r2, r2, #4 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r3, #4] - movs r5, #0 - mov r4, sp - b _080534EE - .align 2, 0 -_080534C0: .4byte gTask_03006240 -_080534C4: .4byte 0x000001FF -_080534C8: .4byte 0x000003FF -_080534CC: - ldrh r0, [r4] - strh r0, [r2] - ldrh r0, [r4, #2] - strh r0, [r2, #2] - ldrh r0, [r4, #2] - add r0, r8 - strh r0, [r4, #2] - mov r1, sb - adds r0, r1, r5 - ldrb r0, [r0] - subs r0, #0x20 - ldr r1, [r6, #4] - muls r0, r1, r0 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #4] - adds r5, #1 -_080534EE: - movs r2, #0xe - ldrsh r0, [r7, r2] - cmp r5, r0 - bge _0805350E - ldrh r0, [r7, #8] - adds r0, r0, r5 - asrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl OamMalloc - adds r2, r0, #0 - ldr r0, _0805351C @ =iwram_end - ldr r0, [r0] - cmp r0, r2 - bne _080534CC -_0805350E: - add sp, #8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805351C: .4byte iwram_end - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__sub_80535FC.inc b/sa1/asm/non_matching/game/gTask_3006240__sub_80535FC.inc deleted file mode 100644 index 0b85f58e53..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__sub_80535FC.inc +++ /dev/null @@ -1,60 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r0, _0805365C @ =gTask_03006240 - ldr r0, [r0] - cmp r0, #0 - bne _08053652 - ldr r2, _08053660 @ =gUnknown_03006250 - ldr r4, _08053664 @ =gUnknown_030063F0 - ldr r5, _08053668 @ =gUnknown_030063C0 - ldr r0, _0805366C @ =Task_80536D4 - mov ip, r0 - ldr r6, _08053670 @ =TaskDestructor_80536D8 - adds r3, r2, #0 @ r3 = gUnknown_03006250 - movs r7, #0xa2 - lsls r7, r7, #1 @ r7 = 0x144 - adds r1, r2, r7 - subs r7, #0x24 - adds r0, r2, r7 @ r0 = 0x120 -_08053620: - str r1, [r0] - subs r1, #0x24 - subs r0, #0x24 - cmp r0, r3 - bge _08053620 - movs r1, #0 - movs r3, #0xa2 - lsls r3, r3, #1 @ r3 = 0x144 - adds r0, r2, r3 - str r1, [r0] - str r2, [r4] - str r1, [r5] - movs r1, #0xd3 - lsls r1, r1, #2 @ r1 = 0x34C - movs r2, #0xc0 - lsls r2, r2, #5 - str r6, [sp] - mov r0, ip - movs r3, #0 - bl TaskCreate - ldr r1, _0805365C @ =gTask_03006240 - str r0, [r1] - bl UiGfxStackInit -_08053652: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805365C: .4byte gTask_03006240 -_08053660: .4byte gUnknown_03006250 -_08053664: .4byte gUnknown_030063F0 -_08053668: .4byte gUnknown_030063C0 -_0805366C: .4byte Task_80536D4 -_08053670: .4byte TaskDestructor_80536D8 - -.syntax divided diff --git a/sa1/asm/non_matching/game/gTask_3006240__unused_8052B84.inc b/sa1/asm/non_matching/game/gTask_3006240__unused_8052B84.inc deleted file mode 100644 index 15b30451af..0000000000 --- a/sa1/asm/non_matching/game/gTask_3006240__unused_8052B84.inc +++ /dev/null @@ -1,142 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r5, r0, #0 - ldr r0, [sp, #0x30] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0xc] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sl, r2 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov sb, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - mov r1, sp - movs r0, #0 - strb r0, [r1, #9] - movs r4, #8 -_08052BB4: - adds r0, r5, #0 - movs r1, #0xa - bl Div - mov r1, sp - adds r3, r1, r4 - lsls r1, r0, #3 - lsls r2, r0, #1 - adds r1, r1, r2 - subs r1, r5, r1 - adds r1, #0x30 - strb r1, [r3] - adds r5, r0, #0 - subs r4, #1 - cmp r4, #0 - bge _08052BB4 - movs r1, #0 - movs r4, #0 - mov r0, sp - ldrb r0, [r0] - ldr r2, _08052BFC @ =gUnknown_030063F0 - mov ip, r2 - cmp r0, #0x30 - bne _08052C00 - movs r1, #1 -_08052BE6: - adds r4, #1 - cmp r4, #9 - bgt _08052C00 - mov r2, sp - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, #0x30 - bne _08052C00 - adds r1, #1 - b _08052BE6 - .align 2, 0 -_08052BFC: .4byte gUnknown_030063F0 -_08052C00: - mov r0, sp - adds r6, r0, r1 - mov r1, ip - ldr r0, [r1] - cmp r0, #0 - beq _08052C74 - adds r3, r0, #0 - movs r1, #0 - ldrb r0, [r6] - cmp r0, #0x20 - beq _08052C24 -_08052C16: - adds r1, #1 - cmp r1, #9 - bgt _08052C24 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #0x20 - bne _08052C16 -_08052C24: - adds r4, r3, #0 - adds r4, #0x20 - strb r1, [r4] - cmp r1, #0 - ble _08052C74 - movs r2, #0 - ldr r7, _08052C5C @ =gUnknown_030063C0 - cmp r2, r1 - bge _08052C48 - adds r5, r3, #4 -_08052C38: - adds r0, r5, r2 - adds r1, r6, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - ldrb r0, [r4] - cmp r2, r0 - blt _08052C38 -_08052C48: - ldr r1, [sp, #0xc] - str r1, [r3, #0x10] - mov r2, sl - str r2, [r3, #0x14] - mov r0, sb - str r0, [r3, #0x18] - mov r1, r8 - str r1, [r3, #0x1c] - adds r1, r7, #0 - b _08052C62 - .align 2, 0 -_08052C5C: .4byte gUnknown_030063C0 -_08052C60: - ldr r1, [r1] -_08052C62: - ldr r0, [r1] - cmp r0, #0 - bne _08052C60 - str r3, [r1] - ldr r0, [r3] - mov r2, ip - str r0, [r2] - movs r0, #0 - str r0, [r3] -_08052C74: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/intro_anim__Task_80640C8.inc b/sa1/asm/non_matching/game/intro_anim__Task_80640C8.inc deleted file mode 100644 index 06ff23bec7..0000000000 --- a/sa1/asm/non_matching/game/intro_anim__Task_80640C8.inc +++ /dev/null @@ -1,188 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _08064104 @ =gCurTask - ldr r4, [r0] - ldrh r3, [r4, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r3, r1 - str r0, [sp] - ldr r0, [r0, #0xc] - ldrh r0, [r0, #6] - adds r0, r0, r1 - adds r1, #0x4c - adds r2, r3, r1 - ldrh r1, [r2] - strh r1, [r0, #0x30] - ldr r0, _08064108 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _08064110 - ldr r0, _0806410C @ =IntroOpenTitlescreenPlayMusic - str r0, [r4, #8] - b _08064232 - .align 2, 0 -_08064104: .4byte gCurTask -_08064108: .4byte gPressedKeys -_0806410C: .4byte IntroOpenTitlescreenPlayMusic -_08064110: - movs r1, #0 - ldrsh r0, [r2, r1] - mov sb, r2 - cmp r0, #0x97 - ble _080641AC - subs r0, #0x98 - lsls r0, r0, #0xf - lsrs r7, r0, #0x10 - cmp r7, #0x28 - bls _08064126 - movs r7, #0x28 -_08064126: - movs r2, #0 - mov sl, r2 - ldr r0, _08064204 @ =0x0300004C - adds r0, r0, r3 - mov sb, r0 -_08064130: - ldr r0, _08064208 @ =gUnknown_086A5D34 - mov r1, sl - lsls r1, r1, #1 - mov r8, r1 - add r0, r8 - ldrh r6, [r0] - movs r1, #0x1f - ands r1, r6 - movs r2, #0xf8 - lsls r2, r2, #2 - adds r0, r2, #0 - adds r4, r6, #0 - ands r4, r0 - lsrs r4, r4, #5 - movs r3, #0xf8 - lsls r3, r3, #7 - adds r0, r3, #0 - ands r6, r0 - lsrs r6, r6, #0xa - adds r0, r1, #0 - muls r0, r7, r0 - movs r1, #0x28 - bl Div - adds r5, r0, #0 - movs r0, #0x1f - ands r5, r0 - adds r0, r4, #0 - muls r0, r7, r0 - movs r1, #0x28 - bl Div - adds r4, r0, #0 - movs r1, #0x1f - ands r4, r1 - adds r0, r6, #0 - muls r0, r7, r0 - movs r1, #0x28 - bl Div - movs r2, #0x1f - ands r0, r2 - ldr r1, _0806420C @ =gBgPalette - add r8, r1 - lsls r4, r4, #5 - orrs r5, r4 - lsls r0, r0, #0xa - orrs r5, r0 - mov r3, r8 - strh r5, [r3] - ldr r2, _08064210 @ =gFlags - ldr r0, [r2] - movs r1, #1 - orrs r0, r1 - str r0, [r2] - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - cmp r0, #0x1f - bls _08064130 -_080641AC: - mov r1, sb - movs r2, #0 - ldrsh r0, [r1, r2] - ldr r2, _08064214 @ =gBgScrollRegs - cmp r0, #0xb5 - ble _080641DA - ldrh r0, [r2, #2] - adds r0, #2 - strh r0, [r2, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x64 - ble _080641CA - movs r0, #0x64 - strh r0, [r2, #2] -_080641CA: - ldrh r1, [r2, #2] - movs r3, #2 - ldrsh r0, [r2, r3] - cmp r0, #0x50 - ble _080641DA - adds r0, r1, #0 - subs r0, #0x50 - strh r0, [r2, #0xa] -_080641DA: - ldrh r0, [r2, #6] - adds r0, #0xa - strh r0, [r2, #6] - mov r1, sb - ldrh r0, [r1] - bl sub_8063E8C - mov r2, sb - movs r3, #0 - ldrsh r1, [r2, r3] - ldr r0, _08064218 @ =0x0000013F - cmp r1, r0 - ble _08064224 - movs r0, #0 - strh r0, [r2] - ldr r0, _0806421C @ =gCurTask - ldr r1, [r0] - ldr r0, _08064220 @ =sub_8064244 - str r0, [r1, #8] - b _0806422A - .align 2, 0 -_08064204: .4byte 0x0300004C -_08064208: .4byte gUnknown_086A5D34 -_0806420C: .4byte gBgPalette -_08064210: .4byte gFlags -_08064214: .4byte gBgScrollRegs -_08064218: .4byte 0x0000013F -_0806421C: .4byte gCurTask -_08064220: .4byte sub_8064244 -_08064224: - ldr r0, [sp] - bl sub_805423C -_0806422A: - mov r1, sb - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08064232: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc b/sa1/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc deleted file mode 100644 index 63f725506f..0000000000 --- a/sa1/asm/non_matching/game/sa1/menus/mp_mode_select__Task_SinglePak.inc +++ /dev/null @@ -1,443 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - movs r6, #1 - ldr r0, _0800F66C @ =gCurTask - ldr r0, [r0] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r3, r0 - ldr r0, _0800F670 @ =0x03000208 - adds r2, r3, r0 - ldrh r0, [r2] - subs r0, #0x80 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0800F61A - movs r0, #0 - strh r0, [r2] -_0800F61A: - ldr r1, _0800F674 @ =gBldRegs - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #4] - movs r5, #1 - ldr r1, _0800F678 @ =gMultiBootParam - ldrb r0, [r1, #0x1d] - asrs r0, r0, #1 - ands r0, r6 - mov r8, r1 - ldr r1, _0800F67C @ =0x030000C0 - adds r3, r3, r1 - cmp r0, #0 - beq _0800F680 - mov r2, r8 - ldrb r0, [r2, #0x1e] - asrs r0, r0, #1 - ands r0, r6 - cmp r0, #0 - beq _0800F680 - movs r6, #2 -_0800F646: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bhi _0800F680 - ldrb r0, [r2, #0x1d] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800F680 - mov r4, r8 - ldrb r0, [r4, #0x1e] - asrs r0, r5 - ands r0, r1 - cmp r0, #0 - beq _0800F680 - adds r6, #1 - b _0800F646 - .align 2, 0 -_0800F66C: .4byte gCurTask -_0800F670: .4byte 0x03000208 -_0800F674: .4byte gBldRegs -_0800F678: .4byte gMultiBootParam -_0800F67C: .4byte 0x030000C0 -_0800F680: - adds r0, r6, #3 - strb r0, [r3] - movs r5, #0 -_0800F686: - lsls r4, r5, #1 - adds r4, r4, r5 - lsls r4, r4, #4 - adds r4, #0x40 - adds r4, r7, r4 - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #2 - bls _0800F686 - ldr r1, _0800F6D0 @ =gMultiBootParam - ldrb r0, [r1, #0x1e] - movs r2, #0xe - ands r2, r0 - mov r8, r1 - cmp r2, #0 - beq _0800F6D4 - ldrb r0, [r1, #0x18] - cmp r0, #0 - bne _0800F6F0 - cmp r6, #1 - ble _0800F6F0 - adds r4, r7, #0 - adds r4, #0xd0 - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - b _0800F6EC - .align 2, 0 -_0800F6D0: .4byte gMultiBootParam -_0800F6D4: - ldr r1, _0800F7BC @ =0x00000207 - adds r0, r7, r1 - strb r2, [r0] - ldr r2, _0800F7C0 @ =gFlags - ldr r0, [r2] - ldr r1, _0800F7C4 @ =0xFFFFBFFF - ands r0, r1 - ldr r1, _0800F7C8 @ =0xFFFF7FFF - ands r0, r1 - str r0, [r2] - bl m4aSoundVSyncOn -_0800F6EC: - ldr r2, _0800F7CC @ =gMultiBootParam - mov r8, r2 -_0800F6F0: - mov r4, r8 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0800F796 - ldrb r0, [r4, #0x1e] - cmp r0, #0 - beq _0800F796 - ldr r0, _0800F7D0 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0800F796 - ldr r1, _0800F7BC @ =0x00000207 - adds r0, r7, r1 - movs r5, #1 - strb r5, [r0] - ldr r4, _0800F7C0 @ =gFlags - ldr r0, [r4] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - movs r1, #0x80 - lsls r1, r1, #7 - orrs r0, r1 - str r0, [r4] - bl m4aMPlayAllStop - ldr r0, [r4] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4] - bl m4aSoundVSyncOff - ldr r1, _0800F7D4 @ =0x040000B0 - ldrh r2, [r1, #0xa] - ldr r4, _0800F7D8 @ =0x0000C5FF - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r3, _0800F7DC @ =0x00007FFF - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - adds r1, #0xc - ldrh r2, [r1, #0xa] - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - adds r1, #0xc - ldrh r2, [r1, #0xa] - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldr r0, _0800F7E0 @ =0x040000D4 - ldrh r1, [r0, #0xa] - ands r4, r1 - strh r4, [r0, #0xa] - ldrh r1, [r0, #0xa] - ands r3, r1 - strh r3, [r0, #0xa] - ldrh r0, [r0, #0xa] - ldr r1, _0800F7E4 @ =gMultiboot_087C0258 + 0xC0 - ldr r2, _0800F7E8 @ =gMultiboot_087C22F8 - subs r2, r2, r1 - str r5, [sp] - mov r0, r8 - movs r3, #4 - bl MultiBootStartMaster -_0800F796: - ldr r2, _0800F7BC @ =0x00000207 - adds r0, r7, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0800F7F0 - ldr r0, _0800F7D0 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0800F7F0 - ldr r0, _0800F7EC @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - bl CreateMultiplayerModeSelectScreen - b _0800F986 - .align 2, 0 -_0800F7BC: .4byte 0x00000207 -_0800F7C0: .4byte gFlags -_0800F7C4: .4byte 0xFFFFBFFF -_0800F7C8: .4byte 0xFFFF7FFF -_0800F7CC: .4byte gMultiBootParam -_0800F7D0: .4byte gPressedKeys -_0800F7D4: .4byte 0x040000B0 -_0800F7D8: .4byte 0x0000C5FF -_0800F7DC: .4byte 0x00007FFF -_0800F7E0: .4byte 0x040000D4 -_0800F7E4: .4byte gMultiboot_087C0258 + 0xC0 -_0800F7E8: .4byte gMultiboot_087C22F8 -_0800F7EC: .4byte gCurTask -_0800F7F0: - ldr r4, _0800F840 @ =gMultiBootParam - adds r0, r4, #0 - bl MultiBootMain - cmp r0, #0x50 - beq _0800F808 - cmp r0, #0x60 - beq _0800F808 - cmp r0, #0x70 - beq _0800F808 - cmp r0, #0x71 - bne _0800F868 -_0800F808: - ldr r1, _0800F844 @ =0x0000FFFF - movs r0, #0 - bl TasksDestroyInPriorityRange - ldr r1, _0800F848 @ =gBackgroundsCopyQueueCursor - ldr r0, _0800F84C @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0800F850 @ =gBgSpritesCount - movs r0, #0 - strb r0, [r1] - ldr r1, _0800F854 @ =gVramGraphicsCopyCursor - ldr r0, _0800F858 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r2, _0800F85C @ =gFlags - ldr r0, [r2] - ldr r1, _0800F860 @ =0xFFFFBFFF - ands r0, r1 - ldr r1, _0800F864 @ =0xFFFF7FFF - ands r0, r1 - str r0, [r2] - bl m4aSoundVSyncOn - bl LinkCommunicationError - b _0800F986 - .align 2, 0 -_0800F840: .4byte gMultiBootParam -_0800F844: .4byte 0x0000FFFF -_0800F848: .4byte gBackgroundsCopyQueueCursor -_0800F84C: .4byte gBackgroundsCopyQueueIndex -_0800F850: .4byte gBgSpritesCount -_0800F854: .4byte gVramGraphicsCopyCursor -_0800F858: .4byte gVramGraphicsCopyQueueIndex -_0800F85C: .4byte gFlags -_0800F860: .4byte 0xFFFFBFFF -_0800F864: .4byte 0xFFFF7FFF -_0800F868: - adds r0, r4, #0 - bl MultiBootCheckComplete - cmp r0, #0 - bne _0800F874 - b _0800F986 -_0800F874: - ldr r4, _0800F8FC @ =gDispCnt - ldr r1, _0800F900 @ =0x00001341 - adds r0, r1, #0 - strh r0, [r4] - ldr r1, _0800F904 @ =gBgCntRegs - movs r5, #0 - movs r2, #0 - ldr r0, _0800F908 @ =0x00001E02 - strh r0, [r1] - adds r0, #1 - strh r0, [r1, #2] - ldr r0, _0800F90C @ =gBgScrollRegs - strh r2, [r0] - strh r2, [r0, #2] - strh r2, [r0, #4] - movs r1, #0x80 - strh r1, [r0, #6] - ldr r0, _0800F910 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r6, #4] - strh r2, [r6, #0xa] - ldr r0, _0800F914 @ =0x0600F000 - str r0, [r6, #0xc] - strh r2, [r6, #0x18] - strh r2, [r6, #0x1a] - movs r0, #0x53 - strh r0, [r6, #0x1c] - strh r2, [r6, #0x1e] - strh r2, [r6, #0x20] - strh r2, [r6, #0x22] - strh r2, [r6, #0x24] - movs r0, #0x1e - strh r0, [r6, #0x26] - movs r0, #0x1b - strh r0, [r6, #0x28] - ldr r0, _0800F918 @ =0x0300002A - adds r1, r1, r0 - strb r5, [r1] - strh r2, [r6, #0x2e] - adds r0, r6, #0 - bl DrawBackground - ldr r0, _0800F91C @ =gLoadedSaveGame - ldrb r2, [r0, #0x19] - cmp r2, #0 - beq _0800F928 - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r4] - ldr r1, _0800F920 @ =gWinRegs - movs r0, #2 - strh r0, [r1, #8] - movs r0, #1 - strh r0, [r1, #0xa] - movs r0, #0xf0 - strh r0, [r1] - ldr r0, _0800F924 @ =0x00002058 - strh r0, [r1, #4] - b _0800F936 - .align 2, 0 -_0800F8FC: .4byte gDispCnt -_0800F900: .4byte 0x00001341 -_0800F904: .4byte gBgCntRegs -_0800F908: .4byte 0x00001E02 -_0800F90C: .4byte gBgScrollRegs -_0800F910: .4byte gCurTask -_0800F914: .4byte 0x0600F000 -_0800F918: .4byte 0x0300002A -_0800F91C: .4byte gLoadedSaveGame -_0800F920: .4byte gWinRegs -_0800F924: .4byte 0x00002058 -_0800F928: - ldrh r0, [r4] - ldr r1, _0800F994 @ =0x0000DFFF - ands r1, r0 - strh r1, [r4] - ldr r0, _0800F998 @ =gWinRegs - strh r2, [r0, #8] - strh r2, [r0, #0xa] -_0800F936: - ldr r2, _0800F99C @ =gFlags - ldr r0, [r2] - movs r1, #1 - orrs r0, r1 - str r0, [r2] - add r0, sp, #4 - movs r4, #0 - strh r4, [r0] - ldr r1, _0800F9A0 @ =gBgPalette+0x40 - ldr r2, _0800F9A4 @ =0x01000010 - bl CpuSet - ldr r0, _0800F9A8 @ =gCurTask - ldr r1, [r0] - ldr r0, _0800F9AC @ =sa2__sub_8081C50 - str r0, [r1, #8] - ldr r1, _0800F9B0 @ =gMultiSioSend - strb r4, [r1] - ldr r5, _0800F9B4 @ =gMultiSioRecv - strb r4, [r5] - strb r4, [r5, #0x14] - adds r3, r5, #0 - adds r3, #0x28 - strb r4, [r3] - adds r2, r5, #0 - adds r2, #0x3c - strb r4, [r2] - strb r4, [r1, #2] - ldr r0, _0800F9B8 @ =0x0000F001 - strh r0, [r1] - strb r4, [r5, #2] - adds r0, r5, #0 - adds r0, #0x14 - strb r4, [r0, #2] - strb r4, [r3, #2] - strb r4, [r2, #2] - movs r1, #0x81 - lsls r1, r1, #2 - adds r0, r6, r1 - strb r4, [r0] -_0800F986: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F994: .4byte 0x0000DFFF -_0800F998: .4byte gWinRegs -_0800F99C: .4byte gFlags -_0800F9A0: .4byte gBgPalette+0x40 -_0800F9A4: .4byte 0x01000010 -_0800F9A8: .4byte gCurTask -_0800F9AC: .4byte sa2__sub_8081C50 -_0800F9B0: .4byte gMultiSioSend -_0800F9B4: .4byte gMultiSioRecv -_0800F9B8: .4byte 0x0000F001 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc b/sa1/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc deleted file mode 100644 index 00411fcd5d..0000000000 --- a/sa1/asm/non_matching/game/sa1/multiplayer/chao_message__sub_803AB60.inc +++ /dev/null @@ -1,1303 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified - -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov ip, r0 - adds r0, #0x54 - ldrb r0, [r0] - cmp r0, #4 - bhi _0803ABA8 - lsls r0, r0, #2 - ldr r1, _0803AB80 @ =_0803AB84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803AB80: .4byte _0803AB84 -_0803AB84: @ jump table - .4byte _0803ABA8 @ case 0 - .4byte _0803ABA8 @ case 1 - .4byte _0803AB98 @ case 2 - .4byte _0803ABA0 @ case 3 - .4byte _0803ABA8 @ case 4 -_0803AB98: - mov r1, ip - adds r1, #0x50 - movs r0, #0x28 - b _0803ABAE -_0803ABA0: - mov r1, ip - adds r1, #0x50 - movs r0, #0x14 - b _0803ABAE -_0803ABA8: - mov r1, ip - adds r1, #0x50 - movs r0, #0 -_0803ABAE: - strh r0, [r1] - mov r0, ip - adds r0, #0x55 - ldrb r0, [r0] - cmp r0, #1 - bne _0803ABBC - b _0803AD28 -_0803ABBC: - cmp r0, #1 - bgt _0803ABC8 - cmp r0, #0 - beq _0803ABD4 - bl _0803B55E -_0803ABC8: - cmp r0, #2 - bne _0803ABD0 - bl _803B534 -_0803ABD0: - bl _0803B55E -_0803ABD4: - movs r0, #0 - str r0, [sp] - movs r1, #0 - str r1, [sp, #4] - movs r4, #0 - mov r0, ip - adds r0, #0x54 - mov r8, r0 - movs r2, #0x44 - add r2, ip - mov sb, r2 - mov r3, ip - adds r3, #0x40 - str r3, [sp, #8] - ldrb r0, [r0] - cmp r4, r0 - bhs _0803ACBE - ldr r1, _0803AC44 @ =gUnknown_030058A8 - mov ip, r1 - movs r2, #1 - add r2, ip - mov sl, r2 - movs r7, #0 - mov r6, sb - adds r5, r3, #0 -_0803AC06: - ldr r3, _0803AC48 @ =gUnknown_03005008 - adds r0, r4, r3 - ldrb r1, [r0] - ldr r0, _0803AC4C @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803ACB0 - cmp r1, #9 - bhi _0803AC58 - lsls r3, r4, #1 - mov r0, ip - adds r0, r3, r0 - str r0, [sp, #0x10] - lsls r1, r1, #4 - ldr r2, _0803AC50 @ =gLoadedSaveGame - adds r1, r1, r2 - movs r2, #0xe3 - lsls r2, r2, #2 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r2, [sp, #0x10] - strb r0, [r2] - mov r0, sl - adds r2, r3, r0 - ldr r0, _0803AC54 @ =0x0000038D - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - b _0803AC68 - .align 2, 0 -_0803AC44: .4byte gUnknown_030058A8 -_0803AC48: .4byte gUnknown_03005008 -_0803AC4C: .4byte 0x04000128 -_0803AC50: .4byte gLoadedSaveGame -_0803AC54: .4byte 0x0000038D -_0803AC58: - lsls r0, r4, #1 - mov r2, ip - adds r1, r0, r2 - strb r7, [r1] - mov r3, sl - adds r1, r0, r3 - strb r7, [r1] - adds r3, r0, #0 -_0803AC68: - mov r1, ip - adds r0, r3, r1 - mov r2, sl - adds r1, r3, r2 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - bls _0803AC8E - adds r0, r6, r4 - movs r1, #6 - strb r1, [r0] - adds r0, r5, r4 - strb r1, [r0] - ldr r0, [sp] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - b _0803ACB0 -_0803AC8E: - cmp r2, r0 - bhs _0803ACA8 - adds r0, r6, r4 - movs r1, #1 - strb r1, [r0] - adds r0, r5, r4 - strb r1, [r0] - ldr r0, [sp, #4] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - b _0803ACB0 -_0803ACA8: - adds r0, r6, r4 - strb r7, [r0] - adds r0, r5, r4 - strb r7, [r0] -_0803ACB0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r3, r8 - ldrb r3, [r3] - cmp r4, r3 - blo _0803AC06 -_0803ACBE: - ldr r0, [sp] - ldr r1, [sp, #4] - cmp r0, r1 - bls _0803ACD8 - ldr r2, _0803ACD4 @ =0x04000128 - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - add r0, sb - movs r1, #1 - b _0803ACEC - .align 2, 0 -_0803ACD4: .4byte 0x04000128 -_0803ACD8: - ldr r3, [sp] - ldr r0, [sp, #4] - cmp r3, r0 - bhs _0803AD04 - ldr r2, _0803AD00 @ =0x04000128 - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - add r0, sb - movs r1, #6 -_0803ACEC: - strb r1, [r0] - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r2, [sp, #8] - adds r0, r2, r0 - strb r1, [r0] - bl _0803B55E - .align 2, 0 -_0803AD00: .4byte 0x04000128 -_0803AD04: - ldr r2, _0803AD24 @ =0x04000128 - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - add r0, sb - movs r1, #0 - strb r1, [r0] - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r3, [sp, #8] - adds r0, r3, r0 - strb r1, [r0] - bl _0803B55E - .align 2, 0 -_0803AD24: .4byte 0x04000128 -_0803AD28: - ldr r0, _0803AD78 @ =gUnknown_030058B4 - ldrb r0, [r0] - cmp r0, #2 - beq _0803AD3E - ldr r0, _0803AD7C @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _0803AD3E - cmp r0, #5 - beq _0803AD3E - b _0803AF88 -_0803AD3E: - movs r4, #0 - mov r0, ip - adds r0, #0x54 - mov r8, r0 - adds r0, #2 - str r0, [sp, #0xc] - mov r1, r8 - ldrb r1, [r1] - cmp r4, r1 - blo _0803AD54 - b _0803AF08 -_0803AD54: - ldr r6, _0803AD80 @ =gLoadedSaveGame - ldr r2, _0803AD84 @ =gUnknown_03005008 - mov sl, r2 - ldr r7, _0803AD88 @ =0x0000038E - movs r3, #0x63 - mov sb, r3 -_0803AD60: - ldr r1, _0803AD8C @ =gMultiplayerRanks - adds r0, r4, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #1 - beq _0803AE10 - cmp r1, #1 - bgt _0803AD90 - cmp r1, #0 - beq _0803AD96 - b _0803AE10 - .align 2, 0 -_0803AD78: .4byte gUnknown_030058B4 -_0803AD7C: .4byte gGameMode -_0803AD80: .4byte gLoadedSaveGame -_0803AD84: .4byte gUnknown_03005008 -_0803AD88: .4byte 0x0000038E -_0803AD8C: .4byte gMultiplayerRanks -_0803AD90: - cmp r1, #4 - beq _0803AE84 - b _0803AE10 -_0803AD96: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #2 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r1, _0803ADE0 @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - bne _0803ADB6 - b _0803AEF8 -_0803ADB6: - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r2, _0803ADE4 @ =gMultiplayerRanks - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803ADEC - ldr r3, _0803ADE8 @ =gGameMode - ldrb r0, [r3] - cmp r0, #3 - bne _0803ADD4 - b _0803AEF8 -_0803ADD4: - cmp r0, #5 - bne _0803ADDA - b _0803AEF8 -_0803ADDA: - mov r0, sl - adds r2, r4, r0 - b _0803AED8 - .align 2, 0 -_0803ADE0: .4byte 0x04000128 -_0803ADE4: .4byte gMultiplayerRanks -_0803ADE8: .4byte gGameMode -_0803ADEC: - mov r0, sl - adds r3, r4, r0 - ldrb r1, [r3] - lsls r1, r1, #4 - adds r1, r1, r6 - ldr r2, _0803AE0C @ =0x0000038D - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r6 - adds r1, r0, r2 - b _0803AEEE - .align 2, 0 -_0803AE0C: .4byte 0x0000038D -_0803AE10: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #3 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r1, _0803AE64 @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803AEF8 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r3, _0803AE68 @ =gMultiplayerRanks - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803AE6C - mov r0, sl - adds r3, r4, r0 - ldrb r1, [r3] - lsls r1, r1, #4 - adds r1, r1, r6 - movs r2, #0xe3 - lsls r2, r2, #2 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r6 - adds r1, r0, r2 - b _0803AEEE - .align 2, 0 -_0803AE64: .4byte 0x04000128 -_0803AE68: .4byte gMultiplayerRanks -_0803AE6C: - ldr r3, _0803AE80 @ =gGameMode - ldrb r0, [r3] - cmp r0, #3 - beq _0803AEF8 - cmp r0, #5 - beq _0803AEF8 - mov r0, sl - adds r2, r4, r0 - b _0803AED8 - .align 2, 0 -_0803AE80: .4byte gGameMode -_0803AE84: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r5, _0803AF28 @ =0x04000128 - ldr r0, [r5] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803AEF8 - ldr r3, _0803AF2C @ =gGameMode - ldrb r0, [r3] - cmp r0, #3 - beq _0803AEAC - cmp r0, #5 - bne _0803AED4 -_0803AEAC: - ldr r0, _0803AF30 @ =gMultiplayerConnections - ldrb r3, [r0] - movs r2, #0x10 - lsls r2, r4 - ands r2, r3 - adds r0, r4, #4 - asrs r2, r0 - ldr r1, [r5] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - movs r0, #0x10 - lsls r0, r1 - ands r3, r0 - ldr r0, [r5] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, #4 - asrs r3, r0 - cmp r2, r3 - beq _0803AEF8 -_0803AED4: - mov r1, sl - adds r2, r4, r1 -_0803AED8: - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r6 - adds r0, r0, r7 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r6 - adds r1, r0, r7 -_0803AEEE: - ldrb r0, [r1] - cmp r0, #0x63 - bls _0803AEF8 - mov r2, sb - strb r2, [r1] -_0803AEF8: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r3, r8 - ldrb r3, [r3] - cmp r4, r3 - bhs _0803AF08 - b _0803AD60 -_0803AF08: - ldr r1, _0803AF28 @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r2, _0803AF34 @ =gMultiplayerRanks - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803AF40 - ldr r3, [sp, #0xc] - strb r0, [r3] - ldr r0, _0803AF38 @ =gLoadedSaveGame - ldr r2, _0803AF3C @ =0x00000425 - b _0803B516 - .align 2, 0 -_0803AF28: .4byte 0x04000128 -_0803AF2C: .4byte gGameMode -_0803AF30: .4byte gMultiplayerConnections -_0803AF34: .4byte gMultiplayerRanks -_0803AF38: .4byte gLoadedSaveGame -_0803AF3C: .4byte 0x00000425 -_0803AF40: - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r3, _0803AF64 @ =gMultiplayerRanks - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _0803AF70 - movs r0, #2 - ldr r1, [sp, #0xc] - strb r0, [r1] - ldr r2, _0803AF68 @ =gLoadedSaveGame - ldr r3, _0803AF6C @ =0x00000427 - adds r1, r2, r3 - b _0803B518 - .align 2, 0 -_0803AF64: .4byte gMultiplayerRanks -_0803AF68: .4byte gLoadedSaveGame -_0803AF6C: .4byte 0x00000427 -_0803AF70: - movs r0, #1 - ldr r1, [sp, #0xc] - strb r0, [r1] - ldr r2, _0803AF80 @ =gLoadedSaveGame - ldr r3, _0803AF84 @ =0x00000426 - adds r1, r2, r3 - b _0803B518 - .align 2, 0 -_0803AF80: .4byte gLoadedSaveGame -_0803AF84: .4byte 0x00000426 -_0803AF88: - cmp r0, #4 - beq _0803AF8E - b _0803B2C8 -_0803AF8E: - movs r4, #0 - movs r2, #0 - mov r0, ip - adds r0, #0x54 - ldrb r1, [r0] - mov r8, r0 - adds r0, #2 - str r0, [sp, #0xc] - cmp r4, r1 - bhs _0803AFC0 - ldr r3, _0803B028 @ =gMultiplayerRanks -_0803AFA4: - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803AFB6 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0803AFB6: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r1 - blo _0803AFA4 -_0803AFC0: - cmp r2, #1 - beq _0803AFC6 - b _0803B0E4 -_0803AFC6: - movs r4, #0 - mov r1, r8 - ldrb r1, [r1] - cmp r4, r1 - bhs _0803B098 - ldr r2, _0803B028 @ =gMultiplayerRanks - mov sl, r2 - ldr r3, _0803B02C @ =gLoadedSaveGame - ldr r0, _0803B030 @ =0x0000038D - mov sb, r0 - movs r7, #0xe3 - lsls r7, r7, #2 - ldr r6, _0803B034 @ =gUnknown_03005008 - mov r5, ip - adds r5, #0x44 -_0803AFE4: - mov r1, sl - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B03C - adds r0, r5, r4 - movs r1, #2 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r0, _0803B038 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803B08A - adds r2, r4, r6 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - add r0, sb - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - mov r2, sb - adds r1, r0, r2 - b _0803B080 - .align 2, 0 -_0803B028: .4byte gMultiplayerRanks -_0803B02C: .4byte gLoadedSaveGame -_0803B030: .4byte 0x0000038D -_0803B034: .4byte gUnknown_03005008 -_0803B038: .4byte 0x04000128 -_0803B03C: - adds r0, r5, r4 - movs r1, #3 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r1, _0803B0BC @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803B08A - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - add r0, sl - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B08A - adds r2, r4, r6 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - adds r0, r0, r7 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - adds r1, r0, r7 -_0803B080: - ldrb r0, [r1] - cmp r0, #0x63 - bls _0803B08A - movs r0, #0x63 - strb r0, [r1] -_0803B08A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r0, r8 - ldrb r0, [r0] - cmp r4, r0 - blo _0803AFE4 -_0803B098: - ldr r0, _0803B0BC @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r1, _0803B0C0 @ =gMultiplayerRanks - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B0CC - ldr r2, [sp, #0xc] - strb r0, [r2] - ldr r3, _0803B0C4 @ =gLoadedSaveGame - ldr r0, _0803B0C8 @ =0x00000425 - adds r1, r3, r0 - b _0803B518 - .align 2, 0 -_0803B0BC: .4byte 0x04000128 -_0803B0C0: .4byte gMultiplayerRanks -_0803B0C4: .4byte gLoadedSaveGame -_0803B0C8: .4byte 0x00000425 -_0803B0CC: - movs r0, #1 - ldr r1, [sp, #0xc] - strb r0, [r1] - ldr r2, _0803B0DC @ =gLoadedSaveGame - ldr r3, _0803B0E0 @ =0x00000426 - adds r1, r2, r3 - b _0803B518 - .align 2, 0 -_0803B0DC: .4byte gLoadedSaveGame -_0803B0E0: .4byte 0x00000426 -_0803B0E4: - cmp r2, #0 - bne _0803B168 - movs r4, #0 - mov r0, r8 - ldrb r0, [r0] - cmp r4, r0 - bhs _0803B146 - movs r6, #4 - ldr r5, _0803B154 @ =gLoadedSaveGame - ldr r3, _0803B158 @ =0x0000038E - ldr r7, _0803B15C @ =gUnknown_03005008 -_0803B0FA: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - strb r6, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r6, [r0] - ldr r0, _0803B160 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803B138 - adds r2, r4, r7 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r5 - adds r0, r0, r3 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r5 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #0x63 - bls _0803B138 - movs r0, #0x63 - strb r0, [r1] -_0803B138: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r1, r8 - ldrb r1, [r1] - cmp r4, r1 - blo _0803B0FA -_0803B146: - movs r0, #2 - ldr r2, [sp, #0xc] - strb r0, [r2] - ldr r3, _0803B154 @ =gLoadedSaveGame - ldr r0, _0803B164 @ =0x00000427 - adds r1, r3, r0 - b _0803B518 - .align 2, 0 -_0803B154: .4byte gLoadedSaveGame -_0803B158: .4byte 0x0000038E -_0803B15C: .4byte gUnknown_03005008 -_0803B160: .4byte 0x04000128 -_0803B164: .4byte 0x00000427 -_0803B168: - movs r4, #0 - mov r1, r8 - ldrb r1, [r1] - cmp r4, r1 - blo _0803B174 - b _0803B27A -_0803B174: - ldr r2, _0803B1E4 @ =gMultiplayerRanks - mov sb, r2 - ldr r3, _0803B1E8 @ =gLoadedSaveGame - ldr r7, _0803B1EC @ =gUnknown_03005008 - ldr r6, _0803B1F0 @ =0x0000038E - movs r5, #0x63 - movs r0, #0xe3 - lsls r0, r0, #2 - mov sl, r0 -_0803B186: - mov r1, sb - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B1FC - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #4 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r1, _0803B1F4 @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803B26C - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0803B24C - adds r2, r4, r7 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r1, _0803B1F8 @ =0x0000038D - adds r0, r0, r1 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - ldr r2, _0803B1F8 @ =0x0000038D - adds r1, r0, r2 - b _0803B264 - .align 2, 0 -_0803B1E4: .4byte gMultiplayerRanks -_0803B1E8: .4byte gLoadedSaveGame -_0803B1EC: .4byte gUnknown_03005008 -_0803B1F0: .4byte 0x0000038E -_0803B1F4: .4byte 0x04000128 -_0803B1F8: .4byte 0x0000038D -_0803B1FC: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #3 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - strb r1, [r0] - ldr r1, _0803B248 @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803B26C - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B24C - adds r2, r4, r7 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - add r0, sl - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - mov r2, sl - adds r1, r0, r2 - b _0803B264 - .align 2, 0 -_0803B248: .4byte 0x04000128 -_0803B24C: - adds r2, r4, r7 - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - adds r0, r0, r6 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #4 - adds r0, r0, r3 - adds r1, r0, r6 -_0803B264: - ldrb r0, [r1] - cmp r0, #0x63 - bls _0803B26C - strb r5, [r1] -_0803B26C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r0, r8 - ldrb r0, [r0] - cmp r4, r0 - blo _0803B186 -_0803B27A: - ldr r0, _0803B2A0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r1, _0803B2A4 @ =gMultiplayerRanks - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B2B0 - movs r0, #2 - ldr r2, [sp, #0xc] - strb r0, [r2] - ldr r3, _0803B2A8 @ =gLoadedSaveGame - ldr r0, _0803B2AC @ =0x00000427 - adds r1, r3, r0 - b _0803B518 - .align 2, 0 -_0803B2A0: .4byte 0x04000128 -_0803B2A4: .4byte gMultiplayerRanks -_0803B2A8: .4byte gLoadedSaveGame -_0803B2AC: .4byte 0x00000427 -_0803B2B0: - movs r0, #1 - ldr r1, [sp, #0xc] - strb r0, [r1] - ldr r2, _0803B2C0 @ =gLoadedSaveGame - ldr r3, _0803B2C4 @ =0x00000426 - adds r1, r2, r3 - b _0803B518 - .align 2, 0 -_0803B2C0: .4byte gLoadedSaveGame -_0803B2C4: .4byte 0x00000426 -_0803B2C8: - movs r6, #0 - movs r4, #0 - mov r0, ip - adds r0, #0x54 - ldrb r1, [r0] - mov r8, r0 - adds r0, #2 - str r0, [sp, #0xc] - cmp r4, r1 - bhs _0803B2FA - ldr r2, _0803B32C @ =gMultiplayerRanks -_0803B2DE: - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _0803B2F0 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_0803B2F0: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r1 - blo _0803B2DE -_0803B2FA: - mov r5, r8 - ldrb r0, [r5] - cmp r6, r0 - bne _0803B330 - movs r4, #0 - cmp r4, r6 - blo _0803B30A - b _0803B49E -_0803B30A: - mov r3, ip - adds r3, #0x44 - movs r2, #4 - mov r1, ip - adds r1, #0x40 -_0803B314: - adds r0, r3, r4 - strb r2, [r0] - adds r0, r1, r4 - strb r2, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r5] - cmp r4, r0 - blo _0803B314 - b _0803B49E - .align 2, 0 -_0803B32C: .4byte gMultiplayerRanks -_0803B330: - movs r4, #0 - cmp r4, r0 - blo _0803B338 - b _0803B49E -_0803B338: - ldr r1, _0803B350 @ =gMultiplayerRanks - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #5 - bhi _0803B3E4 - lsls r0, r0, #2 - ldr r1, _0803B354 @ =_0803B358 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803B350: .4byte gMultiplayerRanks -_0803B354: .4byte _0803B358 -_0803B358: @ jump table - .4byte _0803B370 @ case 0 - .4byte _0803B384 @ case 1 - .4byte _0803B398 @ case 2 - .4byte _0803B3BE @ case 3 - .4byte _0803B3D2 @ case 4 - .4byte _0803B3D2 @ case 5 -_0803B370: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #7 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - movs r1, #2 - b _0803B3E2 -_0803B384: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #8 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - movs r1, #4 - b _0803B3E2 -_0803B398: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #9 - strb r1, [r0] - mov r2, r8 - ldrb r0, [r2] - cmp r0, #3 - bne _0803B3B4 - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - movs r1, #3 - b _0803B3E2 -_0803B3B4: - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - movs r1, #4 - b _0803B3E2 -_0803B3BE: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #0xa - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 - movs r1, #3 - b _0803B3E2 -_0803B3D2: - mov r0, ip - adds r0, #0x44 - adds r0, r0, r4 - movs r1, #3 - strb r1, [r0] - mov r0, ip - adds r0, #0x40 - adds r0, r0, r4 -_0803B3E2: - strb r1, [r0] -_0803B3E4: - ldr r2, _0803B420 @ =0x04000128 - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0803B48E - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r3, _0803B424 @ =gMultiplayerRanks - adds r0, r0, r3 - adds r1, r4, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - bge _0803B430 - ldr r2, _0803B428 @ =gUnknown_03005008 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r1, r1, #4 - ldr r0, _0803B42C @ =gLoadedSaveGame - adds r1, r1, r0 - movs r3, #0xe3 - lsls r3, r3, #2 - b _0803B472 - .align 2, 0 -_0803B420: .4byte 0x04000128 -_0803B424: .4byte gMultiplayerRanks -_0803B428: .4byte gUnknown_03005008 -_0803B42C: .4byte gLoadedSaveGame -_0803B430: - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r2, _0803B454 @ =gMultiplayerRanks - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r1 - bne _0803B464 - ldr r2, _0803B458 @ =gUnknown_03005008 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r1, r1, #4 - ldr r3, _0803B45C @ =gLoadedSaveGame - adds r1, r1, r3 - ldr r3, _0803B460 @ =0x0000038E - b _0803B472 - .align 2, 0 -_0803B454: .4byte gMultiplayerRanks -_0803B458: .4byte gUnknown_03005008 -_0803B45C: .4byte gLoadedSaveGame -_0803B460: .4byte 0x0000038E -_0803B464: - ldr r2, _0803B4C0 @ =gUnknown_03005008 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r1, r1, #4 - ldr r3, _0803B4C4 @ =gLoadedSaveGame - adds r1, r1, r3 - ldr r3, _0803B4C8 @ =0x0000038D -_0803B472: - adds r1, r1, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r0, [r2] - lsls r0, r0, #4 - ldr r1, _0803B4C4 @ =gLoadedSaveGame - adds r0, r0, r1 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #0x63 - bls _0803B48E - movs r0, #0x63 - strb r0, [r1] -_0803B48E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r2, r8 - ldrb r2, [r2] - cmp r4, r2 - bhs _0803B49E - b _0803B338 -_0803B49E: - ldr r1, _0803B4CC @ =0x04000128 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r3, _0803B4D0 @ =gMultiplayerRanks - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0803B4D8 - ldr r1, [sp, #0xc] - strb r0, [r1] - ldr r2, _0803B4C4 @ =gLoadedSaveGame - ldr r3, _0803B4D4 @ =0x00000425 - adds r1, r2, r3 - b _0803B518 - .align 2, 0 -_0803B4C0: .4byte gUnknown_03005008 -_0803B4C4: .4byte gLoadedSaveGame -_0803B4C8: .4byte 0x0000038D -_0803B4CC: .4byte 0x04000128 -_0803B4D0: .4byte gMultiplayerRanks -_0803B4D4: .4byte 0x00000425 -_0803B4D8: - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - ldr r1, _0803B500 @ =gMultiplayerRanks - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _0803B4F4 - mov r2, r8 - ldrb r2, [r2] - cmp r6, r2 - beq _0803B50C -_0803B4F4: - movs r0, #1 - ldr r3, [sp, #0xc] - strb r0, [r3] - ldr r0, _0803B504 @ =gLoadedSaveGame - ldr r2, _0803B508 @ =0x00000426 - b _0803B516 - .align 2, 0 -_0803B500: .4byte gMultiplayerRanks -_0803B504: .4byte gLoadedSaveGame -_0803B508: .4byte 0x00000426 -_0803B50C: - movs r0, #2 - ldr r3, [sp, #0xc] - strb r0, [r3] - ldr r0, _0803B52C @ =gLoadedSaveGame - ldr r2, _0803B530 @ =0x00000427 -_0803B516: - adds r1, r0, r2 -_0803B518: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bls _0803B55E - movs r0, #0x63 - strb r0, [r1] - b _0803B55E - .align 2, 0 -_0803B52C: .4byte gLoadedSaveGame -_0803B530: .4byte 0x00000427 -_803B534: @ 0x0803B534 - movs r4, #0 - mov r2, ip - adds r2, #0x54 - ldrb r3, [r2] - cmp r4, r3 - bhs _0803B55E - mov r5, ip - adds r5, #0x44 - movs r3, #5 - mov r1, ip - adds r1, #0x40 -_0803B54A: - adds r0, r5, r4 - strb r3, [r0] - adds r0, r1, r4 - strb r3, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldrb r0, [r2] - cmp r4, r0 - blo _0803B54A -_0803B55E: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc b/sa1/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc deleted file mode 100644 index 2058d2ee60..0000000000 --- a/sa1/asm/non_matching/game/sa1/special_stage/UpdateObjectsAndRender.inc +++ /dev/null @@ -1,851 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - ldr r0, _0802CB88 @ =gCurTask - ldr r0, [r0] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - str r0, [sp, #0x14] - ldr r2, _0802CB8C @ =gUnknown_087BF8DC - ldr r1, _0802CB90 @ =gUnknown_08487134 - ldr r0, _0802CB94 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp, #8] - ldr r1, _0802CB98 @ =gUnknown_03005690 - str r1, [sp, #0xc] - ldr r2, _0802CB9C @ =gUnknown_030055F0+0xC - str r2, [sp, #0x10] - ldr r4, _0802CBA0 @ =0x0300000C - adds r4, r4, r3 - mov r8, r4 - ldr r5, [sp, #0x14] - orrs r5, r3 - str r5, [sp, #0x14] - movs r6, #0 - str r6, [sp, #0x20] - mov r2, sp - adds r2, #6 - ldr r7, _0802CBA4 @ =0x00007FFF - adds r0, r7, #0 - strh r0, [r2] - ldr r0, _0802CBA8 @ =0x040000D4 - str r2, [r0] - ldr r1, _0802CBAC @ =gUnknown_03005670 - str r1, [r0, #4] - ldr r1, _0802CBB0 @ =0x81000010 - str r1, [r0, #8] - ldr r1, [r0, #8] - strh r6, [r2] - str r2, [r0] - ldr r1, _0802CBB4 @ =gUnknown_030057E0 - str r1, [r0, #4] - ldr r1, _0802CBB8 @ =0x81000008 - str r1, [r0, #8] - ldr r0, [r0, #8] - ldr r2, [r5, #0x3c] - str r2, [sp, #0x1c] - mov r0, r8 - bl UpdateSpriteAnimation - ldr r3, [r4, #0xc] - str r3, [sp, #0x18] - ldr r4, [sp, #0xc] - ldr r1, [r4, #8] - asrs r1, r1, #8 - movs r5, #0xc0 - lsls r5, r5, #2 - adds r3, r1, r5 - asrs r0, r3, #0xc - lsls r0, r0, #0x18 - ldr r2, _0802CBBC @ =gUnknown_03005840 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r0, [r0] - mov sb, r0 - subs r1, #0xc0 - str r1, [sp, #0x34] - str r3, [sp, #0x38] - lsls r0, r0, #1 - add r0, sb - lsls r0, r0, #2 - ldr r6, [sp, #8] - adds r0, r0, r6 - ldr r0, [r0, #4] - cmp r0, r3 - blt _0802CB3E - b _0802D12A -_0802CB3E: - mov r7, sp - adds r7, #4 - str r7, [sp, #0x3c] -_0802CB44: - mov r1, sb - lsls r0, r1, #1 - add r0, sb - lsls r0, r0, #2 - ldr r2, [sp, #8] - adds r3, r0, r2 - ldrh r1, [r3, #8] - ldr r0, _0802CBC0 @ =0x0000FFFF - cmp r1, r0 - bne _0802CB5A - b _0802D12A -_0802CB5A: - cmp r1, #0 - bne _0802CB80 - ldr r4, [r3, #4] - ldr r5, [sp, #0x34] - cmp r4, r5 - blt _0802CB80 - mov r6, sb - lsrs r2, r6, #3 - ldr r7, [sp, #0x1c] - adds r0, r7, r2 - ldrb r1, [r0] - movs r0, #7 - ands r0, r6 - asrs r1, r0 - movs r0, #1 - ands r1, r0 - str r2, [sp, #0x40] - cmp r1, #0 - beq _0802CBC4 -_0802CB80: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - b _0802CE5C - .align 2, 0 -_0802CB88: .4byte gCurTask -_0802CB8C: .4byte gUnknown_087BF8DC -_0802CB90: .4byte gUnknown_08487134 -_0802CB94: .4byte gCurrentLevel -_0802CB98: .4byte gUnknown_03005690 -_0802CB9C: .4byte gUnknown_030055F0+0xC -_0802CBA0: .4byte 0x0300000C -_0802CBA4: .4byte 0x00007FFF -_0802CBA8: .4byte 0x040000D4 -_0802CBAC: .4byte gUnknown_03005670 -_0802CBB0: .4byte 0x81000010 -_0802CBB4: .4byte gUnknown_030057E0 -_0802CBB8: .4byte 0x81000008 -_0802CBBC: .4byte gUnknown_03005840 -_0802CBC0: .4byte 0x0000FFFF -_0802CBC4: - movs r1, #0 - ldrsh r0, [r3, r1] - lsls r0, r0, #8 - str r0, [sp, #0x24] - movs r2, #2 - ldrsh r0, [r3, r2] - lsls r0, r0, #8 - str r0, [sp, #0x28] - lsls r3, r4, #8 - str r3, [sp, #0x2c] - ldr r5, [sp, #0xc] - ldr r0, [r5, #8] - asrs r7, r0, #8 - subs r0, r7, r4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - str r6, [sp, #0x30] - asrs r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #2 - adds r6, r0, r1 - asrs r6, r6, #3 - cmp r6, #0 - bne _0802CBF6 - movs r6, #1 -_0802CBF6: - adds r0, r6, #0 - muls r0, r6, r0 - muls r0, r6, r0 - muls r6, r0, r6 - adds r0, r6, #0 - movs r1, #0xcc - lsls r1, r1, #1 - bl __divsi3 - adds r6, r0, #0 - adds r4, r6, #0 - cmp r6, #0 - bge _0802CC14 - ldr r2, _0802CE64 @ =0x000001FF - adds r4, r6, r2 -_0802CC14: - asrs r4, r4, #9 - adds r4, #0x38 - ldr r3, [sp, #0x24] - adds r0, r3, #0 - muls r0, r4, r0 - movs r5, #0xa0 - lsls r5, r5, #2 - adds r1, r5, #0 - bl __divsi3 - lsls r0, r0, #8 - lsrs r0, r0, #0x10 - mov sl, r0 - ldr r1, [sp, #0x28] - adds r0, r1, #0 - muls r0, r4, r0 - adds r1, r5, #0 - bl __divsi3 - lsls r0, r0, #8 - lsrs r0, r0, #0x10 - mov ip, r0 - ldr r0, [sp, #0xc] - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802CC50 - b _0802CEA0 -_0802CC50: - ldr r0, [sp, #0xc] - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #2 - bne _0802CC5C - b _0802CEA0 -_0802CC5C: - ldr r2, [sp, #0x2c] - asrs r1, r2, #8 - adds r0, r1, #0 - subs r0, #0x20 - cmp r7, r0 - bge _0802CC6A - b _0802CEA0 -_0802CC6A: - cmp r7, r1 - ble _0802CC70 - b _0802CEA0 -_0802CC70: - mov r3, sl - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - mov r0, r8 - adds r0, #0x2c - movs r3, #0 - ldrsb r3, [r0, r3] - adds r2, r1, r3 - ldr r4, [sp, #0xc] - ldr r1, [r4] - asrs r1, r1, #8 - ldr r0, [sp, #0x10] - adds r0, #0x2c - movs r4, #0 - ldrsb r4, [r0, r4] - adds r1, r1, r4 - cmp r2, r1 - bgt _0802CCAC - mov r0, r8 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0802CCC0 - cmp r2, r1 - bge _0802CCAC - b _0802CEA0 -_0802CCAC: - ldr r0, [sp, #0x10] - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r1, r0 - cmp r0, r2 - bge _0802CCC0 - b _0802CEA0 -_0802CCC0: - mov r5, ip - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - adds r1, #0x2d - movs r3, #0 - ldrsb r3, [r1, r3] - adds r2, r0, r3 - ldr r7, [sp, #0xc] - ldr r0, [r7, #4] - asrs r0, r0, #8 - ldr r1, [sp, #0x10] - adds r1, #0x2d - movs r4, #0 - ldrsb r4, [r1, r4] - adds r1, r0, r4 - cmp r2, r1 - bgt _0802CCFC - mov r0, r8 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0802CD10 - cmp r2, r1 - bge _0802CCFC - b _0802CEA0 -_0802CCFC: - ldr r0, [sp, #0x10] - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r1, r0 - cmp r0, r2 - bge _0802CD10 - b _0802CEA0 -_0802CD10: - movs r0, #0 - str r0, [sp] - ldr r0, _0802CE68 @ =sub_802D3E4 - movs r1, #0x74 - movs r2, #0xa8 - lsls r2, r2, #5 - movs r3, #0 - bl TaskCreate - ldrh r2, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r2, r1 - ldr r3, _0802CE6C @ =0x03000060 - adds r4, r2, r3 - movs r6, #1 - strh r6, [r4] - ldr r7, [sp, #0x24] - str r7, [r5, #0x3c] - ldr r0, [sp, #0x28] - str r0, [r5, #0x40] - ldr r1, [sp, #0x2c] - str r1, [r5, #0x44] - subs r3, #0x10 - adds r0, r2, r3 - movs r6, #0 - strh r6, [r0] - ldr r7, _0802CE70 @ =0x03000052 - adds r0, r2, r7 - strh r6, [r0] - ldr r1, _0802CE74 @ =0x03000054 - adds r0, r2, r1 - strh r6, [r0] - adds r3, #6 - adds r0, r2, r3 - strh r6, [r0] - ldr r6, _0802CE78 @ =0x03000058 - adds r0, r2, r6 - movs r7, #0 - strh r7, [r0] - adds r1, #6 - adds r0, r2, r1 - movs r3, #0 - strh r3, [r0] - adds r6, #4 - adds r0, r2, r6 - strh r3, [r0] - ldr r3, _0802CE7C @ =gUnknown_0848728C - ldrh r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r1, [r0] - ldr r7, _0802CE80 @ =0x03000062 - adds r0, r2, r7 - strh r1, [r0] - ldrh r0, [r4] - lsls r0, r0, #2 - adds r3, #2 - adds r0, r0, r3 - ldrh r0, [r0] - ldr r1, _0802CE84 @ =0x03000064 - adds r2, r2, r1 - strh r0, [r2] - ldr r2, [sp, #0x30] - lsls r0, r2, #0x10 - asrs r3, r0, #0x10 - movs r2, #0 - ldr r1, _0802CE88 @ =gUnknown_03005670 - movs r4, #0 - ldrsh r0, [r1, r4] - mov r4, sb - adds r4, #1 - ldr r6, _0802CE8C @ =0x00007FFF - cmp r0, r6 - beq _0802CDCC -_0802CDA6: - ldr r1, _0802CE88 @ =gUnknown_03005670 - lsls r0, r2, #1 - adds r0, r0, r1 - movs r7, #0 - ldrsh r0, [r0, r7] - cmp r0, r3 - beq _0802CDCE - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bhi _0802CDCE - lsls r0, r2, #1 - adds r1, r0, r1 - movs r6, #0 - ldrsh r0, [r1, r6] - ldr r7, _0802CE8C @ =0x00007FFF - cmp r0, r7 - bne _0802CDA6 -_0802CDCC: - strh r3, [r1] -_0802CDCE: - adds r0, r2, #1 - adds r3, r5, #0 - adds r3, #0x66 - strb r0, [r3] - adds r0, r5, #0 - adds r0, #0x67 - movs r1, #1 - strb r1, [r0] - adds r2, r5, #0 - adds r2, #0xc - @ inline of sub_802D6FC - ldr r1, _0802CE90 @ =gUnknown_084872C4 - subs r0, #7 - ldrh r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #5 - ldr r6, _0802CE94 @ =0x06010000 - adds r0, r0, r6 - str r0, [r2, #4] - movs r7, #0 - strh r7, [r2, #8] - adds r0, r5, #0 - adds r0, #0x62 - ldrh r0, [r0] - strh r0, [r2, #0xa] - adds r0, r5, #0 - adds r0, #0x64 - ldrh r1, [r0] - subs r0, #0x38 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x2d - movs r0, #0xff - strb r0, [r1] - movs r0, #0 - strh r0, [r2, #0x1c] - adds r1, #1 - movs r0, #0x10 - strb r0, [r1] - movs r6, #0 - strh r6, [r2, #0x1c] - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x31 - strb r7, [r0] - ldrb r0, [r3] - ldr r1, _0802CE98 @ =0x00002020 - orrs r0, r1 - str r0, [r2, #0x10] - movs r0, #0xf8 - lsls r0, r0, #3 - strh r0, [r2, #0x1a] - ldr r1, _0802CE9C @ =gSpecialStageCollectedRings - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - bl SpStage_PlayRingSoundeffect - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x40] - adds r2, r0, r1 - movs r0, #7 - mov r3, sb - ands r3, r0 - movs r0, #1 - lsls r0, r3 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - lsls r0, r4, #0x10 -_0802CE5C: - lsrs r0, r0, #0x10 - mov sb, r0 - b _0802D114 - .align 2, 0 -_0802CE64: .4byte 0x000001FF -_0802CE68: .4byte sub_802D3E4 -_0802CE6C: .4byte 0x03000060 -_0802CE70: .4byte 0x03000052 -_0802CE74: .4byte 0x03000054 -_0802CE78: .4byte 0x03000058 -_0802CE7C: .4byte gUnknown_0848728C -_0802CE80: .4byte 0x03000062 -_0802CE84: .4byte 0x03000064 -_0802CE88: .4byte gUnknown_03005670 -_0802CE8C: .4byte 0x00007FFF -_0802CE90: .4byte gUnknown_084872C4 -_0802CE94: .4byte 0x06010000 -_0802CE98: .4byte 0x00002020 -_0802CE9C: .4byte gSpecialStageCollectedRings -_0802CEA0: - ldr r4, [sp, #0x30] - lsls r0, r4, #0x10 - asrs r3, r0, #0x10 - movs r2, #0 - ldr r0, _0802CECC @ =gUnknown_03005670 - movs r5, #0 - ldrsh r1, [r0, r5] - adds r4, r0, #0 - mov r7, sl - lsls r5, r7, #0x10 - mov r0, ip - lsls r0, r0, #0x10 - mov ip, r0 - movs r7, #0x23 - add r7, r8 - mov sl, r7 - ldr r0, _0802CED0 @ =0x00007FFF - cmp r1, r0 - bne _0802CED4 - strh r3, [r4] - b _0802CEFA - .align 2, 0 -_0802CECC: .4byte gUnknown_03005670 -_0802CED0: .4byte 0x00007FFF -_0802CED4: - lsls r0, r2, #1 - adds r0, r0, r4 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, r3 - beq _0802CEFA - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0xf - bhi _0802CEFA - lsls r0, r2, #1 - adds r1, r0, r4 - movs r7, #0 - ldrsh r0, [r1, r7] - ldr r7, _0802D008 @ =0x00007FFF - cmp r0, r7 - bne _0802CED4 - strh r3, [r1] -_0802CEFA: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - asrs r0, r5, #0x10 - ldr r1, _0802D00C @ =gUnknown_03005780 - ldrh r1, [r1, #4] - adds r0, r0, r1 - adds r0, #0x78 - ldr r2, [sp, #0x14] - strh r0, [r2, #6] - ldr r4, _0802D00C @ =gUnknown_03005780 - ldrh r1, [r4, #6] - movs r0, #0x50 - subs r0, r0, r1 - mov r5, ip - asrs r1, r5, #0x10 - subs r0, r0, r1 - strh r0, [r2, #8] - adds r0, r6, #0 - cmp r0, #0 - bge _0802CF28 - ldr r6, _0802D010 @ =0x000003FF - adds r0, r0, r6 -_0802CF28: - asrs r0, r0, #0xa - adds r0, #0x40 - ldr r7, [sp, #0x14] - strh r0, [r7, #2] - strh r0, [r7, #4] - ldr r2, _0802D014 @ =0x00002020 - orrs r2, r3 - mov r0, r8 - str r2, [r0, #0x10] - movs r3, #2 - ldrsh r1, [r7, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _0802CF4E - movs r0, #0x40 - orrs r2, r0 - mov r4, r8 - str r2, [r4, #0x10] -_0802CF4E: - ldr r5, [sp, #0x14] - movs r6, #2 - ldrsh r2, [r5, r6] - ldr r7, [sp, #0x18] - movs r0, #8 - ldrsh r1, [r7, r0] - ldrh r0, [r7, #4] - lsrs r0, r0, #1 - subs r1, r1, r0 - muls r1, r2, r1 - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #8 - ldrh r0, [r5, #6] - subs r3, r0, r1 - mov r1, r8 - strh r3, [r1, #0x16] - movs r4, #4 - ldrsh r2, [r5, r4] - movs r5, #0xa - ldrsh r1, [r7, r5] - ldrh r0, [r7, #6] - lsrs r0, r0, #1 - subs r1, r1, r0 - muls r1, r2, r1 - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #8 - ldr r6, [sp, #0x14] - ldrh r0, [r6, #8] - subs r2, r0, r1 - mov r7, r8 - strh r2, [r7, #0x18] - ldr r0, [sp, #0x20] - cmp r0, #0 - beq _0802CF9E - mov r1, sl - ldrb r0, [r1] - cmp r0, #0xff - bne _0802D020 -_0802CF9E: - movs r3, #1 - rsbs r3, r3, #0 - adds r2, r3, #0 - movs r0, #0xff - mov r4, sl - strb r0, [r4] - mov r5, r8 - ldr r0, [r5, #0x10] - movs r1, #0x1f - ands r0, r1 - ldr r6, [sp, #0x3c] - strh r0, [r6] - ldrh r0, [r6] - ldr r7, _0802D018 @ =gUnknown_030057E0 - adds r0, r0, r7 - movs r6, #0 - ldrsb r6, [r0, r6] - cmp r6, #0 - bne _0802CFFE - ldr r0, [sp, #0x3c] - ldrh r1, [r0] - adds r1, r1, r7 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, [sp, #0x3c] - ldrh r0, [r1] - lsls r0, r0, #5 - ldr r1, _0802D01C @ =gOamBuffer+0x6 - adds r5, r0, r1 - movs r4, #0x80 - lsls r4, r4, #9 - ldr r2, [sp, #0x14] - movs r3, #2 - ldrsh r1, [r2, r3] - adds r0, r4, #0 - bl Div - strh r0, [r5] - strh r6, [r5, #8] - strh r6, [r5, #0x10] - ldr r6, [sp, #0x14] - movs r7, #4 - ldrsh r1, [r6, r7] - adds r0, r4, #0 - bl Div - strh r0, [r5, #0x18] -_0802CFFE: - mov r0, r8 - bl DisplaySprite - b _0802D100 - .align 2, 0 -_0802D008: .4byte 0x00007FFF -_0802D00C: .4byte gUnknown_03005780 -_0802D010: .4byte 0x000003FF -_0802D014: .4byte 0x00002020 -_0802D018: .4byte gUnknown_030057E0 -_0802D01C: .4byte gOamBuffer+0x6 -_0802D020: - mov r0, r8 - ldr r1, [r0, #0x10] - adds r0, r1, #0 - movs r4, #0x40 - ands r0, r4 - cmp r0, #0 - beq _0802D042 - ldr r5, [sp, #0x18] - ldrh r0, [r5, #4] - lsrs r0, r0, #1 - subs r0, r3, r0 - mov r6, r8 - strh r0, [r6, #0x16] - ldrh r0, [r5, #6] - lsrs r0, r0, #1 - subs r0, r2, r0 - strh r0, [r6, #0x18] -_0802D042: - movs r7, #0x1f - ands r1, r7 - ldr r0, [sp, #0x3c] - strh r1, [r0] - ldrh r0, [r0] - ldr r1, _0802D13C @ =gUnknown_030057E0 - adds r0, r0, r1 - movs r6, #0 - ldrsb r6, [r0, r6] - cmp r6, #0 - bne _0802D08E - ldr r2, [sp, #0x3c] - ldrh r0, [r2] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrh r0, [r2] - lsls r0, r0, #5 - ldr r1, _0802D140 @ =gOamBuffer+0x6 - adds r5, r0, r1 - movs r4, #0x80 - lsls r4, r4, #9 - ldr r3, [sp, #0x14] - movs r0, #2 - ldrsh r1, [r3, r0] - adds r0, r4, #0 - bl Div - strh r0, [r5] - strh r6, [r5, #8] - strh r6, [r5, #0x10] - ldr r2, [sp, #0x14] - movs r3, #4 - ldrsh r1, [r2, r3] - adds r0, r4, #0 - bl Div - strh r0, [r5, #0x18] -_0802D08E: - mov r4, sl - ldrb r0, [r4] - lsls r0, r0, #3 - ldr r1, _0802D144 @ =gOamMallocBuffer - adds r5, r0, r1 - mov r6, r8 - ldrh r0, [r6, #0x1a] - movs r2, #0xf8 - lsls r2, r2, #3 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #6 - bl OamMalloc - adds r4, r0, #0 - ldr r0, _0802D148 @ =iwram_end - ldr r0, [r0] - cmp r0, r4 - beq _0802D12A - ldr r1, _0802D14C @ =0x040000D4 - str r5, [r1] - str r4, [r1, #4] - ldr r0, _0802D150 @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldrh r2, [r4] - movs r3, #0xfd - lsls r3, r3, #8 - adds r0, r3, #0 - ands r2, r0 - strh r2, [r4] - ldrh r3, [r4, #2] - movs r5, #0xc0 - lsls r5, r5, #8 - adds r0, r5, #0 - ands r3, r0 - strh r3, [r4, #2] - ldrb r1, [r6, #0x18] - ldr r0, [r6, #0x10] - movs r6, #0x40 - ands r0, r6 - lsls r0, r0, #3 - orrs r1, r0 - orrs r1, r2 - strh r1, [r4] - mov r0, r8 - ldrh r1, [r0, #0x16] - ldr r2, _0802D154 @ =0x000001FF - adds r0, r2, #0 - ands r1, r0 - mov r5, r8 - ldr r0, [r5, #0x10] - ands r0, r7 - lsls r0, r0, #9 - orrs r1, r0 - orrs r1, r3 - strh r1, [r4, #2] -_0802D100: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 - ldr r0, [sp, #0x20] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x20] -_0802D114: - mov r6, sb - lsls r0, r6, #1 - add r0, sb - lsls r0, r0, #2 - ldr r7, [sp, #8] - adds r0, r0, r7 - ldr r0, [r0, #4] - ldr r1, [sp, #0x38] - cmp r0, r1 - bge _0802D12A - b _0802CB44 -_0802D12A: - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D13C: .4byte gUnknown_030057E0 -_0802D140: .4byte gOamBuffer+0x6 -_0802D144: .4byte gOamMallocBuffer -_0802D148: .4byte iwram_end -_0802D14C: .4byte 0x040000D4 -_0802D150: .4byte 0x80000003 -_0802D154: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc b/sa1/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc deleted file mode 100644 index c275491394..0000000000 --- a/sa1/asm/non_matching/game/sa1/special_stage/sub_802A4C4.inc +++ /dev/null @@ -1,80 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldr r0, _0802A554 @ =gUnknown_030055F0+0xC - mov sl, r0 - mov r7, sl - subs r7, #0xc - movs r3, #0x10 - ldrsh r1, [r6, r3] - mov r8, r1 - movs r5, #0x90 - lsls r5, r5, #2 - adds r1, r1, r5 - mov sb, r1 - ldr r0, [r6] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - adds r1, r5, #0 - bl __divsi3 - adds r4, r0, #0 - lsls r4, r4, #8 - lsrs r4, r4, #0x10 - ldr r0, [r6, #4] - mov r3, sb - muls r3, r0, r3 - adds r0, r3, #0 - adds r1, r5, #0 - bl __divsi3 - lsls r0, r0, #8 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - movs r2, #0 - movs r1, #0x50 - asrs r0, r0, #0x10 - subs r1, r1, r0 - adds r4, #0x78 - ldr r0, _0802A558 @ =gUnknown_03005780 - ldrh r0, [r0, #4] - adds r4, r4, r0 - strh r4, [r6, #0xc] - ldr r3, _0802A558 @ =gUnknown_03005780 - ldrh r0, [r3, #6] - subs r1, r1, r0 - strh r1, [r6, #0xe] - mov r0, sl - strh r4, [r0, #0x16] - strh r1, [r0, #0x18] - strh r4, [r7, #6] - strh r1, [r7, #8] - strh r2, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - add r8, r1 - mov r3, r8 - strh r3, [r7, #2] - strh r3, [r7, #4] - ldr r0, _0802A55C @ =0x00002020 - mov r1, sl - str r0, [r1, #0x10] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A554: .4byte gUnknown_030055F0+0xC -_0802A558: .4byte gUnknown_03005780 -_0802A55C: .4byte 0x00002020 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc b/sa1/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc deleted file mode 100644 index 53f2181841..0000000000 --- a/sa1/asm/non_matching/game/sa1/special_stage/sub_802B07C.inc +++ /dev/null @@ -1,129 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - ldr r4, _0802B168 @ =gUnknown_03005690 - ldr r5, _0802B16C @ =gUnknown_030055F0+0xC - adds r7, r5, #0 - subs r7, #0xc - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldrh r0, [r4, #0x12] - adds r0, #0x10 - ldr r2, _0802B170 @ =0x000003FF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r4, #0x12] - ldr r1, _0802B174 @ =gSineTable - movs r2, #0x12 - ldrsh r0, [r4, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x1a - strh r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r2, #0 - cmp r0, #0 - beq _0802B0C8 - movs r0, #0xff - lsls r0, r0, #8 -_0802B0C8: - strh r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_802A068 - adds r0, r4, #0 - bl sub_802A248 - adds r0, r4, #0 - bl sub_802A4C4 - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_802BE0C - adds r0, r5, #0 - bl DisplaySprite - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xb4 - bne _0802B110 - ldr r1, _0802B178 @ =gSpecialStageTargetRings - ldr r0, _0802B17C @ =gUnknown_03005070 - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0x8c - lsls r0, r0, #5 - ldr r1, _0802B180 @ =0x00001181 - bl TasksDestroyInPriorityRange - movs r0, #0 - bl sub_805C448 -_0802B110: - ldrh r1, [r4, #0x32] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0802B13C - subs r0, r1, #1 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802B13C - adds r2, r4, #0 - adds r2, #0x4a - movs r1, #1 - movs r0, #1 - strh r0, [r2] - adds r0, r5, #0 - adds r0, #0x20 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] -_0802B13C: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _0802B160 - ldr r0, _0802B184 @ =gCurTask - ldr r1, [r0] - ldr r0, _0802B188 @ =Task_802A560 - str r0, [r1, #8] - movs r0, #0 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x2a - strb r0, [r1] - adds r1, #0x14 - movs r0, #0xc - strb r0, [r1] -_0802B160: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B168: .4byte gUnknown_03005690 -_0802B16C: .4byte gUnknown_030055F0+0xC -_0802B170: .4byte 0x000003FF -_0802B174: .4byte gSineTable -_0802B178: .4byte gSpecialStageTargetRings -_0802B17C: .4byte gUnknown_03005070 -_0802B180: .4byte 0x00001181 -_0802B184: .4byte gCurTask -_0802B188: .4byte Task_802A560 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc b/sa1/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc deleted file mode 100644 index b34b766377..0000000000 --- a/sa1/asm/non_matching/game/sa1/special_stage/sub_802B66C.inc +++ /dev/null @@ -1,291 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov ip, r1 - lsls r2, r2, #0x10 - lsrs r4, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r8, r3 - ldr r5, _0802B750 @ =gUnknown_030055F0+0xC - ldr r1, [r1, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0802B68E - b _0802B878 -_0802B68E: - ldr r0, _0802B754 @ =gUnknown_03005690 - ldr r3, [r6, #0x44] - ldr r2, _0802B758 @ =0xFFFFC000 - adds r1, r3, r2 - ldr r2, [r0, #8] - adds r7, r0, #0 - cmp r2, r1 - bge _0802B6A0 - b _0802B878 -_0802B6A0: - cmp r2, r3 - ble _0802B6A6 - b _0802B878 -_0802B6A6: - adds r0, r6, #0 - adds r0, #0x60 - ldrh r0, [r0] - cmp r0, #4 - bge _0802B6B2 - b _0802B7E0 -_0802B6B2: - cmp r0, #9 - ble _0802B6BC - cmp r0, #0xb - beq _0802B6BC - b _0802B7E0 -_0802B6BC: - adds r0, r7, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0802B760 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - mov r1, ip - adds r1, #0x2c - movs r4, #0 - ldrsb r4, [r1, r4] - adds r3, r0, r4 - ldr r0, [r7] - asrs r0, r0, #8 - ldr r1, _0802B75C @ =gUnknown_0848720C - movs r2, #0 - ldrsh r5, [r1, r2] - adds r2, r0, r5 - adds r6, r1, #0 - cmp r3, r2 - bgt _0802B702 - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r3, r0 - cmp r0, r2 - bge _0802B710 - cmp r3, r2 - bge _0802B702 - b _0802B878 -_0802B702: - movs r1, #4 - ldrsh r0, [r6, r1] - subs r0, r0, r5 - adds r0, r2, r0 - cmp r0, r3 - bge _0802B710 - b _0802B878 -_0802B710: - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov r2, ip - adds r2, #0x2d - movs r1, #0 - ldrsb r1, [r2, r1] - adds r3, r0, r1 - ldr r0, [r7, #4] - asrs r0, r0, #8 - movs r2, #2 - ldrsh r4, [r6, r2] - adds r2, r0, r4 - cmp r3, r2 - bgt _0802B748 - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r1 - adds r0, r3, r0 - cmp r0, r2 - blt _0802B742 - b _0802B874 -_0802B742: - cmp r3, r2 - bge _0802B748 - b _0802B878 -_0802B748: - movs r1, #6 - ldrsh r0, [r6, r1] - b _0802B86C - .align 2, 0 -_0802B750: .4byte gUnknown_030055F0+0xC -_0802B754: .4byte gUnknown_03005690 -_0802B758: .4byte 0xFFFFC000 -_0802B75C: .4byte gUnknown_0848720C -_0802B760: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - mov r1, ip - adds r1, #0x2c - movs r4, #0 - ldrsb r4, [r1, r4] - adds r3, r0, r4 - ldr r0, [r7] - asrs r0, r0, #8 - ldr r1, _0802B7DC @ =gUnknown_08487204 - movs r2, #0 - ldrsh r5, [r1, r2] - adds r2, r0, r5 - adds r6, r1, #0 - cmp r3, r2 - bgt _0802B796 - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r3, r0 - cmp r0, r2 - bge _0802B7A2 - cmp r3, r2 - blt _0802B878 -_0802B796: - movs r1, #4 - ldrsh r0, [r6, r1] - subs r0, r0, r5 - adds r0, r2, r0 - cmp r0, r3 - blt _0802B878 -_0802B7A2: - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov r2, ip - adds r2, #0x2d - movs r1, #0 - ldrsb r1, [r2, r1] - adds r3, r0, r1 - ldr r0, [r7, #4] - asrs r0, r0, #8 - movs r2, #2 - ldrsh r4, [r6, r2] - adds r2, r0, r4 - cmp r3, r2 - bgt _0802B7D6 - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r1 - adds r0, r3, r0 - cmp r0, r2 - bge _0802B874 - cmp r3, r2 - blt _0802B878 -_0802B7D6: - movs r1, #6 - ldrsh r0, [r6, r1] - b _0802B86C - .align 2, 0 -_0802B7DC: .4byte gUnknown_08487204 -_0802B7E0: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - mov r1, ip - adds r1, #0x2c - movs r3, #0 - ldrsb r3, [r1, r3] - adds r2, r0, r3 - ldr r0, [r7] - asrs r0, r0, #8 - adds r1, r5, #0 - adds r1, #0x2c - movs r4, #0 - ldrsb r4, [r1, r4] - adds r1, r0, r4 - cmp r2, r1 - bgt _0802B816 - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0802B828 - cmp r2, r1 - blt _0802B878 -_0802B816: - adds r0, r5, #0 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r1, r0 - cmp r0, r2 - blt _0802B878 -_0802B828: - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - mov r1, ip - adds r1, #0x2d - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r3, r0, r1 - ldr r0, [r7, #4] - asrs r0, r0, #8 - adds r2, r5, #0 - adds r2, #0x2d - movs r4, #0 - ldrsb r4, [r2, r4] - adds r2, r0, r4 - cmp r3, r2 - bgt _0802B862 - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r1 - adds r0, r3, r0 - cmp r0, r2 - bge _0802B874 - cmp r3, r2 - blt _0802B878 -_0802B862: - adds r0, r5, #0 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 -_0802B86C: - subs r0, r0, r4 - adds r0, r2, r0 - cmp r0, r3 - blt _0802B878 -_0802B874: - movs r0, #1 - b _0802B87A -_0802B878: - movs r0, #0 -_0802B87A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc b/sa1/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc deleted file mode 100644 index 19c7bcc3ae..0000000000 --- a/sa1/asm/non_matching/game/sa1/special_stage/sub_802BC6C.inc +++ /dev/null @@ -1,208 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _0802BCC0 @ =gUnknown_03005690 - ldr r0, _0802BCC4 @ =gCurTask - ldr r3, [r0] - ldrh r2, [r3, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r2 - mov r8, r0 - ldr r0, _0802BCC8 @ =0x0300000C - adds r0, r0, r2 - mov sl, r0 - mov sb, r8 - ldr r0, [r1, #8] - mov r4, sb - ldr r1, [r4, #0x44] - subs r0, r0, r1 - asrs r1, r0, #8 - ldr r4, _0802BCCC @ =0x03000050 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _0802BCD0 @ =0x03000060 - adds r2, r2, r0 - ldrh r0, [r2] - cmp r0, #3 - beq _0802BCD4 - lsls r1, r1, #0x10 - movs r0, #0x90 - lsls r0, r0, #0x12 - cmp r1, r0 - ble _0802BCD4 - adds r0, r3, #0 - bl TaskDestroy -_0802BCBA: - movs r0, #0 - b _0802BDE8 - .align 2, 0 -_0802BCC0: .4byte gUnknown_03005690 -_0802BCC4: .4byte gCurTask -_0802BCC8: .4byte 0x0300000C -_0802BCCC: .4byte 0x03000050 -_0802BCD0: .4byte 0x03000060 -_0802BCD4: - mov r1, r8 - adds r1, #0x50 - str r1, [sp] - movs r2, #0 - ldrsh r1, [r1, r2] - cmp r1, #0xc0 - bgt _0802BCBA - ldr r0, _0802BDF8 @ =0xFFFFFD00 - cmp r1, r0 - blt _0802BCBA - ldr r3, [sp] - movs r4, #0 - ldrsh r0, [r3, r4] - bl sub_802D58C - mov r1, r8 - adds r1, #0x66 - str r1, [sp, #4] - strb r0, [r1] - ldr r2, [sp] - movs r3, #0 - ldrsh r0, [r2, r3] - movs r4, #0xc0 - lsls r4, r4, #2 - adds r7, r0, r4 - asrs r7, r7, #3 - cmp r7, #0 - bne _0802BD0E - movs r7, #1 -_0802BD0E: - adds r0, r7, #0 - muls r0, r7, r0 - muls r0, r7, r0 - muls r7, r0, r7 - movs r1, #0xcc - lsls r1, r1, #1 - adds r0, r7, #0 - bl __divsi3 - adds r7, r0, #0 - adds r4, r7, #0 - cmp r7, #0 - bge _0802BD2C - ldr r0, _0802BDFC @ =0x000001FF - adds r4, r7, r0 -_0802BD2C: - asrs r4, r4, #9 - adds r4, #0x38 - mov r1, r8 - ldr r0, [r1, #0x3c] - muls r0, r4, r0 - movs r5, #0xa0 - lsls r5, r5, #2 - adds r1, r5, #0 - bl __divsi3 - asrs r0, r0, #8 - mov r6, r8 - adds r6, #0x48 - strh r0, [r6] - mov r2, r8 - ldr r0, [r2, #0x40] - muls r0, r4, r0 - adds r1, r5, #0 - bl __divsi3 - asrs r0, r0, #8 - mov r1, r8 - adds r1, #0x4a - strh r0, [r1] - ldrh r0, [r6] - adds r0, #0x78 - mov r3, r8 - adds r3, #0x4c - strh r0, [r3] - ldrh r1, [r1] - movs r0, #0x50 - subs r0, r0, r1 - mov r2, r8 - adds r2, #0x4e - strh r0, [r2] - ldr r4, _0802BE00 @ =gUnknown_03005780 - ldrh r0, [r4, #4] - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - ldrh r0, [r2] - ldrh r1, [r4, #6] - subs r0, r0, r1 - strh r0, [r2] - ldrh r1, [r3] - mov r3, sl - strh r1, [r3, #0x16] - ldrh r0, [r2] - strh r0, [r3, #0x18] - mov r4, sb - strh r1, [r4, #6] - ldrh r0, [r3, #0x18] - strh r0, [r4, #8] - adds r0, r7, #0 - cmp r7, #0 - bge _0802BDA0 - ldr r1, _0802BE04 @ =0x000003FF - adds r0, r7, r1 -_0802BDA0: - asrs r0, r0, #0xa - adds r0, #0x40 - mov r2, sb - strh r0, [r2, #2] - mov r3, sb - strh r0, [r3, #4] - ldr r4, [sp, #4] - ldrb r2, [r4] - ldr r0, _0802BE08 @ =0x00002020 - orrs r2, r0 - mov r0, sl - str r2, [r0, #0x10] - movs r4, #2 - ldrsh r1, [r3, r4] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _0802BDCC - movs r0, #0x40 - orrs r2, r0 - mov r0, sl - str r2, [r0, #0x10] -_0802BDCC: - ldr r2, [sp] - movs r3, #0 - ldrsh r1, [r2, r3] - adds r0, r1, #0 - subs r0, #0xc0 - cmp r0, #0 - bge _0802BDDC - adds r0, #0x1f -_0802BDDC: - asrs r0, r0, #5 - rsbs r0, r0, #0 - lsls r0, r0, #6 - mov r4, sl - strh r0, [r4, #0x1a] - movs r0, #1 -_0802BDE8: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0802BDF8: .4byte 0xFFFFFD00 -_0802BDFC: .4byte 0x000001FF -_0802BE00: .4byte gUnknown_03005780 -_0802BE04: .4byte 0x000003FF -_0802BE08: .4byte 0x00002020 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc b/sa1/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc deleted file mode 100644 index fd933b9686..0000000000 --- a/sa1/asm/non_matching/game/sa1/special_stage/sub_802BE0C.inc +++ /dev/null @@ -1,109 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov sb, r0 - adds r6, r1, #0 - ldr r0, [r0, #0xc] - mov r8, r0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r8, r0 - beq _0802BEC6 - mov r1, sp - ldrh r0, [r6, #2] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r6, #4] - strh r0, [r1] - add r4, sp, #0xc - mov r1, sb - ldr r0, [r1, #0x10] - movs r1, #0x1f - ands r0, r1 - strh r0, [r4] - ldr r1, _0802BED4 @ =gUnknown_030057E0 - ldrh r0, [r4] - adds r0, r0, r1 - movs r7, #0 - ldrsb r7, [r0, r7] - cmp r7, #0 - bne _0802BE7C - ldrh r0, [r4] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] - ldrh r4, [r4] - lsls r4, r4, #5 - ldr r0, _0802BED8 @ =gOamBuffer+0x6 - adds r4, r4, r0 - movs r5, #0x80 - lsls r5, r5, #9 - movs r0, #2 - ldrsh r1, [r6, r0] - adds r0, r5, #0 - bl Div - strh r0, [r4] - strh r7, [r4, #8] - strh r7, [r4, #0x10] - movs r0, #4 - ldrsh r1, [r6, r0] - adds r0, r5, #0 - bl Div - strh r0, [r4, #0x18] -_0802BE7C: - movs r1, #6 - ldrsh r2, [r6, r1] - movs r4, #2 - ldrsh r3, [r6, r4] - mov r1, r8 - movs r4, #8 - ldrsh r0, [r1, r4] - ldrh r1, [r1, #4] - lsrs r1, r1, #1 - subs r0, r0, r1 - muls r0, r3, r0 - lsls r1, r1, #8 - adds r0, r0, r1 - asrs r0, r0, #8 - subs r2, r2, r0 - str r2, [sp, #4] - movs r0, #8 - ldrsh r2, [r6, r0] - movs r1, #4 - ldrsh r3, [r6, r1] - mov r4, r8 - movs r1, #0xa - ldrsh r0, [r4, r1] - ldrh r1, [r4, #6] - lsrs r1, r1, #1 - subs r0, r0, r1 - muls r0, r3, r0 - lsls r1, r1, #8 - adds r0, r0, r1 - asrs r0, r0, #8 - subs r2, r2, r0 - str r2, [sp, #8] - ldr r0, [sp, #4] - mov r4, sb - strh r0, [r4, #0x16] - ldr r0, [sp, #8] - strh r0, [r4, #0x18] -_0802BEC6: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0802BED4: .4byte gUnknown_030057E0 -_0802BED8: .4byte gOamBuffer+0x6 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc b/sa1/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc deleted file mode 100644 index ba3e7352e0..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__Player_80447D8.inc +++ /dev/null @@ -1,134 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _0804482C @ =gCamera - adds r6, r4, #0 - adds r6, #0x40 - movs r0, #2 - strb r0, [r6] - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08044868 - ldrb r0, [r4, #0x15] - cmp r0, #0 - beq _080447FE - subs r0, #1 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804484C -_080447FE: - adds r0, r4, #0 - adds r0, #0x3c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080448CA - ldr r0, _08044830 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08044834 - movs r2, #0x22 - ldrsh r0, [r5, r2] - movs r3, #0xe - ldrsh r1, [r5, r3] - adds r0, r0, r1 - cmp r0, #0x3b - bgt _080448CA - ldrh r0, [r5, #0x22] - b _080448C6 - .align 2, 0 -_0804482C: .4byte gCamera -_08044830: .4byte gStageFlags -_08044834: - movs r1, #0x22 - ldrsh r0, [r5, r1] - movs r2, #0xe - ldrsh r1, [r5, r2] - adds r0, r0, r1 - movs r1, #0x3c - rsbs r1, r1, #0 - cmp r0, r1 - ble _080448CA - ldrh r0, [r5, #0x22] - subs r0, #2 - b _080448C8 -_0804484C: - adds r0, r4, #0 - adds r0, #0x3c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080448CA - ldrh r0, [r5, #0x22] - movs r3, #0x22 - ldrsh r1, [r5, r3] - cmp r1, #0 - ble _080448C2 - subs r0, #2 - b _080448C8 -_08044868: - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - beq _080448CA - movs r0, #0x6d - bl m4aSongNumStart - ldr r0, [r4, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #9 - strb r0, [r4, #0xf] - movs r0, #5 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _080448CA - movs r0, #0x78 - strb r0, [r4, #0x15] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _080448CA - adds r2, r5, #0 - ldrh r0, [r2, #0x22] - movs r3, #0x22 - ldrsh r1, [r2, r3] - cmp r1, #0 - ble _080448C2 - subs r0, #2 - strh r0, [r2, #0x22] - b _080448CA -_080448C2: - cmp r1, #0 - bge _080448CA -_080448C6: - adds r0, #2 -_080448C8: - strh r0, [r5, #0x22] -_080448CA: - pop {r4, r5, r6} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc b/sa1/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc deleted file mode 100644 index 49f1a4020a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__Player_Tails_804571C.inc +++ /dev/null @@ -1,315 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 @ r4 = p - ldr r0, _08045768 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 @ r8 = flag80 - ldr r2, _0804576C @ =gPlayer - adds r0, r2, #0 - adds r0, #0x27 - ldrb r3, [r0] - adds r5, r4, #0 - adds r5, #0x27 - strb r3, [r5] - ldr r0, [r2, #0x10] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - adds r6, r2, #0 @ r6 = r2 = gPlayer - cmp r0, #0 - beq _08045754 - movs r0, #1 - eors r0, r3 - strb r0, [r5] -_08045754: - ldr r0, [r4, #0x10] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08045770 - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x39 - b _08045776 - .align 2, 0 -_08045768: .4byte gStageFlags -_0804576C: .4byte gPlayer -_08045770: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x35 -_08045776: - strb r0, [r1] - adds r7, r1, #0 - ldr r0, [r4] - asrs r0, r0, #8 - ldr r3, _08045810 @ =gCamera - movs r2, #0 - ldrsh r1, [r3, r2] - ldr r5, _08045814 @ =0xFFFFFF00 - adds r1, r1, r5 - cmp r0, r1 - bge _08045790 - lsls r0, r1, #8 - str r0, [r4] -_08045790: - ldr r0, [r4] - asrs r0, r0, #8 - movs r2, #0 - ldrsh r1, [r3, r2] - movs r2, #0xf8 - lsls r2, r2, #1 - adds r1, r1, r2 - cmp r0, r1 - ble _080457A6 - lsls r0, r1, #8 - str r0, [r4] -_080457A6: - ldr r0, [r4, #4] - asrs r0, r0, #8 - movs r2, #2 - ldrsh r1, [r3, r2] - adds r1, r1, r5 - cmp r0, r1 - bge _080457B8 - lsls r0, r1, #8 - str r0, [r4, #4] -_080457B8: - ldr r0, [r4, #4] - asrs r0, r0, #8 - movs r2, #2 - ldrsh r1, [r3, r2] - movs r2, #0xd0 - lsls r2, r2, #1 - adds r1, r1, r2 - cmp r0, r1 - ble _080457CE - lsls r0, r1, #8 - str r0, [r4, #4] -_080457CE: - ldr r0, [r4] - asrs r5, r0, #8 - adds r1, r5, #0 - subs r1, #0x20 - ldr r0, [r6] @ r0 = *r6 = I(gPlayer.qWorldX) - asrs r3, r0, #8 - cmp r1, r3 - blt _080457E0 - b _080458F8 -_080457E0: - adds r0, r5, #0 - adds r0, #0x20 - cmp r0, r3 - bgt _080457EA - b _080458F8 -_080457EA: - mov r0, r8 - cmp r0, #0 - bne _08045818 - ldr r0, [r4, #4] - asrs r3, r0, #8 - adds r1, r3, #0 - subs r1, #0x20 - ldr r0, [r6, #4] - asrs r0, r0, #8 - adds r2, r0, #0 - subs r2, #0x30 - cmp r1, r2 - bge _080458F8 - adds r0, r3, #0 - adds r0, #0x20 - cmp r0, r2 - bgt _08045834 - b _080458F8 - .align 2, 0 -_08045810: .4byte gCamera -_08045814: .4byte 0xFFFFFF00 -_08045818: - ldr r0, [r4, #4] - asrs r3, r0, #8 - adds r1, r3, #0 - subs r1, #0x20 - ldr r0, [r6, #4] - asrs r0, r0, #8 - adds r2, r0, #0 - adds r2, #0x30 - cmp r1, r2 - bge _080458F8 - adds r0, r3, #0 - adds r0, #0x20 - cmp r0, r2 - ble _080458F8 -_08045834: - movs r0, #0 - adds r1, r4, #0 - bl sa2__sub_8022F58 - cmp r0, #0 - blt _080458F8 - ldr r0, [r4, #0x10] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #0xe0 - ands r0, r1 - ldr r1, _080458D0 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3d - movs r6, #0 @ r6 = 0 - strb r6, [r0] - adds r0, #1 - strb r6, [r0] - adds r0, #1 - strb r6, [r0] - ldr r0, [r4, #0x10] - ldr r1, _080458D4 @ =0xFFFF7FFF - ands r0, r1 - str r0, [r4, #0x10] - adds r5, r4, #0 - adds r5, #0x59 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #1 - bne _0804587C - movs r0, #0x78 - bl m4aSongNumStop -_0804587C: - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #3 - bne _0804588C - ldr r0, [r4, #0x10] - ldr r1, _080458D8 @ =0xF9FFFFFF - ands r0, r1 - str r0, [r4, #0x10] -_0804588C: - strh r6, [r4, #0xc] - strh r6, [r4, #8] - strh r6, [r4, #0xa] - movs r0, #0x38 - strb r0, [r7] - ldr r0, [r4, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #0xc - ands r0, r1 - ldr r1, _080458DC @ =0xFFFFFDFF - ands r0, r1 - ldr r1, _080458E0 @ =0xFFEFFFFF - ands r0, r1 - ldr r1, _080458E4 @ =0xFF7FFFFF - ands r0, r1 - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - ldr r1, _080458E8 @ =0xFFDFFFFF - ands r0, r1 - ldr r1, _080458EC @ =0xFFBFFFFF - ands r0, r1 - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - str r6, [r4, #0x28] - ldr r0, _080458F0 @ =gCurTask - ldr r1, [r0] - ldr r0, _080458F4 @ =Task_8045B38 - str r0, [r1, #8] - b _0804596C - .align 2, 0 -_080458D0: .4byte 0xFFFFFBFF -_080458D4: .4byte 0xFFFF7FFF -_080458D8: .4byte 0xF9FFFFFF -_080458DC: .4byte 0xFFFFFDFF -_080458E0: .4byte 0xFFEFFFFF -_080458E4: .4byte 0xFF7FFFFF -_080458E8: .4byte 0xFFDFFFFF -_080458EC: .4byte 0xFFBFFFFF -_080458F0: .4byte gCurTask -_080458F4: .4byte Task_8045B38 -_080458F8: - ldr r5, [r4] - asrs r3, r5, #8 - ldr r0, _0804591C @ =gPlayer - ldr r1, [r0] - asrs r2, r1, #8 - adds r1, r3, #1 - adds r6, r0, #0 - cmp r1, r2 - bge _08045920 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r5, r1 - str r0, [r4] - ldr r0, [r4, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - b _08045932 - .align 2, 0 -_0804591C: .4byte gPlayer -_08045920: - subs r0, r3, #1 - cmp r2, r0 - bge _08045934 - ldr r2, _0804594C @ =0xFFFFFE00 - adds r0, r5, r2 - str r0, [r4] - ldr r0, [r4, #0x10] - movs r1, #1 - orrs r0, r1 -_08045932: - str r0, [r4, #0x10] -_08045934: - ldr r0, [r4, #4] - asrs r3, r0, #8 - adds r1, r0, #0 - mov r0, r8 - cmp r0, #0 - bne _08045950 - ldr r0, [r6, #4] - asrs r0, r0, #8 - adds r2, r0, #0 - subs r2, #0x30 - b _08045958 - .align 2, 0 -_0804594C: .4byte 0xFFFFFE00 -_08045950: - ldr r0, [r6, #4] - asrs r0, r0, #8 - adds r2, r0, #0 - adds r2, #0x30 -_08045958: - cmp r3, r2 - bge _08045962 - movs r2, #0x80 - lsls r2, r2, #1 - b _08045968 -_08045962: - cmp r2, r3 - bge _0804596C - ldr r2, _08045978 @ =0xFFFFFF00 -_08045968: - adds r0, r1, r2 - str r0, [r4, #4] -_0804596C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -_08045978: .4byte 0xFFFFFF00 -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc b/sa1/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc deleted file mode 100644 index 0a9fb24744..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__Task_804597C.inc +++ /dev/null @@ -1,185 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - ldr r4, _08045994 @ r4 = gPartner - ldr r6, [r4, #0x64] @ r6 = gPartner.spriteInfoBody - ldr r7, [r4, #0x68] @ r7 = gPartner.spriteInfoLimbs - ldr r5, [r4, #4] @ r5 = gPartner.qWorldY - ldr r0, [r4, #0x10] @ r0 = gPartner.moveState - ldr r3, _08045998 @ r3 = gCamera - cmp r0, #0 - bge _080459A0 - ldr r2, _0804599C @ =gStageFlags - b _08045A60 - .align 2, 0 -_08045994: .4byte gPartner -_08045998: .4byte gCamera -_0804599C: .4byte gStageFlags -_080459A0: - ldr r2, _080459BC @ =gStageFlags - ldrh r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080459C4 - movs r1, #2 - ldrsh r0, [r3, r1] - lsls r0, r0, #8 - ldr r1, _080459C0 @ =0x0000EFFF - adds r0, r0, r1 - cmp r5, r0 - blt _080459D2 - b _080459D8 - .align 2, 0 -_080459BC: .4byte gStageFlags -_080459C0: .4byte 0x0000EFFF -_080459C4: - movs r1, #2 - ldrsh r0, [r3, r1] - subs r0, #0x50 - lsls r0, r0, #8 - movs r1, #1 - cmp r5, r0 - ble _080459D4 -_080459D2: - movs r1, #0 -_080459D4: - cmp r1, #0 - beq _08045A60 -_080459D8: - movs r2, #0 - ldrsh r0, [r3, r2] - ldr r1, _08045A1C @ =0xFFFFFF00 - adds r0, r0, r1 - lsls r0, r0, #8 - str r0, [r4] - movs r2, #2 - ldrsh r0, [r3, r2] - adds r0, r0, r1 - lsls r0, r0, #8 - str r0, [r4, #4] - ldr r2, [r4, #0x64] - ldr r0, [r2, #0x1c] - ldr r1, _08045A20 @ =0xFFFFCFFF - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r2, #0x1c] - ldr r0, [r4, #0x10] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #0x60 - ands r0, r1 - str r0, [r4, #0x10] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08045A24 - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x39 - b _08045A2A - .align 2, 0 -_08045A1C: .4byte 0xFFFFFF00 -_08045A20: .4byte 0xFFFFCFFF -_08045A24: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x35 -_08045A2A: - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x5b - movs r0, #0x3c - strb r0, [r1] - subs r1, #1 - movs r0, #0x1e - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08045A4E - movs r0, #0x1b - bl m4aSongNumStop -_08045A4E: - ldr r0, _08045A58 @ =gCurTask - ldr r1, [r0] - ldr r0, _08045A5C @ =Task_8045AD8 - str r0, [r1, #8] - b _08045AD0 - .align 2, 0 -_08045A58: .4byte gCurTask -_08045A5C: .4byte Task_8045AD8 -_08045A60: - movs r0, #8 - ldrsh r1, [r4, r0] - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] - ldr r1, _08045A94 @ =gPrevStageFlags - ldrh r0, [r2] - ldrh r1, [r1] - eors r0, r1 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045A80 - ldrh r0, [r4, #0xa] - rsbs r0, r0, #0 - strh r0, [r4, #0xa] -_08045A80: - ldrh r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045A98 - movs r2, #0xa - ldrsh r1, [r4, r2] - ldr r0, [r4, #4] - subs r0, r0, r1 - b _08045AA0 - .align 2, 0 -_08045A94: .4byte gPrevStageFlags -_08045A98: - movs r0, #0xa - ldrsh r1, [r4, r0] - ldr r0, [r4, #4] - adds r0, r0, r1 -_08045AA0: - str r0, [r4, #4] - ldr r0, [r4, #0x10] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08045AB2 - ldrh r0, [r4, #0xa] - adds r0, #0x2a - b _08045AB6 -_08045AB2: - ldrh r0, [r4, #0xa] - adds r0, #0xc -_08045AB6: - strh r0, [r4, #0xa] - adds r0, r4, #0 - adds r1, r6, #0 - bl sa2__sub_802486C - adds r0, r4, #0 - adds r1, r6, #0 - bl sa2__sub_8024B10 - adds r0, r4, #0 - adds r1, r7, #0 - bl sa2__sub_8024F74 -_08045AD0: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc b/sa1/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc deleted file mode 100644 index 4e06b4c1ab..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8044434.inc +++ /dev/null @@ -1,190 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x14] - ldr r0, _0804444C @ =gPlayerControls - ldrh r1, [r4, #0x3a] - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _08044450 - movs r0, #0 - b _08044598 - .align 2, 0 -_0804444C: .4byte gPlayerControls -_08044450: - ldr r0, _08044498 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804446E - adds r0, r2, #0 - adds r0, #0x40 - lsls r0, r0, #0x18 - rsbs r0, r0, #0 - lsrs r2, r0, #0x18 - adds r0, r2, #0 - subs r0, #0x40 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0804446E: - adds r5, r4, #0 - adds r5, #0x27 - ldrb r0, [r5] - movs r6, #1 - eors r0, r6 - strb r0, [r5] - adds r0, r2, #0 - adds r0, #0x80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r4, #0 - bl sa2__sub_8022F58 - cmp r0, #3 - bgt _0804449C - ldrb r0, [r5] - eors r0, r6 - strb r0, [r5] - movs r0, #0 - b _08044598 - .align 2, 0 -_08044498: .4byte gStageFlags -_0804449C: - ldr r0, _080444B4 @ =gPlayer - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - bne _080444B8 - movs r0, #0x86 - bl m4aSongNumStop - b _080444BE - .align 2, 0 -_080444B4: .4byte gPlayer -_080444B8: - movs r0, #0x72 - bl m4aSongNumStop -_080444BE: - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - ldr r1, _080444F8 @ =0xFEFFFFDF - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - ldr r1, _080444FC @ =0xFFFFF7FF - ands r0, r1 - str r0, [r4, #0x10] - ldr r1, _08044500 @ =gPlayer - adds r1, #0x26 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x59 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0 - blt _08044514 - cmp r1, #2 - ble _08044504 - cmp r1, #3 - beq _0804450C - b _08044514 - .align 2, 0 -_080444F8: .4byte 0xFEFFFFDF -_080444FC: .4byte 0xFFFFF7FF -_08044500: .4byte gPlayer -_08044504: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #5 - b _08044512 -_0804450C: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x55 -_08044512: - strb r0, [r1] -_08044514: - ldr r0, [r4, #0x10] - movs r1, #0x40 - ands r0, r1 - movs r2, #0x9c - lsls r2, r2, #3 - cmp r0, #0 - beq _08044526 - movs r2, #0xa8 - lsls r2, r2, #2 -_08044526: - ldrb r0, [r4, #0x14] - subs r0, #0x40 - lsls r0, r0, #0x18 - ldr r1, _08044588 @ =gSineTable - lsrs r0, r0, #0x15 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r2, r0 - asrs r0, r0, #8 - strh r0, [r4, #0xa] - movs r0, #0x74 - bl m4aSongNumStart - ldr r1, [r4, #0x64] - ldr r0, [r1, #0x1c] - ldr r3, _0804458C @ =0xFFFFCFFF - ands r0, r3 - movs r2, #0x80 - lsls r2, r2, #6 - orrs r0, r2 - str r0, [r1, #0x1c] - ldr r1, [r4, #0x68] - ldr r0, [r1, #0x1c] - ands r0, r3 - orrs r0, r2 - str r0, [r1, #0x1c] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #3 - beq _08044596 - ldr r1, [r4, #0x10] - movs r2, #4 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - bne _08044590 - orrs r1, r2 - str r1, [r4, #0x10] - adds r0, r4, #0 - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #9 - strb r0, [r4, #0xf] - b _08044596 - .align 2, 0 -_08044588: .4byte gSineTable -_0804458C: .4byte 0xFFFFCFFF -_08044590: - movs r0, #0x10 - orrs r1, r0 - str r1, [r4, #0x10] -_08044596: - movs r0, #1 -_08044598: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc b/sa1/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc deleted file mode 100644 index c47a47bcb9..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8048230.inc +++ /dev/null @@ -1,353 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0xc - adds r5, r0, #0 @ r5 = p - bl sa2__sub_8022838 - adds r7, r5, #0 - adds r7, #0x80 - ldrb r1, [r7] - movs r0, #2 - mov r8, r0 - ands r0, r1 - cmp r0, #0 - bne _080482D8 - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bgt _08048260 - ldr r0, [r5, #0x10] - movs r1, #1 - orrs r0, r1 - b _08048268 -_08048260: - ldr r0, [r5, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 -_08048268: - str r0, [r5, #0x10] - ldrb r0, [r5, #0x14] - adds r0, #0x20 - movs r2, #0x40 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080482C2 - adds r0, r5, #0 - adds r0, #0x81 - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _08048292 - ldr r0, [r5, #0x10] - movs r1, #1 - orrs r0, r1 - b _0804829A -_08048292: - ldr r0, [r5, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 -_0804829A: - str r0, [r5, #0x10] - movs r0, #0 - strh r0, [r5, #0xa] - adds r0, r5, #0 - bl sa2__sub_8022318 - movs r1, #0xc - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _080482B8 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #4 - strb r0, [r1] - b _080484BE_return -_080482B8: - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0 - strb r0, [r1] - b _080484BE_return -_080482C2: - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #3 - strb r0, [r1] - adds r1, #3 - movs r0, #0x41 - strb r0, [r1] - movs r0, #0x6f - bl m4aSongNumStart - b _080484BE_return -_080482D8: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080482E2 - b _0804846E -_080482E2: - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _080482F2 - b _0804844C -_080482F2: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #0x18 - mov sb, r1 - cmp r0, #0 - bgt _080483B4 - ldr r0, [r5, #0x10] - movs r1, #1 - orrs r0, r1 - str r0, [r5, #0x10] - adds r0, r5, #0 - movs r1, #0 - add r2, sp, #8 - bl sa2__sub_8029A28 - adds r6, r0, #0 - ldr r0, [sp, #8] - cmp r6, r0 - beq _0804831E - b _0804844C -_0804831E: - cmp r6, #0 - bne _08048324 - b _08048424 -_08048324: - ldr r0, _08048370 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _08048378 - ldr r0, [r5, #4] - asrs r0, r0, #8 - subs r0, #1 - movs r1, #0xf - ldrsb r1, [r5, r1] - subs r0, r0, r1 - ldr r1, [r5] - asrs r1, r1, #8 - subs r1, #1 - movs r2, #0xe - ldrsb r2, [r5, r2] - subs r1, r1, r2 - adds r2, r5, #0 - adds r2, #0x27 - ldrb r2, [r2] - movs r3, #8 - rsbs r3, r3, #0 - movs r4, #0 - str r4, [sp] - ldr r4, _08048374 @ =sa2__sub_801EE64 - str r4, [sp, #4] - bl sa2__sub_801E4E4 - cmp r0, #0 - bge _080483A6 - adds r0, r5, #0 - adds r0, #0x3d - mov r1, r8 - strb r1, [r0] - b _08048454 - .align 2, 0 -_08048370: .4byte gStageFlags -_08048374: .4byte sa2__sub_801EE64 -_08048378: - ldr r0, [r5, #4] - asrs r0, r0, #8 - adds r0, #1 - movs r1, #0xf - ldrsb r1, [r5, r1] - adds r0, r0, r1 - ldr r1, [r5] - asrs r1, r1, #8 - subs r1, #1 - movs r2, #0xe - ldrsb r2, [r5, r2] - subs r1, r1, r2 - adds r2, r5, #0 - adds r2, #0x27 - ldrb r2, [r2] - str r3, [sp] - ldr r3, _080483B0 @ =sa2__sub_801EE64 - str r3, [sp, #4] - movs r3, #8 - bl sa2__sub_801E4E4 - cmp r0, #0 - blt _0804844C -_080483A6: - lsls r1, r6, #8 - ldr r0, [r5] - subs r0, r0, r1 - b _08048422 - .align 2, 0 -_080483B0: .4byte sa2__sub_801EE64 -_080483B4: - ldr r0, [r5, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - adds r0, r5, #0 - movs r1, #0 - add r2, sp, #8 - bl sa2__sub_8029A74 - adds r6, r0, #0 - ldr r0, [sp, #8] - cmp r6, r0 - beq _080483DA - adds r0, r5, #0 - adds r0, #0x3d - mov r1, r8 - strb r1, [r0] - b _08048454 -_080483DA: - cmp r6, #0 - beq _08048424 - ldr r0, _08048444 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - bne _0804841C - ldr r0, [r5, #4] - asrs r0, r0, #8 - adds r0, #1 - movs r1, #0xf - ldrsb r1, [r5, r1] - adds r0, r0, r1 - ldr r1, [r5] - asrs r1, r1, #8 - adds r1, #1 - movs r2, #0xe - ldrsb r2, [r5, r2] - adds r1, r1, r2 - adds r2, r5, #0 - adds r2, #0x27 - ldrb r2, [r2] - str r3, [sp] - ldr r3, _08048448 @ =sa2__sub_801EE64 - str r3, [sp, #4] - movs r3, #8 - bl sa2__sub_801E4E4 - cmp r0, #0 - blt _0804844C -_0804841C: - lsls r1, r6, #8 - ldr r0, [r5] - adds r0, r0, r1 -_08048422: - str r0, [r5] -_08048424: - movs r0, #0 - strh r0, [r5, #0xc] - strh r0, [r5, #8] - strh r0, [r5, #0xa] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #4 - strb r0, [r1] - movs r0, #3 - mov r1, sb - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0x46 - strb r0, [r1] - b _080484BE_return - .align 2, 0 -_08048444: .4byte gStageFlags -_08048448: .4byte sa2__sub_801EE64 -_0804844C: - adds r0, r5, #0 - adds r0, #0x3d - mov r2, r8 - strb r2, [r0] -_08048454: - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0x3f - strb r0, [r1] - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - ldrb r1, [r7] - movs r0, #2 - orrs r0, r1 - strb r0, [r7] - b _080484BE_return -_0804846E: - ldr r0, _08048498 @ =gPlayerControls - ldrh r1, [r5, #0x38] - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _080484B8 - adds r0, r5, #0 - adds r0, #0x3d - mov r1, r8 - strb r1, [r0] - adds r0, #3 - movs r1, #0x3f - strb r1, [r0] - movs r2, #8 - ldrsh r0, [r5, r2] - cmp r0, #0 - bgt _0804849C - ldr r0, [r5, #0x10] - movs r1, #1 - orrs r0, r1 - b _080484A4 - .align 2, 0 -_08048498: .4byte gPlayerControls -_0804849C: - ldr r0, [r5, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 -_080484A4: - str r0, [r5, #0x10] - ldrh r0, [r5, #8] - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - strh r0, [r5, #8] - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - b _080484BE_return -_080484B8: - adds r0, r5, #0 - bl Player_Knuckles_GlideUpdateAnim -_080484BE_return: - add sp, #0xc - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc b/sa1/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc deleted file mode 100644 index cd84b6b22a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8048980.inc +++ /dev/null @@ -1,197 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, lr} - mov ip, r0 @ ip = r0 = p - movs r1, #0xc - ldrsh r2, [r0, r1] - cmp r2, #0 - bge _0804898E - rsbs r2, r2, #0 @ r2 = qSpeedGround = ABS(p->qSpeedGround); -_0804898E: - mov r1, ip - adds r1, #0x81 - ldrb r3, [r1] @ r3 = p->w.kf.shift - mov r0, ip - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r1, #0 @ r5 = r1 = &p->w.kf.shift - cmp r0, #1 - beq _080489A6 - b _08048AB8 -_080489A6: - ldr r0, _080489B4 @ =0x000002FF - cmp r2, r0 - bgt _080489B8 - adds r2, #6 - mov r4, ip - ldr r1, [r4, #0x10] - b _080489D8 - .align 2, 0 -_080489B4: .4byte 0x000002FF -_080489B8: - ldr r0, _08048A10 @ =0x000011FF - mov r4, ip - ldr r1, [r4, #0x10] - cmp r2, r0 - bgt _080489D8 - movs r0, #0x7f - ands r0, r3 - cmp r0, #0 - bne _080489D8 - adds r2, #3 - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r1 - cmp r0, #0 - beq _080489D8 - adds r2, #6 -_080489D8: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080489FC - movs r4, #0xc0 - lsls r4, r4, #2 - cmp r2, r4 - ble _080489FC - subs r2, #9 - movs r0, #0x80 - lsls r0, r0, #6 - ands r1, r0 - cmp r1, #0 - beq _080489F6 - subs r2, #3 -_080489F6: - cmp r2, r4 - bge _080489FC - adds r2, r4, #0 -_080489FC: - ldrb r0, [r5] - adds r0, #0x40 - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _08048A14 - rsbs r0, r2, #0 - mov r1, ip - strh r0, [r1, #0xc] - b _08048A18 - .align 2, 0 -_08048A10: .4byte 0x000011FF -_08048A14: - mov r4, ip - strh r2, [r4, #0xc] -_08048A18: - mov r0, ip @ r0 = ip = p - ldrh r4, [r0, #0x38] - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08048A42 - lsls r1, r3, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #0x80 - beq _08048A78 - asrs r0, r1, #0x18 - cmp r0, #0 - bge _08048A38 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08048A38: - lsls r0, r3, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x12 - adds r0, r0, r1 - b _08048A76 -_08048A42: - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _08048A66 - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08048A78 - cmp r0, #0 - ble _08048A5C - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08048A5C: - lsls r0, r3, #0x18 - movs r3, #0x80 - lsls r3, r3, #0x12 - adds r0, r0, r3 - b _08048A76 -_08048A66: - lsls r0, r3, #0x18 - asrs r1, r0, #0x18 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08048A78 - adds r0, r1, #2 - lsls r0, r0, #0x18 -_08048A76: - lsrs r3, r0, #0x18 -_08048A78: - strb r3, [r5] - ldr r1, _08048AAC @ =gSineTable - lsls r0, r3, #0x18 - lsrs r0, r0, #0x15 - movs r4, #0x80 - lsls r4, r4, #2 - adds r0, r0, r4 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r2, r0 - asrs r0, r0, #8 - mov r1, ip @ r1 = ip = p - strh r0, [r1, #8] - ldrh r1, [r1, #0xa] - mov r2, ip @ r2 = ip = p - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r0, #0x7f - bgt _08048AB0 - adds r0, r1, #0 - adds r0, #0x18 - strh r0, [r2, #0xa] - b _08048AB8 - .align 2, 0 -_08048AAC: .4byte gSineTable -_08048AB0: - adds r0, r1, #0 - subs r0, #0x18 - mov r4, ip @ r4 = ip = p - strh r0, [r4, #0xa] -_08048AB8: - ldr r2, _08048AC8 @ =gCamera - ldrh r0, [r2, #0x22] - movs r3, #0x22 - ldrsh r1, [r2, r3] - cmp r1, #0 - ble _08048ACC - subs r0, #2 - b _08048AD2 - .align 2, 0 -_08048AC8: .4byte gCamera -_08048ACC: - cmp r1, #0 - bge _08048AD4 - adds r0, #4 -_08048AD2: - strh r0, [r2, #0x22] -_08048AD4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc b/sa1/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc deleted file mode 100644 index e86e0ec10f..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/Player__sub_8049BAC.inc +++ /dev/null @@ -1,54 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x3d - ldrb r3, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08049BC8 - subs r0, r3, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08049C04 -_08049BC8: - ldr r0, _08049C00 @ =gPlayerControls - ldrh r1, [r2, #0x3a] - ldrh r0, [r0, #2] - ands r0, r1 - cmp r0, #0 - beq _08049C04 - adds r3, r2, #0 - adds r3, #0x3d - movs r1, #0 - movs r0, #8 - strb r0, [r3] - adds r3, #1 - movs r0, #1 - strb r0, [r3] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2, #0xc] - strh r1, [r2, #8] - strh r1, [r2, #0xa] - adds r0, r2, #0 - bl sub_804A854 - movs r0, #0x70 - bl m4aSongNumStart - movs r0, #1 - b _08049C06 - .align 2, 0 -_08049C00: .4byte gPlayerControls -_08049C04: - movs r0, #0 -_08049C06: - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc b/sa1/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc deleted file mode 100644 index 86178f1b60..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/backgrounds/StageBgUpdate_Zone2_Interior.inc +++ /dev/null @@ -1,229 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov ip, r0 @ ip = x - mov r8, r1 @ r8 = y - ldr r1, _0803EA08 @ =gCamera - ldr r2, _0803EA0C @ =gBgScrollRegs - asrs r7, r0, #2 - movs r0, #0xff - ands r7, r0 - strh r7, [r1, #0x28] - strh r7, [r2, #0xc] @ r7 = xSub - mov r4, r8 - asrs r3, r4, #2 - ands r3, r0 - strh r3, [r1, #0x2a] - strh r3, [r2, #0xe] @ r3 = ySub - ldr r1, _0803EA10 @ =gFlags - ldr r0, [r1] - movs r2, #4 - orrs r0, r2 - str r0, [r1] - ldr r1, _0803EA14 @ =gHBlankCopyTarget - ldr r0, _0803EA18 @ =0x0400001C - str r0, [r1] - ldr r0, _0803EA1C @ =gHBlankCopySize - strb r2, [r0] - ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary - ldr r5, [r0] - movs r6, #0x3f - ands r6, r3 @ r6 = ySub & 0x3F - movs r4, #0 - lsls r3, r6, #0x10 - orrs r3, r7 - rsbs r2, r6, #0 @ r2 = -r6 - adds r1, r2, #0 - adds r1, #0x40 @ r1 = -r6 + 64 - cmp r2, r1 - bge _0803E8DA - adds r0, r1, #0 -_0803E8CE: - cmp r2, #0 - blt _0803E8D4 - stm r5!, {r3} -_0803E8D4: - adds r2, #1 - cmp r2, r0 - blt _0803E8CE -_0803E8DA: - adds r4, #0x40 - subs r0, r6, r4 - lsls r3, r0, #0x10 - orrs r3, r7 @ r3 = ((r6 - r4) << 16) | xSub); - rsbs r1, r6, #0 - adds r0, r4, #0 - adds r0, #0x40 - adds r0, r1, r0 @ r0 = -r6 + 64 - mov sb, r1 @ sb = -r6 - mov r1, ip - asrs r1, r1, #1 - mov sl, r1 @ sl = x >> 1 - mov r1, r8 - asrs r1, r1, #1 - str r1, [sp, #8] @ sp08 = y >> 1 - mov r1, ip - lsls r1, r1, #1 - str r1, [sp] @ sp00 = x << 1 - mov r1, r8 - lsls r1, r1, #1 - str r1, [sp, #4] @ sp04 = y << 1 - cmp r2, r0 - bge _0803E916 - adds r1, r0, #0 - subs r2, r1, r2 -_0803E90C: - stm r5!, {r3} - subs r2, #1 - cmp r2, #0 - bne _0803E90C - adds r2, r1, #0 -_0803E916: - adds r4, #0x40 - subs r0, r6, r4 - lsls r3, r0, #0x10 - orrs r3, r7 - adds r0, r4, #0 - adds r0, #0x40 - add r0, sb - cmp r2, r0 - bge _0803E934 -_0803E928: - cmp r2, #0x9f - bgt _0803E92E - stm r5!, {r3} -_0803E92E: - adds r2, #1 - cmp r2, r0 - blt _0803E928 -_0803E934: - adds r4, #0x40 - subs r0, r6, r4 - lsls r3, r0, #0x10 - orrs r3, r7 - adds r0, r4, #0 - adds r0, #0x40 - add r0, sb - cmp r2, r0 - bge _0803E952 -_0803E946: - cmp r2, #0x9f - bgt _0803E94C - stm r5!, {r3} -_0803E94C: - adds r2, #1 - cmp r2, r0 - blt _0803E946 -_0803E952: - movs r3, #0 - mov sb, sl @ sb = sl == x >> 1 - movs r4, #0xff - mov ip, r4 - ldr r0, [sp, #8] - mov r8, r0 @ r8 = (y >> 1) - ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary - ldr r5, [r0] -_0803E962: - lsls r0, r3, #5 - mov r1, sb - adds r7, r1, r0 - mov r4, ip - ands r7, r4 @ r7 = ((i << 5) + (x >> 1)) & 0xFF - lsls r0, r3, #6 - add r0, r8 - ands r0, r4 @ r0 = ((i << 6) + (y >> 1)) & 0xFF - rsbs r1, r0, #0 @ r1 = -r0 - ands r1, r4 - adds r2, r1, #0 - subs r2, #0x10 - adds r6, r3, #1 - cmp r2, r1 - bge _0803E9A0 - movs r0, #0x50 - subs r0, r0, r1 - lsls r4, r0, #0x10 - lsls r0, r2, #2 - adds r0, r0, r5 -_0803E98A: - cmp r2, #0 - blt _0803E998 - cmp r2, #0x9f - bgt _0803E998 - adds r3, r4, #0 - orrs r3, r7 - str r3, [r0] -_0803E998: - adds r0, #4 - adds r2, #1 - cmp r2, r1 - blt _0803E98A -_0803E9A0: - adds r3, r6, #0 - cmp r6, #2 - ble _0803E962 - ldr r0, [sp] - movs r1, #3 - bl __divsi3 - lsls r5, r6, #5 - adds r7, r0, r5 - movs r4, #0xff - ands r7, r4 @ r7 = ((i << 5) + Div((x << 1), 3)) & 0xFF; - ldr r0, [sp, #4] - movs r1, #3 - bl __divsi3 - lsls r1, r6, #6 - adds r0, r0, r1 - adds r0, r0, r5 - ands r0, r4 - rsbs r1, r0, #0 - ands r1, r4 - ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary - ldr r5, [r0] - adds r2, r1, #0 - subs r2, #0x18 - cmp r2, r1 - bge _0803E9F6 - movs r0, #0x68 - subs r0, r0, r1 - lsls r4, r0, #0x10 - lsls r0, r2, #2 - adds r0, r0, r5 -_0803E9E0: - cmp r2, #0 - blt _0803E9EE - cmp r2, #0x9f - bgt _0803E9EE - adds r3, r4, #0 - orrs r3, r7 - str r3, [r0] -_0803E9EE: - adds r0, #4 - adds r2, #1 - cmp r2, r1 - blt _0803E9E0 -_0803E9F6: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803EA08: .4byte gCamera -_0803EA0C: .4byte gBgScrollRegs -_0803EA10: .4byte gFlags -_0803EA14: .4byte gHBlankCopyTarget -_0803EA18: .4byte 0x0400001C -_0803EA1C: .4byte gHBlankCopySize -_0803EA20: .4byte gBgOffsetsHBlankPrimary - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/.gitkeep b/sa1/asm/non_matching/game/sa1/stage/enemies/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc deleted file mode 100644 index b40bb04dd3..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Drisame__Task_DrisameInit.inc +++ /dev/null @@ -1,315 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r3, _08072C98 @ =gCurTask - ldr r0, [r3] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 @ r7 = drisame - adds r0, #0xc - adds r0, r0, r1 - mov sb, r0 @ sb = s - ldr r5, [r7] - ldrb r2, [r7, #8] - lsls r2, r2, #3 - ldrh r0, [r7, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldrb r1, [r5, #1] - lsls r1, r1, #3 - ldrh r0, [r7, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r2, #0x10 - mov ip, r4 @ ip = r4 = worldX - asrs r2, r2, #0x10 - str r2, [r7, #0x4c] - lsrs r6, r1, #0x10 - mov r8, r6 @ r = worldY - asrs r1, r1, #0x10 - str r1, [r7, #0x50] - ldr r4, _08072C9C @ =gCamera - ldrh r0, [r4] - subs r0, r2, r0 - mov r6, sb - strh r0, [r6, #0x16] - ldrh r0, [r4, #2] - subs r0, r1, r0 - strh r0, [r6, #0x18] - movs r6, #0 - ldrsh r0, [r4, r6] - mov sl, r0 - movs r0, #0xb8 - lsls r0, r0, #1 - add r0, sl - cmp r2, r0 - bgt _08072C66 - mov r0, sl - subs r0, #0x80 - cmp r2, r0 - blt _08072C66 - movs r0, #2 - ldrsh r2, [r4, r0] - movs r4, #0x90 - lsls r4, r4, #1 - adds r0, r2, r4 - cmp r1, r0 - bgt _08072C66 - adds r0, r2, #0 - subs r0, #0x80 - cmp r1, r0 - bge _08072CA0 -_08072C66: - mov r6, sb - ldrh r0, [r6, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08072C8C - movs r1, #0x18 - ldrsh r0, [r6, r1] - adds r0, #0x80 - cmp r0, #0 - blt _08072C8C - movs r2, #0x18 - ldrsh r1, [r6, r2] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08072CA0 -_08072C8C: - ldrb r0, [r7, #8] - strb r0, [r5] - ldr r0, [r3] - bl TaskDestroy - b _08072E58 - .align 2, 0 -_08072C98: .4byte gCurTask -_08072C9C: .4byte gCamera -_08072CA0: - ldr r6, _08072D40 @ =gPlayer - ldr r0, [r6, #4] - asrs r0, r0, #8 - mov r3, r8 - lsls r5, r3, #0x10 - asrs r4, r5, #0x10 - mov sl, r4 - subs r0, r0, r4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, [r6] - asrs r1, r1, #8 - mov r2, ip - lsls r4, r2, #0x10 - asrs r3, r4, #0x10 - mov r8, r3 - subs r1, r1, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sa2__sub_8004418 - ldr r1, _08072D44 @ =0x000003FF - ands r1, r0 - str r1, [sp] - adds r2, r1, #0 - ldr r3, _08072D48 @ =0xFFFFFE7F - adds r0, r2, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r4, [sp, #4] - str r5, [sp, #8] - cmp r0, #0xfe - bhi _08072D8A - ldr r0, [r6, #4] - asrs r0, r0, #8 - mov r4, sl - subs r0, r0, r4 - adds r5, r0, #0 - muls r5, r0, r5 - ldr r0, [r6] - asrs r0, r0, #8 - mov r6, r8 - subs r0, r0, r6 - adds r1, r0, #0 - muls r1, r0, r1 - adds r0, r1, #0 - adds r5, r5, r0 - ldr r0, _08072D4C @ =0x000018FF - cmp r5, r0 - bgt _08072D8A - ldr r0, [r7, #0x54] - ldrh r0, [r0, #6] - ldr r3, _08072D50 @ =0x030000BD - adds r0, r0, r3 - movs r1, #1 - strb r1, [r0] - mov r4, sb - ldr r0, [r4, #0x10] - ldr r1, _08072D54 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r4, #0x10] - ldr r1, _08072D58 @ =gSineTable - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r2, r6 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r4, [r0, r1] - adds r0, r4, #0 - movs r1, #0x23 - bl Div - cmp r0, #0 - bge _08072D5C - adds r0, r4, #0 - movs r1, #0x23 - bl Div - b _08072D66 - .align 2, 0 -_08072D40: .4byte gPlayer -_08072D44: .4byte 0x000003FF -_08072D48: .4byte 0xFFFFFE7F -_08072D4C: .4byte 0x000018FF -_08072D50: .4byte 0x030000BD -_08072D54: .4byte 0xFFFFFBFF -_08072D58: .4byte gSineTable -_08072D5C: - adds r0, r4, #0 - movs r1, #0x23 - bl Div - rsbs r0, r0, #0 -_08072D66: - str r0, [r7, #0x3c] - ldr r1, _08072E34 @ =gSineTable - ldr r2, [sp] - lsls r0, r2, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r1, #0x23 - bl Div - str r0, [r7, #0x40] - movs r0, #0 - str r0, [r7, #0x44] - str r0, [r7, #0x48] - ldr r0, _08072E38 @ =gCurTask - ldr r1, [r0] - ldr r0, _08072E3C @ =sub_8072E68 - str r0, [r1, #8] -_08072D8A: - ldr r4, [sp] - mov r8, r4 - mov r0, r8 - subs r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #0x12 - cmp r0, r1 - bls _08072E18 - ldr r2, _08072E40 @ =gPlayer - ldr r0, [r2, #4] - asrs r0, r0, #8 - ldr r6, [sp, #8] - asrs r1, r6, #0x10 - subs r0, r0, r1 - adds r5, r0, #0 - muls r5, r0, r5 - ldr r0, [r2] - asrs r0, r0, #8 - ldr r2, [sp, #4] - asrs r1, r2, #0x10 - subs r0, r0, r1 - adds r3, r0, #0 - muls r3, r0, r3 - adds r0, r3, #0 - adds r5, r5, r0 - ldr r0, _08072E44 @ =0x000018FF - cmp r5, r0 - bgt _08072E18 - ldr r0, [r7, #0x54] - ldrh r0, [r0, #6] - ldr r4, _08072E48 @ =0x030000BD - adds r0, r0, r4 - movs r6, #0 - movs r1, #1 - strb r1, [r0] - mov r1, sb - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - mov r2, sb - str r0, [r2, #0x10] - ldr r5, _08072E34 @ =gSineTable - movs r0, #0x80 - lsls r0, r0, #1 - add r0, r8 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r4, #0x23 - adds r1, r4, #0 - bl Div - str r0, [r7, #0x3c] - mov r1, r8 - lsls r0, r1, #1 - adds r0, r0, r5 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r4, #0 - bl Div - str r0, [r7, #0x40] - str r6, [r7, #0x44] - str r6, [r7, #0x48] - ldr r0, _08072E38 @ =gCurTask - ldr r1, [r0] - ldr r0, _08072E3C @ =sub_8072E68 - str r0, [r1, #8] -_08072E18: - ldr r3, [sp, #4] - asrs r1, r3, #0x10 - ldr r4, [sp, #8] - asrs r2, r4, #0x10 - mov r0, sb - bl Coll_Player_Enemy_Attack - cmp r0, #0 - beq _08072E4C - ldr r0, _08072E38 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08072E58 - .align 2, 0 -_08072E34: .4byte gSineTable -_08072E38: .4byte gCurTask -_08072E3C: .4byte sub_8072E68 -_08072E40: .4byte gPlayer -_08072E44: .4byte 0x000018FF -_08072E48: .4byte 0x030000BD -_08072E4C: - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - bl DisplaySprite -_08072E58: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc deleted file mode 100644 index 4cb14c2def..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Kuraa__Task_80737A8.inc +++ /dev/null @@ -1,252 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r3, _08073868 @ =gCurTask - ldr r0, [r3] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r1 - mov r8, r0 @ r8 = kuraa - ldr r0, _0807386C @ =0x0300000C - adds r4, r1, r0 @ r4 = s - mov r1, r8 - ldr r1, [r1] - mov ip, r1 @ ip = r1 = me - mov r5, r8 - ldrb r2, [r5, #8] - lsls r2, r2, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldX - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 @ r1 = worldY - lsls r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 @ r2 = worldX - lsrs r7, r1, #0x10 - mov sl, r7 @ sl = r7 = worldY - asrs r6, r1, #0x10 - ldr r0, [r5, #0x3c] - asrs r0, r0, #8 - adds r0, r2, r0 - lsls r0, r0, #0x10 - ldr r5, _08073870 @ =gCamera - ldrh r1, [r5] - lsrs r7, r0, #0x10 - mov sb, r7 - asrs r0, r0, #0x10 - subs r0, r0, r1 - strh r0, [r4, #0x16] - ldrh r0, [r5, #2] - subs r0, r6, r0 - strh r0, [r4, #0x18] - movs r0, #0 - ldrsh r1, [r5, r0] - movs r7, #0xb8 - lsls r7, r7, #1 - adds r0, r1, r7 - cmp r2, r0 - bgt _08073834 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _08073834 - movs r0, #2 - ldrsh r1, [r5, r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r1, r2 - cmp r6, r0 - bgt _08073834 - adds r0, r1, #0 - subs r0, #0x80 - cmp r6, r0 - bge _08073874 -_08073834: - ldrh r0, [r4, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08073858 - movs r5, #0x18 - ldrsh r0, [r4, r5] - adds r0, #0x80 - cmp r0, #0 - blt _08073858 - movs r7, #0x18 - ldrsh r1, [r4, r7] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08073874 -_08073858: - mov r1, r8 - ldrb r0, [r1, #8] - mov r2, ip - strb r0, [r2] - ldr r0, [r3] - bl TaskDestroy - b _08073974 - .align 2, 0 -_08073868: .4byte gCurTask -_0807386C: .4byte 0x0300000C -_08073870: .4byte gCamera -_08073874: - ldr r1, [r4, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08073928 - mov r5, sb - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - adds r1, #0x2c - movs r7, #0 - ldrsb r7, [r1, r7] - adds r5, r0, r7 - ldr r2, _08073984 @ =gPlayer - ldr r1, [r2] - asrs r1, r1, #8 - ldr r3, _08073988 @ =gPlayerBodyPSI - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov ip, r0 - add r1, ip - mov sb, r2 - adds r6, r3, #0 - cmp r5, r1 - bgt _080738C2 - adds r0, r4, #0 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r7 - adds r0, r5, r0 - cmp r0, r1 - bge _080738D6 - cmp r5, r1 - blt _08073928 -_080738C2: - adds r0, r6, #0 - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r7, ip - subs r0, r0, r7 - adds r0, r1, r0 - cmp r0, r5 - blt _08073928 -_080738D6: - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - adds r3, r4, #0 - adds r3, #0x2d - movs r5, #0 - ldrsb r5, [r3, r5] - adds r1, r0, r5 - mov r2, sb - ldr r0, [r2, #4] - asrs r0, r0, #8 - adds r3, r6, #0 - adds r3, #0x39 - movs r2, #0 - ldrsb r2, [r3, r2] - adds r3, r0, r2 - cmp r1, r3 - bgt _08073910 - adds r0, r4, #0 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r3 - bge _08073922 - cmp r1, r3 - blt _08073928 -_08073910: - adds r0, r6, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r3, r0 - cmp r0, r1 - blt _08073928 -_08073922: - mov r0, sb - bl Coll_DamagePlayer -_08073928: - mov r1, r8 - adds r1, #0x42 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x77 - ble _08073950 - adds r1, r4, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0 - strb r0, [r1] - ldr r0, _0807398C @ =gCurTask - ldr r1, [r0] - ldr r0, _08073990 @ =Task_KuraaInit - str r0, [r1, #8] -_08073950: - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r4, #0x10] - adds r0, r4, #0 - bl DisplaySprite - ldr r0, [r4, #0x10] - ldr r1, _08073994 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r4, #0x10] -_08073974: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08073984: .4byte gPlayer -_08073988: .4byte gPlayerBodyPSI -_0807398C: .4byte gCurTask -_08073990: .4byte Task_KuraaInit -_08073994: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc deleted file mode 100644 index a7ce460221..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Leon__Task_LeonInit.inc +++ /dev/null @@ -1,321 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r4, _0806EB90 @ =gCurTask - ldr r0, [r4] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r3, r0 @ r5 = leon - adds r0, #0xc - adds r6, r3, r0 @ r6 = s - ldr r1, [r5] - mov sb, r1 @ sb = me - ldrb r2, [r5, #8] - lsls r2, r2, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldX - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 @ r1 = worldY - lsls r2, r2, #0x10 - asrs r7, r2, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov ip, r1 - ldr r2, _0806EB94 @ =0x03000048 - adds r0, r3, r2 - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, [r5, #0x44] - adds r0, r0, r1 - str r0, [r5, #0x44] - asrs r0, r0, #8 - adds r0, r7, r0 - lsls r0, r0, #0x10 - ldr r1, _0806EB98 @ =0x0300004C - adds r3, r3, r1 - ldrh r1, [r3] - add r1, ip - lsls r1, r1, #0x10 - ldr r3, _0806EB9C @ =gCamera - ldrh r2, [r3] - mov r8, r2 - lsrs r2, r0, #0x10 - mov sl, r2 - asrs r0, r0, #0x10 - mov r2, r8 - subs r0, r0, r2 - strh r0, [r6, #0x16] - ldrh r0, [r3, #2] - lsrs r2, r1, #0x10 - mov r8, r2 - asrs r1, r1, #0x10 - subs r1, r1, r0 - strh r1, [r6, #0x18] - movs r0, #0 - ldrsh r1, [r3, r0] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r1, r2 - cmp r7, r0 - bgt _0806EB5E - adds r0, r1, #0 - subs r0, #0x80 - cmp r7, r0 - blt _0806EB5E - movs r0, #2 - ldrsh r2, [r3, r0] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r2, r1 - cmp ip, r0 - bgt _0806EB5E - adds r0, r2, #0 - subs r0, #0x80 - cmp ip, r0 - bge _0806EBA0 -_0806EB5E: - ldrh r0, [r6, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0806EB82 - movs r2, #0x18 - ldrsh r0, [r6, r2] - adds r0, #0x80 - cmp r0, #0 - blt _0806EB82 - movs r3, #0x18 - ldrsh r1, [r6, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0806EBA0 -_0806EB82: - ldrb r0, [r5, #8] - mov r1, sb - strb r0, [r1] - ldr r0, [r4] - bl TaskDestroy - b _0806ED2C - .align 2, 0 -_0806EB90: .4byte gCurTask -_0806EB94: .4byte 0x03000048 -_0806EB98: .4byte 0x0300004C -_0806EB9C: .4byte gCamera -_0806EBA0: - mov r2, sl - lsls r0, r2, #0x10 - asrs r7, r0, #0x10 - mov r3, r8 - lsls r0, r3, #0x10 - asrs r4, r0, #0x10 - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl Coll_Player_Enemy_Attack - mov r8, r0 - cmp r0, #0 - beq _0806EBCC - ldr r0, _0806EBC8 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0806ED2C - .align 2, 0 -_0806EBC8: .4byte gCurTask -_0806EBCC: - adds r0, r4, #3 - add r1, sp, #8 - str r1, [sp] - ldr r1, _0806EC34 @ =sa2__sub_801EE64 - str r1, [sp, #4] - adds r1, r7, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F07C - adds r2, r5, #0 - adds r2, #0x4c - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - ldr r0, [r5, #0x44] - asrs r2, r0, #8 - mov r3, sb - movs r1, #3 - ldrsb r1, [r3, r1] - lsls r0, r1, #3 - cmp r2, r0 - bgt _0806EC40 - ldr r0, [r6, #0x10] - mvns r0, r0 - movs r2, #0x80 - lsls r2, r2, #3 - ands r0, r2 - cmp r0, #0 - bne _0806EC0A - b _0806ED20 -_0806EC0A: - adds r1, r5, #0 - adds r1, #0x48 - movs r0, #0xa0 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x4a - mov r1, r8 - strh r1, [r0] - adds r1, r6, #0 - adds r1, #0x20 - movs r0, #2 - strb r0, [r1] - ldr r0, _0806EC38 @ =gCurTask - ldr r1, [r0] - ldr r0, _0806EC3C @ =Task_806ED3C - str r0, [r1, #8] - ldr r0, [r6, #0x10] - orrs r0, r2 - str r0, [r6, #0x10] - b _0806ED20 - .align 2, 0 -_0806EC34: .4byte sa2__sub_801EE64 -_0806EC38: .4byte gCurTask -_0806EC3C: .4byte Task_806ED3C -_0806EC40: - mov r3, sb - ldrb r0, [r3, #5] - adds r0, r1, r0 - lsls r0, r0, #3 - cmp r2, r0 - blt _0806EC94 - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0806ED20 - adds r1, r5, #0 - adds r1, #0x48 - ldr r0, _0806EC84 @ =0x0000FF60 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x4a - mov r1, r8 - strh r1, [r0] - adds r1, r6, #0 - adds r1, #0x20 - movs r0, #2 - strb r0, [r1] - ldr r0, [r6, #0x10] - ldr r1, _0806EC88 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r6, #0x10] - ldr r0, _0806EC8C @ =gCurTask - ldr r1, [r0] - ldr r0, _0806EC90 @ =Task_806ED3C - str r0, [r1, #8] - b _0806ED20 - .align 2, 0 -_0806EC84: .4byte 0x0000FF60 -_0806EC88: .4byte 0xFFFFFBFF -_0806EC8C: .4byte gCurTask -_0806EC90: .4byte Task_806ED3C -_0806EC94: - adds r3, r5, #0 - adds r3, #0x4e - ldrh r0, [r3] - movs r1, #0 - ldrsh r2, [r3, r1] - mov r8, r2 - cmp r2, #0 - bne _0806ED1C - ldr r2, _0806ECE4 @ =gPlayer - ldr r0, [r2, #4] - asrs r1, r0, #8 - adds r0, r4, #0 - adds r0, #8 - cmp r1, r0 - bgt _0806ED20 - subs r0, #0x28 - cmp r0, r1 - bgt _0806ED20 - ldr r1, [r6, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - cmp r1, #0 - beq _0806ECE8 - ldr r0, [r2] - asrs r1, r0, #8 - cmp r1, r7 - blt _0806ED20 - adds r0, r7, #0 - adds r0, #0x50 - cmp r0, r1 - blt _0806ED20 - movs r0, #0x3c - strh r0, [r3] - adds r0, r5, #0 - adds r0, #0x4a - mov r2, r8 - strh r2, [r0] - b _0806ED02 - .align 2, 0 -_0806ECE4: .4byte gPlayer -_0806ECE8: - ldr r0, [r2] - asrs r2, r0, #8 - cmp r2, r7 - bgt _0806ED20 - adds r0, r7, #0 - subs r0, #0x50 - cmp r0, r2 - bgt _0806ED20 - movs r0, #0x3c - strh r0, [r3] - adds r0, r5, #0 - adds r0, #0x4a - strh r1, [r0] -_0806ED02: - adds r1, r6, #0 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - ldr r0, _0806ED14 @ =gCurTask - ldr r1, [r0] - ldr r0, _0806ED18 @ =Task_806EEA4 - str r0, [r1, #8] - b _0806ED20 - .align 2, 0 -_0806ED14: .4byte gCurTask -_0806ED18: .4byte Task_806EEA4 -_0806ED1C: - subs r0, #1 - strh r0, [r3] -_0806ED20: - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite -_0806ED2C: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc deleted file mode 100644 index 1ad59bb57e..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Pen__Task_PenMk1Snowball.inc +++ /dev/null @@ -1,314 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _08074010 @ =gCurTask - ldr r0, [r0] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r3, r0 @ r6 = proj = s - mov r8, r6 @ r8 = proj = s - ldr r1, _08074014 @ =0x0300004B - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08073FAE - ldrh r0, [r6, #0x32] - adds r0, #0x3c - strh r0, [r6, #0x32] -_08073FAE: - movs r2, #0x30 - ldrsh r0, [r6, r2] - ldr r1, [r6, #0x34] - adds r1, r1, r0 - str r1, [r6, #0x34] - movs r7, #0x32 - ldrsh r0, [r6, r7] - ldr r2, [r6, #0x38] - adds r2, r2, r0 - str r2, [r6, #0x38] - ldr r0, [r6, #0x3c] - asrs r1, r1, #8 - adds r0, r0, r1 - strh r0, [r6, #0x16] - ldr r0, [r6, #0x44] - asrs r2, r2, #8 - adds r0, r0, r2 - strh r0, [r6, #0x18] - ldrh r0, [r6, #0x16] - mov sl, r0 @ sl = s->x - ldrh r1, [r6, #0x18] - str r1, [sp, #0xc] @ sp0C = s->y - ldr r5, _08074018 @ =gSineTable - ldr r2, _0807401C @ =0x0300004A - adds r4, r3, r2 - ldrb r0, [r4] @ r0 = proj->unk4A - ldr r7, _08074020 @ =0x000003FF - mov sb, r7 @ sb = 0x3FF - lsls r0, r0, #3 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - subs r7, #0x17 @ r7 = 1000 - adds r1, r7, #0 - bl Div - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 @ r1 = divRes - cmp r1, #0 - bge _0807402C - movs r2, #0x30 - ldrsh r0, [r6, r2] - adds r0, r1, r0 - ldr r1, _08074024 @ =0x0000FFFE - cmp r0, r1 - ble _0807402C - ldr r0, _08074028 @ =0x0000FFFF - strh r0, [r6, #0x30] - b _08074048 - .align 2, 0 -_08074010: .4byte gCurTask -_08074014: .4byte 0x0300004B -_08074018: .4byte gSineTable -_0807401C: .4byte 0x0300004A -_08074020: .4byte 0x000003FF -_08074024: .4byte 0x0000FFFE -_08074028: .4byte 0x0000FFFF -_0807402C: - ldrb r0, [r4] - lsls r0, r0, #2 - mov r1, sb - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r7, #0 - bl Div - ldrh r1, [r6, #0x30] - adds r1, r1, r0 - strh r1, [r6, #0x30] -_08074048: - ldr r1, _080740AC @ =gSineTable - mov r4, r8 @ r4 = r8 = proj - adds r4, #0x4a - ldrb r0, [r4] - lsls r0, r0, #3 - movs r7, #0x80 - lsls r7, r7, #2 - adds r0, r0, r7 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0xfa - lsls r1, r1, #2 - bl Div - mov r2, r8 @ r2 = r8 = proj - ldr r1, [r2, #0x38] - adds r1, r1, r0 - str r1, [r2, #0x38] - mov r7, r8 @ r7 = r8 = proj - adds r7, #0x48 - ldrh r0, [r7] - str r4, [sp, #0x10] @ sp10 = &proj->unk4A - cmp r0, #0 - beq _0807407E - subs r0, #1 - strh r0, [r7] -_0807407E: - mov r0, sl - lsls r5, r0, #0x10 - asrs r1, r5, #0x10 - mov sb, r1 @ sb = r1 = s->x - ldr r2, [sp, #0xc] - lsls r4, r2, #0x10 - asrs r0, r4, #0x10 - mov sl, r0 @ sl = s->y - adds r0, r6, #0 - mov r2, sl - bl Coll_Player_Projectile - cmp r0, #0 - bne _080740A0 - ldrh r0, [r7] - cmp r0, #0 - bne _080740B0 -_080740A0: - mov r0, sb - mov r1, sl - bl CreatePenMk1SnowballDebris - b _080741BC_destroy_n_return - .align 2, 0 -_080740AC: .4byte gSineTable -_080740B0: - ldr r2, _080740F0 @ =gCamera - ldrh r0, [r6, #0x16] - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r6, #0x16] - ldrh r0, [r6, #0x18] - ldrh r1, [r2, #2] - subs r0, r0, r1 - strh r0, [r6, #0x18] - add r1, sp, #8 - str r1, [sp] - ldr r0, _080740F4 @ =sa2__sub_801EE64 - str r0, [sp, #4] - mov r0, sl - mov r1, sb - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F07C - adds r3, r0, #0 - cmp r3, #0 - ble _080740F8 - mov r0, r8 - adds r0, #0x4b - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _080740EC - mov r7, r8 - strh r1, [r7, #0x32] -_080740EC: - movs r0, #1 - b _0807411E - .align 2, 0 -_080740F0: .4byte gCamera -_080740F4: .4byte sa2__sub_801EE64 -_080740F8: - mov r0, r8 - adds r0, #0x4b - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - beq _08074118 - movs r0, #0 - ldr r1, [sp, #0x10] @ r1 = sp10 = &proj->unk4A - strb r0, [r1] - mov r7, r8 - movs r0, #0x32 - ldrsh r1, [r7, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bgt _080740A0 -_08074118: - cmp r3, #0 - bge _08074120 - movs r0, #0 -_0807411E: - strb r0, [r2] -_08074120: - ldrb r2, [r2] - cmp r2, #0 - bne _08074174 - cmp r3, #0 - bge _08074138 - lsls r1, r3, #8 - mov r7, r8 - ldr r0, [r7, #0x38] - adds r0, r0, r1 - str r0, [r7, #0x38] - strh r2, [r7, #0x32] - b _08074144 -_08074138: - lsls r0, r3, #6 - mov r1, r8 - ldrh r1, [r1, #0x32] - adds r0, r0, r1 - mov r2, r8 - strh r0, [r2, #0x32] -_08074144: - add r1, sp, #8 - ldr r7, [sp, #0x10] @ r7 = sp10 = &proj->unk4A - ldrb r0, [r7] - ldrb r1, [r1] - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0807415E - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_0807415E: - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x3f - ble _08074170 -_08074166_debr_destroy_ret: - asrs r0, r5, #0x10 @ oldWorldX - asrs r1, r4, #0x10 @ oldWorldY - bl CreatePenMk1SnowballDebris - b _080741BC_destroy_n_return -_08074170: - ldr r0, [sp, #0x10] @ r0 = sp10 = &proj->unk4A - strb r1, [r0] -_08074174: - adds r0, r3, #5 - cmp r0, #5 - bhi _08074198 - add r0, sp, #8 - ldrb r1, [r0] - adds r0, r1, #0 - adds r0, #0x3f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1c - bls _08074166_debr_destroy_ret - adds r0, r1, #0 - adds r0, #0x5d - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1c - bhi _080741CC - b _08074166_debr_destroy_ret -_08074198: - ldrh r0, [r6, #0x16] - adds r0, #0x3c - lsls r0, r0, #0x10 - movs r1, #0xb4 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _080741BC_destroy_n_return - movs r1, #0x18 - ldrsh r0, [r6, r1] - adds r0, #0x3c - cmp r0, #0 - blt _080741BC_destroy_n_return - movs r2, #0x18 - ldrsh r1, [r6, r2] - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - ble _080741CC -_080741BC_destroy_n_return: - ldr r0, _080741C8 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _080741D8_return - .align 2, 0 -_080741C8: .4byte gCurTask -_080741CC: - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite -_080741D8_return: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc deleted file mode 100644 index 2c01486160..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Senbon__Task_SenbonInit.inc +++ /dev/null @@ -1,246 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _08070BA0 @ =gCurTask - ldr r0, [r4] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r3, r0 @ r6 = senbon - adds r0, #0xc - adds r5, r3, r0 @ r5 = s - ldr r1, [r6] - mov r8, r1 @ r8 = me - ldrb r2, [r6, #8] - lsls r2, r2, #3 - ldrh r0, [r6, #4] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldX - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r6, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r2, r2, #0x10 - asrs r7, r2, #0x10 @ r7 = worldX - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov ip, r1 @ ip = worldY - ldr r2, _08070BA4 @ =0x03000048 - adds r3, r3, r2 - movs r0, #0 - ldrsh r1, [r3, r0] - ldr r0, [r6, #0x40] - adds r0, r0, r1 - str r0, [r6, #0x40] @ senbon->unk40 += senbon->unk48 - asrs r0, r0, #8 - adds r0, r7, r0 - lsls r0, r0, #0x10 - ldrh r1, [r6, #0x3c] - add r1, ip - lsls r1, r1, #0x10 - ldr r3, _08070BA8 @ =gCamera - ldrh r2, [r3] - mov sb, r2 - lsrs r2, r0, #0x10 - mov sl, r2 @ sl = offsetWorldX = worldX + senbon->unk40; - asrs r0, r0, #0x10 - mov r2, sb - subs r0, r0, r2 - strh r0, [r5, #0x16] - ldrh r0, [r3, #2] - lsrs r2, r1, #0x10 - mov sb, r2 - asrs r1, r1, #0x10 - subs r1, r1, r0 - strh r1, [r5, #0x18] - movs r0, #0 - ldrsh r1, [r3, r0] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r1, r2 - cmp r7, r0 - bgt _08070B6C - adds r0, r1, #0 - subs r0, #0x80 - cmp r7, r0 - blt _08070B6C - movs r0, #2 - ldrsh r2, [r3, r0] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r2, r1 - cmp ip, r0 - bgt _08070B6C - adds r0, r2, #0 - subs r0, #0x80 - cmp ip, r0 - bge _08070BAC -_08070B6C: - ldrh r0, [r5, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08070B90 - movs r2, #0x18 - ldrsh r0, [r5, r2] - adds r0, #0x80 - cmp r0, #0 - blt _08070B90 - movs r3, #0x18 - ldrsh r1, [r5, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08070BAC -_08070B90: - ldrb r0, [r6, #8] - mov r1, r8 - strb r0, [r1] - ldr r0, [r4] - bl TaskDestroy - b _08070C98 - .align 2, 0 -_08070BA0: .4byte gCurTask -_08070BA4: .4byte 0x03000048 -_08070BA8: .4byte gCamera -_08070BAC: - mov r2, sl @ r2 = sl = offsetWorldX - lsls r0, r2, #0x10 - asrs r4, r0, #0x10 - mov r3, sb - lsls r2, r3, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl Coll_Player_Enemy_Attack - cmp r0, #0 - beq _08070BD4 - ldr r0, _08070BD0 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08070C98 - .align 2, 0 -_08070BD0: .4byte gCurTask -_08070BD4: - ldr r0, [r6, #0x40] - asrs r2, r0, #8 - mov r0, r8 - movs r1, #3 - ldrsb r1, [r0, r1] - adds r0, r1, #1 - lsls r0, r0, #3 - cmp r2, r0 - bgt _08070BFA - adds r1, r6, #0 - adds r1, #0x48 - movs r0, #0xa0 - strh r0, [r1] - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r5, #0x10] - b _08070C8C -_08070BFA: - mov r3, r8 - ldrb r0, [r3, #5] - adds r0, r1, r0 - subs r0, #1 - lsls r0, r0, #3 - cmp r2, r0 - blt _08070C24 - adds r1, r6, #0 - adds r1, #0x48 - ldr r0, _08070C1C @ =0x0000FF60 - strh r0, [r1] - ldr r0, [r5, #0x10] - ldr r1, _08070C20 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r5, #0x10] - b _08070C8C - .align 2, 0 -_08070C1C: .4byte 0x0000FF60 -_08070C20: .4byte 0xFFFFFBFF -_08070C24: - adds r1, r6, #0 - adds r1, #0x46 - ldrh r0, [r1] - movs r3, #0 - ldrsh r2, [r1, r3] - cmp r2, #0 - beq _08070C38 - subs r0, #1 - strh r0, [r1] - b _08070C8C -_08070C38: - ldr r1, [r5, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - cmp r1, #0 - beq _08070C64 - ldr r0, _08070C60 @ =gPlayer - ldr r0, [r0] - asrs r1, r0, #8 - cmp r1, r4 - blt _08070C8C - adds r0, r4, #0 - adds r0, #0x50 - cmp r0, r1 - blt _08070C8C - adds r0, r6, #0 - adds r0, #0x44 - strh r2, [r0] - b _08070C7C - .align 2, 0 -_08070C60: .4byte gPlayer -_08070C64: - ldr r0, _08070CA8 @ =gPlayer - ldr r0, [r0] - asrs r2, r0, #8 - cmp r2, r4 - bgt _08070C8C - adds r0, r4, #0 - subs r0, #0x50 - cmp r0, r2 - bgt _08070C8C - adds r0, r6, #0 - adds r0, #0x44 - strh r1, [r0] -_08070C7C: - adds r1, r5, #0 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - ldr r0, _08070CAC @ =gCurTask - ldr r1, [r0] - ldr r0, _08070CB0 @ =Task_8070CB4 - str r0, [r1, #8] -_08070C8C: - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - bl DisplaySprite -_08070C98: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08070CA8: .4byte gPlayer -_08070CAC: .4byte gCurTask -_08070CB0: .4byte Task_8070CB4 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc deleted file mode 100644 index f6f20b7c17..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Slot__Task_SlotProjectileMain.inc +++ /dev/null @@ -1,278 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - ldr r0, _0806E628 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r4, r0 @ r6 = proj - ldr r0, [r6, #0x34] - movs r1, #0x80 - lsls r1, r1, #1 - bl Div - strh r0, [r6, #0x16] - ldr r0, _0806E62C @ =0x0300004C - adds r5, r4, r0 - ldrh r0, [r5] - adds r0, #0x28 - strh r0, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x18] - adds r0, r0, r1 - strh r0, [r6, #0x18] - ldrh r2, [r6, #0x18] - str r2, [sp, #0x10] @ sp10 = s->y - ldrh r0, [r6, #0x16] - str r0, [sp, #0xc] @ sp0C = s->x - movs r2, #0x16 - ldrsh r1, [r6, r2] - mov sb, r1 @ sb = - ldr r0, [sp, #0x10] - lsls r0, r0, #0x10 - mov sl, r0 - asrs r7, r0, #0x10 - adds r0, r6, #0 - adds r2, r7, #0 - bl Coll_Player_Projectile - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - mov r8, r1 - ldr r3, _0806E630 @ =gCamera - ldrh r0, [r6, #0x16] - ldrh r1, [r3] - subs r0, r0, r1 - strh r0, [r6, #0x16] - ldrh r2, [r6, #0x18] - ldrh r1, [r3, #2] - subs r2, r2, r1 - strh r2, [r6, #0x18] - adds r0, #0x14 - lsls r0, r0, #0x10 - movs r1, #0x8a - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0806E61E - movs r1, #0x18 - ldrsh r0, [r6, r1] - adds r0, #0x14 - cmp r0, #0 - blt _0806E61E - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xf0 - ble _0806E634 -_0806E61E: - ldr r0, _0806E628 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0806E782_return - .align 2, 0 -_0806E628: .4byte gCurTask -_0806E62C: .4byte 0x0300004C -_0806E630: .4byte gCamera -_0806E634: - add r2, sp, #8 - str r2, [sp] - ldr r0, _0806E794 @ =sa2__sub_801EE64 - str r0, [sp, #4] - adds r0, r7, #0 - mov r1, sb - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F07C - mov sb, r0 - cmp r0, #0 - ble _0806E656 - mov r0, r8 - cmp r0, #0 - bne _0806E656 - b _0806E76A -_0806E656: - mov r1, r8 - cmp r1, #0 - beq _0806E662 - add r1, sp, #8 - movs r0, #0 - strb r0, [r1] -_0806E662: - ldrh r1, [r5] - ldr r2, [r6, #0x34] - str r2, [sp, #0x14] - movs r0, #0x2d - strh r0, [r6, #0x30] - movs r7, #0 - mov r0, sl - str r0, [sp, #0x28] - ldr r2, _0806E798 @ =0x0300004C - adds r2, r4, r2 - str r2, [sp, #0x18] @ sp18 = unk4C - ldr r0, _0806E79C @ =0x03000058 - adds r0, r4, r0 - str r0, [sp, #0x1c] @ sp1C = unk58 - ldr r2, _0806E7A0 @ =0x03000064 - adds r2, r4, r2 - str r2, [sp, #0x20] @ sp20 = unk64 - ldr r0, _0806E7A4 @ =0x03000034 - adds r0, r4, r0 - str r0, [sp, #0x38] @ sp38 = unk34 - ldr r2, _0806E7A8 @ =0x03000070 - adds r2, r4, r2 - str r2, [sp, #0x24] @ sp24 = unk70 - ldr r0, _0806E7AC @ =0x03000088 - adds r0, r4, r0 - str r0, [sp, #0x34] @ sp34 = unk88 - ldr r2, _0806E7B0 @ =0x03000021 - adds r2, r4, r2 - str r2, [sp, #0x30] @ sp30 = unk21 - ldr r0, _0806E7B4 @ =0x03000020 - adds r0, r4, r0 - str r0, [sp, #0x2c] @ sp2C = unk20 - ldr r2, _0806E7B8 @ =gSineTable - mov sl, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r8, r1 -_0806E6AC: - mov r0, r8 - lsls r4, r0, #2 - add r4, r8 - lsls r4, r4, #1 - ldr r2, _0806E7BC @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _0806E7C0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _0806E7C4 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r2] - movs r1, #4 - bl Mod - adds r1, r0, #0 - adds r1, #0x10 - rsbs r0, r4, #0 - bl Div - lsls r4, r7, #1 - ldr r2, [sp, #0x18] - adds r5, r2, r4 @ r5 = &proj->unk4C - add r1, sp, #8 - ldrb r1, [r1] - lsls r1, r1, #2 - movs r2, #0x7f - ands r1, r2 - adds r2, #0x81 - adds r1, r1, r2 - lsls r1, r1, #1 - add r1, sl - movs r2, #0 - ldrsh r1, [r1, r2] - muls r0, r1, r0 - ldr r1, _0806E7C8 @ =0x00004E20 - bl __divsi3 - strh r0, [r5] - ldr r1, [sp, #0x1c] - adds r0, r1, r4 - mov r2, sp - ldrh r2, [r2, #0xc] - strh r2, [r0] - ldr r0, [sp, #0x20] - adds r4, r0, r4 - ldr r1, [sp, #0x28] - asrs r0, r1, #0x10 - add r0, sb - strh r0, [r4] - lsls r4, r7, #2 - ldr r2, [sp, #0x38] - adds r0, r2, r4 - ldr r1, [sp, #0x14] - str r1, [r0] - add r1, sp, #8 - lsls r0, r7, #3 - subs r0, #0x18 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0806E7CC @ =0x000003FF - ands r0, r1 - lsls r0, r0, #1 - add r0, sl - movs r2, #0 - ldrsh r0, [r0, r2] - movs r1, #0x1e - bl Div - ldr r1, [sp, #0x24] - adds r4, r1, r4 - str r0, [r4] - ldr r2, [sp, #0x34] - adds r1, r2, r7 - movs r0, #1 - strb r0, [r1] - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #5 - bls _0806E6AC - movs r0, #0xff - ldr r1, [sp, #0x30] - strb r0, [r1] - ldr r0, _0806E7D0 @ =0x06012680 - str r0, [r6, #4] - movs r1, #0 - ldr r0, _0806E7D4 @ =0x000001A5 - strh r0, [r6, #0xa] - ldr r2, [sp, #0x2c] - strb r1, [r2] - ldr r0, _0806E7D8 @ =gCurTask - ldr r1, [r0] - ldr r0, _0806E7DC @ =sub_806E7E0 - str r0, [r1, #8] -_0806E76A: - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite - mov r0, sp - ldrh r0, [r0, #0xc] - strh r0, [r6, #0x16] - mov r1, sp - ldrh r1, [r1, #0x10] - strh r1, [r6, #0x18] -_0806E782_return: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806E794: .4byte sa2__sub_801EE64 -_0806E798: .4byte 0x0300004C -_0806E79C: .4byte 0x03000058 -_0806E7A0: .4byte 0x03000064 -_0806E7A4: .4byte 0x03000034 -_0806E7A8: .4byte 0x03000070 -_0806E7AC: .4byte 0x03000088 -_0806E7B0: .4byte 0x03000021 -_0806E7B4: .4byte 0x03000020 -_0806E7B8: .4byte gSineTable -_0806E7BC: .4byte gPseudoRandom -_0806E7C0: .4byte 0x00196225 -_0806E7C4: .4byte 0x3C6EF35F -_0806E7C8: .4byte 0x00004E20 -_0806E7CC: .4byte 0x000003FF -_0806E7D0: .4byte 0x06012680 -_0806E7D4: .4byte 0x000001A5 -_0806E7D8: .4byte gCurTask -_0806E7DC: .4byte sub_806E7E0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc deleted file mode 100644 index b58ff89115..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Task_Pierrot.inc +++ /dev/null @@ -1,381 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r4, _0806DE64 @ =gCurTask - ldr r0, [r4] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r3 - mov r8, r0 @ r8 = pierrot - ldr r0, _0806DE68 @ =0x0300000C - adds r5, r3, r0 @ r5 = s - mov r1, r8 - ldr r1, [r1] - str r1, [sp, #0xc] @ sp0C = me - mov r6, r8 @ r6 = r8 = pierrot - ldrb r2, [r6, #8] - lsls r2, r2, #3 - ldrh r0, [r6, #4] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldX - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r6, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 @ r6 = worldX - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 @ r7 = worldY - ldr r1, _0806DE6C @ =0x03000048 - adds r0, r3, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - mov r2, r8 @ r2 = r8 = pierrot - ldr r0, [r2, #0x44] - adds r0, r0, r1 - str r0, [r2, #0x44] @ pierrot->unk44 += pierrot->unk48 - asrs r0, r0, #8 - adds r0, r6, r0 - lsls r0, r0, #0x10 @ r0 = newX = worldX + I(pierrot->qUnk44); - ldr r1, _0806DE70 @ =0x0300004A - adds r3, r3, r1 - ldrh r1, [r3] - adds r1, r7, r1 - lsls r1, r1, #0x10 - ldr r2, _0806DE74 @ =0xFFD00000 - adds r1, r1, r2 @ r1 = newY = worldY + pierrot->unk4A - Q(0.1875); - ldr r3, _0806DE78 @ =gCamera - ldrh r2, [r3] - mov sl, r2 - lsrs r2, r0, #0x10 - mov sb, r2 @ sb = newX - asrs r0, r0, #0x10 - mov r2, sl - subs r0, r0, r2 - strh r0, [r5, #0x16] @ s->x = newX - gCamera.x - ldrh r0, [r3, #2] - lsrs r2, r1, #0x10 - mov sl, r2 @ sl = newY - asrs r1, r1, #0x10 - subs r1, r1, r0 - strh r1, [r5, #0x18] @ s->y = - movs r0, #0 - ldrsh r1, [r3, r0] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r1, r2 - cmp r6, r0 - bgt _0806DE30 - adds r0, r1, #0 - subs r0, #0x80 - cmp r6, r0 - blt _0806DE30 - movs r6, #2 - ldrsh r2, [r3, r6] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r2, r1 - cmp r7, r0 - bgt _0806DE30 - adds r0, r2, #0 - subs r0, #0x80 - cmp r7, r0 - bge _0806DE7C -_0806DE30: - ldrh r0, [r5, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0806DE54 - movs r2, #0x18 - ldrsh r0, [r5, r2] - adds r0, #0x80 - cmp r0, #0 - blt _0806DE54 - movs r3, #0x18 - ldrsh r1, [r5, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0806DE7C -_0806DE54: - mov r6, r8 @ r6 = r8 = pierrot - ldrb r0, [r6, #8] - ldr r1, [sp, #0xc] @ r1 = sp0C = me - strb r0, [r1] - ldr r0, [r4] - bl TaskDestroy - b _0806E04C_return - .align 2, 0 -_0806DE64: .4byte gCurTask -_0806DE68: .4byte 0x0300000C -_0806DE6C: .4byte 0x03000048 -_0806DE70: .4byte 0x0300004A -_0806DE74: .4byte 0xFFD00000 -_0806DE78: .4byte gCamera -_0806DE7C: - ldr r2, _0806DF60 @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #0x80 - ands r1, r0 - mov r3, sb @ r3 = sb = newX - lsls r3, r3, #0x10 - str r3, [sp, #0x10] @ sp10 = r3 = sb = newX - mov r6, sl - lsls r6, r6, #0x10 - mov sb, r6 @ sb = newY - cmp r1, #0 - beq _0806DE96 - b _0806DFD8 -_0806DE96: - ldr r1, [r5, #0x30] - subs r0, #0x81 - cmp r1, r0 - bne _0806DEA0 - b _0806DFB6 -_0806DEA0: - asrs r1, r3, #0x10 @ r1 = newX - adds r0, r5, #0 - adds r0, #0x34 @ - movs r6, #0 - ldrsb r6, [r0, r6] - adds r4, r1, r6 @ r4 = left = newX + s->hitboxes[1].d.sData[0]; - ldr r1, [r2] - asrs r1, r1, #8 - ldr r3, _0806DF64 @ =gPlayerBodyPSI - adds r0, r3, #0 - adds r0, #0x38 - movs r7, #0 - ldrsb r7, [r0, r7] - adds r1, r1, r7 - mov ip, r3 - cmp r4, r1 @ (left <= playerLeft) - bgt _0806DED8 - adds r0, r5, #0 @ r0 = r5 = s - adds r0, #0x36 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r4, r0 - cmp r0, r1 - bge _0806DEF0 - cmp r4, r1 - blt _0806DFB6 -_0806DED8: - mov r0, ip - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r7 - adds r0, r1, r0 - mov r1, sl - lsls r1, r1, #0x10 - mov sb, r1 - cmp r0, r4 - blt _0806DFB6 -_0806DEF0: - mov r3, sl - lsls r1, r3, #0x10 - asrs r0, r1, #0x10 - adds r3, r5, #0 - adds r3, #0x35 - movs r6, #0 - ldrsb r6, [r3, r6] - adds r4, r0, r6 - ldr r0, [r2, #4] - asrs r0, r0, #8 - mov r3, ip - adds r3, #0x39 - movs r7, #0 - ldrsb r7, [r3, r7] - adds r3, r0, r7 - mov sb, r1 @ sb = r1 = - cmp r4, r3 - bgt _0806DF2A - adds r0, r5, #0 - adds r0, #0x37 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r4, r0 - cmp r0, r3 - bge _0806DF3C - cmp r4, r3 - blt _0806DFB6 -_0806DF2A: - mov r0, ip - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r7 - adds r0, r3, r0 - cmp r0, r4 - blt _0806DFB6 -_0806DF3C: - ldr r1, [r2, #0x10] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806DFB0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0806DF7C - movs r6, #0xc - ldrsh r0, [r2, r6] - cmp r0, #0 - ble _0806DF68 - adds r1, r0, #0 - ldr r0, [r2] - adds r0, r0, r1 - b _0806DF70 - .align 2, 0 -_0806DF60: .4byte gPlayer -_0806DF64: .4byte gPlayerBodyPSI -_0806DF68: - movs r3, #0xc - ldrsh r1, [r2, r3] - ldr r0, [r2] - subs r0, r0, r1 -_0806DF70: - str r0, [r2] - ldr r0, [r2, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - b _0806DF9C -_0806DF7C: - movs r6, #0xc - ldrsh r0, [r2, r6] - cmp r0, #0 - bge _0806DF8C - adds r1, r0, #0 - ldr r0, [r2] - adds r0, r0, r1 - b _0806DF94 -_0806DF8C: - movs r3, #0xc - ldrsh r1, [r2, r3] - ldr r0, [r2] - subs r0, r0, r1 -_0806DF94: - str r0, [r2] - ldr r0, [r2, #0x10] - movs r1, #1 - orrs r0, r1 -_0806DF9C: - str r0, [r2, #0x10] - movs r6, #0xc - ldrsh r0, [r2, r6] - rsbs r0, r0, #0 - strh r0, [r2, #0xc] - movs r1, #8 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2, #8] - b _0806DFB6 -_0806DFB0: - adds r0, r2, #0 - bl Coll_DamagePlayer -_0806DFB6: - ldr r2, [sp, #0x10] @ r2 = sp10 = newX - asrs r1, r2, #0x10 - mov r3, sb @ r3 = sb = - asrs r2, r3, #0x10 - adds r0, r5, #0 - bl Coll_Player_Enemy_Attack - cmp r0, #0 - beq _0806DFD8 - ldr r0, _0806DFD4 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0806E04C_return - .align 2, 0 -_0806DFD4: .4byte gCurTask -_0806DFD8: - mov r6, sb - asrs r0, r6, #0x10 - ldr r2, [sp, #0x10] @ r2 = sp10 = newX - asrs r1, r2, #0x10 - add r3, sp, #8 - str r3, [sp] - ldr r2, _0806E020 @ =sa2__sub_801EE64 - str r2, [sp, #4] - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F07C - mov r2, r8 @ r2 = r8 = pierrot - adds r2, #0x4a - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - mov r6, r8 @ r6 = r8 = pierrot - ldr r0, [r6, #0x44] - asrs r2, r0, #8 - ldr r0, [sp, #0xc] @ r0 = sp0C = me - movs r1, #3 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - cmp r2, r0 - bgt _0806E024 - mov r1, r8 @ r1 = r8 = pierrot - adds r1, #0x48 - movs r0, #0xa0 - strh r0, [r1] - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - b _0806E03E - .align 2, 0 -_0806E020: .4byte sa2__sub_801EE64 -_0806E024: - ldr r3, [sp, #0xc] @ r3 = sp0C = me - ldrb r0, [r3, #5] - adds r0, r1, r0 - lsls r0, r0, #3 - cmp r2, r0 - blt _0806E040_upd_spr_and_return - mov r1, r8 @ r1 = r8 = pierrot - adds r1, #0x48 - ldr r0, _0806E05C @ =0x0000FF60 - strh r0, [r1] - ldr r0, [r5, #0x10] - ldr r1, _0806E060 @ =0xFFFFFBFF - ands r0, r1 -_0806E03E: - str r0, [r5, #0x10] -_0806E040_upd_spr_and_return: - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - bl DisplaySprite -_0806E04C_return: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806E05C: .4byte 0x0000FF60 -_0806E060: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc deleted file mode 100644 index 58810495ed..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__Task_TantouMain.inc +++ /dev/null @@ -1,273 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r1, _08074648 @ =gCurTask - ldr r0, [r1] - ldrh r7, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r7 - mov sb, r0 - ldr r2, _0807464C @ =0x0300000C - adds r5, r7, r2 - ldr r3, [r0] - str r3, [sp] - ldrb r1, [r0, #8] - lsls r1, r1, #3 - ldrh r0, [r0, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - mov sl, r1 - ldrb r1, [r3, #1] - lsls r1, r1, #3 - mov r4, sb - ldrh r0, [r4, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - str r1, [sp, #4] - mov r0, sl - str r0, [sp, #8] - str r1, [sp, #0xc] - ldr r6, [r4, #0x50] - ldrb r2, [r3, #5] - lsls r2, r2, #0xb - ldr r1, _08074650 @ =gSineTable - mov r8, r1 - ldr r3, _08074654 @ =0x03000058 - adds r0, r7, r3 - movs r4, #0 - ldrsh r3, [r0, r4] - ldr r0, _08074658 @ =0x0300004E - adds r4, r7, r0 - ldrh r1, [r4] - movs r0, #0x7f - ands r0, r1 - muls r0, r3, r0 - ldr r1, _0807465C @ =0x000003FF - mov ip, r1 - ands r0, r1 - lsls r0, r0, #1 - add r0, r8 - movs r3, #0 - ldrsh r0, [r0, r3] - muls r0, r2, r0 - asrs r0, r0, #0xe - mov r1, sb - str r0, [r1, #0x50] - subs r6, r0, r6 - str r6, [sp, #0x10] - ldr r6, [r1, #0x54] - ldr r3, [sp] - ldrb r2, [r3, #6] - lsls r2, r2, #0xb - ldr r1, _08074660 @ =0x0300005A - adds r0, r7, r1 - movs r1, #0 - ldrsh r3, [r0, r1] - ldrh r1, [r4] - movs r0, #0x3f - ands r0, r1 - muls r0, r3, r0 - mov r3, ip - ands r0, r3 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - add r0, r8 - movs r3, #0 - ldrsh r0, [r0, r3] - muls r0, r2, r0 - asrs r0, r0, #0xe - mov r1, sb - str r0, [r1, #0x54] - subs r3, r0, r6 - ldrh r0, [r4] - adds r0, #1 - movs r2, #0 - movs r1, #0 - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x40 - beq _080745D4 - cmp r0, #0x80 - bne _080745E8 -_080745D4: - ldr r4, _08074664 @ =0x03000046 - adds r0, r7, r4 - strh r1, [r0] - ldr r1, _08074668 @ =0x0300002C - adds r0, r7, r1 - strb r2, [r0] - ldr r2, _08074648 @ =gCurTask - ldr r1, [r2] - ldr r0, _0807466C @ =sub_8074928 - str r0, [r1, #8] -_080745E8: - mov r2, sb - adds r2, #0x4e - ldrh r1, [r2] - movs r0, #0x7f - ands r0, r1 - strh r0, [r2] - ldr r7, _08074670 @ =gCamera - ldrh r0, [r7] - ldr r4, [sp, #8] - subs r0, r4, r0 - ldr r1, [sp, #0x10] - asrs r6, r1, #5 - adds r0, r0, r6 - strh r0, [r5, #0x16] - asrs r4, r3, #4 - adds r0, r4, #0 - movs r1, #0x40 - bl Mod - strh r0, [r5, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3f - beq _08074674 - adds r0, r4, #0 - movs r1, #0x40 - bl Mod - ldrh r1, [r7, #2] - ldr r2, [sp, #0xc] - subs r1, r2, r1 - subs r1, r1, r0 - strh r1, [r5, #0x18] - mov r3, sl - adds r1, r3, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, [sp, #4] - subs r2, r0, r4 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - bl Coll_Player_Enemy_Attack - cmp r0, #0 - beq _08074694 - b _080746F2 - .align 2, 0 -_08074648: .4byte gCurTask -_0807464C: .4byte 0x0300000C -_08074650: .4byte gSineTable -_08074654: .4byte 0x03000058 -_08074658: .4byte 0x0300004E -_0807465C: .4byte 0x000003FF -_08074660: .4byte 0x0300005A -_08074664: .4byte 0x03000046 -_08074668: .4byte 0x0300002C -_0807466C: .4byte sub_8074928 -_08074670: .4byte gCamera -_08074674: - mov r2, sl - adds r1, r2, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r3, [sp, #4] - lsls r2, r3, #0x10 - asrs r2, r2, #0x10 - adds r0, r5, #0 - bl Coll_Player_Enemy_Attack - cmp r0, #0 - bne _080746F2 - ldrh r0, [r7, #2] - ldr r4, [sp, #0xc] - subs r0, r4, r0 - strh r0, [r5, #0x18] -_08074694: - ldr r2, _080746FC @ =gCamera - movs r0, #0 - ldrsh r1, [r2, r0] - movs r3, #0xb8 - lsls r3, r3, #1 - adds r0, r1, r3 - ldr r4, [sp, #8] - cmp r4, r0 - bgt _080746C6 - adds r0, r1, #0 - subs r0, #0x80 - cmp r4, r0 - blt _080746C6 - movs r0, #2 - ldrsh r1, [r2, r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r1, r2 - ldr r3, [sp, #0xc] - cmp r3, r0 - bgt _080746C6 - adds r0, r1, #0 - subs r0, #0x80 - cmp r3, r0 - bge _08074704 -_080746C6: - ldrh r0, [r5, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _080746EA - movs r4, #0x18 - ldrsh r0, [r5, r4] - adds r0, #0x80 - cmp r0, #0 - blt _080746EA - movs r0, #0x18 - ldrsh r1, [r5, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08074704 -_080746EA: - mov r1, sb - ldrb r0, [r1, #8] - ldr r2, [sp] - strb r0, [r2] -_080746F2: - ldr r0, _08074700 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08074728 - .align 2, 0 -_080746FC: .4byte gCamera -_08074700: .4byte gCurTask -_08074704: - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - bl DisplaySprite - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r5, #0x10] - adds r0, r5, #0 - bl DisplaySprite - ldr r0, [r5, #0x10] - ldr r1, _08074738 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r5, #0x10] -_08074728: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08074738: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc deleted file mode 100644 index e3c2e1b643..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Tentou__sub_8074928.inc +++ /dev/null @@ -1,292 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r1, _08074A64 @ =gCurTask - ldr r0, [r1] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r3 - mov sl, r0 - ldr r2, _08074A68 @ =0x0300000C - adds r7, r3, r2 - ldr r4, [r0] - str r4, [sp] - ldrb r1, [r0, #8] - lsls r1, r1, #3 - ldrh r0, [r0, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - str r1, [sp, #8] - ldrb r1, [r4, #1] - lsls r1, r1, #3 - mov r5, sl - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - str r1, [sp, #4] - ldr r5, [sp, #8] - mov ip, r1 - mov r6, sl - ldr r0, [r6, #0x50] - rsbs r0, r0, #0 - str r0, [sp, #0xc] - ldrb r2, [r4, #5] - lsls r2, r2, #0xb - ldr r1, _08074A6C @ =0x03000058 - adds r0, r3, r1 - movs r6, #0 - ldrsh r4, [r0, r6] - ldr r0, _08074A70 @ =0x0300004E - adds r6, r3, r0 - ldrh r0, [r6] - subs r0, #1 - movs r1, #0x7f - ands r0, r1 - muls r0, r4, r0 - ldr r1, _08074A74 @ =0x000003FF - mov sb, r1 - ands r0, r1 - lsls r0, r0, #1 - ldr r4, _08074A78 @ =gSineTable - adds r0, r0, r4 - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r2, r0 - asrs r0, r0, #0xe - mov r2, sl - str r0, [r2, #0x50] - ldr r4, [r2, #0x54] - mov r8, r4 - ldr r0, [sp] - ldrb r2, [r0, #6] - lsls r2, r2, #0xb - ldr r1, _08074A7C @ =0x0300005A - adds r0, r3, r1 - movs r1, #0 - ldrsh r4, [r0, r1] - ldrh r0, [r6] - subs r0, #1 - movs r1, #0x3f - ands r0, r1 - muls r0, r4, r0 - mov r4, sb - ands r0, r4 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #1 - ldr r1, _08074A78 @ =gSineTable - adds r0, r0, r1 - movs r4, #0 - ldrsh r0, [r0, r4] - muls r0, r2, r0 - asrs r0, r0, #0xe - mov r6, sl - str r0, [r6, #0x54] - mov r1, r8 - subs r2, r0, r1 - ldr r4, _08074A80 @ =gCamera - ldrh r0, [r4] - subs r0, r5, r0 - ldr r6, [sp, #0xc] - asrs r1, r6, #5 - adds r0, r0, r1 - strh r0, [r7, #0x16] - ldrh r0, [r4, #2] - mov r1, ip - subs r0, r1, r0 - asrs r1, r2, #4 - subs r0, r0, r1 - strh r0, [r7, #0x18] - ldr r6, _08074A84 @ =0x03000046 - adds r3, r3, r6 - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - movs r0, #0 - ldrsh r1, [r4, r0] - movs r3, #0xb8 - lsls r3, r3, #1 - adds r0, r1, r3 - ldr r3, _08074A64 @ =gCurTask - cmp r5, r0 - bgt _08074A30 - adds r0, r1, #0 - subs r0, #0x80 - cmp r5, r0 - blt _08074A30 - movs r5, #2 - ldrsh r1, [r4, r5] - movs r6, #0x90 - lsls r6, r6, #1 - adds r0, r1, r6 - cmp ip, r0 - bgt _08074A30 - adds r0, r1, #0 - subs r0, #0x80 - cmp ip, r0 - bge _08074A88 -_08074A30: - ldrh r0, [r7, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08074A54 - movs r1, #0x18 - ldrsh r0, [r7, r1] - adds r0, #0x80 - cmp r0, #0 - blt _08074A54 - movs r4, #0x18 - ldrsh r1, [r7, r4] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08074A88 -_08074A54: - mov r5, sl - ldrb r0, [r5, #8] - ldr r6, [sp] - strb r0, [r6] - ldr r0, [r3] - bl TaskDestroy - b _08074B62 - .align 2, 0 -_08074A64: .4byte gCurTask -_08074A68: .4byte 0x0300000C -_08074A6C: .4byte 0x03000058 -_08074A70: .4byte 0x0300004E -_08074A74: .4byte 0x000003FF -_08074A78: .4byte gSineTable -_08074A7C: .4byte 0x0300005A -_08074A80: .4byte gCamera -_08074A84: .4byte 0x03000046 -_08074A88: - ldr r0, [sp, #0xc] - asrs r1, r0, #5 - ldr r3, [sp, #8] - adds r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - asrs r2, r2, #4 - ldr r4, [sp, #4] - subs r2, r4, r2 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r7, #0 - bl Coll_Player_Enemy_Attack - adds r4, r0, #0 - cmp r4, #0 - beq _08074AB8 - ldr r0, _08074AB4 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08074B62 - .align 2, 0 -_08074AB4: .4byte gCurTask -_08074AB8: - ldr r3, _08074B0C @ =gPlayer - ldr r0, [r3] - asrs r0, r0, #8 - ldr r2, _08074B10 @ =gCamera - movs r5, #0 - ldrsh r1, [r2, r5] - subs r0, r0, r1 - movs r6, #0x16 - ldrsh r1, [r7, r6] - subs r5, r0, r1 - adds r0, r5, #0 - muls r0, r5, r0 - adds r5, r0, #0 - ldr r0, [r3, #4] - asrs r0, r0, #8 - movs r3, #2 - ldrsh r1, [r2, r3] - subs r0, r0, r1 - movs r6, #0x18 - ldrsh r1, [r7, r6] - subs r0, r0, r1 - mov ip, r0 - adds r1, r0, #0 - mov r0, ip - muls r0, r1, r0 - adds r0, r0, r5 - mov ip, r0 - ldr r0, _08074B14 @ =0x000018FF - cmp ip, r0 - bgt _08074B20 - mov r0, sl - adds r0, #0x46 - strh r4, [r0] - adds r1, r7, #0 - adds r1, #0x20 - movs r0, #2 - strb r0, [r1] - ldr r0, _08074B18 @ =gCurTask - ldr r1, [r0] - ldr r0, _08074B1C @ =Task_807473C - b _08074B3C - .align 2, 0 -_08074B0C: .4byte gPlayer -_08074B10: .4byte gCamera -_08074B14: .4byte 0x000018FF -_08074B18: .4byte gCurTask -_08074B1C: .4byte Task_807473C -_08074B20: - mov r3, sl - adds r3, #0x46 - movs r2, #0 - ldrsh r0, [r3, r2] - cmp r0, #0x3b - ble _08074B3E - strh r4, [r3] - adds r1, r7, #0 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - ldr r0, _08074B74 @ =gCurTask - ldr r1, [r0] - ldr r0, _08074B78 @ =Task_TentouMain -_08074B3C: - str r0, [r1, #8] -_08074B3E: - adds r0, r7, #0 - bl UpdateSpriteAnimation - adds r0, r7, #0 - bl DisplaySprite - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r7, #0x10] - adds r0, r7, #0 - bl DisplaySprite - ldr r0, [r7, #0x10] - ldr r1, _08074B7C @ =0xFFFFFBFF - ands r0, r1 - str r0, [r7, #0x10] -_08074B62: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08074B74: .4byte gCurTask -_08074B78: .4byte Task_TentouMain -_08074B7C: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc deleted file mode 100644 index 7e09a65ffe..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc +++ /dev/null @@ -1,968 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - movs r0, #0 - str r0, [sp, #0xc] - ldr r0, _0806F3F8 @ =gCurTask - ldr r0, [r0] - ldrh r6, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r6 - mov sb, r0 @ sb = wamu - ldr r1, _0806F3FC @ =0x0300000C - adds r1, r1, r6 - mov sl, r1 @ sl = s - ldr r2, _0806F400 @ =0x03000048 - adds r2, r2, r6 - mov r8, r2 @ r8 = s2 - ldr r3, _0806F404 @ =0x03000084 - adds r7, r6, r3 @ r7 = s3 - ldr r4, [r0] - str r4, [sp] @ sp00 = me - ldrb r2, [r0, #8] - lsls r2, r2, #3 - ldrh r0, [r0, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - ldrb r1, [r4, #1] - lsls r1, r1, #3 - mov r5, sb - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - str r2, [sp, #0x10] @ sp10 = worldX - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - str r1, [sp, #0x14] @ sp14 = worldY - ldr r4, _0806F408 @ =gSineTable - ldr r0, _0806F40C @ =0x030000BC - adds r5, r6, r0 - ldrh r1, [r5] - ldr r0, _0806F410 @ =0x000003FF - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r4 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r3, [sp] - ldrb r2, [r3, #6] - lsls r2, r2, #2 - movs r1, #0x50 - subs r1, r1, r2 - bl Div - ldr r1, _0806F414 @ =0x030000B4 - adds r2, r6, r1 - ldr r1, [r2] - adds r1, r1, r0 - str r1, [r2] - asrs r1, r1, #8 - ldr r2, [sp, #0x10] @ r2 = worldX - adds r1, r2, r1 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] @ sp04 = worldX + unkB4 - ldrh r1, [r5] - ldr r0, _0806F410 @ =0x000003FF - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r4 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r1, #0x50 - bl Div - ldr r4, _0806F418 @ =0x030000B8 - adds r2, r6, r4 - ldr r1, [r2] - adds r1, r1, r0 - str r1, [r2] - asrs r1, r1, #8 - ldr r0, [sp, #0x14] @ sp14 = worldY - adds r1, r0, r1 - lsls r1, r1, #0x10 - ldr r3, _0806F41C @ =gCamera - ldrh r2, [r3] - ldr r4, [sp, #4] - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r2 - movs r4, #0 - mov r2, sl - strh r0, [r2, #0x16] - ldrh r0, [r3, #2] - lsrs r3, r1, #0x10 - str r3, [sp, #8] - asrs r1, r1, #0x10 - subs r1, r1, r0 - strh r1, [r2, #0x18] - ldr r0, [r2, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0806F44C - ldr r0, _0806F420 @ =0x030001C0 - adds r2, r6, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _0806F428 - ldrh r0, [r5] - adds r0, #5 - strh r0, [r5] - subs r1, #1 - ands r0, r1 - subs r0, #0x65 - lsls r0, r0, #0x10 - ldr r1, _0806F424 @ =0x03360000 - cmp r0, r1 - bhi _0806F49A - movs r0, #0x64 - strh r0, [r5] - b _0806F46A - .align 2, 0 -_0806F3F8: .4byte gCurTask -_0806F3FC: .4byte 0x0300000C -_0806F400: .4byte 0x03000048 -_0806F404: .4byte 0x03000084 -_0806F408: .4byte gSineTable -_0806F40C: .4byte 0x030000BC -_0806F410: .4byte 0x000003FF -_0806F414: .4byte 0x030000B4 -_0806F418: .4byte 0x030000B8 -_0806F41C: .4byte gCamera -_0806F420: .4byte 0x030001C0 -_0806F424: .4byte 0x03360000 -_0806F428: - ldrh r0, [r5] - subs r0, #5 - strh r0, [r5] - ldr r3, _0806F444 @ =0x000003FF - ands r0, r3 - subs r0, #0x65 - lsls r0, r0, #0x10 - ldr r1, _0806F448 @ =0x03360000 - cmp r0, r1 - bhi _0806F49A - movs r0, #0xe7 - lsls r0, r0, #2 - b _0806F490 - .align 2, 0 -_0806F444: .4byte 0x000003FF -_0806F448: .4byte 0x03360000 -_0806F44C: - ldr r0, _0806F474 @ =0x030001C0 - adds r2, r6, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _0806F47C - ldrh r0, [r5] - adds r0, #5 - strh r0, [r5] - ldr r1, _0806F478 @ =0x000003FF - ands r0, r1 - movs r1, #0x99 - lsls r1, r1, #2 - cmp r0, r1 - bls _0806F49A - strh r1, [r5] -_0806F46A: - strb r4, [r2] - movs r2, #1 - str r2, [sp, #0xc] @ sp0C = 1 - b _0806F49A - .align 2, 0 -_0806F474: .4byte 0x030001C0 -_0806F478: .4byte 0x000003FF -_0806F47C: - ldrh r0, [r5] - subs r0, #8 - strh r0, [r5] - ldr r3, _0806F52C @ =0x000003FF - ands r0, r3 - ldr r1, _0806F530 @ =0x0000019B - cmp r0, r1 - bhi _0806F49A - movs r0, #0xce - lsls r0, r0, #1 -_0806F490: - strh r0, [r5] - movs r0, #1 - strb r0, [r2] - movs r4, #1 - str r4, [sp, #0xc] @ sp0C = 1 -_0806F49A: - ldr r3, _0806F534 @ =0x000001C1 - add r3, sb - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r1, #0x3f - ands r0, r1 - lsls r0, r0, #1 - mov r2, sb - adds r2, #0xc0 - adds r0, r2, r0 - mov r5, sp - ldrh r5, [r5, #4] - strh r5, [r0] - ldrb r0, [r3] - ands r1, r0 - lsls r1, r1, #1 - movs r0, #0xa0 - lsls r0, r0, #1 - add r0, sb - adds r0, r0, r1 - mov r1, sp - ldrh r1, [r1, #8] - strh r1, [r0] - ldr r3, _0806F538 @ =gCamera - movs r4, #0 - ldrsh r1, [r3, r4] - movs r5, #0xb8 - lsls r5, r5, #1 - adds r0, r1, r5 - str r2, [sp, #0x18] - ldr r2, [sp, #0x10] @ r2 = worldX - cmp r2, r0 - bgt _0806F4FC - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _0806F4FC - movs r4, #2 - ldrsh r1, [r3, r4] - subs r5, #0x50 - adds r0, r1, r5 - ldr r2, [sp, #0x14] @ r2 = worldY - cmp r2, r0 - bgt _0806F4FC - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - bge _0806F53C -_0806F4FC: - mov r3, sl - ldrh r0, [r3, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0806F522 - movs r4, #0x18 - ldrsh r0, [r3, r4] - adds r0, #0x80 - cmp r0, #0 - blt _0806F522 - movs r5, #0x18 - ldrsh r1, [r3, r5] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0806F53C -_0806F522: - mov r1, sb - ldrb r0, [r1, #8] - ldr r2, [sp] - strb r0, [r2] - b _0806F552 - .align 2, 0 -_0806F52C: .4byte 0x000003FF -_0806F530: .4byte 0x0000019B -_0806F534: .4byte 0x000001C1 -_0806F538: .4byte gCamera -_0806F53C: - ldr r3, [sp, #4] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - ldr r4, [sp, #8] - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - mov r0, sl - bl Coll_Player_Enemy_Attack - cmp r0, #0 - beq _0806F560 -_0806F552: - ldr r0, _0806F55C @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0806FA64 - .align 2, 0 -_0806F55C: .4byte gCurTask -_0806F560: - mov r0, sb - adds r0, #0xb4 - ldr r0, [r0] @ r0 = wamu->qUnkB4 - asrs r2, r0, #8 - ldr r5, [sp] @ r5 = sp00 = me - movs r1, #3 - ldrsb r1, [r5, r1] - lsls r0, r1, #3 - cmp r2, r0 - bgt _0806F5A8 - mov r1, sl @ r1 = sl = s - ldr r0, [r1, #0x10] - mvns r0, r0 - movs r2, #0x80 - lsls r2, r2, #3 - ands r0, r2 - cmp r0, #0 - beq _0806F5F6 - ldr r3, [sp, #0xc] @ r3 = sp0C = sp0C - cmp r3, #0 - beq _0806F5F6 - mov r1, sb - adds r1, #0xbe - movs r0, #0xa0 - strh r0, [r1] - mov r4, sl - ldr r0, [r4, #0x10] - orrs r0, r2 - str r0, [r4, #0x10] - mov r5, r8 @ r5 = r8 = s2 - ldr r0, [r5, #0x10] - orrs r0, r2 - str r0, [r5, #0x10] - ldr r0, [r7, #0x10] @ r7 = s3 - orrs r0, r2 - b _0806F5E4 -_0806F5A8: - ldr r4, [sp] @ r4 = sp00 = me - ldrb r0, [r4, #5] - adds r0, r1, r0 - lsls r0, r0, #3 - cmp r2, r0 - blt _0806F5F6 - mov r5, sl - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0806F5F6 - ldr r0, [sp, #0xc] @ r0 = sp0C = sp0C - cmp r0, #0 - beq _0806F5F6 - mov r1, sb - adds r1, #0xbe - ldr r0, _0806F934 @ =0x0000FF60 - strh r0, [r1] - ldr r0, [r5, #0x10] - ldr r1, _0806F938 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r5, #0x10] - mov r2, r8 - ldr r0, [r2, #0x10] - ands r0, r1 - str r0, [r2, #0x10] - ldr r0, [r7, #0x10] - ands r0, r1 -_0806F5E4: - str r0, [r7, #0x10] - mov r2, sb - adds r2, #0xbc - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r3, #0 - eors r0, r1 - strh r0, [r2] -_0806F5F6: - mov r0, sl - bl UpdateSpriteAnimation - mov r0, sl - bl DisplaySprite - ldr r4, _0806F93C @ =0x000001C1 - add r4, sb - ldrb r0, [r4] - subs r0, #0x18 - movs r2, #0x3f - ands r0, r2 - lsls r0, r0, #1 - ldr r5, [sp, #0x18] @ r5 = sp18 = &wamu->worldXs[] - adds r0, r5, r0 - ldr r3, _0806F940 @ =gCamera - ldrh r0, [r0] - ldrh r1, [r3] - subs r0, r0, r1 - mov r5, sl @ r5 = sl = s - ldrh r1, [r5, #0x16] - subs r1, r1, r0 - strh r1, [r7, #0x16] @ r7 = s3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 @ r1 = (s->y >> 1) - ldrb r0, [r4] - subs r0, #0x18 - ands r0, r2 - lsls r0, r0, #1 - ldr r5, [sp, #0x18] @ r5 = sp18 = worldXs - adds r0, r5, r0 - ldrh r0, [r0] - subs r0, r0, r1 - ldrh r1, [r3] - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 @ r5 = ??? - subs r1, r5, r1 - strh r1, [r7, #0x16] @ s->x = - ldrb r0, [r4] - subs r0, #0x28 - ands r0, r2 - lsls r0, r0, #1 - movs r1, #0xa0 - lsls r1, r1, #1 - add r1, sb - adds r1, r1, r0 - ldrh r2, [r3, #2] - ldrh r0, [r1] - str r0, [sp, #8] - movs r3, #0 - ldrsh r0, [r1, r3] - subs r0, r0, r2 - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl UpdateSpriteAnimation - adds r0, r7, #0 - bl DisplaySprite - ldr r1, [r7, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0806F716 - adds r0, r7, #0 - adds r0, #0x2c - movs r6, #0 - ldrsb r6, [r0, r6] - adds r5, r5, r6 - ldr r2, _0806F944 @ =gPlayer - ldr r1, [r2] - asrs r1, r1, #8 - ldr r3, _0806F948 @ =gPlayerBodyPSI - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov ip, r0 - add r1, ip - adds r4, r3, #0 - cmp r5, r1 - bgt _0806F6B2 - adds r0, r7, #0 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r5, r0 - cmp r0, r1 - bge _0806F6C6 - cmp r5, r1 - blt _0806F716 -_0806F6B2: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r3, ip - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r5 - blt _0806F716 -_0806F6C6: - ldr r5, [sp, #8] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r3, r7, #0 - adds r3, #0x2d - movs r5, #0 - ldrsb r5, [r3, r5] - adds r1, r0, r5 - ldr r0, [r2, #4] - asrs r0, r0, #8 - adds r3, r4, #0 - adds r3, #0x39 - movs r6, #0 - ldrsb r6, [r3, r6] - adds r3, r0, r6 - cmp r1, r3 - bgt _0806F6FE - adds r0, r7, #0 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r3 - bge _0806F710 - cmp r1, r3 - blt _0806F716 -_0806F6FE: - adds r0, r4, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r3, r0 - cmp r0, r1 - blt _0806F716 -_0806F710: - adds r0, r2, #0 - bl Coll_DamagePlayer -_0806F716: - ldr r4, _0806F93C @ =0x000001C1 - add r4, sb - ldrb r0, [r4] - subs r0, #0x13 - movs r2, #0x3f - ands r0, r2 - lsls r0, r0, #1 - ldr r1, [sp, #0x18] - adds r0, r1, r0 - ldr r3, _0806F940 @ =gCamera - ldrh r0, [r0] - ldrh r1, [r3] - subs r0, r0, r1 - mov r5, sl - ldrh r1, [r5, #0x16] - subs r1, r1, r0 - strh r1, [r7, #0x16] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - ldrb r0, [r4] - subs r0, #0x13 - ands r0, r2 - lsls r0, r0, #1 - ldr r5, [sp, #0x18] - adds r0, r5, r0 - ldrh r0, [r0] - subs r0, r0, r1 - ldrh r1, [r3] - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - subs r1, r5, r1 - strh r1, [r7, #0x16] - ldrb r0, [r4] - subs r0, #0x1e - ands r0, r2 - lsls r0, r0, #1 - movs r1, #0xa0 - lsls r1, r1, #1 - add r1, sb - adds r1, r1, r0 - ldrh r2, [r3, #2] - ldrh r0, [r1] - str r0, [sp, #8] - movs r3, #0 - ldrsh r0, [r1, r3] - subs r0, r0, r2 - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - ldr r1, [r7, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0806F824 - adds r0, r7, #0 - adds r0, #0x2c - movs r6, #0 - ldrsb r6, [r0, r6] - adds r5, r5, r6 - ldr r2, _0806F944 @ =gPlayer - ldr r1, [r2] - asrs r1, r1, #8 - ldr r3, _0806F948 @ =gPlayerBodyPSI - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov ip, r0 - add r1, ip - adds r4, r3, #0 - cmp r5, r1 - bgt _0806F7C0 - adds r0, r7, #0 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r5, r0 - cmp r0, r1 - bge _0806F7D4 - cmp r5, r1 - blt _0806F824 -_0806F7C0: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r3, ip - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r5 - blt _0806F824 -_0806F7D4: - ldr r5, [sp, #8] - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r3, r7, #0 - adds r3, #0x2d - movs r5, #0 - ldrsb r5, [r3, r5] - adds r1, r0, r5 - ldr r0, [r2, #4] - asrs r0, r0, #8 - adds r3, r4, #0 - adds r3, #0x39 - movs r6, #0 - ldrsb r6, [r3, r6] - adds r3, r0, r6 - cmp r1, r3 - bgt _0806F80C - adds r0, r7, #0 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r3 - bge _0806F81E - cmp r1, r3 - blt _0806F824 -_0806F80C: - adds r0, r4, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r3, r0 - cmp r0, r1 - blt _0806F824 -_0806F81E: - adds r0, r2, #0 - bl Coll_DamagePlayer -_0806F824: - ldr r4, _0806F93C @ =0x000001C1 - add r4, sb - ldrb r0, [r4] - subs r0, #0xe - movs r2, #0x3f - ands r0, r2 - lsls r0, r0, #1 - ldr r1, [sp, #0x18] - adds r0, r1, r0 - ldr r3, _0806F940 @ =gCamera - ldrh r0, [r0] - ldrh r1, [r3] - subs r0, r0, r1 - mov r5, sl - ldrh r1, [r5, #0x16] - subs r1, r1, r0 - mov r0, r8 - strh r1, [r0, #0x16] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - ldrb r0, [r4] - subs r0, #0xe - ands r0, r2 - lsls r0, r0, #1 - ldr r5, [sp, #0x18] - adds r0, r5, r0 - ldrh r0, [r0] - subs r0, r0, r1 - ldrh r1, [r3] - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - subs r1, r5, r1 - mov r0, r8 - strh r1, [r0, #0x16] - ldrb r0, [r4] - subs r0, #0x14 - ands r0, r2 - lsls r0, r0, #1 - movs r1, #0xa0 - lsls r1, r1, #1 - add r1, sb - adds r1, r1, r0 - ldrh r2, [r3, #2] - ldrh r3, [r1] - str r3, [sp, #8] - movs r4, #0 - ldrsh r0, [r1, r4] - subs r0, r0, r2 - mov r1, r8 - strh r0, [r1, #0x18] - mov r0, r8 - bl UpdateSpriteAnimation - mov r0, r8 - bl DisplaySprite - mov r2, r8 - ldr r1, [r2, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0806F954 - mov r0, r8 - adds r0, #0x2c - movs r6, #0 - ldrsb r6, [r0, r6] - adds r5, r5, r6 - ldr r2, _0806F944 @ =gPlayer - ldr r1, [r2] - asrs r1, r1, #8 - ldr r3, _0806F948 @ =gPlayerBodyPSI - adds r0, r3, #0 - adds r0, #0x38 - movs r7, #0 - ldrsb r7, [r0, r7] - adds r1, r1, r7 - adds r4, r3, #0 - cmp r5, r1 - bgt _0806F8D8 - mov r0, r8 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r5, r0 - cmp r0, r1 - bge _0806F8EA - cmp r5, r1 - blt _0806F954 -_0806F8D8: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r7 - adds r0, r1, r0 - cmp r0, r5 - blt _0806F954 -_0806F8EA: - ldr r3, [sp, #8] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - mov r3, r8 - adds r3, #0x2d - movs r5, #0 - ldrsb r5, [r3, r5] - adds r1, r0, r5 - ldr r0, [r2, #4] - asrs r0, r0, #8 - adds r3, r4, #0 - adds r3, #0x39 - movs r6, #0 - ldrsb r6, [r3, r6] - adds r3, r0, r6 - cmp r1, r3 - bgt _0806F922 - mov r0, r8 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r3 - bge _0806F94E - cmp r1, r3 - blt _0806F954 -_0806F922: - adds r0, r4, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r3, r0 - cmp r0, r1 - b _0806F94C - .align 2, 0 -_0806F934: .4byte 0x0000FF60 -_0806F938: .4byte 0xFFFFFBFF -_0806F93C: .4byte 0x000001C1 -_0806F940: .4byte gCamera -_0806F944: .4byte gPlayer -_0806F948: .4byte gPlayerBodyPSI -_0806F94C: - blt _0806F954 -_0806F94E: - adds r0, r2, #0 - bl Coll_DamagePlayer -_0806F954: - ldr r4, _0806FA74 @ =0x000001C1 - add r4, sb - ldrb r0, [r4] - subs r0, #7 - movs r2, #0x3f - ands r0, r2 - lsls r0, r0, #1 - ldr r5, [sp, #0x18] - adds r0, r5, r0 - ldr r3, _0806FA78 @ =gCamera - ldrh r0, [r0] - ldrh r1, [r3] - subs r0, r0, r1 - mov r5, sl - ldrh r1, [r5, #0x16] - subs r1, r1, r0 - mov r0, r8 - strh r1, [r0, #0x16] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - ldrb r0, [r4] - subs r0, #7 - ands r0, r2 - lsls r0, r0, #1 - ldr r5, [sp, #0x18] - adds r0, r5, r0 - ldrh r0, [r0] - subs r0, r0, r1 - ldrh r1, [r3] - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - subs r1, r5, r1 - mov r0, r8 - strh r1, [r0, #0x16] - ldrb r0, [r4] - subs r0, #0xa - ands r0, r2 - lsls r0, r0, #1 - movs r1, #0xa0 - lsls r1, r1, #1 - add r1, sb - adds r1, r1, r0 - ldrh r2, [r3, #2] - ldrh r3, [r1] - str r3, [sp, #8] - movs r4, #0 - ldrsh r0, [r1, r4] - subs r0, r0, r2 - mov r1, r8 - strh r0, [r1, #0x18] - mov r0, r8 - bl DisplaySprite - mov r2, r8 - ldr r1, [r2, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0806FA64 - mov r0, r8 - adds r0, #0x2c - movs r6, #0 - ldrsb r6, [r0, r6] - adds r5, r5, r6 - ldr r2, _0806FA7C @ =gPlayer - ldr r1, [r2] - asrs r1, r1, #8 - ldr r3, _0806FA80 @ =gPlayerBodyPSI - adds r0, r3, #0 - adds r0, #0x38 - movs r7, #0 - ldrsb r7, [r0, r7] - adds r1, r1, r7 - adds r4, r3, #0 - cmp r5, r1 - bgt _0806FA02 - mov r0, r8 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r5, r0 - cmp r0, r1 - bge _0806FA14 - cmp r5, r1 - blt _0806FA64 -_0806FA02: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r7 - adds r0, r1, r0 - cmp r0, r5 - blt _0806FA64 -_0806FA14: - ldr r3, [sp, #8] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - mov r3, r8 - adds r3, #0x2d - movs r5, #0 - ldrsb r5, [r3, r5] - adds r1, r0, r5 - ldr r0, [r2, #4] - asrs r0, r0, #8 - adds r3, r4, #0 - adds r3, #0x39 - movs r6, #0 - ldrsb r6, [r3, r6] - adds r3, r0, r6 - cmp r1, r3 - bgt _0806FA4C - mov r0, r8 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r3 - bge _0806FA5E - cmp r1, r3 - blt _0806FA64 -_0806FA4C: - adds r0, r4, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r3, r0 - cmp r0, r1 - blt _0806FA64 -_0806FA5E: - adds r0, r2, #0 - bl Coll_DamagePlayer -_0806FA64: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806FA74: .4byte 0x000001C1 -_0806FA78: .4byte gCamera -_0806FA7C: .4byte gPlayer -_0806FA80: .4byte gPlayerBodyPSI - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc deleted file mode 100644 index 232f898a6a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/Yukimaru__YukimaruGroundInit.inc +++ /dev/null @@ -1,284 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r1, _08071AB0 @ =gCurTask - ldr r0, [r1] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r3, r0 - ldr r2, _08071AB4 @ =0x0300000C - adds r7, r3, r2 - ldr r4, _08071AB8 @ =0x03000048 - adds r4, r4, r3 - mov r8, r4 - ldr r0, [r5] - mov sb, r0 - ldrb r2, [r5, #8] - lsls r2, r2, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - mov r4, sb - ldrb r1, [r4, #1] - lsls r1, r1, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 - lsls r1, r1, #0x10 - ldr r0, _08071ABC @ =0x0300007A - adds r2, r3, r0 - ldr r4, _08071AC0 @ =0x03000078 - ldrh r0, [r4, r3] - ldrh r4, [r2] - adds r0, r0, r4 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - adds r0, r6, r0 - lsls r0, r0, #0x10 - asrs r2, r1, #0x10 - mov ip, r2 - ldr r4, _08071AC4 @ =0x0300007C - adds r3, r3, r4 - ldr r2, _08071AC8 @ =0xFFFA0000 - adds r1, r1, r2 - asrs r1, r1, #0x10 - ldrh r3, [r3] - adds r1, r1, r3 - lsls r1, r1, #0x10 - ldr r3, _08071ACC @ =gCamera - ldrh r4, [r3] - mov sl, r4 - lsrs r2, r0, #0x10 - str r2, [sp, #0xc] - asrs r0, r0, #0x10 - mov r4, sl - subs r2, r0, r4 - strh r2, [r7, #0x16] - lsrs r2, r1, #0x10 - mov sl, r2 - asrs r1, r1, #0x10 - ldrh r4, [r3, #2] - subs r2, r1, r4 - strh r2, [r7, #0x18] - ldrh r2, [r3] - subs r0, r0, r2 - mov r2, r8 - strh r0, [r2, #0x16] - ldrh r0, [r3, #2] - subs r1, r1, r0 - strh r1, [r2, #0x18] - movs r4, #0 - ldrsh r1, [r3, r4] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r1, r2 - ldr r4, _08071AB0 @ =gCurTask - cmp r6, r0 - bgt _08071A7E - adds r0, r1, #0 - subs r0, #0x80 - cmp r6, r0 - blt _08071A7E - movs r0, #2 - ldrsh r2, [r3, r0] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r2, r1 - cmp ip, r0 - bgt _08071A7E - adds r0, r2, #0 - subs r0, #0x80 - cmp ip, r0 - bge _08071AD0 -_08071A7E: - ldrh r0, [r7, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08071AA2 - movs r2, #0x18 - ldrsh r0, [r7, r2] - adds r0, #0x80 - cmp r0, #0 - blt _08071AA2 - movs r3, #0x18 - ldrsh r1, [r7, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08071AD0 -_08071AA2: - ldrb r0, [r5, #8] - mov r1, sb - strb r0, [r1] - ldr r0, [r4] - bl TaskDestroy - b _08071BDA - .align 2, 0 -_08071AB0: .4byte gCurTask -_08071AB4: .4byte 0x0300000C -_08071AB8: .4byte 0x03000048 -_08071ABC: .4byte 0x0300007A -_08071AC0: .4byte 0x03000078 -_08071AC4: .4byte 0x0300007C -_08071AC8: .4byte 0xFFFA0000 -_08071ACC: .4byte gCamera -_08071AD0: - ldr r2, [sp, #0xc] - lsls r0, r2, #0x10 - asrs r4, r0, #0x10 - mov r3, sl - lsls r0, r3, #0x10 - asrs r6, r0, #0x10 - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl Coll_Player_Enemy_Attack - cmp r0, #0 - beq _08071AF8 - ldr r0, _08071AF4 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08071BDA - .align 2, 0 -_08071AF4: .4byte gCurTask -_08071AF8: - add r0, sp, #8 - str r0, [sp] - ldr r0, _08071B3C @ =sa2__sub_801EE64 - str r0, [sp, #4] - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F07C - adds r2, r5, #0 - adds r2, #0x7c - ldrh r1, [r2] - adds r1, r1, r0 - movs r3, #0 - mov ip, r3 - strh r1, [r2] - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r2, r0, #0x18 - mov r0, sb - movs r1, #3 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - cmp r2, r0 - bgt _08071B40 - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0xa0 - strh r0, [r1] - b _08071BAC - .align 2, 0 -_08071B3C: .4byte sa2__sub_801EE64 -_08071B40: - mov r3, sb - ldrb r0, [r3, #5] - adds r0, r1, r0 - lsls r0, r0, #3 - cmp r2, r0 - blt _08071B5C - adds r1, r5, #0 - adds r1, #0x78 - ldr r0, _08071B58 @ =0x0000FF60 - strh r0, [r1] - b _08071BAC - .align 2, 0 -_08071B58: .4byte 0x0000FF60 -_08071B5C: - adds r2, r5, #0 - adds r2, #0x80 - ldrh r0, [r2] - movs r1, #0 - ldrsh r3, [r2, r1] - cmp r3, #0 - beq _08071B70 - subs r0, #1 - strh r0, [r2] - b _08071BAC -_08071B70: - ldr r1, _08071BEC @ =gPlayer - ldr r0, [r1, #4] - asrs r0, r0, #8 - cmp r0, r6 - bgt _08071BAC - ldr r0, [r1] - asrs r1, r0, #8 - adds r0, r4, #0 - adds r0, #8 - cmp r1, r0 - bgt _08071BAC - subs r0, #0x10 - cmp r0, r1 - bgt _08071BAC - movs r0, #0x3c - strh r0, [r2] - adds r0, r5, #0 - adds r0, #0x7e - strh r3, [r0] - adds r0, r7, #0 - adds r0, #0x20 - mov r2, ip - strb r2, [r0] - mov r0, r8 - adds r0, #0x20 - strb r2, [r0] - ldr r0, _08071BF0 @ =gCurTask - ldr r1, [r0] - ldr r0, _08071BF4 @ =Task_8071BFC - str r0, [r1, #8] -_08071BAC: - adds r0, r7, #0 - bl UpdateSpriteAnimation - mov r0, r8 - bl UpdateSpriteAnimation - adds r0, r7, #0 - bl DisplaySprite - mov r3, r8 - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r3, #0x10] - mov r0, r8 - bl DisplaySprite - mov r4, r8 - ldr r0, [r4, #0x10] - ldr r1, _08071BF8 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r4, #0x10] -_08071BDA: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08071BEC: .4byte gPlayer -_08071BF0: .4byte gCurTask -_08071BF4: .4byte Task_8071BFC -_08071BF8: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc deleted file mode 100644 index fa59069be2..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc +++ /dev/null @@ -1,913 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - movs r0, #0 - str r0, [sp, #8] - movs r1, #0 - str r1, [sp, #0xc] - ldr r0, _08026518 @ =gCurTask - ldr r0, [r0] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r3 - mov r8, r0 - ldr r2, _0802651C @ =0x0300000C - adds r7, r3, r2 - ldr r4, _08026520 @ =0x03000044 - adds r4, r3, r4 - str r4, [sp, #4] - ldr r5, [r0] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08026528 - ldr r6, _08026524 @ =0x0300009A - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - subs r0, #2 - adds r2, #0x8a - adds r1, r3, r2 - strh r0, [r1] - b _08026544 - .align 2, 0 -_08026518: .4byte gCurTask -_0802651C: .4byte 0x0300000C -_08026520: .4byte 0x03000044 -_08026524: .4byte 0x0300009A -_08026528: - ldr r4, _08026588 @ =0x0300009A - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #3 - lsls r0, r0, #1 - movs r6, #4 - rsbs r6, r6, #0 - adds r1, r6, #0 - subs r1, r1, r0 - ldr r2, _0802658C @ =0x03000096 - adds r0, r3, r2 - strh r1, [r0] -_08026544: - mov r1, r8 - adds r1, #0x94 - mov r0, r8 - adds r0, #0x96 - ldrh r0, [r0] - ldrh r3, [r1] - adds r2, r0, r3 - strh r2, [r1] - lsls r0, r2, #0x10 - asrs r3, r0, #0x10 - ldr r0, _08026590 @ =0xFFFFFD00 - str r1, [sp, #0x10] - cmp r3, r0 - bge _08026598 - movs r4, #0x80 - lsls r4, r4, #3 - adds r0, r2, r4 - strh r0, [r1] - mov r2, r8 - adds r2, #0x8c - ldr r0, _08026594 @ =gSineTable - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, [r2] - subs r0, r0, r1 - str r0, [r2] - mov sb, r2 - b _080265C4 - .align 2, 0 -_08026588: .4byte 0x0300009A -_0802658C: .4byte 0x03000096 -_08026590: .4byte 0xFFFFFD00 -_08026594: .4byte gSineTable -_08026598: - movs r0, #0x80 - lsls r0, r0, #1 - movs r4, #0x8c - add r4, r8 - mov sb, r4 - cmp r3, r0 - ble _080265C4 - ldr r6, _08026634 @ =0xFFFFFC00 - adds r0, r2, r6 - ldr r1, [sp, #0x10] - strh r0, [r1] - ldr r0, _08026638 @ =gSineTable - movs r2, #0x9c - lsls r2, r2, #2 - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] -_080265C4: - ldr r4, [sp, #0x10] - movs r6, #0 - ldrsh r1, [r4, r6] - ldr r0, _0802663C @ =0xFFFFFDC8 - cmp r1, r0 - bgt _08026644 - mov r1, r8 - adds r1, #0x9c - ldrb r0, [r1] - cmp r0, #0 - bne _080265FA - movs r0, #1 - strb r0, [r1] - movs r0, #0x91 - bl m4aSongNumStart - movs r0, #0x80 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #1 - rsbs r3, r3, #0 - movs r1, #0x80 - str r1, [sp] - movs r1, #0x40 - bl CreateScreenShake -_080265FA: - ldr r1, [sp, #0x10] - ldrh r0, [r1] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - subs r1, r1, r0 - ldr r3, _08026640 @ =0x000003FF - adds r4, r3, #0 - ldr r3, _08026638 @ =gSineTable - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r3, r6 - movs r6, #0 - ldrsh r2, [r0, r6] - ands r1, r4 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r0, [r0, r6] - subs r2, r2, r0 - lsls r0, r2, #1 - adds r0, r0, r2 - asrs r0, r0, #9 - rsbs r0, r0, #0 - b _0802669C - .align 2, 0 -_08026634: .4byte 0xFFFFFC00 -_08026638: .4byte gSineTable -_0802663C: .4byte 0xFFFFFDC8 -_08026640: .4byte 0x000003FF -_08026644: - cmp r1, #0x37 - ble _080266C4 - mov r1, r8 - adds r1, #0x9c - ldrb r0, [r1] - cmp r0, #0 - bne _08026672 - movs r0, #1 - strb r0, [r1] - movs r0, #0x91 - bl m4aSongNumStart - movs r0, #0x80 - lsls r0, r0, #4 - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #1 - rsbs r3, r3, #0 - movs r1, #0x80 - str r1, [sp] - movs r1, #0x40 - bl CreateScreenShake -_08026672: - ldr r3, [sp, #0x10] - ldrh r4, [r3] - ldr r1, _080266BC @ =0x000003FF - ldr r3, _080266C0 @ =gSineTable - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r3, r6 - movs r6, #0 - ldrsh r2, [r0, r6] - ands r1, r4 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r1, r4 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r0, [r0, r6] - subs r2, r2, r0 - lsls r0, r2, #1 - adds r0, r0, r2 - asrs r0, r0, #9 -_0802669C: - str r0, [sp, #8] - lsls r1, r1, #1 - adds r1, r1, r3 - movs r0, #0 - ldrsh r1, [r1, r0] - adds r3, #0x70 - movs r2, #0 - ldrsh r0, [r3, r2] - subs r1, r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - asrs r0, r0, #9 - rsbs r0, r0, #0 - str r0, [sp, #0xc] - b _080266F6 - .align 2, 0 -_080266BC: .4byte 0x000003FF -_080266C0: .4byte gSineTable -_080266C4: - mov r1, r8 - adds r1, #0x9c - ldrb r0, [r1] - cmp r0, #1 - bne _080266D2 - movs r0, #0 - strb r0, [r1] -_080266D2: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080266EC - mov r3, sb - ldr r0, [r3] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r0, r4 - str r0, [r3] - b _080266F6 -_080266EC: - mov r6, sb - ldr r0, [r6] - ldr r1, _08026790 @ =0xFFFFFF00 - adds r0, r0, r1 - str r0, [r6] -_080266F6: - mov r2, r8 - ldrb r1, [r2, #8] - lsls r1, r1, #3 - ldrh r0, [r2, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - mov r3, sb - ldr r0, [r3] - asrs r0, r0, #8 - adds r1, r1, r0 - ldr r4, [sp, #8] - adds r1, r1, r4 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x10 - ldrb r0, [r5, #1] - lsls r0, r0, #3 - ldrh r1, [r2, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - ldr r5, [sp, #0xc] - adds r0, r0, r5 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r7, #0x10] - ldr r1, _08026794 @ =0xFFFFFE7F - ands r0, r1 - str r0, [r7, #0x10] - ldr r3, _08026798 @ =gPlayer - ldr r4, [r3, #0x10] - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - bne _0802674C - ldr r2, _0802679C @ =gDispCnt - ldrh r1, [r2] - ldr r0, _080267A0 @ =0x00007FFF - ands r0, r1 - strh r0, [r2] - ldr r0, _080267A4 @ =gWinRegs - strh r4, [r0, #0xa] - ldr r0, _080267A8 @ =gBldRegs - strh r4, [r0] - strh r4, [r0, #4] -_0802674C: - mov r0, r8 - adds r0, #0x9b - movs r1, #0 - ldrsb r1, [r0, r1] - mov sl, r0 - lsls r6, r6, #0x10 - str r6, [sp, #0x14] - lsls r5, r5, #0x10 - str r5, [sp, #0x18] - cmp r1, #0 - beq _08026764 - b _08026A78 -_08026764: - asrs r4, r6, #0x10 - asrs r5, r5, #0x10 - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl Coll_Player_Boss_1 - adds r6, r0, #0 - ldr r0, _080267AC @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _080267B4 - ldr r3, _080267B0 @ =gPartner - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl Coll_Player_Boss_1 - b _080267B6 - .align 2, 0 -_08026790: .4byte 0xFFFFFF00 -_08026794: .4byte 0xFFFFFE7F -_08026798: .4byte gPlayer -_0802679C: .4byte gDispCnt -_080267A0: .4byte 0x00007FFF -_080267A4: .4byte gWinRegs -_080267A8: .4byte gBldRegs -_080267AC: .4byte gNumSingleplayerCharacters -_080267B0: .4byte gPartner -_080267B4: - movs r0, #0 -_080267B6: - cmp r6, #1 - beq _080267C0 - cmp r0, #1 - beq _080267C0 - b _08026A78 -_080267C0: - mov r1, r8 - adds r1, #0x9a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x20 - mov r6, sl - strb r0, [r6] - ldr r1, [sp, #4] - adds r1, #0x20 - movs r0, #2 - strb r0, [r1] - mov r1, r8 - adds r1, #0x9e - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r1] - ldr r1, _080268BC @ =gLevelScore - ldr r6, [r1] - movs r2, #0xfa - lsls r2, r2, #2 - adds r0, r6, r2 - str r0, [r1] - ldr r4, _080268C0 @ =0x0000C350 - adds r1, r4, #0 - bl Div - adds r5, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl Div - cmp r5, r0 - beq _08026814 - ldr r0, _080268C4 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08026814 - ldr r1, _080268C8 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08026814: - movs r0, #0x90 - bl m4aSongNumStart - movs r1, #0 - ldr r3, [sp, #8] - lsls r4, r3, #8 - mov r6, r8 - adds r6, #0x90 - ldr r0, [sp, #0xc] - lsls r5, r0, #8 - movs r2, #0x98 - add r2, r8 - mov sl, r2 - movs r3, #0x20 - adds r3, r3, r7 - mov ip, r3 - mov r2, r8 - adds r2, #0x78 - ldr r3, _080268CC @ =Task_80271E4 -_0802683A: - lsls r0, r1, #2 - adds r0, r2, r0 - ldr r0, [r0] - str r3, [r0, #8] - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #4 - bls _0802683A - mov r0, r8 - ldr r1, [r0, #0x74] - ldr r0, _080268D0 @ =Task_8027600 - str r0, [r1, #8] - mov r1, sb - ldr r0, [r1] - adds r0, r0, r4 - str r0, [r1] - str r5, [r6] - movs r1, #0 - movs r4, #0 - mov r2, sl - strh r4, [r2] - movs r0, #0x99 - lsls r0, r0, #2 - strh r0, [r7, #0xa] - mov r3, ip - strb r1, [r3] - ldr r5, [sp, #0x14] - asrs r0, r5, #0x10 - ldr r6, [sp, #0x18] - asrs r1, r6, #0x10 - ldr r3, _080268D4 @ =0x00000265 - str r4, [sp] - movs r2, #0x10 - bl sub_80168F0 - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r3, r2, r0 - adds r0, #0x46 - adds r1, r2, r0 - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r1] - ldr r1, _080268D8 @ =0x03000048 - adds r0, r2, r1 - strh r4, [r0] - ldr r5, _080268DC @ =0x03000042 - adds r0, r2, r5 - strh r4, [r0] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080268E4 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r3, #0x32] - ldr r6, _080268E0 @ =0x03000044 - adds r0, r2, r6 - strh r1, [r0] - b _080268EE - .align 2, 0 -_080268BC: .4byte gLevelScore -_080268C0: .4byte 0x0000C350 -_080268C4: .4byte gGameMode -_080268C8: .4byte gNumLives -_080268CC: .4byte Task_80271E4 -_080268D0: .4byte Task_8027600 -_080268D4: .4byte 0x00000265 -_080268D8: .4byte 0x03000048 -_080268DC: .4byte 0x03000042 -_080268E0: .4byte 0x03000044 -_080268E4: - ldr r0, _08026944 @ =0x03000044 - adds r1, r2, r0 - movs r0, #0xfc - lsls r0, r0, #8 - strh r0, [r1] -_080268EE: - adds r1, r3, #0 - adds r1, #0x40 - movs r4, #0 - movs r0, #0x3c - strh r0, [r1] - ldr r1, [sp, #0x14] - asrs r0, r1, #0x10 - ldr r2, [sp, #0x18] - asrs r1, r2, #0x10 - ldr r3, _08026948 @ =0x00000266 - str r4, [sp] - movs r2, #0x10 - bl sub_80168F0 - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r3, r2, r0 - ldr r5, _0802694C @ =0x03000046 - adds r1, r2, r5 - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r1] - ldr r6, _08026950 @ =0x03000048 - adds r0, r2, r6 - strh r4, [r0] - ldr r1, _08026954 @ =0x03000042 - adds r0, r2, r1 - strh r4, [r0] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08026958 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r3, #0x32] - ldr r4, _08026944 @ =0x03000044 - adds r0, r2, r4 - strh r1, [r0] - b _08026962 - .align 2, 0 -_08026944: .4byte 0x03000044 -_08026948: .4byte 0x00000266 -_0802694C: .4byte 0x03000046 -_08026950: .4byte 0x03000048 -_08026954: .4byte 0x03000042 -_08026958: - ldr r5, _080269BC @ =0x03000044 - adds r1, r2, r5 - movs r0, #0xfc - lsls r0, r0, #8 - strh r0, [r1] -_08026962: - adds r1, r3, #0 - adds r1, #0x40 - movs r4, #0 - movs r0, #0x3c - strh r0, [r1] - ldr r6, [sp, #0x14] - asrs r0, r6, #0x10 - ldr r2, [sp, #0x18] - asrs r1, r2, #0x10 - ldr r3, _080269C0 @ =0x00000267 - str r4, [sp] - movs r2, #0x10 - bl sub_80168F0 - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r3, r2, r0 - ldr r5, _080269C4 @ =0x03000046 - adds r1, r2, r5 - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r1] - ldr r6, _080269C8 @ =0x03000048 - adds r0, r2, r6 - strh r4, [r0] - ldr r1, _080269CC @ =0x03000042 - adds r0, r2, r1 - strh r4, [r0] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080269D0 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r3, #0x32] - ldr r4, _080269BC @ =0x03000044 - adds r1, r2, r4 - movs r0, #0xfc - lsls r0, r0, #8 - strh r0, [r1] - b _080269D6 - .align 2, 0 -_080269BC: .4byte 0x03000044 -_080269C0: .4byte 0x00000267 -_080269C4: .4byte 0x03000046 -_080269C8: .4byte 0x03000048 -_080269CC: .4byte 0x03000042 -_080269D0: - ldr r5, _08026A30 @ =0x03000044 - adds r0, r2, r5 - strh r1, [r0] -_080269D6: - adds r1, r3, #0 - adds r1, #0x40 - movs r4, #0 - movs r0, #0x3c - strh r0, [r1] - ldr r6, [sp, #0x14] - asrs r0, r6, #0x10 - ldr r2, [sp, #0x18] - asrs r1, r2, #0x10 - movs r3, #0x9a - lsls r3, r3, #2 - str r4, [sp] - movs r2, #0x10 - bl sub_80168F0 - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r3, r2, r0 - ldr r5, _08026A34 @ =0x03000046 - adds r1, r2, r5 - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r1] - ldr r6, _08026A38 @ =0x03000048 - adds r0, r2, r6 - strh r4, [r0] - ldr r1, _08026A3C @ =0x03000042 - adds r0, r2, r1 - strh r4, [r0] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08026A40 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r3, #0x32] - ldr r4, _08026A30 @ =0x03000044 - adds r1, r2, r4 - movs r0, #0xfc - lsls r0, r0, #8 - strh r0, [r1] - b _08026A46 - .align 2, 0 -_08026A30: .4byte 0x03000044 -_08026A34: .4byte 0x03000046 -_08026A38: .4byte 0x03000048 -_08026A3C: .4byte 0x03000042 -_08026A40: - ldr r5, _08026A68 @ =0x03000044 - adds r0, r2, r5 - strh r1, [r0] -_08026A46: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #0x3c - strh r0, [r1] - ldr r1, _08026A6C @ =gCamera - ldrh r0, [r1] - strh r0, [r1, #0x18] - adds r0, #0xf0 - strh r0, [r1, #0x1a] - ldr r0, _08026A70 @ =gCurTask - ldr r1, [r0] - ldr r0, _08026A74 @ =Task_8026C44 - str r0, [r1, #8] - bl _call_via_r0 - b _08026C12 - .align 2, 0 -_08026A68: .4byte 0x03000044 -_08026A6C: .4byte gCamera -_08026A70: .4byte gCurTask -_08026A74: .4byte Task_8026C44 -_08026A78: - ldr r4, _08026AB8 @ =gCamera - ldrh r1, [r4] - ldr r6, [sp, #0x14] - asrs r3, r6, #0x10 - subs r1, r3, r1 - strh r1, [r7, #0x16] - ldrh r2, [r4, #2] - ldr r5, [sp, #0x18] - asrs r0, r5, #0x10 - subs r0, r0, r2 - strh r0, [r7, #0x18] - ldr r6, [sp, #4] - strh r1, [r6, #0x16] - ldrh r0, [r7, #0x18] - strh r0, [r6, #0x18] - ldr r0, [sp, #0xc] - cmp r0, #0 - bne _08026AD6 - movs r1, #0x18 - ldrsh r0, [r4, r1] - subs r0, #0x40 - cmp r3, r0 - bge _08026ABC - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r7, #0x10] - ldr r0, [r6, #0x10] - orrs r0, r1 - str r0, [r6, #0x10] - b _08026AD6 - .align 2, 0 -_08026AB8: .4byte gCamera -_08026ABC: - movs r2, #0x1a - ldrsh r0, [r4, r2] - adds r0, #0x40 - cmp r3, r0 - ble _08026AD6 - ldr r0, [r7, #0x10] - ldr r1, _08026B48 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r7, #0x10] - ldr r3, [sp, #4] - ldr r0, [r3, #0x10] - ands r0, r1 - str r0, [r3, #0x10] -_08026AD6: - adds r0, r7, #0 - bl UpdateSpriteAnimation - ldr r0, [sp, #4] - bl UpdateSpriteAnimation - adds r0, r7, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #2 - bne _08026AF4 - ldr r4, [sp, #4] - ldrh r0, [r4, #0x18] - subs r0, #1 - strh r0, [r4, #0x18] -_08026AF4: - mov r5, sl - ldrb r1, [r5] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _08026B76 - subs r1, #1 - strb r1, [r5] - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _08026B60 - movs r0, #2 - ands r1, r0 - cmp r1, #0 - bne _08026B68 - ldr r0, _08026B4C @ =gPlayer - ldr r0, [r0, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08026B68 - ldr r0, [r7, #0x10] - adds r1, #0x80 - orrs r0, r1 - str r0, [r7, #0x10] - ldr r2, _08026B50 @ =gDispCnt - ldrh r0, [r2] - movs r6, #0x80 - lsls r6, r6, #8 - adds r1, r6, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08026B54 @ =gWinRegs - ldr r0, _08026B58 @ =0x00003F1F - strh r0, [r1, #0xa] - ldr r1, _08026B5C @ =gBldRegs - movs r0, #0xbf - strh r0, [r1] - movs r0, #0x10 - strh r0, [r1, #4] - b _08026B68 - .align 2, 0 -_08026B48: .4byte 0xFFFFFBFF -_08026B4C: .4byte gPlayer -_08026B50: .4byte gDispCnt -_08026B54: .4byte gWinRegs -_08026B58: .4byte 0x00003F1F -_08026B5C: .4byte gBldRegs -_08026B60: - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08026B82 -_08026B68: - adds r0, r7, #0 - bl DisplaySprite - ldr r0, [sp, #4] - bl DisplaySprite - b _08026B82 -_08026B76: - adds r0, r7, #0 - bl DisplaySprite - ldr r0, [sp, #4] - bl DisplaySprite -_08026B82: - ldr r3, [r7, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - ands r3, r0 - cmp r3, #0 - beq _08026BE0 - ldr r2, _08026BC0 @ =gSpriteTransformRotation - ldr r0, [sp, #0x10] - ldrh r1, [r0] - ldr r0, _08026BC4 @ =0x000003FF - ands r0, r1 - strh r0, [r2] - ldr r0, _08026BC8 @ =gSpriteTransformScaleX - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - strh r1, [r0] - ldr r0, _08026BCC @ =gSpriteTransformScaleY - strh r1, [r0] - ldr r0, _08026BD0 @ =sa2__gUnknown_03002A8C - movs r1, #0 - strh r1, [r0] - ldr r0, _08026BD4 @ =sa2__gUnknown_03004D58 - strh r1, [r0] - ldr r1, _08026BD8 @ =gSpriteTransformX - mov r3, r8 - ldrh r0, [r3, #0x22] - strh r0, [r1] - ldr r1, _08026BDC @ =gSpriteTransformY - ldrh r0, [r3, #0x24] - b _08026C0E - .align 2, 0 -_08026BC0: .4byte gSpriteTransformRotation -_08026BC4: .4byte 0x000003FF -_08026BC8: .4byte gSpriteTransformScaleX -_08026BCC: .4byte gSpriteTransformScaleY -_08026BD0: .4byte sa2__gUnknown_03002A8C -_08026BD4: .4byte sa2__gUnknown_03004D58 -_08026BD8: .4byte gSpriteTransformX -_08026BDC: .4byte gSpriteTransformY -_08026BE0: - ldr r2, _08026C24 @ =gSpriteTransformRotation - ldr r4, [sp, #0x10] - ldrh r1, [r4] - ldr r0, _08026C28 @ =0x000003FF - ands r0, r1 - strh r0, [r2] - ldr r0, _08026C2C @ =gSpriteTransformScaleX - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - strh r1, [r0] - ldr r0, _08026C30 @ =gSpriteTransformScaleY - strh r1, [r0] - ldr r0, _08026C34 @ =sa2__gUnknown_03002A8C - strh r3, [r0] - ldr r0, _08026C38 @ =sa2__gUnknown_03004D58 - strh r3, [r0] - ldr r1, _08026C3C @ =gSpriteTransformX - mov r6, r8 - ldrh r0, [r6, #0x22] - strh r0, [r1] - ldr r1, _08026C40 @ =gSpriteTransformY - ldrh r0, [r6, #0x24] -_08026C0E: - subs r0, #0x24 - strh r0, [r1] -_08026C12: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08026C24: .4byte gSpriteTransformRotation -_08026C28: .4byte 0x000003FF -_08026C2C: .4byte gSpriteTransformScaleX -_08026C30: .4byte gSpriteTransformScaleY -_08026C34: .4byte sa2__gUnknown_03002A8C -_08026C38: .4byte sa2__gUnknown_03004D58 -_08026C3C: .4byte gSpriteTransformX -_08026C40: .4byte gSpriteTransformY - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc deleted file mode 100644 index 91aa7c480c..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80271E4.inc +++ /dev/null @@ -1,116 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08027268 @ =gCurTask - mov r8, r0 - ldr r0, [r0] - ldrh r7, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r7, r0 - adds r5, r6, #0 - ldr r2, _0802726C @ =0x03000030 - adds r1, r7, r2 - movs r0, #0 - strh r0, [r1] - ldr r3, _08027270 @ =0x03000050 - adds r3, r3, r7 - mov ip, r3 - ldrb r4, [r3] - ldr r2, _08027274 @ =gSineTable - ldr r0, _08027278 @ =gSpriteTransformRotation - ldrh r1, [r0] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r0, r0, #4 - adds r3, r4, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r0, [r1, r2] - lsls r0, r0, #4 - adds r2, r4, #0 - muls r2, r0, r2 - ldr r1, _0802727C @ =gSpriteTransformX - ldr r4, _08027280 @ =gCamera - ldrh r0, [r4] - ldrh r1, [r1] - adds r0, r0, r1 - asrs r3, r3, #0xe - adds r3, r3, r0 - ldr r1, _08027284 @ =gSpriteTransformY - ldrh r0, [r4, #2] - ldrh r1, [r1] - adds r0, r0, r1 - asrs r2, r2, #0xe - adds r2, r2, r0 - strh r3, [r6, #0x3c] - strh r2, [r6, #0x3e] - mov r3, ip - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - mov r3, r8 - cmp r0, #0 - beq _0802728C - ldr r0, _08027288 @ =0x0300004C - adds r1, r7, r0 - movs r0, #0x80 - lsls r0, r0, #2 - b _08027294 - .align 2, 0 -_08027268: .4byte gCurTask -_0802726C: .4byte 0x03000030 -_08027270: .4byte 0x03000050 -_08027274: .4byte gSineTable -_08027278: .4byte gSpriteTransformRotation -_0802727C: .4byte gSpriteTransformX -_08027280: .4byte gCamera -_08027284: .4byte gSpriteTransformY -_08027288: .4byte 0x0300004C -_0802728C: - ldr r2, _080272C8 @ =0x0300004C - adds r1, r7, r2 - movs r0, #0xfe - lsls r0, r0, #8 -_08027294: - strh r0, [r1] - adds r2, r5, #0 - adds r2, #0x4e - movs r1, #0 - movs r0, #0xfa - lsls r0, r0, #8 - strh r0, [r2] - str r1, [r5, #0x44] - str r1, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x40 - strh r1, [r0] - ldr r0, [r6, #0x10] - subs r1, #0x21 - ands r0, r1 - str r0, [r6, #0x10] - ldr r1, [r3] - ldr r0, _080272CC @ =Task_80272D0 - str r0, [r1, #8] - bl _call_via_r0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080272C8: .4byte 0x0300004C -_080272CC: .4byte Task_80272D0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc deleted file mode 100644 index e7c27523db..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_8027600.inc +++ /dev/null @@ -1,139 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, lr} - ldr r3, _08027640 @ =gCurTask - ldr r2, [r3] - ldrh r0, [r2, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r4, r0, r1 - mov ip, r4 - ldr r5, _08027644 @ =0x03000030 - adds r4, r0, r5 - ldrh r0, [r2] - adds r0, r0, r1 - ldrh r0, [r0, #6] - movs r1, #0 - strh r1, [r4] - ldr r1, _08027648 @ =0x03000094 - adds r0, r0, r1 - ldrh r1, [r0] - movs r2, #0 - ldrsh r0, [r0, r2] - adds r5, r3, #0 - cmp r0, #0 - bge _08027650 - ldr r3, _0802764C @ =0xFFFFFE00 - adds r0, r3, #0 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r0, #0 - ble _08027658 - strh r1, [r4] - b _08027658 - .align 2, 0 -_08027640: .4byte gCurTask -_08027644: .4byte 0x03000030 -_08027648: .4byte 0x03000094 -_0802764C: .4byte 0xFFFFFE00 -_08027650: - cmp r0, #0 - ble _08027658 - rsbs r0, r1, #0 - strh r0, [r4] -_08027658: - ldr r1, _080276C0 @ =gSpriteTransformRotation - ldrh r0, [r1] - ldrh r2, [r4] - adds r0, r0, r2 - strh r0, [r4] - ldr r3, _080276C4 @ =gSineTable - ldrh r2, [r1] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r2, r4 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r2, r2, #1 - adds r2, r2, r3 - movs r3, #0 - ldrsh r0, [r2, r3] - lsls r2, r0, #1 - adds r2, r2, r0 - ldr r3, _080276C8 @ =gSpriteTransformX - ldr r4, _080276CC @ =gCamera - ldrh r0, [r4] - ldrh r3, [r3] - adds r0, r0, r3 - asrs r1, r1, #9 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r3, _080276D0 @ =gSpriteTransformY - ldrh r0, [r4, #2] - ldrh r3, [r3] - adds r0, r0, r3 - asrs r2, r2, #9 - adds r2, r2, r0 - mov r0, ip - strh r1, [r0, #0x3c] - strh r2, [r0, #0x3e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - movs r2, #0 - ldrsh r0, [r4, r2] - adds r0, #0x78 - cmp r1, r0 - bge _080276D4 - mov r1, ip - adds r1, #0x4c - movs r0, #0x80 - lsls r0, r0, #2 - b _080276DC - .align 2, 0 -_080276C0: .4byte gSpriteTransformRotation -_080276C4: .4byte gSineTable -_080276C8: .4byte gSpriteTransformX -_080276CC: .4byte gCamera -_080276D0: .4byte gSpriteTransformY -_080276D4: - mov r1, ip - adds r1, #0x4c - movs r0, #0xfe - lsls r0, r0, #8 -_080276DC: - strh r0, [r1] - mov r2, ip - adds r2, #0x4e - movs r1, #0 - movs r0, #0xfa - lsls r0, r0, #8 - strh r0, [r2] - mov r3, ip - str r1, [r3, #0x44] - str r1, [r3, #0x48] - mov r0, ip - adds r0, #0x40 - strh r1, [r0] - mov r1, ip - adds r1, #0x42 - movs r0, #0x2a - strh r0, [r1] - ldr r1, [r5] - ldr r0, _08027710 @ =Task_8027714 - str r0, [r1, #8] - bl _call_via_r0 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08027710: .4byte Task_8027714 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc deleted file mode 100644 index b9b7ab4cb4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_1__Task_EHTHammer.inc +++ /dev/null @@ -1,163 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080274F4 @ =gCurTask - ldr r2, [r0] - ldrh r0, [r2, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r7, r0, r1 - ldr r4, _080274F8 @ =0x03000030 - adds r3, r0, r4 - ldrh r0, [r2] - adds r0, r0, r1 - ldrh r0, [r0, #6] - adds r5, r0, r1 - adds r1, #0x44 - adds r1, r1, r0 - mov r8, r1 - movs r1, #0 - strh r1, [r3] - ldr r2, _080274FC @ =0x03000094 - adds r0, r0, r2 - ldrh r1, [r0] - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r0, #0 - bge _08027504 - ldr r2, _08027500 @ =0xFFFFFE00 - adds r0, r2, #0 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r0, #0 - ble _0802750C - strh r1, [r3] - b _0802750C - .align 2, 0 -_080274F4: .4byte gCurTask -_080274F8: .4byte 0x03000030 -_080274FC: .4byte 0x03000094 -_08027500: .4byte 0xFFFFFE00 -_08027504: - cmp r0, #0 - ble _0802750C - rsbs r0, r1, #0 - strh r0, [r3] -_0802750C: - adds r0, r7, #0 - adds r1, r3, #0 - bl UnusedTransform - ldr r3, _0802759C @ =gSineTable - ldr r0, _080275A0 @ =gSpriteTransformRotation - ldrh r2, [r0] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r2, r4 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r2, r2, #1 - adds r2, r2, r3 - movs r3, #0 - ldrsh r0, [r2, r3] - lsls r2, r0, #1 - adds r2, r2, r0 - ldr r3, _080275A4 @ =gSpriteTransformX - ldr r4, _080275A8 @ =gCamera - ldrh r0, [r4] - ldrh r3, [r3] - adds r0, r0, r3 - asrs r1, r1, #9 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - ldr r1, _080275AC @ =gSpriteTransformY - ldrh r0, [r4, #2] - ldrh r1, [r1] - adds r0, r0, r1 - asrs r2, r2, #9 - adds r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r5, #0 - adds r0, #0x9b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080275E6 - lsls r0, r3, #0x10 - asrs r5, r0, #0x10 - lsls r0, r2, #0x10 - asrs r4, r0, #0x10 - ldr r3, _080275B0 @ =gPlayer - adds r0, r7, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl Coll_Player_Entity_Intersection - adds r6, r0, #0 - ldr r0, _080275B4 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _080275BC - ldr r3, _080275B8 @ =gPartner - adds r0, r7, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl Coll_Player_Entity_Intersection - adds r4, r0, #0 - b _080275BE - .align 2, 0 -_0802759C: .4byte gSineTable -_080275A0: .4byte gSpriteTransformRotation -_080275A4: .4byte gSpriteTransformX -_080275A8: .4byte gCamera -_080275AC: .4byte gSpriteTransformY -_080275B0: .4byte gPlayer -_080275B4: .4byte gNumSingleplayerCharacters -_080275B8: .4byte gPartner -_080275BC: - movs r4, #0 -_080275BE: - movs r5, #0x80 - lsls r5, r5, #0xc - cmp r6, r5 - bne _080275D4 - ldr r0, _080275F8 @ =gPlayer - bl Coll_DamagePlayer - mov r1, r8 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] -_080275D4: - cmp r4, r5 - bne _080275E6 - ldr r0, _080275FC @ =gPartner - bl Coll_DamagePlayer - mov r1, r8 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] -_080275E6: - adds r0, r7, #0 - bl DisplaySprite - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080275F8: .4byte gPlayer -_080275FC: .4byte gPartner - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc deleted file mode 100644 index bea9748582..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.inc +++ /dev/null @@ -1,136 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - ldr r5, [r4] - ldr r0, _08031A84 @ =sub_8031AB4 - movs r2, #0x88 - lsls r2, r2, #6 - movs r6, #0 - str r6, [sp] - movs r1, #0x68 - movs r3, #0 - bl TaskCreate - ldrh r3, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r2, r3, r2 - ldrb r1, [r4, #8] - lsls r1, r1, #3 - ldrh r0, [r4, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r7, _08031A88 @ =0x03000044 - adds r0, r3, r7 - movs r7, #0 - mov sl, r7 - strh r1, [r0] - ldrb r1, [r5, #1] - lsls r1, r1, #3 - ldrh r0, [r4, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r4, _08031A8C @ =0x03000046 - adds r0, r3, r4 - strh r1, [r0] - ldr r7, _08031A90 @ =gPseudoRandom - mov r8, r7 - mov r1, r8 - ldr r0, [r1] - ldr r5, _08031A94 @ =0x00196225 - adds r1, r0, #0 - muls r1, r5, r1 - ldr r4, _08031A98 @ =0x3C6EF35F - adds r1, r1, r4 - str r1, [r7] - lsrs r7, r1, #1 - movs r0, #0xf - mov sb, r0 - ands r7, r0 - lsls r0, r7, #2 - adds r0, r0, r7 - lsls r0, r0, #2 - rsbs r0, r0, #0 - subs r0, #0xa - lsls r0, r0, #8 - str r0, [r2, #0x4c] - ldr r0, _08031A9C @ =0xFFFFE000 - str r0, [r2, #0x50] - str r6, [r2, #0x54] - movs r0, #0xa - str r0, [r2, #0x58] - adds r0, r1, #0 - muls r0, r5, r0 - adds r0, r0, r4 - muls r0, r5, r0 - adds r0, r0, r4 - mov r1, r8 - str r0, [r1] - mov r4, sb - ands r0, r4 - adds r0, #0xa - str r0, [r2, #0x58] - strh r6, [r2, #0x16] - strh r6, [r2, #0x18] - ldr r0, _08031AA0 @ =0x06012720 - str r0, [r2, #4] - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r2, #0x1a] - strh r6, [r2, #8] - ldr r0, _08031AA4 @ =0x00000276 - strh r0, [r2, #0xa] - ldr r7, _08031AA8 @ =0x03000020 - adds r0, r3, r7 - mov r1, sl - strb r1, [r0] - strh r6, [r2, #0x14] - strh r6, [r2, #0x1c] - ldr r4, _08031AAC @ =0x03000021 - adds r1, r3, r4 - movs r0, #0xff - strb r0, [r1] - adds r7, #2 - adds r1, r3, r7 - movs r0, #0x10 - strb r0, [r1] - ldr r0, _08031AB0 @ =0x03000025 - adds r3, r3, r0 - mov r1, sl - strb r1, [r3] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r2, #0x28] - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r2, #0x10] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08031A84: .4byte sub_8031AB4 -_08031A88: .4byte 0x03000044 -_08031A8C: .4byte 0x03000046 -_08031A90: .4byte gPseudoRandom -_08031A94: .4byte 0x00196225 -_08031A98: .4byte 0x3C6EF35F -_08031A9C: .4byte 0xFFFFE000 -_08031AA0: .4byte 0x06012720 -_08031AA4: .4byte 0x00000276 -_08031AA8: .4byte 0x03000020 -_08031AAC: .4byte 0x03000021 -_08031AB0: .4byte 0x03000025 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc deleted file mode 100644 index c8f7882da4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesInit.inc +++ /dev/null @@ -1,412 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _0804E6EC @ =gPlayer - mov sl, r0 - ldr r0, _0804E6F0 @ =gCurTask - ldr r0, [r0] - ldrh r6, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r6, r0 - ldr r1, _0804E6F4 @ =0x0300000C - adds r1, r1, r6 - mov sb, r1 - ldr r2, _0804E6F8 @ =0x03000044 - adds r2, r6, r2 - str r2, [sp] - mov r3, sl - ldr r0, [r3, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804E5DE - ldr r2, _0804E6FC @ =gDispCnt - ldrh r1, [r2] - ldr r0, _0804E700 @ =0x00007FFF - ands r0, r1 - strh r0, [r2] - mov r1, sb - ldr r0, [r1, #0x10] - ldr r1, _0804E704 @ =0xFFFFFE7F - ands r0, r1 - mov r2, sb - str r0, [r2, #0x10] -_0804E5DE: - ldr r2, _0804E708 @ =sBoss5ProcData - ldr r3, _0804E70C @ =0x0300009A - adds r0, r6, r3 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r2, [r0] - adds r0, r4, #0 - mov r1, sl - bl _call_via_r2 - str r0, [sp, #4] - adds r0, r4, #0 - bl sub_804EB04 - ldr r0, _0804E710 @ =0x03000088 - adds r5, r6, r0 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - bne _0804E618 - adds r0, r4, #0 - bl sub_804FDD4 -_0804E618: - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - bne _0804E62A - adds r0, r4, #0 - bl sub_804EB90 -_0804E62A: - ldr r1, _0804E714 @ =0x0300008C - adds r1, r1, r6 - mov r8, r1 - ldr r1, [r1] - ldr r0, [r4, #0x74] - asrs r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, _0804E718 @ =0x03000090 - adds r7, r6, r2 - ldr r2, [r7] - ldr r0, [r4, #0x78] - asrs r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - mov r3, sl - bl sub_800BFEC - adds r5, r0, #0 - ldr r3, _0804E71C @ =gNumSingleplayerCharacters - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #2 - bne _0804E684 - mov r0, r8 - ldr r1, [r0] - ldr r0, [r4, #0x74] - asrs r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, [r7] - ldr r0, [r4, #0x78] - asrs r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r3, _0804E720 @ =gPartner - mov r0, sb - bl sub_800BFEC - orrs r5, r0 -_0804E684: - cmp r5, #0 - beq _0804E68A - b _0804E7D0 -_0804E68A: - ldr r1, _0804E724 @ =0x03000097 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0804E69A - b _0804E7DE -_0804E69A: - mov r2, r8 - ldr r1, [r2] - ldr r0, [r4, #0x74] - asrs r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, [r7] - ldr r0, [r4, #0x78] - asrs r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - mov r3, sl - bl sub_800C0E0 - adds r5, r0, #0 - ldr r3, _0804E71C @ =gNumSingleplayerCharacters - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #2 - bne _0804E728 - mov r0, r8 - ldr r1, [r0] - ldr r0, [r4, #0x74] - asrs r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r2, [r7] - ldr r0, [r4, #0x78] - asrs r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r3, _0804E720 @ =gPartner - mov r0, sb - bl sub_800C0E0 - b _0804E72A - .align 2, 0 -_0804E6EC: .4byte gPlayer -_0804E6F0: .4byte gCurTask -_0804E6F4: .4byte 0x0300000C -_0804E6F8: .4byte 0x03000044 -_0804E6FC: .4byte gDispCnt -_0804E700: .4byte 0x00007FFF -_0804E704: .4byte 0xFFFFFE7F -_0804E708: .4byte sBoss5ProcData -_0804E70C: .4byte 0x0300009A -_0804E710: .4byte 0x03000088 -_0804E714: .4byte 0x0300008C -_0804E718: .4byte 0x03000090 -_0804E71C: .4byte gNumSingleplayerCharacters -_0804E720: .4byte gPartner -_0804E724: .4byte 0x03000097 -_0804E728: - movs r0, #0 -_0804E72A: - cmp r5, #0 - beq _0804E764 - adds r0, r4, #0 - adds r0, #0x9a - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #5 - beq _0804E73E - cmp r2, #0xa - bne _0804E75E -_0804E73E: - mov r1, sl - ldr r0, [r1, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0804E75E - cmp r2, #0xa - beq _0804E7D0 - movs r2, #0 - str r2, [sp, #4] - adds r1, r4, #0 - adds r1, #0x9b - movs r0, #0xa - strb r0, [r1] - mov r3, sl - b _0804E794 -_0804E75E: - movs r0, #0 - str r0, [sp, #4] - b _0804E7AC -_0804E764: - cmp r0, #0 - beq _0804E7D0 - adds r0, r4, #0 - adds r0, #0x9a - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #5 - beq _0804E778 - cmp r2, #0xa - bne _0804E7A8 -_0804E778: - ldr r3, _0804E7A4 @ =gPartner - ldr r0, [r3, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0804E7A8 - cmp r2, #0xa - beq _0804E7D0 - movs r1, #0 - str r1, [sp, #4] - adds r1, r4, #0 - adds r1, #0x9b - movs r0, #0xa - strb r0, [r1] -_0804E794: - ldrh r0, [r3, #8] - rsbs r0, r0, #0 - strh r0, [r3, #8] - ldrh r0, [r3, #0xc] - rsbs r0, r0, #0 - strh r0, [r3, #0xc] - b _0804E7D0 - .align 2, 0 -_0804E7A4: .4byte gPartner -_0804E7A8: - movs r2, #0 - str r2, [sp, #4] -_0804E7AC: - adds r2, r4, #0 - adds r2, #0x9b - movs r0, #0x11 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x95 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _0804E7C8 - movs r0, #0x13 - strb r0, [r2] -_0804E7C8: - adds r1, r4, #0 - adds r1, #0x97 - movs r0, #0x20 - strb r0, [r1] -_0804E7D0: - adds r0, r4, #0 - adds r0, #0x97 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0804E82E -_0804E7DE: - ldr r0, _0804E8BC @ =gStageTime - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0804E814 - ldr r0, _0804E8C0 @ =gPlayer - ldr r0, [r0, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804E814 - mov r3, sb - ldr r0, [r3, #0x10] - adds r1, #0x80 - orrs r0, r1 - str r0, [r3, #0x10] - ldr r2, _0804E8C4 @ =gDispCnt - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0804E8C8 @ =gWinRegs - ldr r0, _0804E8CC @ =0x00003F3F - strh r0, [r1, #0xa] -_0804E814: - adds r0, r4, #0 - adds r0, #0x9b - ldrb r0, [r0] - subs r0, #0x11 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0804E82E - adds r1, r4, #0 - adds r1, #0x97 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_0804E82E: - adds r0, r4, #0 - adds r0, #0x8c - ldr r1, [r0] - ldr r0, [r4, #0x74] - asrs r0, r0, #8 - adds r1, r1, r0 - ldr r2, _0804E8D0 @ =gCamera - ldrh r0, [r2] - subs r1, r1, r0 - ldr r3, [sp] - strh r1, [r3, #0x16] - mov r0, sb - strh r1, [r0, #0x16] - adds r0, r4, #0 - adds r0, #0x90 - ldr r1, [r0] - ldr r0, [r4, #0x78] - asrs r0, r0, #8 - adds r1, r1, r0 - ldrh r0, [r2, #2] - subs r1, r1, r0 - strh r1, [r3, #0x18] - mov r2, sb - strh r1, [r2, #0x18] - adds r5, r4, #0 - adds r5, #0x88 - ldr r0, [r5] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0804E878 - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - bl DisplaySprite -_0804E878: - ldr r0, [r5] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0804E88E - ldr r0, [sp] - bl UpdateSpriteAnimation - ldr r0, [sp] - bl DisplaySprite -_0804E88E: - ldr r3, [sp, #4] - cmp r3, #0 - bne _0804E8AC - adds r0, r4, #0 - adds r0, #0x9b - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x9a - strb r0, [r1] - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_804E8D4 -_0804E8AC: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804E8BC: .4byte gStageTime -_0804E8C0: .4byte gPlayer -_0804E8C4: .4byte gDispCnt -_0804E8C8: .4byte gWinRegs -_0804E8CC: .4byte 0x00003F3F -_0804E8D0: .4byte gCamera - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc deleted file mode 100644 index faf991763f..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRocketInit.inc +++ /dev/null @@ -1,367 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r0, _0804F27C @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r7, r0, r1 - adds r1, #0x14 - adds r1, r0, r1 - str r1, [sp] - ldr r2, _0804F280 @ =0x03000044 - adds r2, r0, r2 - str r2, [sp, #4] - ldr r3, [r7] - str r3, [sp, #8] - ldr r4, [r7, #4] - str r4, [sp, #0xc] - movs r3, #0xff - ldrb r6, [r7, #0x12] - mov r8, r6 - movs r1, #0x10 - ldrsh r0, [r7, r1] - cmp r0, #0x18 - ble _0804F2B6 - ldr r4, _0804F284 @ =gPlayer - ldr r2, [r4] - ldr r0, [r4, #4] - ldr r1, [sp, #0xc] - subs r6, r0, r1 - movs r0, #8 - ldrsh r4, [r7, r0] - movs r0, #0xa - ldrsh r1, [r7, r0] - ldr r5, _0804F288 @ =gSineTable - mov r0, r8 - ands r0, r3 - lsls r3, r0, #2 - mov sb, r3 - lsls r0, r0, #3 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #3 - adds r1, r1, r0 - ldr r3, [sp, #8] - subs r0, r2, r3 - cmp r0, #0 - bge _0804F242 - rsbs r0, r0, #0 -_0804F242: - adds r2, r1, #0 - muls r2, r0, r2 - movs r0, #0x80 - lsls r0, r0, #1 - add r0, sb - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #3 - adds r1, r4, r0 - cmp r1, #0 - bge _0804F260 - rsbs r1, r1, #0 -_0804F260: - adds r0, r2, #0 - bl __divsi3 - adds r1, r0, #0 - ldr r2, _0804F28C @ =0xFFFFF800 - adds r0, r6, r2 - cmp r1, r0 - bge _0804F298 - cmp r4, #0 - ble _0804F290 - movs r3, #3 - add r8, r3 - b _0804F2AC - .align 2, 0 -_0804F27C: .4byte gCurTask -_0804F280: .4byte 0x03000044 -_0804F284: .4byte gPlayer -_0804F288: .4byte gSineTable -_0804F28C: .4byte 0xFFFFF800 -_0804F290: - movs r4, #3 - rsbs r4, r4, #0 - add r8, r4 - b _0804F2AC -_0804F298: - cmp r1, r6 - ble _0804F2AC - cmp r4, #0 - ble _0804F2A8 - movs r6, #3 - rsbs r6, r6, #0 - add r8, r6 - b _0804F2AC -_0804F2A8: - movs r0, #3 - add r8, r0 -_0804F2AC: - movs r0, #0xff - mov r1, r8 - ands r1, r0 - mov r8, r1 - strh r1, [r7, #0x12] -_0804F2B6: - movs r2, #8 - ldrsh r0, [r7, r2] - ldr r3, [sp, #8] - adds r3, r3, r0 - str r3, [sp, #8] - movs r4, #0xa - ldrsh r0, [r7, r4] - ldr r6, [sp, #0xc] - adds r6, r6, r0 - str r6, [sp, #0xc] - movs r1, #0x10 - ldrsh r0, [r7, r1] - cmp r0, #0x10 - ble _0804F310 - movs r3, #0xc - ldrsh r2, [r7, r3] - ldr r3, _0804F350 @ =gSineTable - movs r1, #0xff - mov r4, r8 - ands r1, r4 - lsls r0, r1, #3 - movs r6, #0x80 - lsls r6, r6, #2 - adds r0, r0, r6 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r2, r0 - asrs r0, r0, #8 - ldrh r2, [r7, #8] - adds r0, r0, r2 - strh r0, [r7, #8] - movs r4, #0xc - ldrsh r2, [r7, r4] - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r2, r0 - asrs r0, r0, #8 - ldrh r6, [r7, #0xa] - adds r0, r0, r6 - strh r0, [r7, #0xa] -_0804F310: - ldr r0, [sp, #8] - str r0, [r7] - ldr r1, [sp, #0xc] - str r1, [r7, #4] - asrs r5, r0, #8 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - asrs r4, r1, #8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - mov sb, r0 - ldr r0, [sp] - mov r1, sl - mov r2, sb - ldr r3, _0804F354 @ =gPlayer - bl sub_800BF10 - adds r6, r0, #0 - ldr r0, _0804F358 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _0804F360 - ldr r3, _0804F35C @ =gPartner - ldr r0, [sp] - mov r1, sl - mov r2, sb - bl sub_800BF10 - b _0804F362 - .align 2, 0 -_0804F350: .4byte gSineTable -_0804F354: .4byte gPlayer -_0804F358: .4byte gNumSingleplayerCharacters -_0804F35C: .4byte gPartner -_0804F360: - movs r0, #0 -_0804F362: - orrs r6, r0 - cmp r6, #0 - beq _0804F3A8 - movs r3, #0xa8 - lsls r3, r3, #5 - ldr r2, _0804F3A4 @ =gSineTable - movs r1, #0xff - mov r4, r8 - ands r1, r4 - lsls r0, r1, #3 - movs r6, #0x80 - lsls r6, r6, #2 - adds r0, r0, r6 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r3, r0 - asrs r0, r0, #8 - ldr r4, [sp, #8] - adds r0, r4, r0 - lsls r1, r1, #3 - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - muls r1, r3, r1 - asrs r1, r1, #8 - ldr r6, [sp, #0xc] - adds r1, r6, r1 - bl sub_8017540 - b _0804F41E - .align 2, 0 -_0804F3A4: .4byte gSineTable -_0804F3A8: - ldr r1, _0804F428 @ =gCamera - movs r2, #0 - ldrsh r0, [r1, r2] - subs r5, r5, r0 - movs r3, #2 - ldrsh r0, [r1, r3] - subs r4, r4, r0 - ldr r3, _0804F42C @ =gPseudoRandom - ldr r1, [r3] - ldr r0, _0804F430 @ =0x00196225 - adds r2, r1, #0 - muls r2, r0, r2 - ldr r6, _0804F434 @ =0x3C6EF35F - adds r2, r2, r6 - str r2, [r3] - ldr r0, _0804F438 @ =0x000003FF - mov sb, r0 - ands r2, r0 - ldr r1, _0804F43C @ =0xFFFFE600 - adds r2, r2, r1 - ldr r3, _0804F440 @ =gSineTable - movs r1, #0xff - mov r6, r8 - ands r1, r6 - lsls r0, r1, #3 - movs r6, #0x80 - lsls r6, r6, #2 - adds r0, r0, r6 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r2, r0 - asrs r0, r0, #8 - ldr r6, [sp, #8] - adds r0, r6, r0 - asrs r0, r0, #8 - lsls r1, r1, #3 - adds r1, r1, r3 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - muls r1, r2, r1 - asrs r1, r1, #8 - ldr r2, [sp, #0xc] - adds r1, r2, r1 - asrs r1, r1, #8 - bl CreateBrakingDustEffect - adds r1, r5, #0 - adds r1, #0x20 - ldr r0, _0804F444 @ =0x0000012F - cmp r1, r0 - bhi _0804F41E - adds r1, r4, #0 - adds r1, #0x40 - subs r0, #0x10 - cmp r1, r0 - bls _0804F44C -_0804F41E: - ldr r0, _0804F448 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0804F4A6 - .align 2, 0 -_0804F428: .4byte gCamera -_0804F42C: .4byte gPseudoRandom -_0804F430: .4byte 0x00196225 -_0804F434: .4byte 0x3C6EF35F -_0804F438: .4byte 0x000003FF -_0804F43C: .4byte 0xFFFFE600 -_0804F440: .4byte gSineTable -_0804F444: .4byte 0x0000012F -_0804F448: .4byte gCurTask -_0804F44C: - ldrh r0, [r7, #0x10] - adds r0, #1 - strh r0, [r7, #0x10] - ldr r3, [sp, #4] - strh r5, [r3, #6] - strh r4, [r3, #8] - mov r1, r8 - movs r4, #2 - ldrsh r0, [r3, r4] - cmp r0, #0 - bge _0804F464 - adds r1, #0x80 -_0804F464: - adds r0, r1, #0 - adds r0, #0x80 - lsls r0, r0, #2 - mov r6, sb - ands r0, r6 - ldr r1, [sp, #4] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #6 - ldr r2, [sp] - str r0, [r2, #0x10] - ldr r2, _0804F4B8 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r3, [sp] - ldr r0, [r3, #0x10] - orrs r0, r1 - str r0, [r3, #0x10] - ldr r0, [sp] - bl UpdateSpriteAnimation - ldr r0, [sp] - ldr r1, [sp, #4] - bl TransformSprite - ldr r0, [sp] - bl DisplaySprite -_0804F4A6: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804F4B8: .4byte gOamMatrixIndex - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc deleted file mode 100644 index d56fd5c0d4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__CreateEntity_EggSnake.inc +++ /dev/null @@ -1,248 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r6, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - mov sb, r2 - lsls r3, r3, #0x18 - lsrs r5, r3, #0x18 - ldr r0, _08031FF8 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _08031FFC - movs r1, #2 - rsbs r1, r1, #0 - adds r0, r1, #0 - strb r0, [r6] - b _080321A8 - .align 2, 0 -_08031FF8: .4byte gGameMode -_08031FFC: - ldr r0, _08032090 @ =Task_EggSnakeInit - movs r2, #0x84 - lsls r2, r2, #6 - ldr r1, _08032094 @ =TaskDestructor_8034208 - str r1, [sp] - movs r1, #0xac - movs r3, #0 - bl TaskCreate - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r3 - mov sl, r0 - ldr r0, _08032098 @ =0x0300000C - adds r7, r3, r0 - movs r4, #0 - movs r2, #0 - mov r0, r8 - mov r1, sl - strh r0, [r1, #4] - mov r0, sb - strh r0, [r1, #6] - str r6, [r1] - ldrb r0, [r6] - strb r0, [r1, #8] - strb r5, [r1, #9] - ldr r0, _0803209C @ =0x03000098 - adds r1, r3, r0 - movs r0, #0x78 - strh r0, [r1] - ldr r1, _080320A0 @ =0x0300009C - adds r0, r3, r1 - strb r4, [r0] - adds r1, #0xd - adds r0, r3, r1 - strb r4, [r0] - subs r1, #1 - adds r0, r3, r1 - strb r4, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - mov r1, sl - str r0, [r1, #0x78] - str r2, [r1, #0x7c] - ldr r1, _080320A4 @ =0x03000080 - adds r0, r3, r1 - str r2, [r0] - adds r1, #4 - adds r0, r3, r1 - str r2, [r0] - adds r1, #0x1c - adds r0, r3, r1 - strh r2, [r0] - ldr r0, _080320A8 @ =0x030000A2 - adds r1, r3, r0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldr r1, _080320AC @ =0x030000A4 - adds r0, r3, r1 - strh r2, [r0] - adds r1, #6 - adds r0, r3, r1 - strb r4, [r0] - ldr r0, _080320B0 @ =gLoadedSaveGame - ldrb r0, [r0, #0x18] - cmp r0, #0 - beq _080320B8 - ldr r0, _080320B4 @ =0x0300009A - adds r1, r3, r0 - movs r0, #2 - strb r0, [r1] - b _080320BE - .align 2, 0 -_08032090: .4byte Task_EggSnakeInit -_08032094: .4byte TaskDestructor_8034208 -_08032098: .4byte 0x0300000C -_0803209C: .4byte 0x03000098 -_080320A0: .4byte 0x0300009C -_080320A4: .4byte 0x03000080 -_080320A8: .4byte 0x030000A2 -_080320AC: .4byte 0x030000A4 -_080320B0: .4byte gLoadedSaveGame -_080320B4: .4byte 0x0300009A -_080320B8: - ldr r1, _080321B8 @ =0x0300009A - adds r0, r3, r1 - strb r4, [r0] -_080320BE: - ldrb r0, [r6] - lsls r0, r0, #3 - mov r1, r8 - lsls r5, r1, #8 - adds r0, r0, r5 - strh r0, [r7, #0x16] - ldrb r0, [r6, #1] - lsls r0, r0, #3 - mov r1, sb - lsls r1, r1, #8 - mov sb, r1 - add r0, sb - strh r0, [r7, #0x18] - movs r0, #0x30 - bl VramMalloc - str r0, [r7, #4] - movs r0, #0xb0 - lsls r0, r0, #3 - strh r0, [r7, #0x1a] - movs r0, #0 - strh r0, [r7, #8] - ldr r0, _080321BC @ =0x00000296 - strh r0, [r7, #0xa] - adds r0, r7, #0 - adds r0, #0x20 - movs r1, #3 - strb r1, [r0] - movs r0, #0 - strh r0, [r7, #0x14] - strh r0, [r7, #0x1c] - adds r1, r7, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x22 - movs r1, #0x10 - strb r1, [r0] - adds r0, #3 - movs r1, #0 - strb r1, [r0] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7, #0x28] - movs r1, #0x80 - lsls r1, r1, #6 - mov r8, r1 - str r1, [r7, #0x10] - mov r4, sl - adds r4, #0x44 - ldrb r0, [r6] - lsls r0, r0, #3 - adds r0, r0, r5 - strh r0, [r4, #0x16] - ldrb r0, [r6, #1] - lsls r0, r0, #3 - add r0, sb - strh r0, [r4, #0x18] - movs r1, #2 - rsbs r1, r1, #0 - adds r0, r1, #0 - strb r0, [r6] - movs r0, #8 - bl VramMalloc - str r0, [r4, #4] - movs r0, #0xa8 - lsls r0, r0, #3 - strh r0, [r4, #0x1a] - movs r0, #0 - strh r0, [r4, #8] - movs r0, #0xa5 - lsls r0, r0, #2 - strh r0, [r4, #0xa] - mov r0, sl - adds r0, #0x64 - movs r1, #3 - strb r1, [r0] - movs r0, #0 - strh r0, [r4, #0x14] - strh r0, [r4, #0x1c] - mov r1, sl - adds r1, #0x65 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - mov r0, sl - adds r0, #0x66 - movs r1, #0x10 - strb r1, [r0] - adds r0, #3 - movs r1, #0 - strb r1, [r0] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r4, #0x28] - mov r1, r8 - str r1, [r4, #0x10] - ldrh r1, [r7, #0x18] - adds r0, r1, #0 - subs r0, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, #0x20 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r3, [r7, #0x16] - adds r2, r3, #0 - subs r2, #0x90 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r3, #0xb0 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - bl Bosses_SetCamBounds -_080321A8: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080321B8: .4byte 0x0300009A -_080321BC: .4byte 0x00000296 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc deleted file mode 100644 index e81dcee124..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8032370.inc +++ /dev/null @@ -1,555 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r1, _0803247C @ =gCurTask - ldr r0, [r1] - ldrh r6, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r6, r1 - ldr r2, _08032480 @ =0x0300000C - adds r2, r2, r6 - mov r8, r2 - ldr r3, _08032484 @ =0x03000044 - adds r3, r3, r6 - mov sl, r3 - ldr r4, [r5] - mov ip, r4 - ldr r0, [r5, #0x74] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp] - ldr r0, _08032488 @ =0x030000A2 - adds r1, r6, r0 - ldr r2, _0803248C @ =0x030000A4 - adds r0, r6, r2 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldr r4, _08032490 @ =0x030000A0 - adds r2, r6, r4 - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r2] - subs r1, r1, r0 - ldr r0, _08032494 @ =0x000003FF - ands r1, r0 - strh r1, [r2] - ldr r1, _08032498 @ =gSineTable - movs r3, #0 - ldrsh r0, [r2, r3] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r4, #0 - ldrsh r7, [r0, r4] - lsls r0, r7, #4 - subs r0, r0, r7 - asrs r7, r0, #0xb - ldrb r1, [r5, #8] - lsls r1, r1, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, [r5, #0x78] - asrs r0, r0, #8 - adds r1, r1, r0 - adds r1, r1, r7 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 - adds r0, r7, #0 - adds r0, #0x80 - lsls r0, r0, #0x10 - asrs r3, r0, #0x10 - adds r1, r3, #0 - cmp r3, #0 - bge _080323FE - adds r1, #0x1f -_080323FE: - asrs r1, r1, #5 - lsls r0, r1, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #5 - subs r1, r3, r1 - ldr r3, _0803249C @ =gUnknown_03005870 - lsls r2, r4, #1 - adds r2, r2, r3 - adds r0, r4, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r4, #0 - ldrsh r3, [r2, r4] - subs r0, r0, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - muls r0, r1, r0 - cmp r0, #0 - bge _0803242A - adds r0, #0x1f -_0803242A: - asrs r2, r0, #5 - adds r2, r3, r2 - lsls r2, r2, #0x10 - mov r0, ip - ldrb r1, [r0, #1] - lsls r1, r1, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, [r5, #0x7c] - asrs r0, r0, #8 - adds r1, r1, r0 - lsrs r3, r2, #0x10 - asrs r2, r2, #0x10 - adds r2, r2, r1 - ldr r1, _080324A0 @ =0x03000090 - adds r0, r6, r1 - strh r7, [r0] - ldr r4, _080324A4 @ =0x03000092 - adds r0, r6, r4 - strh r3, [r0] - mov r1, sb - lsls r0, r1, #0x10 - asrs r4, r0, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov sb, r2 - adds r0, r4, #0 - mov r1, sb - bl sub_8031D88 - ldr r2, _080324A8 @ =0x0300009A - adds r0, r6, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #7 - ble _080324AC - bl sub_80327C4 - b _080327B0 - .align 2, 0 -_0803247C: .4byte gCurTask -_08032480: .4byte 0x0300000C -_08032484: .4byte 0x03000044 -_08032488: .4byte 0x030000A2 -_0803248C: .4byte 0x030000A4 -_08032490: .4byte 0x030000A0 -_08032494: .4byte 0x000003FF -_08032498: .4byte gSineTable -_0803249C: .4byte gUnknown_03005870 -_080324A0: .4byte 0x03000090 -_080324A4: .4byte 0x03000092 -_080324A8: .4byte 0x0300009A -_080324AC: - ldr r3, _08032510 @ =gCurTask - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r0, _08032514 @ =0x0300000C - adds r1, r1, r0 - ldr r2, _08032518 @ =gCamera - ldrh r0, [r2] - subs r0, r4, r0 - strh r0, [r1, #0x16] - ldrh r0, [r2, #2] - mov r2, sb - subs r0, r2, r0 - strh r0, [r1, #0x18] - bl sub_8031F74 - mov r0, r8 - bl UpdateSpriteAnimation - ldr r3, _0803251C @ =0x030000AA - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _080324E0 - mov r0, sl - bl UpdateSpriteAnimation -_080324E0: - ldr r4, _08032510 @ =gCurTask - ldr r0, [r4] - ldrh r0, [r0, #6] - ldr r1, _08032514 @ =0x0300000C - adds r2, r0, r1 - ldr r3, _08032520 @ =0x03000044 - adds r0, r0, r3 - ldrh r1, [r2, #0x16] - strh r1, [r0, #0x16] - ldrh r1, [r2, #0x18] - strh r1, [r0, #0x18] - bl sub_8031ED0 - ldr r4, _08032524 @ =0x030000A9 - adds r0, r6, r4 - ldrb r0, [r0] - cmp r0, #5 - bls _08032506 - b _080327B0 -_08032506: - lsls r0, r0, #2 - ldr r1, _08032528 @ =_0803252C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08032510: .4byte gCurTask -_08032514: .4byte 0x0300000C -_08032518: .4byte gCamera -_0803251C: .4byte 0x030000AA -_08032520: .4byte 0x03000044 -_08032524: .4byte 0x030000A9 -_08032528: .4byte _0803252C -_0803252C: @ jump table - .4byte _08032544 @ case 0 - .4byte _080325CC @ case 1 - .4byte _08032670 @ case 2 - .4byte _080326CE @ case 3 - .4byte _0803274C @ case 4 - .4byte _08032790 @ case 5 -_08032544: - adds r6, r5, #0 - adds r6, #0xa2 - movs r0, #0 - ldrsh r1, [r6, r0] - ldr r0, _080325C8 @ =0x000001FF - cmp r1, r0 - bgt _08032560 - movs r0, #0 - movs r1, #0x80 - lsls r1, r1, #2 - strh r1, [r6] - adds r1, r5, #0 - adds r1, #0xa4 - strh r0, [r1] -_08032560: - adds r0, r7, #0 - adds r0, #0x90 - cmp r0, #0 - bge _0803256A - adds r0, #0x1f -_0803256A: - asrs r0, r0, #5 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08032576 - b _080327B0 -_08032576: - cmp r4, #8 - bne _0803257C - b _080327B0 -_0803257C: - ldr r0, [sp] - adds r0, #0x55 - ldrb r2, [r0] - adds r0, r2, #0 - cmp r0, #0 - bne _0803258A - b _080327B0 -_0803258A: - cmp r0, #8 - bne _08032590 - b _080327B0 -_08032590: - subs r0, r2, #2 - lsls r1, r4, #0x18 - lsls r0, r0, #0x18 - asrs r3, r1, #0x18 - cmp r1, r0 - bge _0803259E - b _080327B0 -_0803259E: - adds r0, r2, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r3, r0 - ble _080325AA - b _080327B0 -_080325AA: - ldr r0, [sp] - adds r0, #0x57 - ldrb r0, [r0] - cmp r0, #0 - bne _080325B6 - b _080327B0 -_080325B6: - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r6] - adds r0, r5, #0 - adds r0, #0xa4 - strh r1, [r0] - b _08032740 - .align 2, 0 -_080325C8: .4byte 0x000001FF -_080325CC: - mov r3, r8 - adds r3, #0x20 - ldrb r0, [r3] - cmp r0, #1 - beq _080325FC - ldr r0, [sp] - adds r0, #0x5c - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - blt _080325E4 - b _080327B0 -_080325E4: - movs r0, #1 - strb r0, [r3] - mov r1, r8 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0xaa - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - b _080327B0 -_080325FC: - mov r2, r8 - ldr r0, [r2, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0803260C - b _080327B0 -_0803260C: - movs r2, #0 - movs r0, #2 - strb r0, [r3] - mov r0, sl - adds r0, #0x20 - strb r2, [r0] - mov r1, r8 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0xaa - strb r2, [r0] - ldr r3, _0803265C @ =gUnknown_084ACF08 - ldr r2, _08032660 @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _08032664 @ =0x00196225 - muls r0, r1, r0 - ldr r4, _08032668 @ =0x3C6EF35F - adds r0, r0, r4 - str r0, [r2] - ldr r1, _0803266C @ =gStageTime - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - adds r0, r5, #0 - adds r0, #0x98 - strh r1, [r0] - adds r0, #2 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x9b - strb r0, [r1] - adds r1, #0xe - b _08032744 - .align 2, 0 -_0803265C: .4byte gUnknown_084ACF08 -_08032660: .4byte gPseudoRandom -_08032664: .4byte 0x00196225 -_08032668: .4byte 0x3C6EF35F -_0803266C: .4byte gStageTime -_08032670: - adds r0, r5, #0 - adds r0, #0x9c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080326A0 - cmp r0, #0x10 - ble _08032684 - b _080327B0 -_08032684: - mov r1, r8 - adds r1, #0x20 - movs r0, #0 - strb r0, [r1] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0xaa - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - subs r1, #1 - b _08032744 -_080326A0: - adds r1, r5, #0 - adds r1, #0x98 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080326B2 - b _080327B0 -_080326B2: - mov r1, r8 - adds r1, #0x20 - movs r0, #0 - strb r0, [r1] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0xaa - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - subs r1, #1 - b _08032744 -_080326CE: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080327B0 - mov r0, r8 - adds r0, #0x20 - movs r2, #0 - movs r1, #3 - strb r1, [r0] - mov r0, sl - adds r0, #0x20 - strb r1, [r0] - mov r1, r8 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0xaa - strb r2, [r0] - adds r1, r5, #0 - adds r1, #0xa4 - movs r0, #0x40 - strh r0, [r1] - ldr r1, _0803273C @ =gUnknown_084ACEE4 - adds r2, r5, #0 - adds r2, #0x9a - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0xa6 - strh r0, [r1] - subs r1, #0xe - movs r0, #0x78 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x9b - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bne _08032740 - adds r1, r5, #0 - adds r1, #0xa9 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - b _080327B0 - .align 2, 0 -_0803273C: .4byte gUnknown_084ACEE4 -_08032740: - adds r1, r5, #0 - adds r1, #0xa9 -_08032744: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _080327B0 -_0803274C: - adds r2, r5, #0 - adds r2, #0xa2 - adds r0, r5, #0 - adds r0, #0xa6 - movs r3, #0 - ldrsh r1, [r2, r3] - ldrh r3, [r0] - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r1, r0 - blt _0803276C - movs r1, #0 - strh r3, [r2] - adds r0, r5, #0 - adds r0, #0xa4 - strh r1, [r0] -_0803276C: - adds r1, r5, #0 - adds r1, #0x98 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080327B0 - adds r1, #0xc - ldr r0, _0803278C @ =0x0000FFC0 - strh r0, [r1] - adds r1, #5 - movs r0, #0 - strb r0, [r1] - b _080327B0 - .align 2, 0 -_0803278C: .4byte 0x0000FFC0 -_08032790: - adds r3, r5, #0 - adds r3, #0xa2 - movs r0, #0 - ldrsh r1, [r3, r0] - ldr r0, _080327C0 @ =0x000001FF - cmp r1, r0 - ble _080327B0 - movs r2, #0 - movs r1, #0 - adds r0, #1 - strh r0, [r3] - adds r0, r5, #0 - adds r0, #0xa4 - strh r1, [r0] - adds r0, #5 - strb r2, [r0] -_080327B0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080327C0: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc deleted file mode 100644 index 54d6fe273c..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_8033AA0.inc +++ /dev/null @@ -1,786 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - movs r0, #0 - mov sb, r0 - ldr r0, _08033B48 @ =gCurTask - ldr r3, [r0] - ldrh r2, [r3, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r2 - mov sl, r0 - movs r1, #0 - str r1, [sp] - ldr r1, _08033B4C @ =0x040000D4 - ldr r0, _08033B50 @ =gUnknown_03005870 - str r0, [r1] - ldr r0, _08033B54 @ =gUnknown_03005890 - str r0, [r1, #4] - ldr r0, _08033B58 @ =0x80000009 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r4, _08033B5C @ =0x0300005E - adds r1, r2, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r5, _08033B60 @ =0x03000058 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _08033B7C - movs r5, #0 - ldr r7, _08033B64 @ =0x03000030 - adds r6, r2, r7 - ldr r0, _08033B68 @ =0x03000054 - adds r0, r0, r2 - mov r8, r0 - ldr r7, _08033B6C @ =gCamera -_08033AF4: - lsls r0, r5, #2 - adds r0, r6, r0 - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r4, r0, r1 - ldr r1, [r4, #0x38] - asrs r1, r1, #8 - ldrh r2, [r4, #0x30] - adds r1, r1, r2 - ldr r3, [r4, #0x3c] - asrs r3, r3, #8 - ldrh r0, [r4, #0x32] - adds r3, r3, r0 - ldr r2, _08033B50 @ =gUnknown_03005870 - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r2, r2, r3 - ldrh r0, [r7] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r1, r0 - strh r0, [r4, #0x16] - ldrh r0, [r7, #2] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r0, r2, r0 - strh r0, [r4, #0x18] - adds r0, r4, #0 - ldr r3, _08033B70 @ =gPlayer - bl Coll_Player_PlatformCrumbling - cmp r0, #0 - bne _08033B74 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _08033AF4 - b _08033B94 - .align 2, 0 -_08033B48: .4byte gCurTask -_08033B4C: .4byte 0x040000D4 -_08033B50: .4byte gUnknown_03005870 -_08033B54: .4byte gUnknown_03005890 -_08033B58: .4byte 0x80000009 -_08033B5C: .4byte 0x0300005E -_08033B60: .4byte 0x03000058 -_08033B64: .4byte 0x03000030 -_08033B68: .4byte 0x03000054 -_08033B6C: .4byte gCamera -_08033B70: .4byte gPlayer -_08033B74: - movs r1, #0xff - str r1, [sp] - mov sb, r5 - b _08033B94 -_08033B7C: - ldr r0, _08033BB4 @ =gPlayer - ldr r0, [r0, #0x10] - movs r1, #0xa - ands r0, r1 - ldr r4, _08033BB8 @ =0x03000054 - adds r4, r4, r2 - mov r8, r4 - cmp r0, #0 - bne _08033B94 - adds r0, r3, #0 - bl TaskDestroy -_08033B94: - ldr r5, [sp] - cmp r5, #0 - bne _08033B9C - b _08033E30 -_08033B9C: - mov r0, sl - adds r0, #0x56 - mov r6, sb - strb r6, [r0] - mov r7, sb - cmp r7, #0 - beq _08033BAE - cmp r7, #8 - bne _08033BBC -_08033BAE: - movs r6, #8 - b _08033BBE - .align 2, 0 -_08033BB4: .4byte gPlayer -_08033BB8: .4byte 0x03000054 -_08033BBC: - movs r6, #0x10 -_08033BBE: - ldr r1, _08033C38 @ =sPlayerSpeedState - ldr r0, [r1, #0xc] - movs r2, #2 - ands r0, r2 - cmp r0, #0 - beq _08033C58 - adds r0, r1, #0 - movs r3, #0xa - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - ble _08033C58 - mov r4, r8 - strb r2, [r4] - mov r0, sl - adds r0, #0x55 - mov r5, sb - strb r5, [r0] - mov r1, sl - adds r1, #0x57 - movs r0, #0xff - strb r0, [r1] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r0, #8 - beq _08033BF8 - lsls r0, r0, #0x11 - lsrs r6, r0, #0x10 -_08033BF8: - mov r0, sl - adds r0, #0x5a - strh r6, [r0] - movs r5, #0 - ldr r7, _08033C3C @ =gUnknown_03005890 - mov r8, r7 - mov r0, sb - lsls r0, r0, #1 - str r0, [sp, #4] - ldr r3, _08033C40 @ =gUnknown_03005870 - lsls r0, r6, #0x10 - asrs r4, r0, #0x10 -_08033C10: - cmp r5, sb - bne _08033C44 - ldr r2, _08033C38 @ =sPlayerSpeedState - ldrh r1, [r2, #0xa] - lsls r1, r1, #0x10 - asrs r1, r1, #0x18 - mov r0, sl - adds r0, #0x5c - strh r1, [r0] - lsls r0, r5, #1 - adds r2, r0, r3 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r4 - ble _08033C4C - strh r6, [r2] - b _08033C4C - .align 2, 0 -_08033C38: .4byte sPlayerSpeedState -_08033C3C: .4byte gUnknown_03005890 -_08033C40: .4byte gUnknown_03005870 -_08033C44: - lsls r0, r5, #1 - adds r0, r0, r3 - movs r1, #0 - strh r1, [r0] -_08033C4C: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _08033C10 - b _08033DFC -_08033C58: - mov r3, r8 - ldrb r0, [r3] - cmp r0, #2 - bne _08033D2C - ldr r2, _08033D24 @ =gUnknown_03005870 - mov r4, sb - lsls r3, r4, #1 - adds r6, r3, r2 - mov r5, sl - adds r5, #0x5c - ldrh r0, [r5] - ldrh r7, [r6] - adds r0, r0, r7 - strh r0, [r6] - mov r4, sl - adds r4, #0x5a - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r1, [r4] - mov ip, r1 - movs r7, #0 - ldrsh r1, [r4, r7] - str r3, [sp, #4] - cmp r0, r1 - blt _08033C9E - mov r0, ip - strh r0, [r6] - ldrh r0, [r5] - movs r1, #1 - subs r1, r1, r0 - strh r1, [r5] - mov r1, sl - adds r1, #0x57 - movs r0, #0 - strb r0, [r1] -_08033C9E: - movs r1, #0 - ldrsh r0, [r6, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - cmn r0, r1 - bgt _08033CBA - rsbs r0, r1, #0 - strh r0, [r6] - movs r0, #1 - mov r3, r8 - strb r0, [r3] -_08033CBA: - movs r5, #0 - ldr r4, _08033D28 @ =gUnknown_03005890 - mov r8, r4 - ldr r7, _08033D24 @ =gUnknown_03005870 - adds r4, r6, #0 -_08033CC4: - cmp r5, sb - beq _08033CFA - mov r6, sb - subs r0, r6, r5 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08033CDC - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08033CDC: - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - cmp r1, #2 - bgt _08033CFA - movs r2, #0 - ldrsh r0, [r4, r2] - muls r0, r1, r0 - movs r1, #3 - bl __divsi3 - ldrh r1, [r4] - subs r1, r1, r0 - lsls r0, r5, #1 - adds r0, r0, r7 - strh r1, [r0] -_08033CFA: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _08033CC4 - ldr r3, _08033D24 @ =gUnknown_03005870 - movs r4, #0 - ldrsh r0, [r3, r4] - cmp r0, #8 - ble _08033D12 - movs r0, #8 - strh r0, [r3] -_08033D12: - ldr r5, _08033D24 @ =gUnknown_03005870 - movs r6, #0x10 - ldrsh r0, [r5, r6] - cmp r0, #8 - ble _08033DFC - movs r0, #8 - strh r0, [r5, #0x10] - b _08033DFC - .align 2, 0 -_08033D24: .4byte gUnknown_03005870 -_08033D28: .4byte gUnknown_03005890 -_08033D2C: - movs r0, #1 - mov r7, r8 - strb r0, [r7] - ldr r1, _08033D4C @ =gUnknown_03005870 - mov r0, sb - lsls r2, r0, #1 - adds r4, r2, r1 - ldrh r3, [r4] - movs r5, #0 - ldrsh r0, [r4, r5] - str r2, [sp, #4] - cmp r0, #0 - bge _08033D50 - adds r0, r3, #2 - b _08033D52 - .align 2, 0 -_08033D4C: .4byte gUnknown_03005870 -_08033D50: - adds r0, r3, #1 -_08033D52: - strh r0, [r4] - ldr r7, [sp, #4] - ldr r0, _08033E24 @ =gUnknown_03005870 - adds r2, r7, r0 - movs r3, #0 - ldrsh r1, [r2, r3] - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - ble _08033D68 - strh r6, [r2] -_08033D68: - movs r5, #0 - ldr r4, _08033E28 @ =gUnknown_03005890 - mov r8, r4 - ldr r6, _08033E24 @ =gUnknown_03005870 - adds r4, r2, #0 -_08033D72: - cmp r5, sb - beq _08033DD6 - mov r7, sb - subs r1, r7, r5 - lsls r1, r1, #0x18 - lsls r0, r7, #0x18 - lsrs r2, r0, #0x18 - lsrs r3, r1, #0x18 - asrs r0, r1, #0x18 - cmp r0, #0 - bge _08033D96 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r0, #8 - subs r0, r0, r7 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_08033D96: - lsls r1, r2, #0x18 - movs r0, #0 - ldrsh r2, [r4, r0] - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - muls r0, r2, r0 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - asrs r1, r1, #0x18 - bl __divsi3 - ldrh r1, [r4] - subs r1, r1, r0 - lsls r0, r5, #1 - adds r2, r0, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r3, [r2] - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r1, r0 - ble _08033DC8 - adds r0, r3, #1 - strh r0, [r2] -_08033DC8: - ldrh r3, [r2] - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _08033DD6 - subs r0, r3, #1 - strh r0, [r2] -_08033DD6: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _08033D72 - ldr r1, _08033E24 @ =gUnknown_03005870 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #8 - ble _08033DEE - movs r0, #8 - strh r0, [r1] -_08033DEE: - ldr r3, _08033E24 @ =gUnknown_03005870 - movs r4, #0x10 - ldrsh r0, [r3, r4] - cmp r0, #8 - ble _08033DFC - movs r0, #8 - strh r0, [r3, #0x10] -_08033DFC: - ldr r5, _08033E2C @ =gPlayer - ldr r2, [r5, #4] - movs r6, #0x80 - lsls r6, r6, #1 - adds r2, r2, r6 - ldr r7, [sp, #4] - ldr r1, _08033E24 @ =gUnknown_03005870 - adds r0, r7, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - adds r1, r7, #0 - add r1, r8 - movs r4, #0 - ldrsh r1, [r1, r4] - subs r0, r0, r1 - lsls r0, r0, #8 - adds r2, r2, r0 - str r2, [r5, #4] - b _08033FFA - .align 2, 0 -_08033E24: .4byte gUnknown_03005870 -_08033E28: .4byte gUnknown_03005890 -_08033E2C: .4byte gPlayer -_08033E30: - mov r5, r8 - ldrb r0, [r5] - cmp r0, #2 - bne _08033F1C - ldr r2, _08033F18 @ =gUnknown_03005870 - mov r7, sl - adds r7, #0x55 - ldrb r1, [r7] - lsls r1, r1, #1 - adds r1, r1, r2 - mov r5, sl - adds r5, #0x5c - ldrh r0, [r5] - ldrh r6, [r1] - adds r0, r0, r6 - movs r3, #0 - mov sb, r3 - strh r0, [r1] - ldrb r0, [r7] - lsls r0, r0, #1 - adds r4, r0, r2 - mov r3, sl - adds r3, #0x5a - movs r6, #0 - ldrsh r1, [r4, r6] - ldrh r0, [r3] - mov ip, r0 - movs r6, #0 - ldrsh r0, [r3, r6] - adds r2, r7, #0 - cmp r1, r0 - blt _08033E84 - mov r0, ip - strh r0, [r4] - ldrh r1, [r5] - movs r0, #1 - subs r0, r0, r1 - strh r0, [r5] - mov r0, sl - adds r0, #0x57 - mov r1, sb - strb r1, [r0] -_08033E84: - ldrb r0, [r2] - lsls r0, r0, #1 - ldr r2, _08033F18 @ =gUnknown_03005870 - adds r4, r0, r2 - movs r6, #0 - ldrsh r2, [r4, r6] - movs r1, #0 - ldrsh r0, [r3, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmn r2, r0 - bgt _08033EAE - rsbs r0, r0, #0 - strh r0, [r4] - mov r2, sp - ldrh r2, [r2] - strh r2, [r5] - mov r4, sb - mov r3, r8 - strb r4, [r3] -_08033EAE: - movs r5, #0 - adds r6, r7, #0 - ldr r7, _08033F18 @ =gUnknown_03005870 -_08033EB4: - ldrb r0, [r6] - cmp r5, r0 - beq _08033EF0 - subs r0, r0, r5 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08033ECC - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08033ECC: - lsls r0, r1, #0x18 - asrs r1, r0, #0x18 - cmp r1, #2 - bgt _08033EF0 - ldrb r4, [r6] - lsls r4, r4, #1 - adds r4, r4, r7 - movs r2, #0 - ldrsh r0, [r4, r2] - muls r0, r1, r0 - movs r1, #3 - bl __divsi3 - ldrh r1, [r4] - subs r1, r1, r0 - lsls r0, r5, #1 - adds r0, r0, r7 - strh r1, [r0] -_08033EF0: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _08033EB4 - ldr r3, _08033F18 @ =gUnknown_03005870 - movs r4, #0 - ldrsh r0, [r3, r4] - cmp r0, #8 - ble _08033F08 - movs r0, #8 - strh r0, [r3] -_08033F08: - ldr r5, _08033F18 @ =gUnknown_03005870 - movs r6, #0x10 - ldrsh r0, [r5, r6] - cmp r0, #8 - ble _08033FFA - movs r0, #8 - strh r0, [r5, #0x10] - b _08033FFA - .align 2, 0 -_08033F18: .4byte gUnknown_03005870 -_08033F1C: - mov r7, sp - ldrb r0, [r7] - mov r7, r8 - strb r0, [r7] - ldr r1, _08034084 @ =gUnknown_03005870 - mov r2, sl - adds r2, #0x56 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r3, r0, r1 - ldrh r4, [r3] - movs r5, #0 - ldrsh r0, [r3, r5] - adds r7, r2, #0 - cmp r0, #0 - ble _08033F40 - subs r0, r4, #1 - strh r0, [r3] -_08033F40: - ldrb r0, [r7] - lsls r0, r0, #1 - ldr r6, _08034084 @ =gUnknown_03005870 - adds r1, r0, r6 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _08033F6A - adds r0, r2, #2 - strh r0, [r1] - ldrb r0, [r7] - lsls r0, r0, #1 - adds r1, r0, r6 - movs r4, #0 - ldrsh r0, [r1, r4] - cmp r0, #0 - ble _08033F6A - mov r5, sp - ldrh r5, [r5] - strh r5, [r1] -_08033F6A: - movs r5, #0 -_08033F6C: - ldrb r0, [r7] - cmp r5, r0 - beq _08033FF0 - subs r0, r0, r5 - lsls r0, r0, #0x18 - ldrb r1, [r7] - adds r4, r1, #0 - lsrs r3, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08033F90 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r0, #8 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08033F90: - lsls r1, r1, #0x18 - ldr r6, _08034084 @ =gUnknown_03005870 - lsls r4, r4, #1 - adds r4, r4, r6 - movs r0, #0 - ldrsh r2, [r4, r0] - lsls r0, r3, #0x18 - asrs r0, r0, #0x18 - muls r0, r2, r0 - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r1, r1, r2 - asrs r1, r1, #0x18 - bl __divsi3 - ldrh r1, [r4] - subs r1, r1, r0 - lsls r0, r5, #1 - adds r2, r0, r6 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r3, [r2] - movs r4, #0 - ldrsh r0, [r2, r4] - cmp r1, r0 - ble _08033FC8 - adds r0, r3, #1 - strh r0, [r2] -_08033FC8: - ldrh r3, [r2] - movs r4, #0 - ldrsh r0, [r2, r4] - cmp r1, r0 - bge _08033FD6 - subs r0, r3, #1 - strh r0, [r2] -_08033FD6: - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #8 - ble _08033FE2 - movs r0, #8 - strh r0, [r6] -_08033FE2: - ldr r2, _08034084 @ =gUnknown_03005870 - movs r3, #0x10 - ldrsh r0, [r2, r3] - cmp r0, #8 - ble _08033FF0 - movs r0, #8 - strh r0, [r2, #0x10] -_08033FF0: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _08033F6C -_08033FFA: - ldr r4, _08034088 @ =gPlayer - ldr r0, [r4] - ldr r5, _0803408C @ =sPlayerSpeedState - str r0, [r5] - ldr r0, [r4, #4] - str r0, [r5, #4] - ldrh r0, [r4, #8] - strh r0, [r5, #8] - ldrh r0, [r4, #0xa] - strh r0, [r5, #0xa] - ldr r0, [r4, #0x10] - str r0, [r5, #0xc] - ldr r6, _08034090 @ =gNumSingleplayerCharacters - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #2 - bne _08034072 - mov r0, sl - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08034072 - movs r5, #0 - mov r6, sl - adds r6, #0x30 -_0803402C: - lsls r0, r5, #2 - adds r0, r6, r0 - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r7, #0xc0 - lsls r7, r7, #0x12 - adds r4, r0, r7 - ldr r1, [r4, #0x38] - asrs r1, r1, #8 - ldrh r0, [r4, #0x30] - adds r1, r1, r0 - ldr r3, [r4, #0x3c] - asrs r3, r3, #8 - ldrh r2, [r4, #0x32] - adds r3, r3, r2 - ldr r2, _08034084 @ =gUnknown_03005870 - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r2, r2, r3 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - ldr r3, _08034094 @ =gPartner - bl Coll_Player_PlatformCrumbling - cmp r0, #0 - bne _08034072 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bls _0803402C -_08034072: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08034084: .4byte gUnknown_03005870 -_08034088: .4byte gPlayer -_0803408C: .4byte sPlayerSpeedState -_08034090: .4byte gNumSingleplayerCharacters -_08034094: .4byte gPartner - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc deleted file mode 100644 index c127c20153..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_6__Task_EggSnakeInit.inc +++ /dev/null @@ -1,217 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080322B8 @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r2, r0 - adds r0, #0xc - adds r0, r0, r2 - mov r8, r0 - ldr r1, _080322BC @ =0x03000044 - adds r6, r2, r1 - ldr r4, [r5] - ldr r3, _080322C0 @ =0x03000098 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, #0x78 - bne _080321FC - adds r1, #0x65 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080321FC - bl sub_8033878 - bl sub_803330C -_080321FC: - ldr r1, _080322C4 @ =gSineTable - adds r0, r5, #0 - adds r0, #0xa0 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r0, r2, #4 - subs r0, r0, r2 - asrs r2, r0, #0xb - ldrb r1, [r5, #8] - lsls r1, r1, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, [r5, #0x78] - asrs r0, r0, #8 - adds r1, r1, r0 - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - adds r0, r2, #0 - adds r0, #0x90 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - bge _0803223A - adds r2, #0x1f -_0803223A: - ldr r0, _080322C8 @ =gUnknown_03005870 - asrs r2, r2, #5 - lsls r2, r2, #1 - adds r2, r2, r0 - ldrb r1, [r4, #1] - lsls r1, r1, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, [r5, #0x7c] - asrs r0, r0, #8 - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r2, r0] - adds r2, r2, r1 - ldr r7, _080322B8 @ =gCurTask - ldr r0, [r7] - ldrh r1, [r0, #6] - ldr r3, _080322CC @ =0x0300000C - adds r1, r1, r3 - ldr r4, _080322D0 @ =gCamera - ldrh r0, [r4] - mov sb, r0 - mov r3, ip - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - mov r3, sb - subs r0, r0, r3 - strh r0, [r1, #0x16] - ldrh r0, [r4, #2] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r2, r2, r0 - strh r2, [r1, #0x18] - mov r0, r8 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl UpdateSpriteAnimation - ldr r0, [r7] - ldrh r0, [r0, #6] - ldr r1, _080322CC @ =0x0300000C - adds r2, r0, r1 - ldr r3, _080322BC @ =0x03000044 - adds r0, r0, r3 - ldrh r1, [r2, #0x16] - strh r1, [r0, #0x16] - ldrh r1, [r2, #0x18] - strh r1, [r0, #0x18] - bl sub_8031ED0 - adds r3, r5, #0 - adds r3, #0xa9 - ldrb r0, [r3] - cmp r0, #1 - beq _08032300 - cmp r0, #1 - bgt _080322D4 - cmp r0, #0 - beq _080322DE - b _0803235E - .align 2, 0 -_080322B8: .4byte gCurTask -_080322BC: .4byte 0x03000044 -_080322C0: .4byte 0x03000098 -_080322C4: .4byte gSineTable -_080322C8: .4byte gUnknown_03005870 -_080322CC: .4byte 0x0300000C -_080322D0: .4byte gCamera -_080322D4: - cmp r0, #2 - beq _0803231A - cmp r0, #3 - beq _0803233E - b _0803235E -_080322DE: - adds r2, r5, #0 - adds r2, #0x98 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803235E - ldr r1, _080322FC @ =gMusicManagerState - movs r0, #0x13 - strb r0, [r1, #1] - movs r0, #0x3c - strh r0, [r2] - b _08032336 - .align 2, 0 -_080322FC: .4byte gMusicManagerState -_08032300: - adds r1, r5, #0 - adds r1, #0x98 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803235E - adds r1, r6, #0 - adds r1, #0x20 - movs r0, #4 - strb r0, [r1] - b _08032336 -_0803231A: - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _0803235E - adds r1, r6, #0 - adds r1, #0x20 - movs r0, #3 - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x98 - movs r0, #0x3c - strh r0, [r1] -_08032336: - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - b _0803235E -_0803233E: - adds r1, r5, #0 - adds r1, #0x98 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803235E - adds r1, #0x10 - movs r0, #0xff - strb r0, [r1] - movs r0, #0 - strb r0, [r3] - ldr r1, [r7] - ldr r0, _0803236C @ =Task_8032370 - str r0, [r1, #8] -_0803235E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803236C: .4byte Task_8032370 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc deleted file mode 100644 index 1280d00f9e..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803491C.inc +++ /dev/null @@ -1,302 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08034A1C @ =gCurTask - mov sl, r0 - ldr r0, [r0] - ldrh r5, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r5, r0 - ldr r1, _08034A20 @ =0x0300000C - adds r1, r1, r5 - mov r8, r1 - ldr r2, _08034A24 @ =0x0300003C - adds r2, r2, r5 - mov sb, r2 - ldr r0, [r4, #0x6c] - ldr r1, [r4, #0x74] - adds r0, r0, r1 - str r0, [r4, #0x6c] - ldr r0, [r4, #0x70] - ldr r1, [r4, #0x78] - adds r0, r0, r1 - str r0, [r4, #0x70] - ldr r3, _08034A28 @ =0x03000088 - adds r6, r5, r3 - ldrh r1, [r6] - subs r1, #4 - ldr r2, _08034A2C @ =0x000003FF - ands r1, r2 - strh r1, [r6] - ldr r0, _08034A30 @ =0x000001FF - ands r0, r1 - movs r7, #0x80 - lsls r7, r7, #1 - cmp r0, r7 - bne _08034980 - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - eors r0, r1 - mov r3, r8 - str r0, [r3, #0x10] - mov r3, sb - ldr r0, [r3, #0x10] - eors r0, r1 - str r0, [r3, #0x10] -_08034980: - movs r1, #0 - ldrsh r0, [r6, r1] - adds r0, r0, r7 - lsls r0, r0, #1 - ldr r3, _08034A34 @ =gSineTable - ands r0, r2 - adds r0, r0, r7 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - lsls r1, r1, #0x10 - ldr r0, _08034A38 @ =0x0300007C - adds r2, r5, r0 - ldr r0, [r4, #0x6c] - asrs r0, r0, #8 - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - ldr r0, _08034A3C @ =0x0300007E - adds r2, r5, r0 - ldr r0, [r4, #0x70] - asrs r0, r0, #8 - ldrh r2, [r2] - adds r0, r0, r2 - asrs r1, r1, #0x1d - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x10 - ldr r1, _08034A40 @ =0x03000080 - adds r0, r5, r1 - mov r1, ip - strh r1, [r0] - ldr r1, _08034A44 @ =0x03000082 - adds r0, r5, r1 - strh r2, [r0] - movs r1, #0 - ldrsh r0, [r6, r1] - adds r0, r0, r7 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r1, [r0] - lsls r0, r1, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _080349E6 - movs r1, #0xff -_080349E6: - lsls r0, r1, #0x10 - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r0, r0, r3 - lsrs r1, r0, #0x10 - adds r3, #0x8a - adds r0, r5, r3 - strh r1, [r0] - mov r1, ip - lsls r0, r1, #0x10 - asrs r6, r0, #0x10 - lsls r0, r2, #0x10 - asrs r7, r0, #0x10 - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_80342A0 - ldr r2, _08034A48 @ =0x03000086 - adds r0, r5, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08034A4C - bl sub_8034B7C - b _08034B6C - .align 2, 0 -_08034A1C: .4byte gCurTask -_08034A20: .4byte 0x0300000C -_08034A24: .4byte 0x0300003C -_08034A28: .4byte 0x03000088 -_08034A2C: .4byte 0x000003FF -_08034A30: .4byte 0x000001FF -_08034A34: .4byte gSineTable -_08034A38: .4byte 0x0300007C -_08034A3C: .4byte 0x0300007E -_08034A40: .4byte 0x03000080 -_08034A44: .4byte 0x03000082 -_08034A48: .4byte 0x03000086 -_08034A4C: - mov r0, sl - ldr r3, [r0] - ldrh r1, [r3, #6] - ldr r2, _08034AD4 @ =0x0300000C - adds r1, r1, r2 - ldr r2, _08034AD8 @ =gCamera - ldrh r0, [r2] - subs r0, r6, r0 - strh r0, [r1, #0x16] - ldrh r0, [r2, #2] - subs r0, r7, r0 - strh r0, [r1, #0x18] -@ sub_80358C8 - inlined - ldrh r3, [r3, #6] - ldr r0, _08034ADC @ =0x0300003C - adds r1, r3, r0 - adds r0, #0x20 - adds r2, r3, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _08034A8C - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08034A8C - movs r0, #0 - strb r0, [r2] - ldr r2, _08034AE0 @ =0x0300005D - adds r1, r3, r2 - movs r0, #0xff - strb r0, [r1] -_08034A8C: - mov r0, r8 - bl UpdateSpriteAnimation - mov r0, sb - bl UpdateSpriteAnimation -@ sub_8035904 inlined - ldr r0, _08034AE4 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r3, _08034AD4 @ =0x0300000C - adds r1, r0, r3 - adds r3, #0x30 - adds r2, r0, r3 - ldrh r0, [r1, #0x16] - movs r5, #0 - strh r0, [r2, #0x16] - ldrh r3, [r1, #0x18] - strh r3, [r2, #0x18] - ldrh r1, [r2, #0xa] - ldr r0, _08034AE8 @ =0x000002B6 - cmp r1, r0 - bne _08034ABC - subs r0, r3, #3 - strh r0, [r2, #0x18] -_08034ABC: - bl sub_80343E0 - adds r2, r4, #0 - adds r2, #0x8d - ldrb r0, [r2] - cmp r0, #1 - beq _08034B1C - cmp r0, #1 - bgt _08034AEC - cmp r0, #0 - beq _08034AF6 - b _08034B6C - .align 2, 0 -_08034AD4: .4byte 0x0300000C -_08034AD8: .4byte gCamera -_08034ADC: .4byte 0x0300003C -_08034AE0: .4byte 0x0300005D -_08034AE4: .4byte gCurTask -_08034AE8: .4byte 0x000002B6 -_08034AEC: - cmp r0, #2 - beq _08034B36 - cmp r0, #3 - beq _08034B4E - b _08034B6C -_08034AF6: - adds r0, r4, #0 - adds r0, #0x88 - ldr r3, _08034B14 @ =0xFFFFFEFF - adds r1, r3, #0 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r0, _08034B18 @ =0x01FF0000 - cmp r1, r0 - bhi _08034B6C - str r5, [r4, #0x74] - ldrb r0, [r2] - adds r0, #1 - b _08034B6A - .align 2, 0 -_08034B14: .4byte 0xFFFFFEFF -_08034B18: .4byte 0x01FF0000 -_08034B1C: - adds r0, r4, #0 - adds r0, #0x88 - movs r3, #0 - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - bgt _08034B6C - movs r0, #0xc0 - str r0, [r4, #0x74] - ldrb r0, [r2] - adds r0, #1 - b _08034B6A -_08034B36: - adds r0, r4, #0 - adds r0, #0x88 - movs r3, #0 - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bgt _08034B6C - str r5, [r4, #0x74] - ldrb r0, [r2] - adds r0, #1 - b _08034B6A -_08034B4E: - adds r0, r4, #0 - adds r0, #0x88 - movs r3, #0 - ldrsh r1, [r0, r3] - cmp r1, #0 - beq _08034B62 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _08034B6C -_08034B62: - movs r0, #0xc0 - rsbs r0, r0, #0 - str r0, [r4, #0x74] - movs r0, #0 -_08034B6A: - strb r0, [r2] -_08034B6C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc deleted file mode 100644 index 38958717e8..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80352C0.inc +++ /dev/null @@ -1,77 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - movs r5, #0 - ldr r0, _0803534C @ =gCurTask - ldr r2, [r0] - ldrh r0, [r2, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r3, r0, r1 - ldrh r0, [r2] - adds r0, r0, r1 - ldrh r0, [r0, #6] - adds r7, r0, r1 - adds r4, r3, #0 - ldrh r0, [r4, #0x30] - cmp r0, #0 - beq _080352EA - subs r0, #1 - strh r0, [r4, #0x30] - ldrh r0, [r4, #0x30] - lsls r0, r0, #8 - lsrs r5, r0, #0xb -_080352EA: - lsls r1, r5, #0x10 - rsbs r1, r1, #0 - adds r0, r7, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r3, #0x3c] - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r3, #0x3e] - asrs r1, r1, #0x10 - adds r1, r1, r0 - ldr r2, _08035350 @ =gCamera - ldrh r0, [r2] - movs r5, #0x3c - ldrsh r6, [r3, r5] - subs r0, r6, r0 - strh r0, [r4, #0x16] - ldrh r0, [r2, #2] - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - subs r0, r5, r0 - strh r0, [r4, #0x18] - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - adds r0, r7, #0 - adds r0, #0x86 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08035346 - lsls r0, r6, #8 - adds r1, r5, #0 - adds r1, #0x14 - lsls r1, r1, #8 - bl sub_8017540 - ldr r0, _0803534C @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08035346: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803534C: .4byte gCurTask -_08035350: .4byte gCamera - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc deleted file mode 100644 index 776e32b79b..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035354.inc +++ /dev/null @@ -1,94 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - ldr r0, _080353A0 @ =gCurTask - ldr r3, [r0] - ldrh r2, [r3, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r2, r1 - ldrh r0, [r3] - adds r0, r0, r1 - ldrh r0, [r0, #6] - adds r6, r0, r1 - adds r4, r5, #0 - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080353A4 - adds r1, #0x40 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r2, r0, #1 - adds r1, r2, #0 - adds r1, #0x15 - ldrh r0, [r4, #0x30] - lsls r0, r0, #8 - asrs r0, r0, #6 - muls r0, r1, r0 - lsls r0, r0, #8 - asrs r0, r0, #0x10 - subs r0, #0x23 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _080353C0 - .align 2, 0 -_080353A0: .4byte gCurTask -_080353A4: - ldr r1, _08035400 @ =0x03000040 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r1, r0, #3 - subs r0, r1, r0 - lsls r0, r0, #0x11 - movs r2, #0x8c - lsls r2, r2, #0xe - adds r0, r0, r2 - lsrs r2, r0, #0x10 - adds r1, #8 - strh r1, [r4, #0x30] - ldr r0, _08035404 @ =Task_803540C - str r0, [r3, #8] -_080353C0: - adds r0, r6, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r5, #0x3c] - adds r0, r6, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r5, #0x3e] - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - ldr r3, _08035408 @ =gCamera - ldrh r2, [r3] - movs r6, #0x3c - ldrsh r0, [r5, r6] - subs r0, r0, r2 - strh r0, [r4, #0x16] - ldrh r0, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - strh r1, [r4, #0x18] - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08035400: .4byte 0x03000040 -_08035404: .4byte Task_803540C -_08035408: .4byte gCamera - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc deleted file mode 100644 index c2802651bd..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_803540C.inc +++ /dev/null @@ -1,113 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _080354D8 @ =gCurTask - mov r8, r0 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r6, r1, r2 - ldrh r0, [r0] - adds r0, r0, r2 - ldrh r4, [r0, #6] - adds r2, #0x40 - adds r1, r1, r2 - ldrb r0, [r1] - lsls r1, r0, #3 - subs r1, r1, r0 - lsls r1, r1, #0x11 - movs r3, #0xd0 - lsls r3, r3, #0xc - adds r1, r1, r3 - asrs r1, r1, #0x10 - ldr r5, _080354DC @ =gSineTable - ldr r0, _080354E0 @ =0x0300008A - adds r3, r4, r0 - movs r2, #0 - ldrsh r0, [r3, r2] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r2, r1, #0 - muls r2, r0, r2 - lsls r2, r2, #2 - ldrh r3, [r3] - ldr r0, _080354E4 @ =0x000001FF - ands r0, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r3, #0 - ldrsh r0, [r0, r3] - muls r0, r1, r0 - lsls r0, r0, #2 - ldr r5, _080354E8 @ =0x03000080 - adds r1, r4, r5 - ldrh r3, [r1] - strh r3, [r6, #0x3c] - adds r5, #2 - adds r1, r4, r5 - ldrh r1, [r1] - strh r1, [r6, #0x3e] - asrs r2, r2, #0x10 - adds r2, r2, r3 - asrs r0, r0, #0x10 - adds r0, #0x16 - adds r1, r1, r0 - ldr r3, _080354EC @ =gCamera - ldrh r0, [r3] - lsls r2, r2, #0x10 - asrs r7, r2, #0x10 - subs r0, r7, r0 - strh r0, [r6, #0x16] - ldrh r0, [r3, #2] - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - subs r0, r5, r0 - strh r0, [r6, #0x18] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite - ldr r0, _080354F0 @ =0x03000086 - adds r4, r4, r0 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #3 - ble _080354CE - ldrh r0, [r6, #0x30] - subs r0, #1 - strh r0, [r6, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080354CE - lsls r0, r7, #8 - lsls r1, r5, #8 - bl sub_8017540 - mov r1, r8 - ldr r0, [r1] - bl TaskDestroy -_080354CE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080354D8: .4byte gCurTask -_080354DC: .4byte gSineTable -_080354E0: .4byte 0x0300008A -_080354E4: .4byte 0x000001FF -_080354E8: .4byte 0x03000080 -_080354EC: .4byte gCamera -_080354F0: .4byte 0x03000086 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc deleted file mode 100644 index 6398a3d72a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_80354F4.inc +++ /dev/null @@ -1,79 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - ldr r0, _08035534 @ =gCurTask - ldr r2, [r0] - ldrh r0, [r2, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r0, r1 @ r5 = boss_44 - ldrh r0, [r2] - adds r0, r0, r1 - ldrh r0, [r0, #6] - adds r3, r0, r1 @ r3 = boss - adds r4, r5, #0 @ r4 = s - ldrh r0, [r4, #0x30] - subs r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08035538 - ldrh r0, [r4, #0x30] - lsls r0, r0, #8 - asrs r0, r0, #6 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r0, r1, #5 - subs r0, r0, r1 - lsls r0, r0, #8 - movs r1, #0x63 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - b _08035542 - .align 2, 0 -_08035534: .4byte gCurTask -_08035538: - movs r1, #0x63 - movs r0, #0x3c - strh r0, [r4, #0x30] - ldr r0, _08035580 @ =Task_8035588 - str r0, [r2, #8] -_08035542: - adds r0, r3, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r5, #0x3c] - adds r0, r3, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r5, #0x3e] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - ldr r3, _08035584 @ =gCamera - ldrh r2, [r3] - movs r6, #0x3c - ldrsh r0, [r5, r6] - subs r0, r0, r2 - strh r0, [r4, #0x16] - ldrh r0, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - strh r1, [r4, #0x18] - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08035580: .4byte Task_8035588 -_08035584: .4byte gCamera - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc deleted file mode 100644 index 5ec31259d0..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x1__Task_8035588.inc +++ /dev/null @@ -1,227 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _08035654 @ =gCurTask - ldr r5, [r0] - ldrh r0, [r5, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - mov r8, r0 - ldrh r0, [r5] - adds r0, r0, r1 - ldrh r3, [r0, #6] - adds r1, r3, r1 - str r1, [sp] - mov sb, r8 - movs r0, #0x4d - mov sl, r0 - ldr r4, _08035658 @ =gSineTable - ldr r1, _0803565C @ =0x0300008A - adds r2, r3, r1 - movs r6, #0 - ldrsh r0, [r2, r6] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r4 - movs r6, #0 - ldrsh r0, [r0, r6] - mov r1, sl - muls r1, r0, r1 - ldrh r2, [r2] - ldr r0, _08035660 @ =0x000001FF - ands r0, r2 - lsls r0, r0, #1 - adds r0, r0, r4 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r2, sl - muls r2, r0, r2 - ldr r4, _08035664 @ =0x03000080 - adds r0, r3, r4 - ldrh r4, [r0] - mov r6, r8 - strh r4, [r6, #0x3c] - ldr r6, _08035668 @ =0x03000082 - adds r0, r3, r6 - ldrh r0, [r0] - mov r6, r8 - strh r0, [r6, #0x3e] - asrs r1, r1, #0xe - adds r1, r1, r4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - asrs r2, r2, #0xe - adds r2, #0x16 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - ldr r0, _0803566C @ =0x03000086 - adds r3, r3, r0 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #3 - bgt _080356B0 - ldrh r0, [r5, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r6, r0, r1 - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - asrs r5, r0, #0x10 - mov r3, sl - lsls r0, r3, #0x10 - asrs r4, r0, #0x10 - ldr r3, _08035670 @ =gPlayer - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_800BF10 - adds r7, r0, #0 - ldr r0, _08035674 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _0803567C - ldr r3, _08035678 @ =gPartner - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_800BF10 - b _0803567E - .align 2, 0 -_08035654: .4byte gCurTask -_08035658: .4byte gSineTable -_0803565C: .4byte 0x0300008A -_08035660: .4byte 0x000001FF -_08035664: .4byte 0x03000080 -_08035668: .4byte 0x03000082 -_0803566C: .4byte 0x03000086 -_08035670: .4byte gPlayer -_08035674: .4byte gNumSingleplayerCharacters -_08035678: .4byte gPartner -_0803567C: - movs r0, #0 -_0803567E: - cmp r7, #2 - beq _08035686 - cmp r0, #2 - bne _080356B0 -_08035686: - ldr r0, _08035744 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0] - movs r4, #0xc0 - lsls r4, r4, #0x12 - adds r0, r0, r4 - ldrh r1, [r0, #6] - ldr r6, _08035748 @ =0x0300003C - adds r3, r1, r6 - ldr r0, _0803574C @ =0x0300005C - adds r2, r1, r0 - movs r0, #1 - strb r0, [r2] - ldr r2, _08035750 @ =0x0300005D - adds r1, r1, r2 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r3, #0x10] - ldr r1, _08035754 @ =0xFFFFBFFF - ands r0, r1 - str r0, [r3, #0x10] -_080356B0: - ldr r2, _08035758 @ =gCamera - ldrh r0, [r2] - ldr r3, [sp, #4] - lsls r1, r3, #0x10 - asrs r4, r1, #0x10 - subs r0, r4, r0 - mov r6, sb - strh r0, [r6, #0x16] - ldrh r0, [r2, #2] - mov r2, sl - lsls r1, r2, #0x10 - asrs r5, r1, #0x10 - subs r0, r5, r0 - strh r0, [r6, #0x18] - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - bl DisplaySprite - ldr r0, [sp] - adds r0, #0x86 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08035732 - mov r3, r8 - ldrh r1, [r3, #0x30] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0803571C - ldr r2, _0803575C @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _08035760 @ =0x00196225 - muls r1, r0, r1 - ldr r6, _08035764 @ =0x3C6EF35F - adds r1, r1, r6 - str r1, [r2] - movs r0, #0x1f - ands r0, r1 - adds r0, r4, r0 - subs r0, #0xf - lsls r0, r0, #8 - movs r2, #0xf8 - lsls r2, r2, #0xd - ands r1, r2 - asrs r1, r1, #0x10 - adds r1, r5, r1 - subs r1, #0xf - lsls r1, r1, #8 - bl sub_8017540 -_0803571C: - mov r1, r8 - ldrh r0, [r1, #0x30] - subs r0, #1 - strh r0, [r1, #0x30] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08035732 - ldr r0, _08035744 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08035732: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08035744: .4byte gCurTask -_08035748: .4byte 0x0300003C -_0803574C: .4byte 0x0300005C -_08035750: .4byte 0x0300005D -_08035754: .4byte 0xFFFFBFFF -_08035758: .4byte gCamera -_0803575C: .4byte gPseudoRandom -_08035760: .4byte 0x00196225 -_08035764: .4byte 0x3C6EF35F - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc deleted file mode 100644 index 985b9019b4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_803775C.inc +++ /dev/null @@ -1,1090 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - movs r0, #0 - str r0, [sp, #8] - ldr r0, _080377AC @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r6, r2, r1 - ldr r3, _080377B0 @ =0x0300009C - adds r0, r2, r3 - ldr r0, [r0] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sl, r0 - ldr r4, _080377B4 @ =0x0300000C - adds r7, r2, r4 - ldr r0, _080377B8 @ =0x03000044 - adds r0, r2, r0 - str r0, [sp, #4] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080377C0 - ldr r1, _080377BC @ =0x03000084 - adds r0, r2, r1 - ldr r1, [r6, #0x7c] - ldr r0, [r0] - adds r1, r1, r0 - str r1, [r6, #0x7c] - ldr r0, [r6, #0x74] - subs r0, r0, r1 - b _080377D0 - .align 2, 0 -_080377AC: .4byte gCurTask -_080377B0: .4byte 0x0300009C -_080377B4: .4byte 0x0300000C -_080377B8: .4byte 0x03000044 -_080377BC: .4byte 0x03000084 -_080377C0: - ldr r3, _08037830 @ =0x03000084 - adds r0, r2, r3 - ldr r1, [r6, #0x7c] - ldr r0, [r0] - adds r1, r1, r0 - str r1, [r6, #0x7c] - ldr r0, [r6, #0x74] - adds r0, r0, r1 -_080377D0: - str r0, [r6, #0x74] - adds r3, r6, #0 - adds r3, #0x80 - ldr r1, [r6, #0x78] - ldr r0, [r3] - adds r1, r1, r0 - str r1, [r6, #0x78] - adds r2, r6, #0 - adds r2, #0x88 - ldr r0, [r6, #0x74] - asrs r0, r0, #8 - ldrh r2, [r2] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r6, #0 - adds r0, #0x8a - asrs r1, r1, #8 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - ldr r0, [r3] - cmp r0, #0 - bne _0803783C - adds r2, r6, #0 - adds r2, #0x90 - ldrh r0, [r2] - adds r0, #8 - ldr r1, _08037834 @ =0x000003FF - ands r0, r1 - strh r0, [r2] - ldr r1, _08037838 @ =gSineTable - ldrh r0, [r2] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x1c - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08037844 - .align 2, 0 -_08037830: .4byte 0x03000084 -_08037834: .4byte 0x000003FF -_08037838: .4byte gSineTable -_0803783C: - adds r1, r6, #0 - adds r1, #0x90 - movs r0, #0 - strh r0, [r1] -_08037844: - adds r0, r6, #0 - adds r0, #0x8c - strh r5, [r0] - adds r0, #2 - strh r4, [r0] - lsls r5, r5, #0x10 - asrs r3, r5, #0x10 - mov r8, r3 - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - mov sb, r0 - mov r0, r8 - mov r1, sb - bl sub_8036E20 - adds r0, r6, #0 - adds r0, #0x94 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r4, [sp, #0x20] - str r5, [sp, #0x1c] - cmp r0, #7 - ble _0803787A - bl sub_803803C - b _0803802A -_0803787A: - ldr r0, _080378FC @ =gCurTask - ldr r3, [r0] - ldrh r1, [r3, #6] - ldr r2, _08037900 @ =0x0300000C - adds r1, r1, r2 - ldr r2, _08037904 @ =gCamera - ldrh r0, [r2] - mov r4, r8 - subs r0, r4, r0 - strh r0, [r1, #0x16] - ldrh r0, [r2, #2] - mov r2, sb - subs r0, r2, r0 - strh r0, [r1, #0x18] - ldrh r2, [r3, #6] - ldr r3, _08037908 @ =0x03000044 - adds r1, r2, r3 - ldr r4, _0803790C @ =0x03000064 - adds r3, r2, r4 - ldrb r0, [r3] - cmp r0, #0 - beq _080378BE - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080378BE - movs r0, #0 - strb r0, [r3] - ldr r0, _08037910 @ =0x03000065 - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] -_080378BE: - adds r0, r7, #0 - bl UpdateSpriteAnimation - ldr r0, [sp, #4] - bl UpdateSpriteAnimation - ldr r0, _080378FC @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r1, _08037900 @ =0x0300000C - adds r2, r0, r1 - ldr r3, _08037908 @ =0x03000044 - adds r0, r0, r3 - ldrh r1, [r2, #0x16] - strh r1, [r0, #0x16] - ldrh r1, [r2, #0x18] - strh r1, [r0, #0x18] - bl sub_80370B4 - adds r0, r6, #0 - adds r0, #0x99 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x42 - bls _080378F2 - b _0803802A -_080378F2: - lsls r0, r1, #2 - ldr r1, _08037914 @ =_08037918 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080378FC: .4byte gCurTask -_08037900: .4byte 0x0300000C -_08037904: .4byte gCamera -_08037908: .4byte 0x03000044 -_0803790C: .4byte 0x03000064 -_08037910: .4byte 0x03000065 -_08037914: .4byte _08037918 -_08037918: @ jump table - .4byte _08037A24 @ case 0 - .4byte _08037A88 @ case 1 - .4byte _08037ACA @ case 2 - .4byte _08037B02 @ case 3 - .4byte _08037B54 @ case 4 - .4byte _08038018 @ case 5 - .4byte _0803802A @ case 6 - .4byte _0803802A @ case 7 - .4byte _0803802A @ case 8 - .4byte _0803802A @ case 9 - .4byte _0803802A @ case 10 - .4byte _0803802A @ case 11 - .4byte _0803802A @ case 12 - .4byte _0803802A @ case 13 - .4byte _0803802A @ case 14 - .4byte _0803802A @ case 15 - .4byte _08037B6A @ case 16 - .4byte _08037B8C @ case 17 - .4byte _0803802A @ case 18 - .4byte _0803802A @ case 19 - .4byte _0803802A @ case 20 - .4byte _0803802A @ case 21 - .4byte _0803802A @ case 22 - .4byte _0803802A @ case 23 - .4byte _0803802A @ case 24 - .4byte _0803802A @ case 25 - .4byte _0803802A @ case 26 - .4byte _0803802A @ case 27 - .4byte _0803802A @ case 28 - .4byte _0803802A @ case 29 - .4byte _0803802A @ case 30 - .4byte _0803802A @ case 31 - .4byte _08037BF2 @ case 32 - .4byte _0803802A @ case 33 - .4byte _0803802A @ case 34 - .4byte _0803802A @ case 35 - .4byte _0803802A @ case 36 - .4byte _0803802A @ case 37 - .4byte _0803802A @ case 38 - .4byte _0803802A @ case 39 - .4byte _0803802A @ case 40 - .4byte _0803802A @ case 41 - .4byte _0803802A @ case 42 - .4byte _0803802A @ case 43 - .4byte _0803802A @ case 44 - .4byte _0803802A @ case 45 - .4byte _0803802A @ case 46 - .4byte _0803802A @ case 47 - .4byte _08037E88 @ case 48 - .4byte _0803802A @ case 49 - .4byte _08037E92 @ case 50 - .4byte _08037E96 @ case 51 - .4byte _08037EAC @ case 52 - .4byte _08037F18 @ case 53 - .4byte _0803802A @ case 54 - .4byte _0803802A @ case 55 - .4byte _0803802A @ case 56 - .4byte _0803802A @ case 57 - .4byte _0803802A @ case 58 - .4byte _0803802A @ case 59 - .4byte _0803802A @ case 60 - .4byte _0803802A @ case 61 - .4byte _0803802A @ case 62 - .4byte _0803802A @ case 63 - .4byte _08037F54 @ case 64 - .4byte _08037F80 @ case 65 - .4byte _08037FE4 @ case 66 -_08037A24: - adds r1, r6, #0 - adds r1, #0x9a - movs r0, #0 - strb r0, [r1] - mov r1, sl - adds r1, #0x79 - movs r0, #8 - strb r0, [r1] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r2, _08037A5C @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _08037A60 @ =0x00196225 - muls r0, r1, r0 - ldr r4, _08037A64 @ =0x3C6EF35F - adds r0, r0, r4 - str r0, [r2] - movs r1, #0x30 - ands r0, r1 - lsrs r0, r0, #4 - cmp r0, #1 - beq _08037A78 - cmp r0, #1 - bgt _08037A68 - cmp r0, #0 - beq _08037A70 - b _08037A88 - .align 2, 0 -_08037A5C: .4byte gPseudoRandom -_08037A60: .4byte 0x00196225 -_08037A64: .4byte 0x3C6EF35F -_08037A68: - cmp r0, #2 - beq _08037A80 - cmp r0, #3 - bne _08037A88 -_08037A70: - adds r1, r6, #0 - adds r1, #0x92 - movs r0, #0x5a - b _08037A86 -_08037A78: - adds r1, r6, #0 - adds r1, #0x92 - movs r0, #0xb4 - b _08037A86 -_08037A80: - adds r1, r6, #0 - adds r1, #0x92 - movs r0, #0xf0 -_08037A86: - strh r0, [r1] -_08037A88: - adds r4, r6, #0 - adds r4, #0x92 - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08037A9A - b _0803802A -_08037A9A: - ldr r7, [sp, #0x1c] - asrs r0, r7, #0x10 - bl sub_803711C - adds r1, r6, #0 - adds r1, #0x9a - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - beq _08037ABA - movs r0, #0xa - strh r0, [r4] - ldrb r0, [r5] - adds r0, #1 - b _08038028 -_08037ABA: - mov r1, sl - adds r1, #0x79 - movs r0, #0xa - strb r0, [r1] - movs r0, #0x14 - strh r0, [r4] - movs r0, #0x40 - b _08038028 -_08037ACA: - mov r2, sl - adds r2, #0x7a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - strb r0, [r2] - cmp r0, #0 - bne _08037ADC - b _0803802A -_08037ADC: - adds r2, r6, #0 - adds r2, #0x92 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08037AEE - b _0803802A -_08037AEE: - movs r1, #0xa - movs r0, #0xa - strh r0, [r2] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - mov r0, sl - adds r0, #0x79 - strb r1, [r0] - b _0803802A -_08037B02: - mov r0, sl - adds r0, #0x7a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08037B12 - b _0803802A -_08037B12: - adds r2, r6, #0 - adds r2, #0x92 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _08037B26 - b _0803802A -_08037B26: - mov r1, sl - adds r1, #0x79 - movs r0, #0xd - strb r0, [r1] - adds r1, r6, #0 - adds r1, #0x9a - ldrb r0, [r1] - lsls r0, r0, #4 - strb r0, [r5] - ldrb r0, [r1] - cmp r0, #2 - bne _08037B4A - movs r0, #0x1e - strh r0, [r2] - movs r0, #0xac - bl m4aSongNumStart - b _0803802A -_08037B4A: - cmp r0, #1 - beq _08037B50 - b _0803802A -_08037B50: - strh r3, [r2] - b _0803802A -_08037B54: - mov r1, sl - adds r1, #0x79 - movs r2, #0 - movs r0, #0xf - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x9a - strb r2, [r0] - ldrb r0, [r5] - adds r0, #1 - b _08038028 -_08037B6A: - bl sub_803967C - adds r1, r6, #0 - adds r1, #0x92 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [r6, #0x7c] - subs r1, #0xe - movs r0, #0x40 - rsbs r0, r0, #0 - str r0, [r1] - ldrb r0, [r5] - adds r0, #1 - b _08038028 -_08037B8C: - movs r2, #0 - ldr r0, [r6, #0x7c] - cmp r0, #0 - bgt _08037BA8 - adds r3, r6, #0 - adds r3, #0x84 - ldr r1, [r3] - adds r0, r1, #0 - cmp r1, #0 - bge _08037BA2 - adds r0, r1, #3 -_08037BA2: - asrs r0, r0, #2 - subs r0, r1, r0 - str r0, [r3] -_08037BA8: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08037BC4 - ldr r0, [r6, #0x74] - ldr r1, _08037BC0 @ =0xFFFF8C00 - cmp r0, r1 - blt _08037BD2 - str r1, [r6, #0x74] - b _08037BD8 - .align 2, 0 -_08037BC0: .4byte 0xFFFF8C00 -_08037BC4: - ldr r0, [r6, #0x74] - movs r1, #0xe8 - lsls r1, r1, #7 - cmp r0, r1 - bgt _08037BD2 - str r1, [r6, #0x74] - movs r2, #0xff -_08037BD2: - cmp r2, #0 - bne _08037BD8 - b _0803802A -_08037BD8: - movs r1, #0 - str r1, [r6, #0x7c] - adds r0, r6, #0 - adds r0, #0x84 - str r1, [r0] - adds r0, #0xe - ldrh r0, [r0] - cmp r0, #0 - beq _08037BEE - movs r0, #4 - b _08038028 -_08037BEE: - movs r0, #0x10 - b _08038028 -_08037BF2: - adds r1, r6, #0 - adds r1, #0x92 - ldrh r0, [r1] - subs r0, #1 - movs r4, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - adds r3, r1, #0 - cmp r0, #0 - bne _08037C40 - movs r0, #4 - strb r0, [r5] - ldr r0, _08037C30 @ =gPlayer - ldr r0, [r0, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08037C20 - ldr r0, _08037C34 @ =gNumLives - ldrb r0, [r0] - cmp r0, #0 - bne _08037C20 - b _0803802A -_08037C20: - ldr r1, _08037C38 @ =gWinRegs - ldr r0, _08037C3C @ =0x00001F1F - strh r0, [r1, #8] - movs r0, #0xf0 - strh r0, [r1] - movs r0, #0xa0 - strh r0, [r1, #4] - b _0803802A - .align 2, 0 -_08037C30: .4byte gPlayer -_08037C34: .4byte gNumLives -_08037C38: .4byte gWinRegs -_08037C3C: .4byte 0x00001F1F -_08037C40: - ldr r0, _08037D54 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #0x80 - ands r1, r2 - adds r6, r0, #0 - cmp r1, #0 - beq _08037C56 - ldr r0, _08037D58 @ =gNumLives - ldrb r0, [r0] - cmp r0, #0 - beq _08037C5C -_08037C56: - ldr r1, _08037D5C @ =gWinRegs - ldr r0, _08037D60 @ =0x00003F3F - strh r0, [r1, #8] -_08037C5C: - movs r1, #0 - ldrsh r0, [r3, r1] - subs r0, #0xf - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bge _08037C72 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08037C72: - movs r0, #0xf - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _08037C8C - movs r1, #0xc - movs r4, #0xb -_08037C8C: - ldrh r0, [r7, #0x18] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r2, r0, r1 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0xa0 - ble _08037CA6 - movs r3, #0xa0 -_08037CA6: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08037D80 - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08037CC4 - ldr r0, _08037D58 @ =gNumLives - ldrb r0, [r0] - cmp r0, #0 - beq _08037CDE -_08037CC4: - ldr r2, _08037D5C @ =gWinRegs - ldrh r0, [r7, #0x16] - adds r0, #0x20 - lsls r0, r0, #8 - movs r1, #0xf0 - orrs r0, r1 - strh r0, [r2] - lsls r1, r5, #0x10 - asrs r1, r1, #8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - orrs r0, r1 - strh r0, [r2, #4] -_08037CDE: - ldr r0, _08037D64 @ =gCamera - ldrh r5, [r0] - adds r5, #0x78 - ldrh r0, [r7, #0x16] - subs r0, #0x58 - lsls r4, r4, #0x10 - rsbs r3, r4, #0 - asrs r3, r3, #0x10 - movs r2, #0 - str r2, [sp, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08037D68 @ =0xFFFFFF00 - ldr r7, [sp, #0x10] - ands r1, r7 - orrs r1, r0 - str r1, [sp, #0x10] - movs r0, #0xf0 - lsls r0, r0, #0xf - ldr r2, _08037D6C @ =0xFF00FFFF - ands r2, r1 - orrs r2, r0 - str r2, [sp, #0x10] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - ldr r0, _08037D70 @ =0xFFFF00FF - ands r0, r2 - orrs r0, r3 - str r0, [sp, #0x10] - lsls r4, r4, #8 - ldr r1, _08037D74 @ =0x00FFFFFF - ands r0, r1 - orrs r0, r4 - str r0, [sp, #0x10] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - ldr r0, [sp, #0x20] - asrs r4, r0, #0x10 - str r6, [sp] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_800C1E8 - adds r6, r0, #0 - ldr r0, _08037D78 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _08037D48 - b _08037E44 -_08037D48: - ldr r0, _08037D7C @ =gPartner - str r0, [sp] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - b _08037E14 - .align 2, 0 -_08037D54: .4byte gPlayer -_08037D58: .4byte gNumLives -_08037D5C: .4byte gWinRegs -_08037D60: .4byte 0x00003F3F -_08037D64: .4byte gCamera -_08037D68: .4byte 0xFFFFFF00 -_08037D6C: .4byte 0xFF00FFFF -_08037D70: .4byte 0xFFFF00FF -_08037D74: .4byte 0x00FFFFFF -_08037D78: .4byte gNumSingleplayerCharacters -_08037D7C: .4byte gPartner -_08037D80: - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08037D92 - ldr r0, _08037E20 @ =gNumLives - ldrb r0, [r0] - cmp r0, #0 - beq _08037DA6 -_08037D92: - ldr r2, _08037E24 @ =gWinRegs - ldrh r0, [r7, #0x16] - subs r0, #0x20 - strh r0, [r2] - lsls r1, r5, #0x10 - asrs r1, r1, #8 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - orrs r0, r1 - strh r0, [r2, #4] -_08037DA6: - ldr r0, _08037E28 @ =gCamera - ldrh r5, [r0] - adds r5, #0x78 - ldrh r2, [r7, #0x16] - subs r2, #0x98 - lsls r4, r4, #0x10 - rsbs r3, r4, #0 - asrs r3, r3, #0x10 - movs r0, #0 - str r0, [sp, #0x14] - movs r1, #0x88 - ldr r0, _08037E2C @ =0xFFFFFF00 - ldr r7, [sp, #0x18] - ands r0, r7 - orrs r0, r1 - str r0, [sp, #0x18] - lsls r2, r2, #0x18 - lsrs r2, r2, #8 - ldr r1, _08037E30 @ =0xFF00FFFF - ands r1, r0 - orrs r1, r2 - str r1, [sp, #0x18] - lsls r3, r3, #0x18 - lsrs r3, r3, #0x10 - ldr r0, _08037E34 @ =0xFFFF00FF - ands r0, r1 - orrs r0, r3 - str r0, [sp, #0x18] - lsls r4, r4, #8 - ldr r1, _08037E38 @ =0x00FFFFFF - ands r0, r1 - orrs r0, r4 - str r0, [sp, #0x18] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - ldr r0, [sp, #0x20] - asrs r4, r0, #0x10 - str r6, [sp] - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x18] - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_800C1E8 - adds r6, r0, #0 - ldr r0, _08037E3C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08037E44 - ldr r0, _08037E40 @ =gPartner - str r0, [sp] - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x18] -_08037E14: - adds r2, r5, #0 - adds r3, r4, #0 - bl sub_800C1E8 - b _08037E46 - .align 2, 0 -_08037E20: .4byte gNumLives -_08037E24: .4byte gWinRegs -_08037E28: .4byte gCamera -_08037E2C: .4byte 0xFFFFFF00 -_08037E30: .4byte 0xFF00FFFF -_08037E34: .4byte 0xFFFF00FF -_08037E38: .4byte 0x00FFFFFF -_08037E3C: .4byte gNumSingleplayerCharacters -_08037E40: .4byte gPartner -_08037E44: - movs r0, #0 -_08037E46: - orrs r6, r0 - cmp r6, #2 - beq _08037E4E - b _0803802A -_08037E4E: - ldr r0, _08037E74 @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - ldr r1, _08037E78 @ =0x03000044 - adds r3, r2, r1 - ldr r4, _08037E7C @ =0x03000064 - adds r1, r2, r4 - movs r0, #3 - strb r0, [r1] - ldr r0, [r3, #0x10] - ldr r1, _08037E80 @ =0xFFFFBFFF - ands r0, r1 - str r0, [r3, #0x10] - ldr r7, _08037E84 @ =0x03000065 - adds r2, r2, r7 - movs r0, #0xff - strb r0, [r2] - b _0803802A - .align 2, 0 -_08037E74: .4byte gCurTask -_08037E78: .4byte 0x03000044 -_08037E7C: .4byte 0x03000064 -_08037E80: .4byte 0xFFFFBFFF -_08037E84: .4byte 0x03000065 -_08037E88: - bl sub_8039940 - ldrb r0, [r5] - adds r0, #1 - b _08038028 -_08037E92: - movs r0, #4 - b _08038028 -_08037E96: - ldr r0, _08037EA8 @ =0xFFFFFE00 - str r0, [r6, #0x7c] - adds r1, r6, #0 - adds r1, #0x92 - movs r0, #0 - strh r0, [r1] - ldrb r0, [r5] - adds r0, #1 - b _08038028 - .align 2, 0 -_08037EA8: .4byte 0xFFFFFE00 -_08037EAC: - adds r3, r6, #0 - adds r3, #0x92 - ldrh r0, [r3] - cmp r0, #0 - beq _08037EC2 - mov r0, sl - adds r0, #0x79 - movs r2, #0 - movs r1, #0xf - strb r1, [r0] - strh r2, [r3] -_08037EC2: - movs r2, #0 - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08037EE4 - ldr r1, [r6, #0x74] - ldr r0, _08037EE0 @ =0x0000CFFF - cmp r1, r0 - ble _08037EF0 - adds r0, #1 - str r0, [sp, #8] - b _08037EF6 - .align 2, 0 -_08037EE0: .4byte 0x0000CFFF -_08037EE4: - ldr r0, [r6, #0x74] - ldr r1, _08037F14 @ =0xFFFF3000 - cmp r0, r1 - bgt _08037EF0 - str r1, [sp, #8] - movs r2, #0xff -_08037EF0: - cmp r2, #0 - bne _08037EF6 - b _0803802A -_08037EF6: - ldr r1, [sp, #8] - str r1, [r6, #0x74] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - eors r0, r1 - str r0, [r7, #0x10] - ldr r2, [sp, #4] - ldr r0, [r2, #0x10] - eors r0, r1 - str r0, [r2, #0x10] - ldrb r0, [r5] - adds r0, #1 - b _08038028 - .align 2, 0 -_08037F14: .4byte 0xFFFF3000 -_08037F18: - movs r2, #0 - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08037F38 - ldr r0, [r6, #0x74] - ldr r1, _08037F34 @ =0xFFFF8C00 - cmp r0, r1 - blt _08037F46 - str r1, [sp, #8] - b _08037F4A - .align 2, 0 -_08037F34: .4byte 0xFFFF8C00 -_08037F38: - ldr r0, [r6, #0x74] - movs r1, #0xe8 - lsls r1, r1, #7 - cmp r0, r1 - bgt _08037F46 - str r1, [sp, #8] - movs r2, #0xff -_08037F46: - cmp r2, #0 - beq _0803802A -_08037F4A: - ldr r3, [sp, #8] - str r3, [r6, #0x74] - movs r0, #0 - str r0, [r6, #0x7c] - b _08038028 -_08037F54: - mov r0, sl - adds r0, #0x7a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0803802A - adds r1, r6, #0 - adds r1, #0x92 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803802A - ldr r0, _08037F7C @ =0xFFFFFD00 - str r0, [r6, #0x7c] - ldrb r0, [r5] - adds r0, #1 - b _08038028 - .align 2, 0 -_08037F7C: .4byte 0xFFFFFD00 -_08037F80: - movs r2, #0 - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08037FA4 - ldr r1, [r6, #0x74] - ldr r0, _08037FA0 @ =0x0000CFFF - cmp r1, r0 - ble _08037FB0 - movs r4, #0xd0 - lsls r4, r4, #8 - str r4, [sp, #8] - b _08037FB4 - .align 2, 0 -_08037FA0: .4byte 0x0000CFFF -_08037FA4: - ldr r0, [r6, #0x74] - ldr r1, _08037FDC @ =0xFFFF3000 - cmp r0, r1 - bgt _08037FB0 - str r1, [sp, #8] - movs r2, #0xff -_08037FB0: - cmp r2, #0 - beq _0803802A -_08037FB4: - ldr r0, _08037FE0 @ =0xFFFFFE00 - str r0, [r6, #0x7c] - mov r1, sl - adds r1, #0x79 - movs r0, #0x13 - strb r0, [r1] - ldr r0, [sp, #8] - str r0, [r6, #0x74] - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - eors r0, r1 - str r0, [r7, #0x10] - ldr r2, [sp, #4] - ldr r0, [r2, #0x10] - eors r0, r1 - str r0, [r2, #0x10] - ldrb r0, [r5] - adds r0, #1 - b _08038028 - .align 2, 0 -_08037FDC: .4byte 0xFFFF3000 -_08037FE0: .4byte 0xFFFFFE00 -_08037FE4: - movs r2, #0 - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08038004 - ldr r0, [r6, #0x74] - ldr r1, _08038000 @ =0xFFFF8C00 - cmp r0, r1 - blt _08038014 - str r1, [r6, #0x74] - str r2, [r6, #0x7c] - b _08038018 - .align 2, 0 -_08038000: .4byte 0xFFFF8C00 -_08038004: - ldr r0, [r6, #0x74] - movs r1, #0xe8 - lsls r1, r1, #7 - cmp r0, r1 - bgt _08038014 - str r1, [r6, #0x74] - str r2, [r6, #0x7c] - movs r2, #0xff -_08038014: - cmp r2, #0 - beq _0803802A -_08038018: - mov r0, sl - adds r0, #0x7a - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0803802A - movs r0, #0 -_08038028: - strb r0, [r5] -_0803802A: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc deleted file mode 100644 index 5a20143f95..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc +++ /dev/null @@ -1,913 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r0, #0 - str r0, [sp, #8] - ldr r0, _08039AD0 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r2, r4, r1 - mov r8, r2 - ldrh r0, [r0] - adds r0, r0, r1 - ldrh r3, [r0, #6] - adds r1, r3, r1 - str r1, [sp] - mov sl, r8 - ldr r0, _08039AD4 @ =0x03000030 - adds r0, r4, r0 - str r0, [sp, #4] - ldr r1, _08039AD8 @ =0x03000094 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #7 - bgt _08039AEA - ldr r2, _08039ADC @ =0x0300008C - adds r0, r3, r2 - ldrh r0, [r0] - subs r1, #0x44 - adds r2, r4, r1 - strh r0, [r2] - adds r1, #0x3e - adds r0, r3, r1 - ldrh r1, [r0] - ldr r3, _08039AE0 @ =0x03000052 - adds r0, r4, r3 - strh r1, [r0] - mov r4, sl - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08039AE4 - ldrh r0, [r2] - adds r0, #0x1a - b _08039AE8 - .align 2, 0 -_08039AD0: .4byte gCurTask -_08039AD4: .4byte 0x03000030 -_08039AD8: .4byte 0x03000094 -_08039ADC: .4byte 0x0300008C -_08039AE0: .4byte 0x03000052 -_08039AE4: - ldrh r0, [r2] - subs r0, #0x1a -_08039AE8: - strh r0, [r2] -_08039AEA: - mov r3, r8 - adds r3, #0x48 - movs r0, #0 - ldrsh r1, [r3, r0] - mov r2, r8 - ldr r0, [r2, #0x40] - adds r0, r0, r1 - str r0, [r2, #0x40] - adds r2, #0x4a - ldrh r0, [r2] - mov r1, r8 - adds r1, #0x4e - strh r0, [r1] - ldrh r6, [r2] - mov ip, r6 - mov r4, sl - ldr r1, [r4, #0x10] - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - str r3, [sp, #0xc] - mov sb, r2 - cmp r1, #0 - beq _08039B38 - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - ldr r2, _08039BD4 @ =0xFFFFFE00 - adds r1, r2, #0 - subs r6, r1, r0 - ldr r1, _08039BD8 @ =0x000003FF - ands r6, r1 - mov r3, ip - lsls r0, r3, #0x10 - rsbs r0, r0, #0 - asrs r0, r0, #0x10 - mov ip, r0 - mov r4, ip - ands r4, r1 - mov ip, r4 -_08039B38: - ldr r2, _08039BDC @ =gSineTable - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r4, #0 - ldrsh r6, [r0, r4] - asrs r6, r6, #6 - mov r3, r8 - ldr r0, [r3, #0x40] - muls r6, r0, r6 - asrs r6, r6, #0x10 - lsls r1, r1, #1 - adds r1, r1, r2 - movs r4, #0 - ldrsh r7, [r1, r4] - asrs r7, r7, #6 - muls r7, r0, r7 - asrs r7, r7, #0x10 - mov r5, r8 - adds r5, #0x50 - movs r1, #0 - ldrsh r0, [r5, r1] - adds r6, r6, r0 - mov r4, r8 - adds r4, #0x52 - movs r2, #0 - ldrsh r0, [r4, r2] - adds r7, r7, r0 - ldr r1, _08039BE0 @ =gCamera - ldrh r0, [r1] - subs r0, r6, r0 - ldr r3, [sp, #4] - strh r0, [r3, #6] - ldrh r0, [r1, #2] - subs r0, r7, r0 - strh r0, [r3, #8] - mov r0, ip - strh r0, [r3] - mov r0, sl - bl UpdateSpriteAnimation - mov r0, sl - ldr r1, [sp, #4] - bl TransformSprite - mov r0, sl - bl DisplaySprite - ldr r0, [sp] - adds r0, #0x94 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #7 - ble _08039BEC - movs r0, #0 - ldr r1, [sp, #0xc] - strh r0, [r1] - lsls r0, r6, #8 - mov r2, r8 - str r0, [r2, #0x54] - lsls r0, r7, #8 - str r0, [r2, #0x58] - movs r0, #0xb8 - lsls r0, r0, #3 - mov r3, sl - strh r0, [r3, #0x1a] - movs r0, #0x50 - strh r0, [r2, #0x3c] - ldr r0, _08039BE4 @ =gCurTask - ldr r1, [r0] - ldr r0, _08039BE8 @ =Task_803A46C - str r0, [r1, #8] - b _0803A14A - .align 2, 0 -_08039BD4: .4byte 0xFFFFFE00 -_08039BD8: .4byte 0x000003FF -_08039BDC: .4byte gSineTable -_08039BE0: .4byte gCamera -_08039BE4: .4byte gCurTask -_08039BE8: .4byte Task_803A46C -_08039BEC: - mov r0, r8 - adds r0, #0x61 - ldrb r1, [r0] - str r0, [sp, #0x10] - cmp r1, #0 - blt _08039C1E - cmp r1, #1 - ble _08039C02 - cmp r1, #2 - beq _08039C0E - b _08039C1E -_08039C02: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - movs r2, #0 - b _08039C18 -_08039C0E: - lsls r0, r6, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - movs r2, #1 -_08039C18: - bl sub_8036F9C - str r0, [sp, #8] -_08039C1E: - ldr r1, [sp, #0x10] - ldrb r0, [r1] - cmp r0, #9 - bls _08039C28 - b _0803A14A -_08039C28: - lsls r0, r0, #2 - ldr r1, _08039C34 @ =_08039C38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08039C34: .4byte _08039C38 -_08039C38: @ jump table - .4byte _08039C60 @ case 0 - .4byte _08039CDE @ case 1 - .4byte _08039E08 @ case 2 - .4byte _08039EE2 @ case 3 - .4byte _08039EFC @ case 4 - .4byte _08039F30 @ case 5 - .4byte _08039F94 @ case 6 - .4byte _08039FD4 @ case 7 - .4byte _0803A026 @ case 8 - .4byte _0803A084 @ case 9 -_08039C60: - mov r2, r8 - ldrh r0, [r2, #0x3c] - subs r0, #1 - strh r0, [r2, #0x3c] - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _08039C72 - b _0803A14A -_08039C72: - ldr r2, _08039CA8 @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _08039CAC @ =0x00196225 - muls r0, r1, r0 - ldr r4, _08039CB0 @ =0x3C6EF35F - adds r0, r0, r4 - str r0, [r2] - adds r1, r0, #0 - ldr r0, [sp, #0xc] - strh r3, [r0] - ldr r2, [sp, #0x10] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r1, #0 - movs r1, #0x64 - bl __modsi3 - adds r1, r0, #0 - subs r1, #0x23 - cmp r1, #0 - bgt _08039CB4 - movs r0, #0xb4 - mov r3, r8 - strh r0, [r3, #0x3c] - b _0803A14A - .align 2, 0 -_08039CA8: .4byte gPseudoRandom -_08039CAC: .4byte 0x00196225 -_08039CB0: .4byte 0x3C6EF35F -_08039CB4: - adds r1, r0, #0 - subs r1, #0x46 - cmp r1, #0 - bgt _08039CC4 - movs r0, #0x3c - mov r4, r8 - strh r0, [r4, #0x3c] - b _0803A14A -_08039CC4: - adds r1, r0, #0 - subs r1, #0x5a - cmp r1, #0 - bgt _08039CD4 - movs r0, #0x12 - mov r1, r8 - strh r0, [r1, #0x3c] - b _0803A14A -_08039CD4: - movs r0, #0x96 - lsls r0, r0, #1 - mov r2, r8 - strh r0, [r2, #0x3c] - b _0803A14A -_08039CDE: - movs r3, #0 - ldrsh r1, [r5, r3] - ldr r2, _08039D48 @ =gPlayer - ldr r0, [r2] - asrs r0, r0, #8 - subs r6, r1, r0 - movs r0, #0 - ldrsh r1, [r4, r0] - ldr r0, [r2, #4] - asrs r0, r0, #8 - subs r7, r1, r0 - cmp r6, #0 - bge _08039CFA - rsbs r6, r6, #0 -_08039CFA: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - bl sa2__sub_8004418 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r1, _08039D4C @ =0xFF1F0000 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r1, #0x8f - lsls r1, r1, #1 - cmp r0, r1 - bhi _08039D1A - movs r6, #0xe0 -_08039D1A: - lsls r0, r6, #0x10 - ldr r2, _08039D50 @ =0xFDFF0000 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - cmp r0, r1 - bhi _08039D2A - movs r6, #0xc8 - lsls r6, r6, #2 -_08039D2A: - mov r3, sb - ldrh r2, [r3] - lsls r0, r2, #0x16 - asrs r1, r0, #0x10 - lsls r0, r6, #0x16 - asrs r0, r0, #0x10 - cmp r1, r0 - ble _08039D54 - movs r3, #0xc0 - lsls r3, r3, #1 - adds r0, r0, r3 - cmp r1, r0 - blt _08039D60 - subs r0, r2, #6 - b _08039D6E - .align 2, 0 -_08039D48: .4byte gPlayer -_08039D4C: .4byte 0xFF1F0000 -_08039D50: .4byte 0xFDFF0000 -_08039D54: - cmp r1, r0 - bge _08039D72 - ldr r3, _08039D68 @ =0xFFFFFE80 - adds r0, r0, r3 - cmp r1, r0 - ble _08039D6C -_08039D60: - mov r0, sb - strh r6, [r0] - b _08039D72 - .align 2, 0 -_08039D68: .4byte 0xFFFFFE80 -_08039D6C: - adds r0, r2, #6 -_08039D6E: - mov r1, sb - strh r0, [r1] -_08039D72: - mov r2, sb - ldrh r0, [r2] - ldr r1, _08039DFC @ =0x000003FF - ands r1, r0 - strh r1, [r2] - mov r3, r8 - ldrh r0, [r3, #0x3c] - subs r0, #1 - strh r0, [r3, #0x3c] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08039D8C - b _0803A14A -_08039D8C: - movs r1, #0 - ldrsh r0, [r5, r1] - ldr r3, _08039E00 @ =gPlayer - ldr r1, [r3] - asrs r1, r1, #8 - subs r0, r0, r1 - movs r1, #0 - ldrsh r2, [r4, r1] - ldr r1, [r3, #4] - asrs r1, r1, #8 - subs r2, r2, r1 - adds r3, r0, #0 - muls r3, r0, r3 - adds r0, r3, #0 - adds r4, r2, #0 - muls r4, r2, r4 - adds r2, r4, #0 - lsls r0, r0, #8 - lsls r2, r2, #8 - adds r0, r0, r2 - bl Sqrt - lsls r0, r0, #0x10 - lsrs r0, r0, #0xc - ldr r1, _08039E04 @ =0xFFFFF000 - subs r1, r1, r0 - mov r0, r8 - str r1, [r0, #0x44] - movs r0, #0xfa - lsls r0, r0, #8 - ldr r1, [sp, #0xc] - strh r0, [r1] - mov r1, r8 - adds r1, #0x60 - movs r0, #0 - strb r0, [r1] - ldr r2, [sp, #0x10] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0xf0 - lsls r0, r0, #2 - mov r3, sl - strh r0, [r3, #0x1a] - mov r1, sl - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - movs r0, #0xb3 - bl m4aSongNumStart - b _0803A14A - .align 2, 0 -_08039DFC: .4byte 0x000003FF -_08039E00: .4byte gPlayer -_08039E04: .4byte 0xFFFFF000 -_08039E08: - mov r4, r8 - ldr r0, [r4, #0x40] - rsbs r0, r0, #0 - asrs r0, r0, #8 - subs r0, #0x14 - asrs r0, r0, #4 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - mov r1, r8 - adds r1, #0x60 - ldrb r0, [r1] - cmp r0, r2 - bhs _08039E2A - strb r2, [r1] - bl sub_803A1D8 -_08039E2A: - ldr r0, [sp, #8] - cmp r0, #2 - bne _08039EB8 - mov r1, r8 - adds r1, #0x62 - movs r0, #0xff - strb r0, [r1] - movs r4, #0 - ldr r1, [sp, #0xc] - strh r4, [r1] - movs r0, #7 - ldr r2, [sp, #0x10] - strb r0, [r2] - mov r0, sl - adds r0, #0x20 - mov r3, sp - ldrb r3, [r3, #8] - strb r3, [r0] - mov r1, sl - adds r1, #0x21 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldr r5, _08039E90 @ =gPlayer - adds r0, r5, #0 - bl Player_TransitionCancelFlyingAndBoost - lsls r0, r6, #8 - str r0, [r5] - lsls r0, r7, #8 - str r0, [r5, #4] - strh r4, [r5, #8] - strh r4, [r5, #0xa] - strh r4, [r5, #0xc] - ldr r0, [r5, #0x10] - ldr r1, _08039E94 @ =0x00E00100 - orrs r0, r1 - str r0, [r5, #0x10] - mov r4, sl - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08039E98 - mov r1, sb - movs r2, #0 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - asrs r0, r0, #2 - b _08039E9E - .align 2, 0 -_08039E90: .4byte gPlayer -_08039E94: .4byte 0x00E00100 -_08039E98: - mov r3, sb - ldrh r0, [r3] - lsrs r0, r0, #2 -_08039E9E: - strb r0, [r5, #0x14] - ldr r1, _08039EB4 @ =gPlayer - adds r3, r1, #0 - adds r3, #0x40 - movs r2, #0 - movs r0, #0x28 - strb r0, [r3] - strh r2, [r1, #0x38] - strh r2, [r1, #0x3a] - b _0803A14A - .align 2, 0 -_08039EB4: .4byte gPlayer -_08039EB8: - mov r4, r8 - ldr r1, [r4, #0x40] - ldr r0, [r4, #0x44] - cmp r1, r0 - ble _08039EC4 - b _0803A14A -_08039EC4: - movs r0, #0 - ldr r1, [sp, #0xc] - strh r0, [r1] - ldr r2, [sp, #0x10] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - mov r1, sl - adds r1, #0x20 - movs r0, #2 - strb r0, [r1] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - b _0803A14A -_08039EE2: - mov r3, sl - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08039EF2 - b _0803A14A -_08039EF2: - movs r0, #0x80 - lsls r0, r0, #2 - ldr r4, [sp, #0xc] - strh r0, [r4] - b _0803A076 -_08039EFC: - mov r2, r8 - ldr r0, [r2, #0x40] - ldr r1, _08039F2C @ =0xFFFFEC00 - cmp r0, r1 - bge _08039F08 - b _0803A14A -_08039F08: - str r1, [r2, #0x40] - movs r1, #0 - movs r0, #0 - ldr r3, [sp, #0xc] - strh r0, [r3] - movs r0, #0xb8 - lsls r0, r0, #3 - mov r4, sl - strh r0, [r4, #0x1a] - mov r0, sl - adds r0, #0x20 - strb r1, [r0] - mov r1, sl - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - b _0803A076 - .align 2, 0 -_08039F2C: .4byte 0xFFFFEC00 -_08039F30: - mov r2, sb - ldrh r0, [r2] - movs r3, #0 - ldrsh r1, [r2, r3] - cmp r1, #0 - bne _08039F56 - movs r0, #0xb8 - lsls r0, r0, #3 - mov r4, sl - strh r0, [r4, #0x1a] - movs r0, #0x80 - lsls r0, r0, #1 - ldr r1, [sp, #0xc] - strh r0, [r1] - ldr r2, [sp, #0x10] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - b _0803A14A -_08039F56: - movs r2, #0x80 - lsls r2, r2, #2 - cmp r1, r2 - ble _08039F78 - adds r0, #6 - ldr r3, _08039F74 @ =0x000003FF - adds r1, r3, #0 - ands r0, r1 - mov r4, sb - strh r0, [r4] - cmp r0, #6 - ble _08039F70 - b _0803A14A -_08039F70: - b _08039F8A - .align 2, 0 -_08039F74: .4byte 0x000003FF -_08039F78: - subs r0, #6 - ldr r3, _08039F90 @ =0x000003FF - adds r1, r3, #0 - ands r0, r1 - mov r4, sb - strh r0, [r4] - cmp r0, r2 - bgt _08039F8A - b _0803A14A -_08039F8A: - movs r0, #0 - strh r0, [r4] - b _0803A14A - .align 2, 0 -_08039F90: .4byte 0x000003FF -_08039F94: - mov r0, r8 - ldr r1, [r0, #0x40] - ldr r0, _08039FB8 @ =0x00000DFF - cmp r1, r0 - bgt _08039FA0 - b _0803A14A -_08039FA0: - mov r0, r8 - adds r0, #0x62 - ldrb r0, [r0] - cmp r0, #0 - bne _08039FBC - ldr r1, [sp] - adds r1, #0x99 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08039FC4 - .align 2, 0 -_08039FB8: .4byte 0x00000DFF -_08039FBC: - ldr r1, [sp] - adds r1, #0x92 - movs r0, #1 - strh r0, [r1] -_08039FC4: - ldr r0, _08039FD0 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0803A14A - .align 2, 0 -_08039FD0: .4byte gCurTask -_08039FD4: - ldr r2, _08039FF8 @ =gPlayer - lsls r0, r6, #8 - str r0, [r2] - lsls r0, r7, #8 - str r0, [r2, #4] - mov r1, sl - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08039FFC - mov r3, sb - movs r4, #0 - ldrsh r0, [r3, r4] - rsbs r0, r0, #0 - asrs r0, r0, #2 - b _0803A002 - .align 2, 0 -_08039FF8: .4byte gPlayer -_08039FFC: - mov r1, sb - ldrh r0, [r1] - lsrs r0, r0, #2 -_0803A002: - strb r0, [r2, #0x14] - mov r2, sl - ldr r0, [r2, #0x10] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0803A014 - b _0803A14A -_0803A014: - movs r0, #0xc0 - lsls r0, r0, #3 - ldr r3, [sp, #0xc] - strh r0, [r3] - ldr r4, [sp, #0x10] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - b _0803A14A -_0803A026: - ldr r2, _0803A04C @ =gPlayer - lsls r0, r6, #8 - str r0, [r2] - lsls r0, r7, #8 - str r0, [r2, #4] - mov r1, sl - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0803A050 - mov r3, sb - movs r4, #0 - ldrsh r0, [r3, r4] - rsbs r0, r0, #0 - asrs r0, r0, #2 - b _0803A056 - .align 2, 0 -_0803A04C: .4byte gPlayer -_0803A050: - mov r1, sb - ldrh r0, [r1] - lsrs r0, r0, #2 -_0803A056: - strb r0, [r2, #0x14] - mov r2, r8 - ldr r0, [r2, #0x40] - ldr r1, _0803A080 @ =0xFFFFDC00 - cmp r0, r1 - blt _0803A14A - str r1, [r2, #0x40] - movs r2, #0 - ldr r3, [sp, #0xc] - strh r2, [r3] - mov r1, r8 - adds r1, #0x4c - movs r0, #0x10 - strh r0, [r1] - mov r4, r8 - strh r2, [r4, #0x3c] -_0803A076: - ldr r1, [sp, #0x10] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0803A14A - .align 2, 0 -_0803A080: .4byte 0xFFFFDC00 -_0803A084: - ldr r2, _0803A0AC @ =gPlayer - lsls r0, r6, #8 - str r0, [r2] - lsls r0, r7, #8 - str r0, [r2, #4] - mov r3, sl - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - adds r3, r2, #0 - cmp r0, #0 - beq _0803A0B0 - mov r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - asrs r0, r0, #2 - b _0803A0B6 - .align 2, 0 -_0803A0AC: .4byte gPlayer -_0803A0B0: - mov r2, sb - ldrh r0, [r2] - lsrs r0, r0, #2 -_0803A0B6: - strb r0, [r3, #0x14] - mov r2, r8 - adds r2, #0x4c - ldrh r0, [r2] - mov r4, sb - ldrh r4, [r4] - adds r0, r0, r4 - ldr r1, _0803A15C @ =0x000003FF - ands r0, r1 - mov r1, sb - strh r0, [r1] - ldr r1, _0803A160 @ =0x000001FF - adds r5, r2, #0 - cmp r0, r1 - ble _0803A102 - ldr r6, _0803A164 @ =gRingCount - ldrh r4, [r6] - cmp r4, #0 - beq _0803A0FE - movs r2, #0 - ldrsh r0, [r5, r2] - cmp r0, #0 - bge _0803A0FE - cmp r4, #5 - bls _0803A0EA - movs r4, #5 -_0803A0EA: - ldr r0, [r3] - asrs r0, r0, #8 - ldr r1, [r3, #4] - asrs r1, r1, #8 - adds r2, r4, #0 - bl InitScatteringRings - ldrh r0, [r6] - subs r0, r0, r4 - strh r0, [r6] -_0803A0FE: - movs r0, #0x10 - strh r0, [r5] -_0803A102: - ldr r3, _0803A168 @ =0xFFFFFF00 - adds r0, r3, #0 - mov r4, sb - ldrh r4, [r4] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - bhi _0803A14A - ldr r0, _0803A16C @ =0x0000FFF0 - strh r0, [r5] - mov r1, r8 - ldrh r0, [r1, #0x3c] - adds r0, #1 - strh r0, [r1, #0x3c] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #4 - bne _0803A130 - ldr r1, [sp] - adds r1, #0x99 - movs r0, #0x33 - strb r0, [r1] -_0803A130: - mov r2, r8 - ldrh r4, [r2, #0x3c] - cmp r4, #5 - bne _0803A14A - mov r3, sl - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - bl sub_803A170 - ldr r0, [sp, #0x10] - strb r4, [r0] -_0803A14A: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0803A15C: .4byte 0x000003FF -_0803A160: .4byte 0x000001FF -_0803A164: .4byte gRingCount -_0803A168: .4byte 0xFFFFFF00 -_0803A16C: .4byte 0x0000FFF0 -.align 2, 0 -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc deleted file mode 100644 index 8d5e7df124..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A170.inc +++ /dev/null @@ -1,58 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, lr} - ldr r2, _0803A184 @ =gPlayer - movs r1, #0x78 - strh r1, [r2, #0x1c] - adds r5, r2, #0 - cmp r0, #0 - beq _0803A188 - movs r0, #0xfe - lsls r0, r0, #8 - b _0803A18C - .align 2, 0 -_0803A184: .4byte gPlayer -_0803A188: - movs r0, #0x80 - lsls r0, r0, #2 -_0803A18C: - strh r0, [r5, #8] - movs r4, #0 - ldr r0, _0803A1D0 @ =0x0000FA20 - strh r0, [r5, #0xa] - strb r4, [r5, #0x14] - ldr r0, [r5, #0x10] - ldr r1, _0803A1D4 @ =0xFF1FFAC3 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xf - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3e - strb r4, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0803A1D0: .4byte 0x0000FA20 -_0803A1D4: .4byte 0xFF1FFAC3 - -.align 2, 0 -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc deleted file mode 100644 index 7cfeee85a8..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_x3__sub_803A6EC.inc +++ /dev/null @@ -1,113 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0xc - ldr r6, [sp, #0x20] - ldr r4, [sp, #0x24] - mov r8, r4 - movs r5, #0 - str r5, [sp, #4] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r4, _0803A76C @ =0xFFFFFF00 - ldr r5, [sp, #8] - ands r4, r5 - orrs r4, r2 - str r4, [sp, #8] - lsls r3, r3, #0x18 - lsrs r3, r3, #8 - ldr r5, _0803A770 @ =0xFF00FFFF - ands r5, r4 - orrs r5, r3 - str r5, [sp, #8] - lsls r6, r6, #0x18 - lsrs r6, r6, #0x10 - ldr r2, _0803A774 @ =0xFFFF00FF - ands r2, r5 - orrs r2, r6 - str r2, [sp, #8] - mov r3, r8 - lsls r3, r3, #0x18 - mov r8, r3 - ldr r3, _0803A778 @ =0x00FFFFFF - ands r2, r3 - mov r4, r8 - orrs r4, r2 - str r4, [sp, #8] - lsls r0, r0, #0x10 - asrs r6, r0, #0x10 - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - ldr r0, _0803A77C @ =gPlayer - str r0, [sp] - ldr r0, [sp, #4] - ldr r1, [sp, #8] - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_800C1E8 - adds r4, r0, #0 - ldr r0, _0803A780 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _0803A788 - ldr r0, _0803A784 @ =gPartner - str r0, [sp] - ldr r0, [sp, #4] - ldr r1, [sp, #8] - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_800C1E8 - b _0803A78A - .align 2, 0 -_0803A76C: .4byte 0xFFFFFF00 -_0803A770: .4byte 0xFF00FFFF -_0803A774: .4byte 0xFFFF00FF -_0803A778: .4byte 0x00FFFFFF -_0803A77C: .4byte gPlayer -_0803A780: .4byte gNumSingleplayerCharacters -_0803A784: .4byte gPartner -_0803A788: - movs r0, #0 -_0803A78A: - orrs r4, r0 - cmp r4, #2 - bne _0803A7B2 - ldr r0, _0803A7C0 @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - ldr r5, _0803A7C4 @ =0x03000044 - adds r3, r2, r5 - ldr r0, _0803A7C8 @ =0x03000064 - adds r1, r2, r0 - movs r0, #3 - strb r0, [r1] - ldr r0, [r3, #0x10] - ldr r1, _0803A7CC @ =0xFFFFBFFF - ands r0, r1 - str r0, [r3, #0x10] - ldr r3, _0803A7D0 @ =0x03000065 - adds r2, r2, r3 - movs r0, #0xff - strb r0, [r2] -_0803A7B2: - add sp, #0xc - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0803A7C0: .4byte gCurTask -_0803A7C4: .4byte 0x03000044 -_0803A7C8: .4byte 0x03000064 -_0803A7CC: .4byte 0xFFFFBFFF -_0803A7D0: .4byte 0x03000065 - -.align 2, 0 -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc deleted file mode 100644 index fa9da36084..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc +++ /dev/null @@ -1,419 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - str r0, [sp, #4] - ldr r1, _080504B8 @ =gExtraBossTaskData - ldr r0, [r1, #0x3c] - mov r8, r0 - adds r0, #0x70 - ldrh r5, [r0] - ldr r0, [r1, #0x38] - adds r0, #0x70 - ldrh r0, [r0] - str r0, [sp, #8] - mov r1, r8 - ldr r0, [r1, #0x50] - asrs r7, r0, #8 - ldr r2, _080504BC @ =gStageTime - ldr r0, [r2] - lsls r0, r0, #3 - adds r7, r7, r0 - adds r1, r7, #0 - subs r1, #0x48 - ldr r0, _080504C0 @ =0x00000A7F - cmp r1, r0 - ble _080501DC - adds r7, r1, #0 - movs r1, #0xa8 - lsls r1, r1, #4 - adds r0, r7, #0 - bl Mod - adds r7, r0, #0 - adds r7, #0x48 -_080501DC: - mov r0, r8 - ldr r3, [r0, #0x54] - asrs r3, r3, #8 - ldr r4, _080504C4 @ =gSineTable - lsrs r1, r5, #6 - lsls r0, r1, #1 - adds r0, r0, r4 - ldrh r2, [r0] - lsls r2, r2, #0x10 - asrs r2, r2, #0x16 - lsls r2, r2, #0xc - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #8 - subs r0, r0, r2 - asrs r0, r0, #0x10 - adds r0, #6 - adds r6, r3, r0 - adds r1, r7, #0 - adds r1, #0x10 - ldr r2, _080504C8 @ =sa2__sub_801EC3C - mov sl, r2 - str r2, [sp] - adds r0, r6, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F100 - mov sb, r0 - mov r0, r8 - ldr r3, [r0, #0x54] - asrs r3, r3, #8 - ldr r1, [sp, #8] - lsrs r2, r1, #6 - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r0 - lsls r1, r1, #8 - movs r0, #0x80 - lsls r0, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #1 - adds r2, r2, r4 - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #0xb - adds r1, r1, r0 - asrs r1, r1, #0x10 - adds r1, #6 - adds r4, r3, r1 - adds r1, r7, #0 - adds r1, #0x15 - mov r2, sl - str r2, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F100 - mov sl, r0 - cmp sl, sb - ble _08050278 - mov sl, sb -_08050278: - mov r0, sl - cmp r0, #0 - bgt _080502D2 - ldr r0, [sp, #4] - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _080502D2 - ldr r1, _080504BC @ =gStageTime - ldr r0, [r1] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080502D2 - ldr r2, _080504CC @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _080504D0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _080504D4 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r2] - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - bne _080502D2 - mov r2, r8 - ldr r0, [r2, #0x50] - asrs r2, r0, #8 - adds r0, r4, #0 - cmp r0, r6 - bge _080502BE - adds r0, r6, #0 -_080502BE: - subs r1, r0, #2 - adds r0, r2, #0 - bl CreateBrakingDustEffect - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - ldr r1, _080504D8 @ =0x0000FFFC - strh r1, [r0, #4] -_080502D2: - ldr r1, _080504B8 @ =gExtraBossTaskData - ldr r0, [r1, #0x48] - mov r8, r0 - adds r0, #0x70 - ldrh r5, [r0] - ldr r0, [r1, #0x44] - adds r0, #0x70 - ldrh r0, [r0] - str r0, [sp, #0xc] - mov r1, r8 - ldr r0, [r1, #0x50] - asrs r7, r0, #8 - ldr r2, _080504BC @ =gStageTime - ldr r0, [r2] - lsls r0, r0, #3 - adds r7, r7, r0 - adds r1, r7, #0 - subs r1, #0x48 - ldr r0, _080504C0 @ =0x00000A7F - cmp r1, r0 - ble _0805030C - adds r7, r1, #0 - movs r1, #0xa8 - lsls r1, r1, #4 - adds r0, r7, #0 - bl Mod - adds r7, r0, #0 - adds r7, #0x48 -_0805030C: - mov r0, r8 - ldr r3, [r0, #0x54] - asrs r3, r3, #8 - ldr r4, _080504C4 @ =gSineTable - lsrs r1, r5, #6 - lsls r0, r1, #1 - adds r0, r0, r4 - ldrh r2, [r0] - lsls r2, r2, #0x10 - asrs r2, r2, #0x16 - lsls r2, r2, #0xc - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #8 - subs r0, r0, r2 - asrs r0, r0, #0x10 - adds r0, #6 - adds r5, r3, r0 - adds r1, r7, #0 - adds r1, #0x10 - ldr r2, _080504C8 @ =sa2__sub_801EC3C - str r2, [sp] - adds r0, r5, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F100 - mov sb, r0 - mov r0, r8 - ldr r3, [r0, #0x54] - asrs r3, r3, #8 - ldr r1, [sp, #0xc] - lsrs r2, r1, #6 - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r0 - lsls r1, r1, #8 - movs r0, #0x80 - lsls r0, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #1 - adds r2, r2, r4 - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #0xb - adds r1, r1, r0 - asrs r1, r1, #0x10 - adds r1, #6 - adds r4, r3, r1 - adds r1, r7, #0 - adds r1, #0x15 - ldr r2, _080504C8 @ =sa2__sub_801EC3C - str r2, [sp] - adds r0, r4, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F100 - adds r6, r0, #0 - cmp r6, sb - ble _080503A6 - mov r6, sb -_080503A6: - cmp r6, #0 - bgt _080503FE - ldr r0, [sp, #4] - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _080503FE - ldr r1, _080504BC @ =gStageTime - ldr r0, [r1] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080503FE - ldr r2, _080504CC @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _080504D0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _080504D4 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r2] - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - bne _080503FE - mov r2, r8 - ldr r0, [r2, #0x50] - asrs r2, r0, #8 - adds r0, r4, #0 - cmp r0, r5 - bge _080503EA - adds r0, r5, #0 -_080503EA: - subs r1, r0, #2 - adds r0, r2, #0 - bl CreateBrakingDustEffect - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - ldr r1, _080504D8 @ =0x0000FFFC - strh r1, [r0, #4] -_080503FE: - ldr r0, _080504B8 @ =gExtraBossTaskData - ldr r0, [r0, #4] - str r0, [sp, #0x10] - adds r0, #0x70 - ldrh r1, [r0] - ldr r3, _080504C4 @ =gSineTable - lsrs r1, r1, #6 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r2, [r0] - lsls r2, r2, #0x10 - asrs r2, r2, #0x16 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r3, [r1] - lsls r3, r3, #0x10 - asrs r3, r3, #0x16 - ldr r0, [sp, #0x10] - ldr r4, [r0, #0x54] - asrs r4, r4, #8 - lsls r1, r3, #3 - subs r1, r1, r3 - lsls r1, r1, #2 - subs r1, r1, r3 - lsls r1, r1, #8 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - subs r0, r0, r2 - lsls r0, r0, #9 - subs r1, r1, r0 - asrs r1, r1, #0x10 - adds r7, r4, r1 - ldr r1, [sp, #0x10] - ldr r4, [r1, #0x50] - asrs r4, r4, #8 - lsls r1, r2, #3 - subs r1, r1, r2 - lsls r1, r1, #2 - subs r1, r1, r2 - lsls r1, r1, #8 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - subs r0, r0, r3 - lsls r0, r0, #9 - adds r1, r1, r0 - asrs r1, r1, #0x10 - adds r4, r4, r1 - ldr r0, _080504BC @ =gStageTime - ldr r0, [r0] - lsls r0, r0, #3 - adds r4, r4, r0 - adds r1, r4, #0 - subs r1, #0x48 - ldr r0, _080504C0 @ =0x00000A7F - cmp r1, r0 - ble _08050488 - adds r4, r1, #0 - movs r1, #0xa8 - lsls r1, r1, #4 - adds r0, r4, #0 - bl Mod - adds r4, r0, #0 - adds r4, #0x48 -_08050488: - ldr r0, _080504C8 @ =sa2__sub_801EC3C - str r0, [sp] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F100 - adds r1, r6, #0 - cmp r1, sl - ble _080504A0 - mov r1, sl -_080504A0: - cmp r0, r1 - ble _080504A6 - adds r0, r1, #0 -_080504A6: - adds r1, r0, #0 - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080504B8: .4byte gExtraBossTaskData -_080504BC: .4byte gStageTime -_080504C0: .4byte 0x00000A7F -_080504C4: .4byte gSineTable -_080504C8: .4byte sa2__sub_801EC3C -_080504CC: .4byte gPseudoRandom -_080504D0: .4byte 0x00196225 -_080504D4: .4byte 0x3C6EF35F -_080504D8: .4byte 0x0000FFFC - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc deleted file mode 100644 index 8240fabce1..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80504DC.inc +++ /dev/null @@ -1,435 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov sl, r0 @ sl = r0 = robo - movs r4, #0 - str r4, [r0, #0x60] - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r0, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - mov r0, sl @ r0 = sl = robo - str r1, [r0, #0x64] - ldr r1, _08050848 @ =0xFFFF0000 - str r1, [r0, #0x44] - ldr r0, _0805084C @ =0xFFFFCA00 - mov r2, sl @ r2 = sl = robo - str r0, [r2, #0x48] - mov r0, sl @ r0 = sl = robo - adds r0, #0x4c - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - ldr r0, _08050850 @ =0x00400002 - str r0, [r2, #0x58] - str r4, [r2, #0x5c] - mov r0, sl @ r0 = sl = robo - adds r0, #0x54 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - mov r1, sl @ r1 = sl = robo - adds r1, #0x6c - movs r0, #0xf0 - strh r0, [r1] - subs r1, #4 - ldr r0, _08050854 @ =gLoadedSaveGame - ldrb r0, [r0, #0x18] - lsls r0, r0, #1 - movs r3, #8 - subs r0, r3, r0 - strb r0, [r1] - mov r0, sl @ r0 = sl = robo - adds r0, #0x69 - movs r1, #0 - strb r1, [r0] - mov r1, sl @ r1 = sl = robo - adds r1, #0x6a - movs r0, #0x24 - strb r0, [r1] - adds r1, #1 - movs r0, #0x36 - strb r0, [r1] - mov r0, sl @ r0 = sl = robo - adds r0, #0x6e - movs r2, #0 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - ldr r6, _08050858 @ =gExtraBossTaskData - mov r0, sl @ r0 = sl = robo - movs r1, #0 - movs r2, #0 - movs r3, #0x15 - bl sub_8052838 - adds r5, r6, #4 - str r0, [r6, #4] - strh r4, [r0] - movs r7, #1 - movs r1, #0x80 - lsls r1, r1, #3 - ldr r2, _0805085C @ =0xFFFFE400 - movs r3, #0x16 - bl sub_8052474 - movs r3, #4 - mov sb, r3 - str r0, [r5, #4] - strh r7, [r0] - movs r7, #2 - ldr r0, [r6, #4] - ldr r2, _08050860 @ =0xFFFFE900 - movs r1, #0xb0 - lsls r1, r1, #4 - movs r3, #0xf - bl sub_80524F0 - str r0, [r6, #0xc] - strh r7, [r0] - ldr r2, [r6, #0xc] - ldr r1, [r2, #0x28] - ldr r3, _08050864 @ =0xFFFFCFFF - mov r8, r3 - ands r1, r3 - movs r5, #0x80 - lsls r5, r5, #5 - orrs r1, r5 - str r1, [r2, #0x28] - movs r7, #3 - movs r1, #0 - movs r2, #0xa0 - lsls r2, r2, #5 - movs r3, #0x10 - bl sub_8052578 - str r0, [r6, #0x10] - strh r7, [r0] - ldr r2, [r6, #0x10] - ldr r1, [r2, #0x28] - mov r3, r8 - ands r1, r3 - orrs r1, r5 - str r1, [r2, #0x28] - movs r4, #0x90 - lsls r4, r4, #5 - movs r1, #0 - adds r2, r4, #0 - movs r3, #0xf - bl sub_80525E0 - str r0, [r6, #0x14] - mov r1, sb - strh r1, [r0] - ldr r2, [r6, #0x14] - ldr r1, [r2, #0x28] - mov r3, r8 - ands r1, r3 - orrs r1, r5 - str r1, [r2, #0x28] - movs r7, #5 - movs r1, #0 - adds r2, r4, #0 - movs r3, #0x10 - bl sub_8052578 - str r0, [r6, #0x18] - strh r7, [r0] - ldr r2, [r6, #0x18] - ldr r1, [r2, #0x28] - mov r3, r8 - ands r1, r3 - orrs r1, r5 - str r1, [r2, #0x28] - movs r7, #6 - movs r1, #0x80 - lsls r1, r1, #4 - mov sb, r1 - movs r1, #0 - mov r2, sb - movs r3, #0xe - bl sub_805265C - str r0, [r6, #0x1c] - strh r7, [r0] - ldr r1, [r6, #0x1c] - ldr r0, [r1, #0x28] - mov r2, r8 - ands r0, r2 - orrs r0, r5 - str r0, [r1, #0x28] - movs r7, #7 - ldr r0, [r6, #4] - ldr r1, _08050868 @ =0xFFFFFB00 - ldr r2, _0805086C @ =0xFFFFE700 - movs r3, #0x1b - bl sub_80524F0 - str r0, [r6, #0x20] - strh r7, [r0] - movs r1, #0 - movs r2, #0xa0 - lsls r2, r2, #5 - movs r3, #0x1c - bl sub_8052578 - str r0, [r6, #0x24] - movs r3, #8 - strh r3, [r0] - movs r7, #9 - movs r1, #0 - adds r2, r4, #0 - movs r3, #0x1b - bl sub_80525E0 - str r0, [r6, #0x28] - strh r7, [r0] - movs r7, #0xa - movs r1, #0 - adds r2, r4, #0 - movs r3, #0x1c - bl sub_8052578 - str r0, [r6, #0x2c] - strh r7, [r0] - movs r7, #0xb - movs r1, #0 - mov r2, sb - movs r3, #0x1a - bl sub_805265C - str r0, [r6, #0x30] - strh r7, [r0] - ldr r0, [sp, #4] - ldr r1, _08050848 @ =0xFFFF0000 - ands r0, r1 - ldr r2, _08050870 @ =0x0000029B - orrs r0, r2 - ldr r3, _08050874 @ =0xFF00FFFF - ands r0, r3 - str r0, [sp, #4] - movs r0, #0x10 - bl VramMalloc - add r1, sp, #4 - mov sb, r1 - str r0, [sp, #8] - ldr r0, [r6, #4] - movs r1, #0x80 - lsls r1, r1, #2 - movs r2, #0x14 - str r2, [sp] - movs r2, #0xa0 - lsls r2, r2, #3 - add r3, sp, #4 - bl sub_80526C4 - adds r4, r0, #0 - str r4, [r6, #0x34] - movs r3, #0xc - strh r3, [r4] - ldr r0, [r6, #0x34] - adds r0, #0x76 - movs r1, #0xe0 - lsls r1, r1, #8 - strh r1, [r0] - ldr r0, [r6, #0x34] - adds r0, #0x72 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - ldr r1, [r6, #0x34] - ldr r0, [r1, #0x28] - mov r2, r8 - ands r0, r2 - orrs r0, r5 - str r0, [r1, #0x28] - ldr r1, _08050878 @ =0x0000029D - add r0, sp, #4 - strh r1, [r0] - movs r0, #0 - mov r3, sb - strb r0, [r3, #2] - movs r0, #9 - bl VramMalloc - str r0, [sp, #8] - movs r0, #0x13 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - add r3, sp, #4 - bl sub_8052724 - ldr r1, [r0, #0x28] - mov r2, r8 - ands r1, r2 - orrs r1, r5 - str r1, [r0, #0x28] - add r0, sp, #4 - movs r3, #0xa7 - lsls r3, r3, #2 - strh r3, [r0] - movs r1, #0 - mov r0, sb - strb r1, [r0, #2] - movs r0, #0x40 - bl VramMalloc - str r0, [sp, #8] - movs r7, #0xd - movs r2, #0xc0 - lsls r2, r2, #4 - movs r0, #0x12 - str r0, [sp] - adds r0, r4, #0 - ldr r1, _0805087C @ =0xFFFFF700 - add r3, sp, #4 - bl sub_8052780 - adds r4, r0, #0 - str r4, [r6, #0x38] - strh r7, [r4] - ldr r1, [r6, #0x38] - ldr r0, [r1, #0x28] - mov r2, r8 - ands r0, r2 - orrs r0, r5 - str r0, [r1, #0x28] - add r0, sp, #4 - ldr r3, _08050870 @ =0x0000029B - strh r3, [r0] - movs r1, #2 - mov r0, sb - strb r1, [r0, #2] - movs r0, #0x10 - bl VramMalloc - str r0, [sp, #8] - movs r7, #0xe - movs r2, #0xc0 - lsls r2, r2, #2 - mov sb, r2 - movs r3, #0x11 - str r3, [sp] - adds r0, r4, #0 - mov r1, sb - movs r2, #0xd8 - lsls r2, r2, #5 - add r3, sp, #4 - bl sub_80527DC - str r0, [r6, #0x3c] - strh r7, [r0] - ldr r1, [r6, #0x3c] - ldr r0, [r1, #0x28] - mov r2, r8 - ands r0, r2 - orrs r0, r5 - str r0, [r1, #0x28] - ldr r0, [sp, #0xc] - ldr r3, _08050848 @ =0xFFFF0000 - ands r0, r3 - ldr r1, _08050870 @ =0x0000029B - orrs r0, r1 - ldr r2, _08050874 @ =0xFF00FFFF - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #9 - orrs r0, r1 - str r0, [sp, #0xc] - movs r0, #0x10 - bl VramMalloc - add r5, sp, #0xc - str r0, [r5, #4] - movs r7, #0xf - ldr r0, [r6, #4] - ldr r1, _08050880 @ =0xFFFFFA00 - movs r2, #0x17 - str r2, [sp] - movs r2, #0xa0 - lsls r2, r2, #3 - adds r3, r5, #0 - bl sub_80526C4 - adds r4, r0, #0 - str r4, [r6, #0x40] - strh r7, [r4] - ldr r0, [r6, #0x40] - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #6 - strh r1, [r0] - ldr r0, [r6, #0x40] - adds r0, #0x72 - movs r1, #0xff - lsls r1, r1, #8 - strh r1, [r0] - movs r3, #0xa7 - lsls r3, r3, #2 - strh r3, [r5] - movs r0, #1 - strb r0, [r5, #2] - movs r0, #0x40 - bl VramMalloc - str r0, [r5, #4] - movs r7, #0x10 - movs r0, #0x16 - str r0, [sp] - adds r0, r4, #0 - ldr r1, _0805087C @ =0xFFFFF700 - movs r2, #0xb0 - lsls r2, r2, #4 - adds r3, r5, #0 - bl sub_8052780 - adds r4, r0, #0 - str r4, [r6, #0x44] - strh r7, [r4] - ldr r0, _08050870 @ =0x0000029B - strh r0, [r5] - movs r0, #3 - strb r0, [r5, #2] - movs r0, #0x10 - bl VramMalloc - str r0, [r5, #4] - movs r0, #0x18 - str r0, [sp] - adds r0, r4, #0 - mov r1, sb - movs r2, #0xd8 - lsls r2, r2, #5 - adds r3, r5, #0 - bl sub_80527DC - str r0, [r6, #0x48] - movs r1, #0x11 - strh r1, [r0] - ldr r0, _08050884 @ =gInput - ldrh r0, [r0] - cmp r0, #0xfa - bne _08050836 - mov r2, sl @ r2 = sl = robo - ldr r0, [r2, #0x58] - movs r1, #0x80 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #0x58] -_08050836: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08050848: .4byte 0xFFFF0000 -_0805084C: .4byte 0xFFFFCA00 -_08050850: .4byte 0x00400002 -_08050854: .4byte gLoadedSaveGame -_08050858: .4byte gExtraBossTaskData -_0805085C: .4byte 0xFFFFE400 -_08050860: .4byte 0xFFFFE900 -_08050864: .4byte 0xFFFFCFFF -_08050868: .4byte 0xFFFFFB00 -_0805086C: .4byte 0xFFFFE700 -_08050870: .4byte 0x0000029B -_08050874: .4byte 0xFF00FFFF -_08050878: .4byte 0x0000029D -_0805087C: .4byte 0xFFFFF700 -_08050880: .4byte 0xFFFFFA00 -_08050884: .4byte gInput - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc deleted file mode 100644 index 068aff057f..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050A88.inc +++ /dev/null @@ -1,632 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r0, _08050C44 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, [r7, #8] - mov ip, r0 - ldr r0, _08050C48 @ =gExtraBossTaskData - ldr r0, [r0] - mov sl, r0 - ldr r1, _08050C4C @ =0x03000018 - adds r1, r1, r4 - mov sb, r1 @ sb = s - ldr r2, _08050C50 @ =0x0300000C - adds r2, r4, r2 - str r2, [sp] - ldr r5, _08050C54 @ =gSineTable - mov r6, ip - adds r6, #0x70 - ldrh r1, [r6] - lsrs r1, r1, #6 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - mov r8, r1 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - ldrh r1, [r6] - lsrs r1, r1, #6 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, r8 - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - mov r1, ip - ldr r0, [r1, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r1, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r2, _08050C58 @ =0x03000076 - adds r1, r4, r2 - ldrh r0, [r6] - ldrh r1, [r1] - adds r0, r0, r1 - ldr r3, _08050C5C @ =0x03000070 - adds r4, r4, r3 - strh r0, [r4] - ldr r0, [r7, #0x50] - asrs r1, r0, #8 - ldr r4, _08050C60 @ =gCamera - movs r2, #0 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - str r0, [sp, #4] - ldr r0, [r7, #0x54] - asrs r2, r0, #8 - movs r3, #2 - ldrsh r0, [r4, r3] - subs r0, r2, r0 - str r0, [sp, #8] - ldr r4, _08050C64 @ =gPlayer - adds r4, #0x3e - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _08050B62 - b _08050C8C -_08050B62: - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - ldr r3, _08050C64 @ =gPlayer - bl sub_800C0E0 - cmp r0, #0 - bne _08050B78 - b _08050C8C -_08050B78: - mov r0, sl - ldr r3, [r0, #0x58] - movs r5, #0x80 - ands r3, r5 - movs r1, #0x69 - add r1, sl - mov r8, r1 - adds r0, #0x6e - str r0, [sp, #0xc] - cmp r3, #0 - beq _08050B90 - b _08050CC2 -_08050B90: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _08050B9A - b _08050CC2 -_08050B9A: - movs r0, #0x20 - strb r0, [r1] - movs r0, #0 - strb r0, [r4] - movs r0, #8 - ldr r2, _08050C64 @ =gPlayer - strh r0, [r2, #0x1c] - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r2, #8] - strh r0, [r2, #0xc] - mov r1, sl - adds r1, #0x68 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - ble _08050BC2 - b _08050CC2 -_08050BC2: - ldr r2, _08050C68 @ =gDispCnt - ldrh r1, [r2] - ldr r0, _08050C6C @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - ldr r0, _08050C70 @ =gBldRegs - strh r3, [r0] - ldr r2, _08050C74 @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - movs r0, #0xd - ldr r4, [sp, #0xc] - strb r0, [r4] - mov r1, sl - adds r1, #0x6f - strb r0, [r1] - subs r1, #0x23 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #2 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - mov r1, sl - ldr r0, [r1, #0x58] - orrs r0, r5 - str r0, [r1, #0x58] - mov r0, sl - adds r0, #0x54 - strh r3, [r0] - ldr r2, _08050C78 @ =gStageFlags - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08050C7C @ =gLevelScore - ldr r6, [r1] - movs r2, #0xfa - lsls r2, r2, #2 - adds r0, r6, r2 - str r0, [r1] - ldr r4, _08050C80 @ =0x0000C350 - adds r1, r4, #0 - bl Div - adds r5, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl Div - cmp r5, r0 - beq _08050CC2 - ldr r0, _08050C84 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08050CC2 - ldr r1, _08050C88 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08050CC2 - .align 2, 0 -_08050C44: .4byte gCurTask -_08050C48: .4byte gExtraBossTaskData -_08050C4C: .4byte 0x03000018 -_08050C50: .4byte 0x0300000C -_08050C54: .4byte gSineTable -_08050C58: .4byte 0x03000076 -_08050C5C: .4byte 0x03000070 -_08050C60: .4byte gCamera -_08050C64: .4byte gPlayer -_08050C68: .4byte gDispCnt -_08050C6C: .4byte 0x0000DFFF -_08050C70: .4byte gBldRegs -_08050C74: .4byte gFlags -_08050C78: .4byte gStageFlags -_08050C7C: .4byte gLevelScore -_08050C80: .4byte 0x0000C350 -_08050C84: .4byte gGameMode -_08050C88: .4byte gNumLives -_08050C8C: - ldr r3, _08050DB0 @ =gPlayer - movs r4, #0x1c - ldrsh r0, [r3, r4] - movs r1, #0x69 - add r1, sl - mov r8, r1 - mov r2, sl - adds r2, #0x6e - str r2, [sp, #0xc] - cmp r0, #0 - bne _08050CC2 - mov r3, sl - ldr r0, [r3, #0x58] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08050CC2 - ldr r1, [r7, #0x50] - lsls r1, r1, #8 - asrs r1, r1, #0x10 - ldr r2, [r7, #0x54] - lsls r2, r2, #8 - asrs r2, r2, #0x10 - mov r0, sb - ldr r3, _08050DB0 @ =gPlayer - bl sub_800BFEC -_08050CC2: - mov r4, sb - ldr r0, [r4, #0x10] - ldr r1, _08050DB4 @ =0xFFFFFE7F - ands r0, r1 - str r0, [r4, #0x10] - mov r1, sl - ldr r0, [r1, #0x58] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08050CE2 - mov r2, r8 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08050D46 -_08050CE2: - ldr r0, _08050DB0 @ =gPlayer - ldr r3, [r0, #0x10] - ands r3, r1 - cmp r3, #0 - bne _08050D00 - ldr r2, _08050DB8 @ =gDispCnt - ldrh r1, [r2] - ldr r0, _08050DBC @ =0x00007FFF - ands r0, r1 - strh r0, [r2] - ldr r0, _08050DC0 @ =gWinRegs - strh r3, [r0, #0xa] - ldr r0, _08050DC4 @ =gBldRegs - strh r3, [r0] - strh r3, [r0, #4] -_08050D00: - mov r3, r8 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _08050D46 - ldr r0, _08050DC8 @ =gStageTime - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08050D3E - mov r4, sb - ldr r0, [r4, #0x10] - adds r1, #0xfe - orrs r0, r1 - str r0, [r4, #0x10] - ldr r2, _08050DB8 @ =gDispCnt - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08050DC0 @ =gWinRegs - ldr r0, _08050DCC @ =0x00003F1F - strh r0, [r1, #0xa] - ldr r1, _08050DC4 @ =gBldRegs - movs r0, #0xbf - strh r0, [r1] - movs r0, #0x10 - strh r0, [r1, #4] -_08050D3E: - mov r4, r8 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] -_08050D46: - mov r0, sp - ldrh r1, [r0, #4] - ldr r0, [sp] - strh r1, [r0, #6] - mov r2, sp - ldrh r2, [r2, #8] - strh r2, [r0, #8] - adds r0, r7, #0 - adds r0, #0x70 - ldrh r0, [r0] - lsrs r0, r0, #6 - ldr r3, [sp] - strh r0, [r3] - mov r4, sb - ldr r0, [r4, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - ldr r2, _08050DD0 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r4, #0x10] - orrs r0, r1 - str r0, [r4, #0x10] - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - ldr r1, [sp] - bl TransformSprite - mov r0, sb - bl DisplaySprite - ldr r1, [sp, #0xc] - ldrb r0, [r1] - subs r0, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - bls _08050DA6 - b _08050F94 -_08050DA6: - lsls r0, r0, #2 - ldr r1, _08050DD4 @ =_08050DD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08050DB0: .4byte gPlayer -_08050DB4: .4byte 0xFFFFFE7F -_08050DB8: .4byte gDispCnt -_08050DBC: .4byte 0x00007FFF -_08050DC0: .4byte gWinRegs -_08050DC4: .4byte gBldRegs -_08050DC8: .4byte gStageTime -_08050DCC: .4byte 0x00003F1F -_08050DD0: .4byte gOamMatrixIndex -_08050DD4: .4byte _08050DD8 -_08050DD8: @ jump table - .4byte _08050E0C @ case 0 - .4byte _08050E0C @ case 1 - .4byte _08050F94 @ case 2 - .4byte _08050F94 @ case 3 - .4byte _08050F94 @ case 4 - .4byte _08050F94 @ case 5 - .4byte _08050F94 @ case 6 - .4byte _08050F94 @ case 7 - .4byte _08050E1C @ case 8 - .4byte _08050E44 @ case 9 - .4byte _08050F30 @ case 10 - .4byte _08050F78 @ case 11 - .4byte _08050F82 @ case 12 -_08050E0C: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl sub_804CFE0 - b _08050FA2 -_08050E1C: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xf0 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_804CFE0 - cmp r0, #0 - bne _08050E32 - b _08050FA2 -_08050E32: - movs r2, #0 - ldrsh r0, [r7, r2] - movs r1, #1 - lsls r1, r0 - mov r3, sl - ldr r0, [r3, #0x5c] - orrs r0, r1 - str r0, [r3, #0x5c] - b _08050FA2 -_08050E44: - ldr r2, _08050EBC @ =gDispCnt - ldrh r1, [r2] - ldr r0, _08050EC0 @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - ldr r0, [r7, #4] - cmp r0, #0 - bne _08050E6E - ldr r0, _08050EC4 @ =0x00000299 - mov r4, sb - strh r0, [r4, #0xa] - mov r1, sb - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - movs r0, #0x9b - bl m4aSongNumStart -_08050E6E: - ldr r0, [r7, #4] - cmp r0, #0xa - bne _08050E7A - movs r0, #0x9b - bl m4aSongNumStop -_08050E7A: - ldr r0, [r7, #4] - cmp r0, #0xf - ble _08050ED0 - movs r1, #0 - ldrsh r0, [r7, r1] - movs r1, #1 - lsls r1, r0 - mov r2, sl - ldr r0, [r2, #0x5c] - orrs r0, r1 - str r0, [r2, #0x5c] - ldr r1, _08050EC8 @ =gBldRegs - movs r3, #0 - movs r0, #0 - strh r0, [r1] - ldr r2, _08050ECC @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldr r0, _08050EC4 @ =0x00000299 - mov r4, sb - strh r0, [r4, #0xa] - mov r0, sb - adds r0, #0x20 - strb r3, [r0] - mov r1, sb - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - b _08050FA2 - .align 2, 0 -_08050EBC: .4byte gDispCnt -_08050EC0: .4byte 0x0000DFFF -_08050EC4: .4byte 0x00000299 -_08050EC8: .4byte gBldRegs -_08050ECC: .4byte gFlags -_08050ED0: - ldr r2, _08050F20 @ =gSineTable - lsls r0, r0, #0xa - asrs r0, r0, #6 - ldr r1, _08050F24 @ =0x000003FF - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - subs r1, r1, r0 - lsls r1, r1, #0x15 - movs r0, #0xb8 - lsls r0, r0, #0x17 - adds r1, r1, r0 - lsrs r2, r1, #0x10 - ldr r0, _08050F28 @ =gPlayer - ldr r0, [r0, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08050F70 - ldr r0, [sp, #4] - ldr r1, [sp, #8] - adds r3, r7, #0 - bl sub_8052150 - cmp r0, #0 - bne _08050F70 - ldr r0, _08050F2C @ =gFlags - ldr r1, [r0] - movs r2, #5 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0] - b _08050F70 - .align 2, 0 -_08050F20: .4byte gSineTable -_08050F24: .4byte 0x000003FF -_08050F28: .4byte gPlayer -_08050F2C: .4byte gFlags -_08050F30: - ldr r1, [r7, #4] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08050F70 - lsls r0, r1, #0xa - ldr r1, [r7, #0x50] - subs r1, r1, r0 - ldr r3, _08050F5C @ =0xFFFF9C00 - adds r2, r1, r3 - ldr r0, _08050F60 @ =0xFFFFE000 - cmp r2, r0 - bge _08050F64 - movs r4, #0 - ldrsh r0, [r7, r4] - movs r1, #1 - lsls r1, r0 - mov r2, sl - ldr r0, [r2, #0x5c] - orrs r0, r1 - str r0, [r2, #0x5c] - b _08050F70 - .align 2, 0 -_08050F5C: .4byte 0xFFFF9C00 -_08050F60: .4byte 0xFFFFE000 -_08050F64: - mov r3, sl - ldr r1, [r3, #0x64] - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_804B570 -_08050F70: - ldr r0, [r7, #4] - adds r0, #1 - str r0, [r7, #4] - b _08050FA2 -_08050F78: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xc0 - lsls r1, r1, #5 - b _08050F8A -_08050F82: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #6 -_08050F8A: - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - b _08050FA2 -_08050F94: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 -_08050FA2: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc deleted file mode 100644 index 7733b8ce8a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050FB4.inc +++ /dev/null @@ -1,448 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _080510D0 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, _080510D4 @ =gExtraBossTaskData - ldr r0, [r0] - mov sb, r0 - ldr r0, _080510D8 @ =0x03000018 - adds r6, r4, r0 - ldr r1, _080510DC @ =0x0300000C - adds r1, r4, r1 - str r1, [sp] - ldr r5, _080510E0 @ =gSineTable - ldr r2, [r7, #8] - adds r2, #0x70 - mov r8, r2 - ldrh r1, [r2] - lsrs r1, r1, #6 - movs r3, #0x80 - lsls r3, r3, #1 - mov ip, r3 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - mov sl, r1 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - mov r0, r8 - ldrh r1, [r0] - lsrs r1, r1, #6 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - add r1, ip - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - ldr r1, [r7, #8] - ldr r0, [r1, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r1, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r2, _080510E4 @ =0x03000076 - adds r1, r4, r2 - mov r3, r8 - ldrh r0, [r3] - ldrh r1, [r1] - adds r0, r0, r1 - ldr r1, _080510E8 @ =0x03000070 - adds r4, r4, r1 - strh r0, [r4] - ldr r2, [r7, #0x50] - asrs r2, r2, #8 - ldr r3, _080510EC @ =gCamera - movs r4, #0 - ldrsh r0, [r3, r4] - subs r2, r2, r0 - ldr r0, [r7, #0x54] - asrs r0, r0, #8 - movs r4, #2 - ldrsh r1, [r3, r4] - subs r0, r0, r1 - ldr r1, [sp] - strh r2, [r1, #6] - strh r0, [r1, #8] - ldr r0, [r6, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] - ldr r2, _080510F0 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r6, #0x10] - orrs r0, r1 - str r0, [r6, #0x10] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - ldr r1, [sp] - bl TransformSprite - adds r0, r6, #0 - bl DisplaySprite - mov r0, sb - adds r0, #0x6e - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - bls _080510C6 - b _08051324 -_080510C6: - lsls r0, r0, #2 - ldr r1, _080510F4 @ =_080510F8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080510D0: .4byte gCurTask -_080510D4: .4byte gExtraBossTaskData -_080510D8: .4byte 0x03000018 -_080510DC: .4byte 0x0300000C -_080510E0: .4byte gSineTable -_080510E4: .4byte 0x03000076 -_080510E8: .4byte 0x03000070 -_080510EC: .4byte gCamera -_080510F0: .4byte gOamMatrixIndex -_080510F4: .4byte _080510F8 -_080510F8: @ jump table - .4byte _0805112C @ case 0 - .4byte _0805113C @ case 1 - .4byte _0805116E @ case 2 - .4byte _080511BC @ case 3 - .4byte _08051204 @ case 4 - .4byte _08051250 @ case 5 - .4byte _080512C8 @ case 6 - .4byte _080512C8 @ case 7 - .4byte _08051324 @ case 8 - .4byte _08051324 @ case 9 - .4byte _08051324 @ case 10 - .4byte _08051300 @ case 11 - .4byte _08051312 @ case 12 -_0805112C: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 - b _08051332 -_0805113C: - ldr r1, _08051158 @ =gUnknown_084AE560 - movs r2, #0 - ldrsh r0, [r7, r2] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805115C - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #5 - b _08051164 - .align 2, 0 -_08051158: .4byte gUnknown_084AE560 -_0805115C: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #6 -_08051164: - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_804CFE0 - b _08051332 -_0805116E: - ldr r1, _080511B8 @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08051184 - b _08051332 -_08051184: - movs r5, #0xc0 - lsls r5, r5, #7 - adds r4, r7, #0 - adds r4, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_804CFE0 - ldrh r0, [r4] - cmp r0, r5 - beq _080511A0 - b _08051332 -_080511A0: - ldr r0, [r7, #4] - adds r1, r0, #0 - adds r0, #1 - str r0, [r7, #4] - cmp r1, #0x1d - bgt _080511AE - b _08051332 -_080511AE: - movs r4, #0 - ldrsh r0, [r7, r4] - adds r1, r6, #0 - b _080512B2 - .align 2, 0 -_080511B8: .4byte gUnknown_084AE560 -_080511BC: - ldr r1, _080511FC @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _080511D2 - b _08051332 -_080511D2: - ldr r0, [r7, #4] - cmp r0, #0x10 - ble _080511DA - movs r0, #0x10 -_080511DA: - lsls r0, r0, #0x1a - ldr r1, _08051200 @ =gSineTable - lsrs r0, r0, #0x16 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - subs r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0xa - movs r0, #0xb0 - lsls r0, r0, #7 - b _0805128C - .align 2, 0 -_080511FC: .4byte gUnknown_084AE560 -_08051200: .4byte gSineTable -_08051204: - ldr r1, _0805124C @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0805121A - b _08051332 -_0805121A: - movs r5, #0xc0 - lsls r5, r5, #7 - adds r4, r7, #0 - adds r4, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_804CFE0 - ldrh r0, [r4] - cmp r0, r5 - beq _08051236 - b _08051332 -_08051236: - ldr r0, [r7, #4] - adds r1, r0, #0 - adds r0, #1 - str r0, [r7, #4] - cmp r1, #0x1d - ble _08051332 - movs r4, #0 - ldrsh r0, [r7, r4] - adds r1, r6, #0 - b _080512B2 - .align 2, 0 -_0805124C: .4byte gUnknown_084AE560 -_08051250: - ldr r1, _080512C0 @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08051332 - ldr r0, [r7, #4] - cmp r0, #0x10 - ble _0805126C - movs r0, #0x10 -_0805126C: - lsls r0, r0, #0x1a - ldr r1, _080512C4 @ =gSineTable - lsrs r0, r0, #0x16 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - subs r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0xa - movs r0, #0xc0 - lsls r0, r0, #7 -_0805128C: - adds r1, r0, #0 - subs r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #4 - bl sub_804CFE0 - ldr r0, [r7, #4] - adds r1, r0, #0 - adds r0, #1 - str r0, [r7, #4] - cmp r1, #0x4b - ble _08051332 - movs r1, #0 - ldrsh r0, [r7, r1] - adds r1, r4, #0 -_080512B2: - lsls r1, r0 - mov r2, sb - ldr r0, [r2, #0x5c] - orrs r0, r1 - str r0, [r2, #0x5c] - b _08051332 - .align 2, 0 -_080512C0: .4byte gUnknown_084AE560 -_080512C4: .4byte gSineTable -_080512C8: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xf0 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - cmp r0, #0 - beq _08051332 - mov r0, sb - adds r0, #0x54 - ldrh r1, [r0] - adds r2, r1, #1 - strh r2, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x3b - ble _08051332 - movs r3, #0 - ldrsh r0, [r7, r3] - movs r1, #1 - lsls r1, r0 - mov r4, sb - ldr r0, [r4, #0x5c] - orrs r0, r1 - str r0, [r4, #0x5c] - b _08051332 -_08051300: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xd0 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_804CFE0 - b _08051332 -_08051312: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xf0 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - b _08051332 -_08051324: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 -_08051332: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc deleted file mode 100644 index 2327a60865..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051344.inc +++ /dev/null @@ -1,342 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _08051460 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, _08051464 @ =gExtraBossTaskData - ldr r0, [r0] - str r0, [sp] - ldr r0, _08051468 @ =0x03000018 - adds r6, r4, r0 - ldr r1, _0805146C @ =0x0300000C - adds r1, r1, r4 - mov sb, r1 - ldr r5, _08051470 @ =gSineTable - ldr r2, [r7, #8] - adds r2, #0x70 - mov r8, r2 - ldrh r1, [r2] - lsrs r1, r1, #6 - movs r3, #0x80 - lsls r3, r3, #1 - mov ip, r3 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - mov sl, r1 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - mov r0, r8 - ldrh r1, [r0] - lsrs r1, r1, #6 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - add r1, ip - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - ldr r1, [r7, #8] - ldr r0, [r1, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r1, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r2, _08051474 @ =0x03000076 - adds r1, r4, r2 - mov r3, r8 - ldrh r0, [r3] - ldrh r1, [r1] - adds r0, r0, r1 - ldr r1, _08051478 @ =0x03000070 - adds r4, r4, r1 - strh r0, [r4] - ldr r2, [r7, #0x50] - asrs r2, r2, #8 - ldr r3, _0805147C @ =gCamera - movs r4, #0 - ldrsh r0, [r3, r4] - subs r2, r2, r0 - ldr r0, [r7, #0x54] - asrs r0, r0, #8 - movs r4, #2 - ldrsh r1, [r3, r4] - subs r0, r0, r1 - mov r1, sb - strh r2, [r1, #6] - strh r0, [r1, #8] - ldr r0, [r6, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] - ldr r2, _08051480 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r6, #0x10] - orrs r0, r1 - str r0, [r6, #0x10] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - mov r1, sb - bl TransformSprite - adds r0, r6, #0 - bl DisplaySprite - ldr r0, [sp] - adds r0, #0x6e - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - bls _08051456 - b _080515E4 -_08051456: - lsls r0, r0, #2 - ldr r1, _08051484 @ =_08051488 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051460: .4byte gCurTask -_08051464: .4byte gExtraBossTaskData -_08051468: .4byte 0x03000018 -_0805146C: .4byte 0x0300000C -_08051470: .4byte gSineTable -_08051474: .4byte 0x03000076 -_08051478: .4byte 0x03000070 -_0805147C: .4byte gCamera -_08051480: .4byte gOamMatrixIndex -_08051484: .4byte _08051488 -_08051488: @ jump table - .4byte _080514BC @ case 0 - .4byte _080514CC @ case 1 - .4byte _080514F6 @ case 2 - .4byte _08051518 @ case 3 - .4byte _08051538 @ case 4 - .4byte _08051558 @ case 5 - .4byte _08051578 @ case 6 - .4byte _0805158A @ case 7 - .4byte _080515E4 @ case 8 - .4byte _080515E4 @ case 9 - .4byte _080515E4 @ case 10 - .4byte _080515C0 @ case 11 - .4byte _080515D2 @ case 12 -_080514BC: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 - b _080515F2 -_080514CC: - ldr r1, _080514E8 @ =gUnknown_084AE560 - movs r2, #0 - ldrsh r0, [r7, r2] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080514EC - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xc0 - lsls r1, r1, #7 - b _08051580 - .align 2, 0 -_080514E8: .4byte gUnknown_084AE560 -_080514EC: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xd0 - lsls r1, r1, #7 - b _08051580 -_080514F6: - ldr r1, _08051514 @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080515F2 - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xc0 - lsls r1, r1, #7 - b _080515DA - .align 2, 0 -_08051514: .4byte gUnknown_084AE560 -_08051518: - ldr r1, _08051534 @ =gUnknown_084AE560 - movs r4, #0 - ldrsh r0, [r7, r4] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080515F2 - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #5 - b _080515C8 - .align 2, 0 -_08051534: .4byte gUnknown_084AE560 -_08051538: - ldr r1, _08051554 @ =gUnknown_084AE560 - movs r2, #0 - ldrsh r0, [r7, r2] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080515F2 - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xc0 - lsls r1, r1, #7 - b _080515DA - .align 2, 0 -_08051554: .4byte gUnknown_084AE560 -_08051558: - ldr r1, _08051574 @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080515F2 - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #5 - b _080515C8 - .align 2, 0 -_08051574: .4byte gUnknown_084AE560 -_08051578: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #7 -_08051580: - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_804CFE0 - b _080515F2 -_0805158A: - movs r1, #0x80 - lsls r1, r1, #7 - ldr r3, _080515B4 @ =gPseudoRandom - ldr r2, [r3] - ldr r0, _080515B8 @ =0x00196225 - muls r0, r2, r0 - ldr r4, _080515BC @ =0x3C6EF35F - adds r0, r0, r4 - str r0, [r3] - lsls r0, r0, #0xc - lsrs r0, r0, #0x14 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #5 - bl sub_804CFE0 - b _080515F2 - .align 2, 0 -_080515B4: .4byte gPseudoRandom -_080515B8: .4byte 0x00196225 -_080515BC: .4byte 0x3C6EF35F -_080515C0: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #6 -_080515C8: - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_804CFE0 - b _080515F2 -_080515D2: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #5 -_080515DA: - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - b _080515F2 -_080515E4: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 -_080515F2: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc deleted file mode 100644 index dafa6261d4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051604.inc +++ /dev/null @@ -1,351 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _080517AC @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, [r7, #8] - mov sl, r0 - ldr r0, _080517B0 @ =gExtraBossTaskData - ldr r0, [r0] - str r0, [sp] - ldr r1, _080517B4 @ =0x03000018 - adds r1, r1, r4 - mov sb, r1 - ldr r2, _080517B8 @ =0x0300000C - adds r2, r2, r4 - mov r8, r2 - ldr r5, _080517BC @ =gSineTable - mov ip, r5 - mov r5, sl - adds r5, #0x70 - ldrh r1, [r5] - lsrs r1, r1, #6 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r1, r6 - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - add r1, ip - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - muls r0, r1, r0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - ldrh r1, [r5] - ldr r0, _080517C0 @ =0x000003FF - mov r6, sp - strh r0, [r6, #4] - lsrs r1, r1, #6 - lsls r0, r1, #1 - add r0, ip - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - movs r6, #0x80 - lsls r6, r6, #1 - adds r1, r1, r6 - lsls r1, r1, #1 - add r1, ip - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - muls r0, r1, r0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - mov r6, sl - ldr r0, [r6, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r6, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r0, _080517C4 @ =0x03000076 - adds r1, r4, r0 - ldrh r0, [r5] - ldrh r1, [r1] - adds r2, r0, r1 - ldr r1, _080517C8 @ =0x03000070 - adds r4, r4, r1 - strh r2, [r4] - ldr r0, [r7, #0x50] - asrs r3, r0, #8 - ldr r4, _080517CC @ =gCamera - movs r5, #0 - ldrsh r0, [r4, r5] - subs r0, r3, r0 - str r0, [sp, #8] - ldr r0, [r7, #0x54] - asrs r4, r0, #8 - ldr r6, _080517CC @ =gCamera - movs r1, #2 - ldrsh r0, [r6, r1] - subs r5, r4, r0 - ldr r6, _080517D0 @ =gPlayer - movs r1, #0x1c - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0805173E - ldr r6, [sp] - ldr r0, [r6, #0x58] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0805173E - ldr r0, _080517D4 @ =0xFFFFC000 - adds r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x16 - mov r1, sp - ldrh r1, [r1, #4] - ands r2, r1 - movs r6, #0x80 - lsls r6, r6, #1 - adds r0, r2, r6 - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - subs r1, r1, r0 - lsls r1, r1, #8 - rsbs r1, r1, #0 - asrs r1, r1, #0x10 - adds r1, r3, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #1 - add r2, ip - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #3 - subs r2, r2, r0 - lsls r2, r2, #8 - rsbs r2, r2, #0 - asrs r2, r2, #0x10 - adds r2, r4, r2 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - ldr r3, _080517D0 @ =gPlayer - bl sub_800BFEC -_0805173E: - mov r0, sp - ldrh r1, [r0, #8] - mov r0, r8 - strh r1, [r0, #6] - strh r5, [r0, #8] - adds r0, r7, #0 - adds r0, #0x70 - ldrh r0, [r0] - ldr r2, _080517D4 @ =0xFFFFC000 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x16 - mov r4, r8 - strh r0, [r4] - mov r5, sb - ldr r0, [r5, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - ldr r2, _080517D8 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r5, #0x10] - orrs r0, r1 - str r0, [r5, #0x10] - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - mov r1, r8 - bl TransformSprite - mov r0, sb - bl DisplaySprite - ldr r0, [sp] - adds r0, #0x6e - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - bls _080517A2 - b _080518CA -_080517A2: - lsls r0, r0, #2 - ldr r1, _080517DC @ =_080517E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080517AC: .4byte gCurTask -_080517B0: .4byte gExtraBossTaskData -_080517B4: .4byte 0x03000018 -_080517B8: .4byte 0x0300000C -_080517BC: .4byte gSineTable -_080517C0: .4byte 0x000003FF -_080517C4: .4byte 0x03000076 -_080517C8: .4byte 0x03000070 -_080517CC: .4byte gCamera -_080517D0: .4byte gPlayer -_080517D4: .4byte 0xFFFFC000 -_080517D8: .4byte gOamMatrixIndex -_080517DC: .4byte _080517E0 -_080517E0: @ jump table - .4byte _08051814 @ case 0 - .4byte _0805181E @ case 1 - .4byte _080518CA @ case 2 - .4byte _080518CA @ case 3 - .4byte _080518CA @ case 4 - .4byte _080518CA @ case 5 - .4byte _08051828 @ case 6 - .4byte _08051842 @ case 7 - .4byte _080518CA @ case 8 - .4byte _080518CA @ case 9 - .4byte _080518CA @ case 10 - .4byte _080518A8 @ case 11 - .4byte _080518BA @ case 12 -_08051814: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #7 - b _08051838 -_0805181E: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #2 - b _080518C2 -_08051828: - adds r0, r7, #0 - adds r0, #0x76 - mov r1, sl - adds r1, #0x70 - ldrh r1, [r1] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 -_08051838: - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_804CFE0 - b _080518D8 -_08051842: - adds r0, r7, #0 - adds r0, #0x76 - mov r1, sl - adds r1, #0x70 - ldrh r1, [r1] - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_804CFE0 - ldr r0, _08051898 @ =gStageTime - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080518D8 - ldr r3, [r7, #0x50] - ldr r0, [r7, #0x54] - movs r6, #0xb8 - lsls r6, r6, #5 - adds r4, r0, r6 - ldr r2, _0805189C @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _080518A0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _080518A4 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r2] - movs r2, #0 - movs r1, #0xc0 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - bne _0805188C - movs r2, #1 -_0805188C: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_804A8A8 - b _080518D8 - .align 2, 0 -_08051898: .4byte gStageTime -_0805189C: .4byte gPseudoRandom -_080518A0: .4byte 0x00196225 -_080518A4: .4byte 0x3C6EF35F -_080518A8: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xb0 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_804CFE0 - b _080518D8 -_080518BA: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080518C2: - movs r1, #0 - bl sub_804CFE0 - b _080518D8 -_080518CA: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 -_080518D8: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc deleted file mode 100644 index 8fa0d09cb2..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_80519E8.inc +++ /dev/null @@ -1,288 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _08051B0C @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, [r7, #8] - str r0, [sp] - ldr r0, _08051B10 @ =gExtraBossTaskData - ldr r0, [r0] - str r0, [sp, #4] - ldr r1, _08051B14 @ =0x03000018 - adds r6, r4, r1 - ldr r2, _08051B18 @ =0x0300000C - adds r2, r2, r4 - mov sl, r2 - ldr r5, _08051B1C @ =gSineTable - ldr r3, [sp] - adds r3, #0x70 - mov r8, r3 - ldrh r1, [r3] - lsrs r1, r1, #6 - movs r0, #0x80 - lsls r0, r0, #1 - mov ip, r0 - adds r0, r1, r0 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - mov sb, r1 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - mov r0, r8 - ldrh r1, [r0] - lsrs r1, r1, #6 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - add r1, ip - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - ldr r5, [sp] - ldr r0, [r5, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r5, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r0, _08051B20 @ =0x03000076 - adds r1, r4, r0 - mov r2, r8 - ldrh r0, [r2] - ldrh r1, [r1] - adds r0, r0, r1 - ldr r3, _08051B24 @ =0x03000070 - adds r4, r4, r3 - strh r0, [r4] - ldr r2, [r7, #0x50] - asrs r2, r2, #8 - ldr r5, _08051B28 @ =gCamera - movs r1, #0 - ldrsh r0, [r5, r1] - subs r2, r2, r0 - ldr r0, [r7, #0x54] - asrs r0, r0, #8 - movs r3, #2 - ldrsh r1, [r5, r3] - subs r0, r0, r1 - mov r5, sl - strh r2, [r5, #6] - strh r0, [r5, #8] - ldrh r0, [r4] - lsrs r0, r0, #6 - strh r0, [r5] - ldr r0, [r6, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] - ldr r2, _08051B2C @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r6, #0x10] - orrs r0, r1 - str r0, [r6, #0x10] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - mov r1, sl - bl TransformSprite - adds r0, r6, #0 - bl DisplaySprite - ldr r0, [sp, #4] - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bls _08051B02 - b _08051C28 -_08051B02: - lsls r0, r0, #2 - ldr r1, _08051B30 @ =_08051B34 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051B0C: .4byte gCurTask -_08051B10: .4byte gExtraBossTaskData -_08051B14: .4byte 0x03000018 -_08051B18: .4byte 0x0300000C -_08051B1C: .4byte gSineTable -_08051B20: .4byte 0x03000076 -_08051B24: .4byte 0x03000070 -_08051B28: .4byte gCamera -_08051B2C: .4byte gOamMatrixIndex -_08051B30: .4byte _08051B34 -_08051B34: @ jump table - .4byte _08051BCC @ case 0 - .4byte _08051C28 @ case 1 - .4byte _08051B70 @ case 2 - .4byte _08051B70 @ case 3 - .4byte _08051B80 @ case 4 - .4byte _08051B8C @ case 5 - .4byte _08051C34 @ case 6 - .4byte _08051BA4 @ case 7 - .4byte _08051C28 @ case 8 - .4byte _08051C28 @ case 9 - .4byte _08051C28 @ case 10 - .4byte _08051C28 @ case 11 - .4byte _08051C28 @ case 12 - .4byte _08051BDC @ case 13 - .4byte _08051C16 @ case 14 -_08051B70: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #2 - movs r1, #0 - bl sub_804CFE0 - b _08051C34 -_08051B80: - adds r0, r7, #0 - adds r0, #0x76 - ldr r1, [sp] - adds r1, #0x76 - ldrh r1, [r1] - b _08051C1E -_08051B8C: - ldr r1, _08051BA0 @ =gUnknown_084AE560 - movs r2, #0 - ldrsh r0, [r7, r2] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08051C34 - b _08051BB6 - .align 2, 0 -_08051BA0: .4byte gUnknown_084AE560 -_08051BA4: - ldr r1, _08051BC8 @ =gUnknown_084AE560 - movs r3, #0 - ldrsh r0, [r7, r3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08051C34 -_08051BB6: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xe8 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_804CFE0 - b _08051C34 - .align 2, 0 -_08051BC8: .4byte gUnknown_084AE560 -_08051BCC: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #5 - movs r2, #0x80 - bl sub_804CFE0 - b _08051C34 -_08051BDC: - adds r4, r7, #0 - adds r4, #0x76 - movs r5, #0x80 - lsls r5, r5, #7 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_804CFE0 - ldr r0, [sp, #4] - adds r0, #0x69 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08051C34 - ldrh r0, [r4] - cmp r0, r5 - bne _08051C34 - movs r5, #0 - ldrsh r0, [r7, r5] - movs r1, #1 - lsls r1, r0 - ldr r2, [sp, #4] - ldr r0, [r2, #0x5c] - orrs r0, r1 - str r0, [r2, #0x5c] - b _08051C34 -_08051C16: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xe8 - lsls r1, r1, #8 -_08051C1E: - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - b _08051C34 -_08051C28: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0 - movs r2, #0x80 - bl sub_804CFE0 -_08051C34: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc deleted file mode 100644 index bd6cd39169..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051C44.inc +++ /dev/null @@ -1,235 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _08051D64 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, _08051D68 @ =gExtraBossTaskData - ldr r0, [r0] - str r0, [sp] - ldr r0, _08051D6C @ =0x03000018 - adds r6, r4, r0 - ldr r1, _08051D70 @ =0x0300000C - adds r1, r1, r4 - mov sb, r1 - ldr r5, _08051D74 @ =gSineTable - ldr r2, [r7, #8] - adds r2, #0x70 - mov r8, r2 - ldrh r1, [r2] - lsrs r1, r1, #6 - movs r3, #0x80 - lsls r3, r3, #1 - mov ip, r3 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - mov sl, r1 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - mov r0, r8 - ldrh r1, [r0] - lsrs r1, r1, #6 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - add r1, ip - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - ldr r5, [r7, #8] - ldr r0, [r5, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r5, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r0, _08051D78 @ =0x03000076 - adds r1, r4, r0 - mov r2, r8 - ldrh r0, [r2] - ldrh r1, [r1] - adds r0, r0, r1 - ldr r3, _08051D7C @ =0x03000070 - adds r4, r4, r3 - strh r0, [r4] - ldr r2, [r7, #0x50] - asrs r2, r2, #8 - ldr r5, _08051D80 @ =gCamera - movs r1, #0 - ldrsh r0, [r5, r1] - subs r2, r2, r0 - ldr r0, [r7, #0x54] - asrs r0, r0, #8 - movs r3, #2 - ldrsh r1, [r5, r3] - subs r0, r0, r1 - mov r5, sb - strh r2, [r5, #6] - strh r0, [r5, #8] - ldrh r0, [r4] - lsrs r0, r0, #6 - strh r0, [r5] - ldr r0, [r6, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] - ldr r2, _08051D84 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r6, #0x10] - orrs r0, r1 - str r0, [r6, #0x10] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - mov r1, sb - bl TransformSprite - adds r0, r6, #0 - bl DisplaySprite - ldr r0, [sp] - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bhi _08051E18 - lsls r0, r0, #2 - ldr r1, _08051D88 @ =_08051D8C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051D64: .4byte gCurTask -_08051D68: .4byte gExtraBossTaskData -_08051D6C: .4byte 0x03000018 -_08051D70: .4byte 0x0300000C -_08051D74: .4byte gSineTable -_08051D78: .4byte 0x03000076 -_08051D7C: .4byte 0x03000070 -_08051D80: .4byte gCamera -_08051D84: .4byte gOamMatrixIndex -_08051D88: .4byte _08051D8C -_08051D8C: @ jump table - .4byte _08051DDC @ case 0 - .4byte _08051DE6 @ case 1 - .4byte _08051DC8 @ case 2 - .4byte _08051E18 @ case 3 - .4byte _08051E18 @ case 4 - .4byte _08051E18 @ case 5 - .4byte _08051E18 @ case 6 - .4byte _08051E18 @ case 7 - .4byte _08051DD2 @ case 8 - .4byte _08051DD2 @ case 9 - .4byte _08051E18 @ case 10 - .4byte _08051E18 @ case 11 - .4byte _08051E18 @ case 12 - .4byte _08051DF6 @ case 13 - .4byte _08051E06 @ case 14 -_08051DC8: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #2 - b _08051DFE -_08051DD2: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #2 - b _08051DFE -_08051DDC: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #6 - b _08051DEE -_08051DE6: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xe0 - lsls r1, r1, #8 -_08051DEE: - movs r2, #0x80 - bl sub_804CFE0 - b _08051E28 -_08051DF6: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #3 -_08051DFE: - movs r1, #0 - bl sub_804CFE0 - b _08051E28 -_08051E06: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xc0 - lsls r1, r1, #5 - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - b _08051E28 -_08051E18: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #6 - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 -_08051E28: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc deleted file mode 100644 index f16ee077b4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8051E38.inc +++ /dev/null @@ -1,233 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _08051F58 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - ldr r0, _08051F5C @ =gExtraBossTaskData - ldr r0, [r0] - str r0, [sp] - ldr r0, _08051F60 @ =0x03000018 - adds r6, r4, r0 - ldr r1, _08051F64 @ =0x0300000C - adds r1, r1, r4 - mov sb, r1 - ldr r5, _08051F68 @ =gSineTable - ldr r2, [r7, #8] - adds r2, #0x70 - mov r8, r2 - ldrh r1, [r2] - lsrs r1, r1, #6 - movs r3, #0x80 - lsls r3, r3, #1 - mov ip, r3 - adds r0, r1, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r2, [r7, #0x68] - adds r3, r2, #0 - muls r3, r0, r3 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r7, #0x6c] - mov sl, r1 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - subs r3, r3, r0 - asrs r3, r3, #8 - str r3, [r7, #0x60] - mov r0, r8 - ldrh r1, [r0] - lsrs r1, r1, #6 - lsls r0, r1, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r2, r0, r2 - add r1, ip - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r2, r2, r0 - asrs r2, r2, #8 - str r2, [r7, #0x64] - ldr r5, [r7, #8] - ldr r0, [r5, #0x50] - adds r3, r3, r0 - str r3, [r7, #0x50] - ldr r0, [r5, #0x54] - adds r2, r2, r0 - str r2, [r7, #0x54] - ldr r0, _08051F6C @ =0x03000076 - adds r1, r4, r0 - mov r2, r8 - ldrh r0, [r2] - ldrh r1, [r1] - adds r0, r0, r1 - ldr r3, _08051F70 @ =0x03000070 - adds r4, r4, r3 - strh r0, [r4] - ldr r2, [r7, #0x50] - asrs r2, r2, #8 - ldr r5, _08051F74 @ =gCamera - movs r1, #0 - ldrsh r0, [r5, r1] - subs r2, r2, r0 - ldr r0, [r7, #0x54] - asrs r0, r0, #8 - movs r3, #2 - ldrsh r1, [r5, r3] - subs r0, r0, r1 - mov r5, sb - strh r2, [r5, #6] - strh r0, [r5, #8] - ldrh r0, [r4] - lsrs r0, r0, #6 - strh r0, [r5] - ldr r0, [r6, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] - ldr r2, _08051F78 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r6, #0x10] - orrs r0, r1 - str r0, [r6, #0x10] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - mov r1, sb - bl TransformSprite - adds r0, r6, #0 - bl DisplaySprite - ldr r0, [sp] - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bhi _0805200C - lsls r0, r0, #2 - ldr r1, _08051F7C @ =_08051F80 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051F58: .4byte gCurTask -_08051F5C: .4byte gExtraBossTaskData -_08051F60: .4byte 0x03000018 -_08051F64: .4byte 0x0300000C -_08051F68: .4byte gSineTable -_08051F6C: .4byte 0x03000076 -_08051F70: .4byte 0x03000070 -_08051F74: .4byte gCamera -_08051F78: .4byte gOamMatrixIndex -_08051F7C: .4byte _08051F80 -_08051F80: @ jump table - .4byte _08051FD8 @ case 0 - .4byte _0805200C @ case 1 - .4byte _0805201A @ case 2 - .4byte _0805201A @ case 3 - .4byte _08051FBC @ case 4 - .4byte _08051FBC @ case 5 - .4byte _08051FBC @ case 6 - .4byte _08051FBC @ case 7 - .4byte _0805200C @ case 8 - .4byte _0805200C @ case 9 - .4byte _0805200C @ case 10 - .4byte _08051FD8 @ case 11 - .4byte _08051FD8 @ case 12 - .4byte _08051FEA @ case 13 - .4byte _08051FFC @ case 14 -_08051FBC: - adds r0, r7, #0 - adds r0, #0x70 - ldrh r1, [r0] - ldr r0, _08051FD4 @ =0x00000FFF - cmp r1, r0 - bhi _08051FFC - adds r0, r7, #0 - adds r0, #0x76 - rsbs r1, r1, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - b _08051FE0 - .align 2, 0 -_08051FD4: .4byte 0x00000FFF -_08051FD8: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xe0 - lsls r1, r1, #8 -_08051FE0: - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_804CFE0 - b _0805201A -_08051FEA: - adds r0, r7, #0 - adds r0, #0x76 - movs r1, #0xf8 - lsls r1, r1, #8 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_804CFE0 - b _0805201A -_08051FFC: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 - b _0805201A -_0805200C: - adds r0, r7, #0 - adds r0, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 - movs r1, #0 - bl sub_804CFE0 -_0805201A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc b/sa1/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc deleted file mode 100644 index a4af645682..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc +++ /dev/null @@ -1,99 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sb, r1 @ sb = screenY - movs r6, #0 @ r6 = i - movs r4, #0 - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 @ r7 = screenX - lsls r5, r7, #2 - movs r0, #8 - adds r0, r0, r7 - mov r8, r0 -_080712A8: - str r4, [sp] - ldr r0, _080712DC @ =Task_FireballSpark - movs r1, #0x38 - movs r2, #0xc0 - lsls r2, r2, #6 - movs r3, #0 - bl TaskCreate - ldrh r0, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r1, r0, r2 @ r1 = spark - strh r5, [r1, #0x30] - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r1, #0x34] - movs r0, #6 - strh r0, [r1, #0x32] - cmp r6, #0 - beq _080712E0 - rsbs r0, r0, #0 - strh r0, [r1, #0x32] - adds r0, r7, #0 - subs r0, #8 - b _080712E4 - .align 2, 0 -_080712DC: .4byte Task_FireballSpark -_080712E0: - strh r5, [r1, #0x30] - mov r0, r8 -_080712E4: - strh r0, [r1, #0x16] - mov r2, sb - strh r2, [r1, #0x18] - ldr r0, _08071340 @ =0x06012580 - str r0, [r1, #4] - movs r0, #0x90 - lsls r0, r0, #2 - strh r0, [r1, #0x1a] - strh r4, [r1, #8] - subs r0, #0xa2 - strh r0, [r1, #0xa] - adds r0, r1, #0 - adds r0, #0x20 - strb r4, [r0] - strh r4, [r1, #0x14] - strh r4, [r1, #0x1c] - adds r2, r1, #0 - adds r2, #0x21 - movs r0, #0xff - strb r0, [r2] - adds r2, #1 - movs r0, #0x10 - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0x25 - strb r4, [r0] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #0x28] - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r1, #0x10] - adds r0, r1, #0 - bl UpdateSpriteAnimation - adds r6, #1 - cmp r6, #1 - ble _080712A8 - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08071340: .4byte 0x06012580 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc b/sa1/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc deleted file mode 100644 index d3319d9439..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/game_over__Task_8056348.inc +++ /dev/null @@ -1,157 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r1, _08056468 @ =gCurTask - ldr r0, [r1] - ldrh r0, [r0, #6] - mov sl, r0 - movs r0, #0xc0 - lsls r0, r0, #0x12 - mov r3, sl - adds r5, r3, r0 @ r5 = screen - ldr r0, [r5, #0x78] @ r0 = frames - ldr r6, _0805646C @ =0x0300003C - add r6, sl @ r6 = s2 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - str r1, [sp, #0xc] @ sp0C = frames - ldr r3, _08056470 @ =0xFF880000 - adds r0, r0, r3 - lsrs r0, r0, #8 - lsls r2, r0, #0xc - ldr r7, _08056474 @ =gOamMatrixIndex - ldrb r0, [r7] - adds r1, r0, #1 - strb r1, [r7] - movs r1, #0x20 - orrs r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0x80 - orrs r0, r3 - str r0, [r5, #0x10] - mov r0, sp - movs r1, #0 - strh r1, [r0] - mov r1, sp - ldr r0, _08056478 @ =gSineTable - asrs r2, r2, #0x10 - adds r3, #0x80 - mov sb, r3 - add r2, sb - lsls r2, r2, #1 - adds r2, r2, r0 - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r4, r0, #0x16 - strh r4, [r1, #2] - mov r8, r4 - cmp r4, #9 - bgt _080563B6 - movs r0, #0xa - strh r0, [r1, #2] -_080563B6: - mov r0, sp - mov r1, sb - strh r1, [r0, #4] - mov r1, sp - movs r0, #0x7f - strh r0, [r1, #6] - mov r0, sp - movs r3, #0x3c - strh r3, [r0, #8] - adds r0, r5, #0 - bl TransformSprite - ldrb r0, [r7] - adds r1, r0, #1 - strb r1, [r7] - movs r1, #0x20 - orrs r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r3, #0x80 - orrs r0, r3 - str r0, [r6, #0x10] - mov r0, sp - movs r1, #0 - strh r1, [r0] - strh r4, [r0, #2] - mov r3, r8 - cmp r3, #9 - bgt _080563F6 - mov r1, sp - movs r0, #0xa - strh r0, [r1, #2] -_080563F6: - mov r0, sp - mov r1, sb - strh r1, [r0, #4] - mov r1, sp - ldrh r0, [r0, #6] - strh r0, [r1, #6] - mov r0, sp - movs r3, #0x3c - strh r3, [r0, #8] - adds r0, r6, #0 - bl TransformSprite - ldr r0, [sp, #0xc] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [r5, #0x78] - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - bl DisplaySprite - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x87 - ble _08056458 - ldr r2, _0805647C @ =0x000002CB - strh r2, [r5, #0xa] - ldr r1, _08056480 @ =0x03000020 - add r1, sl - movs r0, #2 - strb r0, [r1] - strh r2, [r6, #0xa] - ldr r1, _08056484 @ =0x0300005C - add r1, sl - movs r0, #3 - strb r0, [r1] - ldr r0, _08056468 @ =gCurTask - ldr r1, [r0] - ldr r0, _08056488 @ =Task_805648C - str r0, [r1, #8] -_08056458: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08056468: .4byte gCurTask -_0805646C: .4byte 0x0300003C -_08056470: .4byte 0xFF880000 -_08056474: .4byte gOamMatrixIndex -_08056478: .4byte gSineTable -_0805647C: .4byte 0x000002CB -_08056480: .4byte 0x03000020 -_08056484: .4byte 0x0300005C -_08056488: .4byte Task_805648C - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc b/sa1/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc deleted file mode 100644 index ec1ea8d919..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/game_over__Task_805648C.inc +++ /dev/null @@ -1,154 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r1, _080565AC @ =gCurTask - ldr r0, [r1] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - ldr r0, [r6, #0x78] - ldr r2, _080565B0 @ =0x0300003C - adds r7, r1, r2 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - str r4, [sp, #0xc] - ldr r1, _080565B4 @ =0xFF780000 - adds r0, r0, r1 - lsrs r0, r0, #8 - lsls r2, r0, #0xc - ldr r3, _080565B8 @ =gOamMatrixIndex - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - movs r4, #0x20 - orrs r0, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x80 - mov sl, r1 - orrs r0, r1 - str r0, [r6, #0x10] - mov r0, sp - movs r4, #0 - strh r4, [r0] - adds r1, #0x80 - adds r0, r1, #0 - asrs r2, r2, #0x10 - subs r0, r0, r2 - mov r2, sp - ldr r1, _080565BC @ =gSineTable - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - mov sb, r4 - add r0, sb - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r5, r0, #0x16 - strh r5, [r2, #2] - mov r0, sp - adds r4, r5, #1 - strh r4, [r0, #2] - mov r8, r4 - cmp r4, #9 - bgt _0805650C - mov r1, sp - movs r0, #0xa - strh r0, [r1, #2] -_0805650C: - mov r0, sp - mov r1, sb - strh r1, [r0, #4] - mov r1, sp - movs r0, #0x7f - strh r0, [r1, #6] - mov r0, sp - movs r2, #0x3c - strh r2, [r0, #8] - adds r0, r6, #0 - str r3, [sp, #0x10] - bl TransformSprite - ldr r3, [sp, #0x10] - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - movs r1, #0x20 - orrs r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r2, sl - orrs r0, r2 - str r0, [r7, #0x10] - mov r0, sp - movs r1, #0 - strh r1, [r0] - strh r5, [r0, #2] - strh r4, [r0, #2] - mov r2, r8 - cmp r2, #9 - bgt _08056552 - mov r1, sp - movs r0, #0xa - strh r0, [r1, #2] -_08056552: - mov r0, sp - mov r4, sb - strh r4, [r0, #4] - mov r1, sl - strh r1, [r0, #6] - movs r2, #0x3c - strh r2, [r0, #8] - adds r0, r7, #0 - mov r1, sp - bl TransformSprite - ldr r0, [sp, #0xc] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [r6, #0x78] - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite - adds r0, r7, #0 - bl UpdateSpriteAnimation - adds r0, r7, #0 - bl DisplaySprite - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x97 - ble _0805659C - ldr r4, _080565AC @ =gCurTask - ldr r1, [r4] - ldr r0, _080565C0 @ =Task_80565C4 - str r0, [r1, #8] -_0805659C: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080565AC: .4byte gCurTask -_080565B0: .4byte 0x0300003C -_080565B4: .4byte 0xFF780000 -_080565B8: .4byte gOamMatrixIndex -_080565BC: .4byte gSineTable -_080565C0: .4byte Task_80565C4 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc b/sa1/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc deleted file mode 100644 index b2f5a6d6a5..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/game_over__Task_805676C.inc +++ /dev/null @@ -1,253 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x1c - ldr r0, _08056814 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = overD - ldrh r7, [r6, #0x24] @ r7 = unk24 - mov r1, sp - movs r0, #0 - mov r8, r0 - movs r0, #0x5b - strh r0, [r1, #0xc] - movs r0, #6 - strh r0, [r1, #0x12] - mov r0, sp - mov r1, r8 - strh r1, [r0, #8] - mov r1, sp - movs r0, #4 - strh r0, [r1, #0x10] - movs r2, #1 - movs r0, #1 - strh r0, [r1, #0xe] - mov r0, sp - strb r2, [r0, #0x16] - lsls r4, r7, #0x10 - asrs r4, r4, #0x10 - adds r0, r4, #0 - movs r1, #0x78 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0x29 - subs r0, r0, r1 - add r5, sp, #0x18 @ r5 = sp18 = arr - strb r0, [r5] - adds r0, r4, #0 - movs r1, #0x78 - bl __modsi3 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0x50 - ble _0805681C - adds r0, r1, #0 - subs r0, #0x50 - mov r4, sp - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x74 - muls r0, r1, r0 - movs r1, #0x12 - bl __divsi3 - adds r0, #0x74 - strh r0, [r4, #0xa] - ldrb r0, [r5] - cmp r0, #0x1f - bls _0805689E - mov r0, sp - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - strh r1, [r0, #2] - mov r3, r8 - strh r3, [r0, #4] - mov r3, sp - ldr r2, _08056818 @ =gOamMatrixIndex - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r3, #6] - adds r0, r5, #0 - mov r1, sp - bl sub_8052C84 - b _0805689E - .align 2, 0 -_08056814: .4byte gCurTask -_08056818: .4byte gOamMatrixIndex -_0805681C: - cmp r1, #0x14 - ble _08056864 - subs r1, #0x14 - mov r2, sp - lsls r1, r1, #0x10 - asrs r1, r1, #0xe - ldr r3, _0805685C @ =0x000001F1 - adds r0, r3, #0 - subs r0, r0, r1 - strh r0, [r2] - mov r1, sp - strh r0, [r1, #2] - mov r0, sp - mov r1, r8 - strh r1, [r0, #4] - mov r3, sp - ldr r2, _08056860 @ =gOamMatrixIndex - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r3, #6] - mov r1, sp - movs r0, #0x68 - strh r0, [r1, #0xa] - movs r0, #0x53 - strh r0, [r1, #0xc] - adds r0, r5, #0 - bl sub_8052C84 - b _0805689E - .align 2, 0 -_0805685C: .4byte 0x000001F1 -_08056860: .4byte gOamMatrixIndex -_08056864: - mov r4, sp - movs r0, #0x74 - muls r0, r1, r0 - movs r1, #0x14 - bl __divsi3 - strh r0, [r4, #0xa] - ldrb r0, [r5] - cmp r0, #0x1f - bls _0805689E - mov r0, sp - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - strh r1, [r0, #2] - mov r3, r8 - strh r3, [r0, #4] - mov r3, sp - ldr r2, _08056918 @ =gOamMatrixIndex - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - strh r0, [r3, #6] - adds r0, r5, #0 - mov r1, sp - bl sub_8052C84 -_0805689E: - lsls r0, r7, #0x10 @ r0 = unk24 << 16 - asrs r2, r0, #0x10 - ldr r0, _0805691C @ =0x000004AF - cmp r2, r0 - ble _080568B0 - ldr r0, _08056920 @ =gCurTask - ldr r1, [r0] - ldr r0, _08056924 @ =Task_DestroyGameOverD - str r0, [r1, #8] -_080568B0: - ldr r5, _08056928 @ =gPressedKeys - ldrh r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080568F8 - adds r0, r2, #0 - movs r1, #0x78 - bl Div - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - asrs r2, r0, #0x10 @ r2_s16 = (unk24 / 120) + 1; - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #0x13 - lsrs r7, r1, #0x10 @ r7 = unk24 = r2_s16 * 45; - ldr r4, [r6, #0x1c] @ r4 = overB = overD->unk1C - movs r3, #0x96 - lsls r3, r3, #3 @ r3 = 1200 - adds r0, r2, #0 - movs r1, #0xa - subs r1, r1, r0 - lsls r2, r1, #4 - subs r2, r2, r1 - lsls r2, r2, #3 - subs r3, r3, r2 - str r3, [r4, #0x18] - ldr r1, [r6, #0x20] @ r1 = (GameOverC*)overD->unk20 - ldr r0, _0805692C @ =0x00000566 - subs r0, r0, r2 - str r0, [r1, #0x18] - ldr r1, [r6, #0x18] - str r0, [r1, #0x78] -_080568F8: - ldrh r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08056934 - ldr r0, _08056920 @ =gCurTask - ldr r1, [r0] - ldr r0, _08056930 @ =Task_8056970 - str r0, [r1, #8] - movs r0, #0 - str r0, [r6, #0x24] - ldr r1, [r6, #0x18] - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - b _08056940 - .align 2, 0 -_08056918: .4byte gOamMatrixIndex -_0805691C: .4byte 0x000004AF -_08056920: .4byte gCurTask -_08056924: .4byte Task_DestroyGameOverD -_08056928: .4byte gPressedKeys -_0805692C: .4byte 0x00000566 -_08056930: .4byte Task_8056970 -_08056934: - lsls r0, r7, #0x10 - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r0, r3 - asrs r0, r0, #0x10 - str r0, [r6, #0x24] -_08056940: - ldr r0, [r6, #0x24] - movs r1, #0x78 - bl Mod - cmp r0, #0x3c - bne _08056960 - ldr r4, _0805696C @ =gUnknown_086883E4 - ldr r0, [r6, #0x24] - movs r1, #0x78 - bl Div - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl m4aSongNumStart -_08056960: - add sp, #0x1c - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805696C: .4byte gUnknown_086883E4 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc deleted file mode 100644 index 28087e6f86..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/BreakableWall__Task_BreakableWall2.inc +++ /dev/null @@ -1,348 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r4, _08027E18 @ =gCurTask - ldr r0, [r4] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = wall - adds r0, #0xc - adds r7, r1, r0 @ r7 = s - ldr r1, [r6] - str r1, [sp] - ldrb r2, [r6, #8] - lsls r2, r2, #3 - ldrh r0, [r6, #4] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldX = TO_WORLD_POS(wall->base.meX, wall->base.regionX); - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r6, #6] - lsls r0, r0, #8 - adds r1, r1, r0 @ r1 = worldY = TO_WORLD_POS(me->y, wall->base.regionY); - ldr r3, _08027E1C @ =gCamera - ldrh r0, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] @ sp0C = - ldrh r0, [r3] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r0, r2, r0 - strh r0, [r7, #0x16] - ldrh r0, [r3, #2] - subs r1, r1, r0 - strh r1, [r7, #0x18] - ldrh r0, [r6, #0x3c] - adds r0, #1 - strh r0, [r6, #0x3c] - movs r0, #0 - ldrsh r1, [r3, r0] - movs r3, #0xb8 - lsls r3, r3, #1 - adds r0, r1, r3 - cmp r2, r0 - bgt _08027DFA - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - bge _08027E20 -_08027DFA: - ldrh r0, [r7, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bls _08027E20 - ldrb r0, [r6, #8] - ldr r1, [sp] - strb r0, [r1] - ldr r0, [r4] - bl TaskDestroy - b _08028002_return - .align 2, 0 -_08027E18: .4byte gCurTask -_08027E1C: .4byte gCamera -_08027E20: - ldr r0, _08027E68 @ =gRefSpriteTables - ldr r1, [r0] - ldrh r0, [r7, #0xa] - ldr r1, [r1, #8] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] @ r2 = oamData - ldr r0, [r7, #0xc] @ r0 = s->dimensions->oamIndex - ldrb r1, [r0, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r2, r2, r0 - str r2, [sp, #8] @ sp08 = &oamDataEntry - movs r2, #0 - str r2, [sp, #4] @ sp04 = i -_08027E40_outer_loop: - movs r3, #0 - mov sl, r3 @ sl = j - ldr r4, [sp, #4] - lsls r4, r4, #2 - str r4, [sp, #0x10] @ sp10 = i * 4 -_08027E4A_inner_loop: - ldr r1, [r7, #0x10] @ r1 = s->frameFlags - adds r0, r1, #0 - movs r2, #0x80 - lsls r2, r2, #3 - ands r0, r2 - adds r2, r1, #0 @ r2 = r1 = s->frameFlags - cmp r0, #0 - beq _08027E6C - movs r0, #3 - mov r3, sl - subs r0, r0, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - b _08027E6E - .align 2, 0 -_08027E68: .4byte gRefSpriteTables -_08027E6C: - mov sb, sl -_08027E6E: - movs r4, #0x3e - ldrsh r0, [r6, r4] - ldrh r3, [r6, #0x3e] - cmp r0, #0 - blt _08027E7C - mov r1, sl - b _08027E86 -_08027E7C: - movs r0, #3 - mov r1, sl - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 -_08027E86: - ldr r0, [sp, #0x10] @ r0 = sp10 = i * 4 - add r0, sb - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 @ r8 = i * 4 + sb; - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldrh r1, [r6, #0x3c] - subs r1, r1, r0 @ temp = wall->qUnk3C - r1 * 10; - movs r0, #7 - ldr r4, [sp, #4] - subs r0, r0, r4 - lsls r0, r0, #1 - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - ble _08027F38 - movs r0, #0x2a - muls r0, r1, r0 - ldr r4, _08027EEC @ =0xFFFFFE00 - adds r0, r0, r4 - muls r0, r1, r0 - lsls r0, r0, #8 - lsrs r5, r0, #0x10 @ r5 = I(temp * ((temp * 42) - Q(2))); - lsls r0, r3, #0x10 - movs r4, #0x3e - ldrsh r0, [r6, r4] - muls r0, r1, r0 - lsls r0, r0, #8 - lsrs r4, r0, #0x10 @ r4 = temp2 - lsls r0, r5, #0x10 - mov ip, r0 - ldr r1, [sp, #0xc] - lsls r0, r1, #0x10 - cmp ip, r0 - ble _08027F3C - lsls r0, r3, #0x10 - cmp r0, #0 - blt _08027EF8 - movs r3, #0x80 - lsls r3, r3, #3 - ands r2, r3 - cmp r2, #0 - beq _08027EF0 - mov r4, r8 @ r4 = r8 = - cmp r4, #3 - beq _08027EEA - b _08027FE2 -_08027EEA: - b _08027F08 - .align 2, 0 -_08027EEC: .4byte 0xFFFFFE00 -_08027EF0: - mov r3, r8 - cmp r3, #0 - bne _08027FE2 - b _08027F22 -_08027EF8: - movs r3, #0x80 - lsls r3, r3, #3 - ands r2, r3 - cmp r2, #0 - beq _08027F1C - mov r4, r8 - cmp r4, #0 - bne _08027FE2 -_08027F08: - ldrb r0, [r6, #8] - ldr r1, [sp] - strb r0, [r1] - ldr r2, _08027F18 @ =gCurTask - ldr r0, [r2] - bl TaskDestroy - b _08028002_return - .align 2, 0 -_08027F18: .4byte gCurTask -_08027F1C: - mov r3, r8 - cmp r3, #3 - bne _08027FE2 -_08027F22: - ldrb r0, [r6, #8] - ldr r4, [sp] - strb r0, [r4] - ldr r1, _08027F34 @ =gCurTask - ldr r0, [r1] - bl TaskDestroy - b _08028002_return - .align 2, 0 -_08027F34: .4byte gCurTask -_08027F38: - movs r4, #0 - movs r5, #0 -_08027F3C: - ldrh r0, [r7, #0x1a] - movs r2, #0xf8 - lsls r2, r2, #3 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #6 - bl OamMalloc - adds r3, r0, #0 - ldr r0, _08027F98 @ =iwram_end - ldr r0, [r0] - cmp r0, r3 - beq _08028002_return - ldr r0, [sp, #4] @ r0 = i - lsls r1, r0, #3 - ldrh r2, [r7, #0x18] - adds r1, r1, r2 - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - movs r1, #0 - strh r0, [r3] - ldr r0, [r7, #0x10] - movs r2, #0x80 - lsls r2, r2, #3 - ands r0, r2 - cmp r0, #0 - beq _08027FA0 - mov r1, sb @ r1 = sb = - lsls r0, r1, #3 - ldrh r1, [r7, #0x16] - subs r1, r1, r0 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - subs r0, #8 - adds r1, r1, r0 - ldr r2, _08027F9C @ =0x000001FF - adds r0, r2, #0 - ands r1, r0 - movs r4, #0x80 - lsls r4, r4, #5 - adds r0, r4, #0 - orrs r1, r0 - b _08027FB4 - .align 2, 0 -_08027F98: .4byte iwram_end -_08027F9C: .4byte 0x000001FF -_08027FA0: - mov r1, sb - lsls r0, r1, #3 - ldrh r2, [r7, #0x16] - adds r0, r0, r2 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - adds r1, r1, r0 - ldr r4, _08028014 @ =0x000001FF - adds r0, r4, #0 - ands r1, r0 -_08027FB4: - strh r1, [r3, #2] - adds r0, r7, #0 - adds r0, #0x25 - ldrb r0, [r0] - ldr r1, [sp, #8] - ldrh r2, [r1, #4] - adds r2, r2, r0 - ldr r4, _08028018 @ =0xFFFFF000 - adds r0, r4, #0 - ands r2, r0 - ldr r0, [r7, #0x10] - movs r1, #0xc0 - lsls r1, r1, #6 - ands r0, r1 - lsrs r0, r0, #2 - orrs r2, r0 - ldr r0, [r7, #4] - ldr r1, _0802801C @ =0xF9FF0000 - adds r0, r0, r1 - lsrs r0, r0, #5 - add r0, r8 - orrs r2, r0 - strh r2, [r3, #4] -_08027FE2: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #3 - bhi _08027FF2 - b _08027E4A_inner_loop -_08027FF2: - ldr r0, [sp, #4] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - cmp r0, #7 - bhi _08028002_return - b _08027E40_outer_loop -_08028002_return: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08028014: .4byte 0x000001FF -_08028018: .4byte 0xFFFFF000 -_0802801C: .4byte 0xF9FF0000 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc deleted file mode 100644 index 317a2dc0df..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SecurityGate.inc +++ /dev/null @@ -1,112 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - mov r8, r0 @ r8 = me - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 @ r4 = regionX - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 @ r5 = regionY - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 @ r6 = id - ldr r0, _080883F4 @ =Task_SecurityGateMain - movs r2, #0x80 - lsls r2, r2, #6 - ldr r1, _080883F8 @ =TaskDestructor_SecurityGateMain - str r1, [sp] - movs r1, #0x40 - movs r3, #0 - bl TaskCreate - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r2, r1, r0 @ r2 = gate - adds r0, #0xc - adds r7, r1, r0 @ r7 = s - movs r3, #0 - strh r4, [r2, #4] - strh r5, [r2, #6] - mov r4, r8 - str r4, [r2] - ldrb r0, [r4] - strb r0, [r2, #8] - strb r6, [r2, #9] - ldr r4, _080883FC @ =0x0300003C - adds r0, r1, r4 - strb r3, [r0] - ldr r0, _08088400 @ =0x0300003D - adds r1, r1, r0 - strb r3, [r1] - mov r1, r8 - movs r0, #3 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08088404 - ldrb r0, [r1, #5] - lsls r0, r0, #3 - subs r0, #0xa - b _08088406 - .align 2, 0 -_080883F4: .4byte Task_SecurityGateMain -_080883F8: .4byte TaskDestructor_SecurityGateMain -_080883FC: .4byte 0x0300003C -_08088400: .4byte 0x0300003D -_08088404: - ldr r0, _08088460 @ =0x0000FFF6 -_08088406: - strh r0, [r2, #0x3e] - movs r4, #2 - rsbs r4, r4, #0 - adds r0, r4, #0 - mov r1, r8 - strb r0, [r1] - movs r0, #0xc - bl VramMalloc - str r0, [r7, #4] - movs r2, #0 - movs r1, #0 - ldr r0, _08088464 @ =0x00000216 - strh r0, [r7, #0xa] - adds r0, r7, #0 - adds r0, #0x20 - strb r2, [r0] - movs r0, #0x90 - lsls r0, r0, #3 - strh r0, [r7, #0x1a] - strh r1, [r7, #8] - strh r1, [r7, #0x14] - strh r1, [r7, #0x1c] - adds r1, r7, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r1, #1 - movs r0, #0x10 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x25 - strb r2, [r0] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7, #0x28] - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r7, #0x10] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08088460: .4byte 0x0000FFF6 -_08088464: .4byte 0x00000216 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc deleted file mode 100644 index 9bcf5ce725..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/CreateEntity_SegaSonicLetter.inc +++ /dev/null @@ -1,161 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov r8, r0 @ r8 = me - adds r6, r1, #0 - mov sb, r2 - mov sl, r3 - lsls r6, r6, #0x10 - lsrs r6, r6, #0x10 @ r1 = regionX - mov r0, sb - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 @ sb = regionY - mov r1, sl - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - mov sl, r1 @ sl = id - ldr r1, _0807EBAC @ =gUnknown_086CED90 - add r0, sp, #4 - movs r2, #6 - bl memcpy - ldr r0, _0807EBB0 @ =Task_SegaSonicLetter - ldr r1, _0807EBB4 @ =TaskDestructor_SegaSonicLetter - str r1, [sp] - movs r1, #0x44 - movs r2, #0x80 - lsls r2, r2, #6 - movs r3, #0 - bl TaskCreate - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r4, r0 - ldr r2, _0807EBB8 @ =0x0300000C - adds r5, r4, r2 @ r5 = s - movs r7, #0 - strh r6, [r0, #4] - mov r3, sb - strh r3, [r0, #6] - mov r1, r8 - str r1, [r0] - ldrb r1, [r1] - strb r1, [r0, #8] - mov r2, sl - strb r2, [r0, #9] - mov r3, r8 @ r3 = r8 = me - ldrb r0, [r3, #3] - ldr r1, _0807EBBC @ =0x0300003C - adds r1, r1, r4 - mov sl, r1 @ sl = s->meDat0 - strb r0, [r1] - ldr r2, _0807EBC0 @ =0x0300003D - adds r0, r4, r2 - movs r3, #0 - strb r3, [r0] - mov r0, r8 - ldrb r2, [r0, #4] - movs r0, #3 - adds r1, r0, #0 - ands r1, r2 - ldr r3, _0807EBC4 @ =0x0300003E - adds r2, r4, r3 - strb r1, [r2] @ letter->meDat1 = me->d.uData[1] % 4u; - mov r2, r8 @ r2 = r8 = me - ldrb r1, [r2, #4] - ands r0, r1 - lsls r0, r0, #1 - add r0, sp - adds r0, #4 - ldrh r0, [r0] - subs r0, #0xa1 - asrs r0, r0, #1 - adds r3, #1 - adds r1, r4, r3 - strb r0, [r1] - ldrb r1, [r2, #5] - ldr r2, _0807EBC8 @ =0x03000040 - adds r0, r4, r2 - strb r1, [r0] - mov r3, r8 @ r3 = r8 = me - ldrb r0, [r3] - lsls r0, r0, #3 - lsls r6, r6, #8 - adds r0, r0, r6 - strh r0, [r5, #0x16] - ldrb r0, [r3, #1] - lsls r0, r0, #3 - mov r1, sb - lsls r1, r1, #8 - mov sb, r1 - add r0, sb - strh r0, [r5, #0x18] - movs r0, #0xfe - strb r0, [r3] - movs r0, #0x10 - bl VramMalloc - str r0, [r5, #4] - movs r0, #0x90 - lsls r0, r0, #3 - strh r0, [r5, #0x1a] - strh r7, [r5, #8] - movs r0, #0xf6 - lsls r0, r0, #1 - strh r0, [r5, #0xa] - mov r2, sl - ldrb r0, [r2] - lsls r0, r0, #2 - ldr r3, _0807EBCC @ =0x0300002C - adds r1, r4, r3 - strb r0, [r1] - strh r7, [r5, #0x14] - strh r7, [r5, #0x1c] - ldr r0, _0807EBD0 @ =0x0300002D - adds r1, r4, r0 - movs r0, #0xff - strb r0, [r1] - ldr r2, _0807EBD4 @ =0x0300002E - adds r1, r4, r2 - movs r0, #0x10 - strb r0, [r1] - adds r3, #5 - adds r4, r4, r3 - movs r0, #0 - strb r0, [r4] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r5, #0x28] - movs r1, #0x80 - lsls r1, r1, #6 - str r1, [r5, #0x10] - adds r0, r5, #0 - bl UpdateSpriteAnimation - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807EBAC: .4byte gUnknown_086CED90 -_0807EBB0: .4byte Task_SegaSonicLetter -_0807EBB4: .4byte TaskDestructor_SegaSonicLetter -_0807EBB8: .4byte 0x0300000C -_0807EBBC: .4byte 0x0300003C -_0807EBC0: .4byte 0x0300003D -_0807EBC4: .4byte 0x0300003E -_0807EBC8: .4byte 0x03000040 -_0807EBCC: .4byte 0x0300002C -_0807EBD0: .4byte 0x0300002D -_0807EBD4: .4byte 0x0300002E - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc deleted file mode 100644 index 40d86ff72a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/Spring__sub_8022640.inc +++ /dev/null @@ -1,236 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 @ r8 = s - adds r7, r1, #0 @ r7 = me - adds r4, r3, #0 @ r4 = p - movs r0, #0 @ r2 = spring - mov sb, r0 @ sb = sb = r0 = 0 - movs r6, #0 - ldrb r3, [r2, #8] - lsls r3, r3, #3 - ldrh r0, [r2, #4] - lsls r0, r0, #8 - adds r3, r3, r0 - lsls r3, r3, #0x10 @ r3 = worldX - ldrb r1, [r7, #1] - lsls r1, r1, #3 - ldrh r0, [r2, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r2, _08022764 @ =gCamera - ldrh r0, [r2] - lsrs r5, r3, #0x10 - mov sl, r5 @ sl = worldX - asrs r3, r3, #0x10 - subs r3, r3, r0 - mov r0, r8 - strh r3, [r0, #0x16] - ldrh r0, [r2, #2] - lsrs r2, r1, #0x10 - mov ip, r2 @ ip = worldY - asrs r1, r1, #0x10 - subs r1, r1, r0 - mov r5, r8 @ r5 = r8 = s - strh r1, [r5, #0x18] - ldr r0, _08022768 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _0802269A - ldr r3, [r4, #0x10] - cmp r0, #5 - bne _080226E2 -_0802269A: - movs r2, #0 - ldr r1, _0802276C @ =gMultiplayerPlayerTasks - ldr r0, [r1] - ldr r3, [r4, #0x10] - cmp r0, #0 - beq _080226E2 - adds r5, r1, #0 -_080226A8: - ldr r0, _08022770 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r2, r0 - beq _080226CE @ if(i != SIO_MULTI_CNT->id) - lsls r0, r2, #2 - adds r0, r0, r5 - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - ldr r0, [r0, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _080226CE - movs r6, #1 -_080226CE: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bhi _080226E2 - lsls r0, r2, #2 - adds r0, r0, r5 - ldr r0, [r0] - cmp r0, #0 - bne _080226A8 -_080226E2: - movs r0, #0x80 - lsls r0, r0, #0xf - ands r3, r0 - cmp r3, #0 - beq _080226F2 - cmp r6, #0 - bne _080226F2 - b _080227F2 -_080226F2: - mov r1, sl - lsls r0, r1, #0x10 - asrs r6, r0, #0x10 - mov r2, ip @ r2 = ip = worldY - lsls r0, r2, #0x10 - asrs r5, r0, #0x10 - mov r0, r8 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl Coll_Player_Platform - movs r1, #8 - ands r1, r0 - cmp r1, #0 - bne _08022724 - mov r0, r8 - adds r1, r6, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl Coll_AmyHammer_Spring - mov sb, r0 - cmp r0, #0 - beq _080227F2 -_08022724: - ldr r0, _08022768 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _08022730 - cmp r0, #5 - bne _08022734 -_08022730: - movs r0, #2 - strh r0, [r4, #0x1c] -_08022734: - adds r0, r4, #0 - bl sa2__sub_8021BE0 - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - ldr r1, _08022774 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] - ldrb r2, [r7, #3] - movs r0, #3 - ldrsb r0, [r7, r0] - cmp r0, #3 - ble _08022778 - ldrb r0, [r7, #4] - lsls r0, r0, #4 - b _08022784 - .align 2, 0 -_08022764: .4byte gCamera -_08022768: .4byte gGameMode -_0802276C: .4byte gMultiplayerPlayerTasks -_08022770: .4byte 0x04000128 -_08022774: .4byte 0xFFFFFEFF -_08022778: - ldr r0, _080227B0 @ =sData0Accel - movs r1, #3 - ands r1, r2 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] -_08022784: - rsbs r0, r0, #0 - strh r0, [r4, #0xa] - mov r5, sb - cmp r5, #0 - beq _08022798 - ldrh r1, [r4, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x11 - adds r0, r0, r1 - strh r0, [r4, #0xa] -_08022798: - ldrb r1, [r7, #3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080227B4 - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x15 - b _080227C0 - .align 2, 0 -_080227B0: .4byte sData0Accel -_080227B4: - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x11 -_080227C0: - strb r0, [r1] - ldr r0, [r4, #0x64] - adds r0, #0x2d - movs r1, #0xff - strb r1, [r0] - mov r1, r8 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0xaa - bl m4aSongNumStart - movs r0, #1 - b _080227F4 -_080227F2: - movs r0, #0 -_080227F4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc deleted file mode 100644 index bc0cec7cb2..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_InclineRamp.inc +++ /dev/null @@ -1,606 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _08075690 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 @ r0 = ramp - ldr r0, [r0] - str r0, [sp] @ sp00 = me - ldr r2, _08075694 @ =0x03000008 - adds r0, r1, r2 - ldrb r0, [r0] - str r0, [sp, #4] @ sp04 = meX - ldr r3, _08075698 @ =0x03000004 - adds r0, r1, r3 - ldrh r2, [r0] @ r2 = regionX - adds r3, #2 - adds r0, r1, r3 - ldrh r3, [r0] @ r3 = regionY - ldr r0, _0807569C @ =0x03000009 - adds r1, r1, r0 - ldrb r1, [r1] - str r1, [sp, #8] @ sp08 = incline - ldr r1, [sp, #4] @ sp04 = meX - lsls r0, r1, #3 - lsls r2, r2, #8 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 @ sl = worldX - ldr r2, [sp] - ldrb r0, [r2, #1] - lsls r0, r0, #3 - lsls r3, r3, #8 - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 @ r8 = worldY - movs r4, #0 - ldr r5, _080756A0 @ =gPartner - ldr r6, _080756A4 @ =gPlayer -_08075678_loop: - cmp r4, #0 - beq _080756A8 - ldr r1, [r5, #0x10] - movs r0, #0x80 - ands r1, r0 - mov r3, sl - lsls r3, r3, #0x10 - mov sb, r3 @ sb = worldX << 16 - mov r0, r8 - lsls r7, r0, #0x10 @ r7 = worldY << 16 - b _080756B8 - .align 2, 0 -_08075690: .4byte gCurTask -_08075694: .4byte 0x03000008 -_08075698: .4byte 0x03000004 -_0807569C: .4byte 0x03000009 -_080756A0: .4byte gPartner -_080756A4: .4byte gPlayer -_080756A8: - ldr r1, [r6, #0x10] - movs r0, #0x80 - ands r1, r0 - mov r2, sl - lsls r2, r2, #0x10 - mov sb, r2 - mov r3, r8 - lsls r7, r3, #0x10 -_080756B8: - cmp r1, #0 - beq _080756BE - b _08075A08_continue -_080756BE: - mov r1, sl - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 @ r1 = sl = worldX - mov sb, r0 - cmp r4, #0 - beq _080756D8 - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - ble _080756E6 - mov r2, r8 @ r2 = r8 = worldY - lsls r7, r2, #0x10 - b _08075A08_continue -_080756D8: - ldr r0, [r6] - asrs r0, r0, #8 - mov r3, r8 - lsls r7, r3, #0x10 - cmp r1, r0 - ble _080756E6 - b _08075A08_continue -_080756E6: - mov r0, sb @ r0 = sb = worldX << 16 - asrs r1, r0, #0x10 - ldr r2, [sp] @ r2 = sp00 = me - ldrb r0, [r2, #5] - lsls r0, r0, #3 - adds r1, r1, r0 - cmp r4, #0 - beq _08075704 - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - bge _08075712 - mov r3, r8 - lsls r7, r3, #0x10 - b _08075A08_continue -_08075704: - ldr r0, [r6] - asrs r0, r0, #8 - mov r2, r8 - lsls r7, r2, #0x10 - cmp r1, r0 - bge _08075712 - b _08075A08_continue -_08075712: - mov r3, r8 - lsls r0, r3, #0x10 - asrs r1, r0, #0x10 - adds r7, r0, #0 - cmp r4, #0 - beq _08075728 - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _08075732 - b _08075A08_continue -_08075728: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _08075732 - b _08075A08_continue -_08075732: - asrs r1, r7, #0x10 - ldr r2, [sp] - ldrb r0, [r2, #6] - lsls r0, r0, #3 - adds r1, r1, r0 - cmp r4, #0 - beq _0807574A - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08075754 - b _08075A08_continue -_0807574A: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08075754 - b _08075A08_continue -_08075754: - ldr r3, [sp, #8] @ r3 = sp08 = incline - cmp r3, #0 - bne _0807575C - b _080758AC -_0807575C: - cmp r4, #0 - beq _0807576E - movs r0, #8 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bgt _0807577C - b _08075A08_continue -_0807576E: - movs r2, #8 - ldrsh r1, [r6, r2] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bgt _0807577C - b _08075A08_continue -_0807577C: - cmp r4, #0 - beq _0807578C - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _08075796 -_0807578C: - ldr r0, [r6, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08075796: - cmp r4, #0 - beq _080757A4 - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] - b _080757AC -_080757A4: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_080757AC: - cmp r4, #0 - beq _080757C0 - ldr r0, [r5, #0x10] - ldr r1, _080757BC @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] - b _080757C8 - .align 2, 0 -_080757BC: .4byte 0xFFFFFEFF -_080757C0: - ldr r0, [r6, #0x10] - ldr r1, _080757D8 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r6, #0x10] -_080757C8: - cmp r4, #0 - beq _080757DC - ldr r0, [r5, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _080757E6 - .align 2, 0 -_080757D8: .4byte 0xFFFFFEFF -_080757DC: - ldr r0, [r6, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_080757E6: - ldr r0, _0807581C @ =gPlayer - cmp r4, #0 - beq _080757EE - ldr r0, _08075820 @ =gPartner -_080757EE: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _0807581C @ =gPlayer - cmp r4, #0 - beq _080757FC - ldr r1, _08075820 @ =gPartner -_080757FC: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r2, _0807581C @ =gPlayer - adds r1, r2, #0 - cmp r4, #0 - beq _0807580A - ldr r1, _08075820 @ =gPartner -_0807580A: - movs r0, #0xe - strb r0, [r1, #0xf] - cmp r4, #0 - beq _08075824 - movs r0, #0xf8 - lsls r0, r0, #8 - strh r0, [r5, #0xa] - b _0807582A - .align 2, 0 -_0807581C: .4byte gPlayer -_08075820: .4byte gPartner -_08075824: - movs r0, #0xf8 - lsls r0, r0, #8 - strh r0, [r2, #0xa] -_0807582A: - cmp r4, #0 - beq _0807583C - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - ldrh r1, [r5, #8] - adds r0, r0, r1 - strh r0, [r5, #8] - b _08075848 -_0807583C: - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - ldrh r1, [r6, #8] - adds r0, r0, r1 - strh r0, [r6, #8] -_08075848: - cmp r4, #0 - beq _0807585A - movs r3, #8 - ldrsh r1, [r5, r3] - movs r0, #0x88 - lsls r0, r0, #5 - cmp r1, r0 - bgt _08075866 - b _08075878 -_0807585A: - movs r0, #8 - ldrsh r1, [r2, r0] - movs r0, #0x88 - lsls r0, r0, #5 - cmp r1, r0 - ble _08075878 -_08075866: - cmp r4, #0 - beq _08075872 - movs r0, #0x88 - lsls r0, r0, #5 - strh r0, [r5, #8] - b _08075878 -_08075872: - movs r0, #0x88 - lsls r0, r0, #5 - strh r0, [r2, #8] -_08075878: - adds r0, r2, #0 - cmp r4, #0 - beq _08075880 - ldr r0, _08075890 @ =gPartner -_08075880: - bl Player_TransitionCancelFlyingAndBoost - cmp r4, #0 - beq _08075898 - movs r0, #0x11 - ldr r1, _08075894 @ =gPartner + 0x40 - strb r0, [r1] - b _0807589E - .align 2, 0 -_08075890: .4byte gPartner -_08075894: .4byte gPartner + 0x40 -_08075898: - movs r0, #0x11 - ldr r2, _080758A8 @ =gPlayer + 0x40 - strb r0, [r2] -_0807589E: - movs r0, #0xaa - bl m4aSongNumStart - b _08075A08_continue - .align 2, 0 -_080758A8: .4byte gPlayer + 0x40 -_080758AC: - cmp r4, #0 - beq _080758C0 - movs r3, #8 - ldrsh r1, [r5, r3] - ldr r0, _080758BC @ =0xFFFFFC00 - cmp r1, r0 - blt _080758CC - b _08075A08_continue - .align 2, 0 -_080758BC: .4byte 0xFFFFFC00 -_080758C0: - movs r0, #8 - ldrsh r1, [r6, r0] - ldr r0, _080758DC @ =0xFFFFFC00 - cmp r1, r0 - blt _080758CC - b _08075A08_continue -_080758CC: - cmp r4, #0 - beq _080758E0 - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _080758EA - .align 2, 0 -_080758DC: .4byte 0xFFFFFC00 -_080758E0: - ldr r0, [r6, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_080758EA: - cmp r4, #0 - beq _080758F8 - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] - b _08075900 -_080758F8: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_08075900: - cmp r4, #0 - beq _08075914 - ldr r0, [r5, #0x10] - ldr r1, _08075910 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] - b _0807591C - .align 2, 0 -_08075910: .4byte 0xFFFFFEFF -_08075914: - ldr r0, [r6, #0x10] - ldr r1, _0807592C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r6, #0x10] -_0807591C: - cmp r4, #0 - beq _08075930 - ldr r0, [r5, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _0807593A - .align 2, 0 -_0807592C: .4byte 0xFFFFFEFF -_08075930: - ldr r0, [r6, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_0807593A: - ldr r0, _08075970 @ =gPlayer - cmp r4, #0 - beq _08075942 - ldr r0, _08075974 @ =gPartner -_08075942: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08075970 @ =gPlayer - cmp r4, #0 - beq _08075950 - ldr r1, _08075974 @ =gPartner -_08075950: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r2, _08075970 @ =gPlayer - adds r1, r2, #0 - cmp r4, #0 - beq _0807595E - ldr r1, _08075974 @ =gPartner -_0807595E: - movs r0, #0xe - strb r0, [r1, #0xf] - cmp r4, #0 - beq _08075978 - movs r0, #0xf8 - lsls r0, r0, #8 - strh r0, [r5, #0xa] - b _0807597E - .align 2, 0 -_08075970: .4byte gPlayer -_08075974: .4byte gPartner -_08075978: - movs r0, #0xf8 - lsls r0, r0, #8 - strh r0, [r2, #0xa] -_0807597E: - cmp r4, #0 - beq _08075994 - ldr r1, _08075990 @ =0xFFFFFC00 - adds r0, r1, #0 - ldrh r3, [r5, #8] - adds r0, r0, r3 - strh r0, [r5, #8] - b _0807599E - .align 2, 0 -_08075990: .4byte 0xFFFFFC00 -_08075994: - ldr r1, _080759B0 @ =0xFFFFFC00 - adds r0, r1, #0 - ldrh r3, [r6, #8] - adds r0, r0, r3 - strh r0, [r6, #8] -_0807599E: - cmp r4, #0 - beq _080759B8 - movs r0, #8 - ldrsh r1, [r5, r0] - ldr r0, _080759B4 @ =0xFFFFEF00 - cmp r1, r0 - blt _080759C2 - b _080759DA - .align 2, 0 -_080759B0: .4byte 0xFFFFFC00 -_080759B4: .4byte 0xFFFFEF00 -_080759B8: - movs r3, #8 - ldrsh r1, [r2, r3] - ldr r0, _080759D0 @ =0xFFFFEF00 - cmp r1, r0 - bge _080759DA -_080759C2: - cmp r4, #0 - beq _080759D4 - movs r0, #0xef - lsls r0, r0, #8 - strh r0, [r5, #8] - b _080759DA - .align 2, 0 -_080759D0: .4byte 0xFFFFEF00 -_080759D4: - movs r0, #0xef - lsls r0, r0, #8 - strh r0, [r2, #8] -_080759DA: - adds r0, r2, #0 - cmp r4, #0 - beq _080759E2 - ldr r0, _080759F4 @ =gPartner -_080759E2: - bl Player_TransitionCancelFlyingAndBoost - cmp r4, #0 - beq _080759FC - movs r0, #0x11 - ldr r1, _080759F8 @ =gPartner + 0x40 - strb r0, [r1] - b _08075A02 - .align 2, 0 -_080759F4: .4byte gPartner -_080759F8: .4byte gPartner + 0x40 -_080759FC: - movs r0, #0x11 - ldr r2, _08075A74 @ =gPlayer + 0x40 - strb r0, [r2] -_08075A02: - movs r0, #0xaa - bl m4aSongNumStart -_08075A08_continue: - adds r4, #1 - ldr r0, _08075A78 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - bge _08075A18_postloop - b _08075678_loop -_08075A18_postloop: - ldr r2, _08075A7C @ =gCamera - ldrh r0, [r2] - mov r3, sb @ r3 = sb - asrs r1, r3, #0x10 - subs r1, r1, r0 - ldrh r2, [r2, #2] - asrs r0, r7, #0x10 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x10 - adds r1, r1, r0 - movs r0, #0xf8 - lsls r0, r0, #0x11 - cmp r1, r0 - bhi _08075A54 - mov r1, r8 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08075A54 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08075A64 -_08075A54: - mov r2, sp - ldrb r3, [r2, #4] - ldr r2, [sp] - strb r3, [r2] - ldr r0, _08075A80 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08075A64: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08075A74: .4byte gPlayer + 0x40 -_08075A78: .4byte gNumSingleplayerCharacters -_08075A7C: .4byte gCamera -_08075A80: .4byte gCurTask - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc deleted file mode 100644 index c0555d7fa2..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_Interactable034.inc +++ /dev/null @@ -1,152 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0804D7A4 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - movs r0, #0 - mov r8, r0 -_0804D746: - ldr r5, _0804D7A8 @ =gPlayer - mov r1, r8 - cmp r1, #0 - beq _0804D750 - ldr r5, _0804D7AC @ =gPartner -_0804D750: - ldr r0, [r5] - asrs r4, r0, #8 - ldr r0, [r5, #4] - asrs r7, r0, #8 - ldr r3, _0804D7B0 @ =gCamera - movs r0, #0 - ldrsh r2, [r3, r0] - movs r1, #0xb8 - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r1, [r6, #4] - cmp r1, r0 - bgt _0804D78A - adds r0, r2, #0 - subs r0, #0x80 - cmp r1, r0 - blt _0804D78A - movs r0, #2 - ldrsh r2, [r3, r0] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r1, [r6, #8] - cmp r1, r0 - bgt _0804D78A - adds r0, r2, #0 - subs r0, #0x80 - cmp r1, r0 - bge _0804D7B8 -_0804D78A: - ldr r0, [r5, #0x10] - ldr r1, _0804D7B4 @ =0xFFFF7FFF - ands r0, r1 - str r0, [r5, #0x10] - ldr r1, [r6] - ldrb r0, [r6, #0x1d] - strb r0, [r1] - ldr r0, _0804D7A4 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0804D848 - .align 2, 0 -_0804D7A4: .4byte gCurTask -_0804D7A8: .4byte gPlayer -_0804D7AC: .4byte gPartner -_0804D7B0: .4byte gCamera -_0804D7B4: .4byte 0xFFFF7FFF -_0804D7B8: - ldr r0, [r6, #0xc] - cmp r0, r4 - bgt _0804D836 - ldr r0, [r6, #0x10] - cmp r4, r0 - bge _0804D836 - ldr r0, [r6, #0x14] - cmp r0, r7 - bgt _0804D836 - ldr r0, [r6, #0x18] - cmp r7, r0 - bge _0804D836 - ldr r4, [r5, #0x10] - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - bne _0804D848 - adds r0, r5, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r1, [r5, #0x10] - movs r0, #0x81 - lsls r0, r0, #2 - orrs r1, r0 - movs r0, #0x80 - lsls r0, r0, #0xe - orrs r1, r0 - str r1, [r5, #0x10] - strh r4, [r5, #0x38] - strh r4, [r5, #0x3a] - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #5 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #9 - strb r0, [r5, #0xf] - adds r2, r5, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r2, _0804D854 @ =gPlayer - ldr r0, [r2, #0x10] - ldr r1, _0804D858 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r2, #0x10] - adds r0, r5, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - beq _0804D836 - movs r0, #0x6d - bl m4aSongNumStartOrChange -_0804D836: - movs r0, #1 - add r8, r0 - ldr r0, _0804D85C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r8, r0 - bge _0804D848 - b _0804D746 -_0804D848: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D854: .4byte gPlayer -_0804D858: .4byte 0xFFBFFFFF -_0804D85C: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc deleted file mode 100644 index 64a4971a2f..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_PartyBalloon.inc +++ /dev/null @@ -1,384 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r5, _0807EFC4 @ =gCurTask - ldr r0, [r5] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = balloon - adds r0, #0xc - adds r7, r1, r0 @ r7 = s - ldr r1, [r6] - mov sl, r1 @ sl = me - ldrb r1, [r6, #8] - lsls r1, r1, #3 - ldrh r0, [r6, #4] - lsls r0, r0, #8 - adds r1, r1, r0 @ r1 = worldX - mov r0, sl - ldrb r2, [r0, #1] - lsls r2, r2, #3 - ldrh r0, [r6, #6] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldY - ldr r4, _0807EFC8 @ =gCamera - ldrh r3, [r4] - lsls r1, r1, #0x10 - mov r8, r1 - asrs r0, r1, #0x10 - subs r0, r0, r3 - strh r0, [r7, #0x16] - ldrh r3, [r4, #2] - lsls r2, r2, #0x10 - asrs r1, r2, #0x10 - subs r3, r1, r3 - strh r3, [r7, #0x18] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0807EFB6 - movs r1, #0x18 - ldrsh r0, [r7, r1] - adds r0, #0x80 - cmp r0, #0 - blt _0807EFB6 - lsls r1, r3, #0x10 - movs r0, #0x90 - lsls r0, r0, #0x11 - cmp r1, r0 - ble _0807EFCC -_0807EFB6: - ldrb r0, [r6, #8] - mov r1, sl - strb r0, [r1] - ldr r0, [r5] - bl TaskDestroy - b _0807F1F8 - .align 2, 0 -_0807EFC4: .4byte gCurTask -_0807EFC8: .4byte gCamera -_0807EFCC: - movs r4, #0 - mov r0, r8 - str r0, [sp] @ sp00 = worldX << 16 - str r2, [sp, #4] @ sp04 = worldY << 16 - ldr r5, _0807F004 @ =gPartner - ldr r1, _0807F008 @ =gPlayer - mov r8, r1 - movs r0, #1 - mov sb, r0 @ sb = 1 -_0807EFDE_loop: - ldr r0, [sp] - asrs r1, r0, #0x10 @ r1 = worldX - ldr r0, [sp, #4] - asrs r2, r0, #0x10 @ r2 = worldY - ldr r3, _0807F008 @ =gPlayer - cmp r4, #0 - beq _0807EFEE - ldr r3, _0807F004 @ =gPartner -_0807EFEE: - adds r0, r7, #0 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _0807EFFA - b _0807F1A0 -_0807EFFA: - cmp r4, #0 - beq _0807F00C - ldr r0, [r5, #0x10] - b _0807F010 - .align 2, 0 -_0807F004: .4byte gPartner -_0807F008: .4byte gPlayer -_0807F00C: - mov r1, r8 - ldr r0, [r1, #0x10] -_0807F010: - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0807F01C - b _0807F1A0 -_0807F01C: - ldr r0, _0807F038 @ =gPlayer - cmp r4, #0 - beq _0807F024 - ldr r0, _0807F03C @ =gPartner -_0807F024: - bl Player_TransitionCancelFlyingAndBoost - cmp r4, #0 - beq _0807F040 - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _0807F04E - .align 2, 0 -_0807F038: .4byte gPlayer -_0807F03C: .4byte gPartner -_0807F040: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_0807F04E: - cmp r4, #0 - beq _0807F05C - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] - b _0807F068 -_0807F05C: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #2 - orrs r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_0807F068: - cmp r4, #0 - beq _0807F07C - ldr r0, [r5, #0x10] - ldr r1, _0807F078 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] - b _0807F088 - .align 2, 0 -_0807F078: .4byte 0xFFFFFEFF -_0807F07C: - mov r1, r8 - ldr r0, [r1, #0x10] - ldr r1, _0807F098 @ =0xFFFFFEFF - ands r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_0807F088: - cmp r4, #0 - beq _0807F09C - ldr r0, [r5, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _0807F0AA - .align 2, 0 -_0807F098: .4byte 0xFFFFFEFF -_0807F09C: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_0807F0AA: - cmp r4, #0 - beq _0807F0BA - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _0807F0C8 -_0807F0BA: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_0807F0C8: - ldr r0, _0807F0FC @ =gPlayer - cmp r4, #0 - beq _0807F0D0 - ldr r0, _0807F100 @ =gPartner -_0807F0D0: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _0807F0FC @ =gPlayer - cmp r4, #0 - beq _0807F0DE - ldr r1, _0807F100 @ =gPartner -_0807F0DE: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _0807F0FC @ =gPlayer - adds r2, r1, #0 - cmp r4, #0 - beq _0807F0EC - ldr r2, _0807F100 @ =gPartner -_0807F0EC: - movs r0, #0xe - strb r0, [r2, #0xf] - cmp r4, #0 - beq _0807F104 - movs r0, #0xfa - lsls r0, r0, #8 - strh r0, [r5, #0xa] - b _0807F10A - .align 2, 0 -_0807F0FC: .4byte gPlayer -_0807F100: .4byte gPartner -_0807F104: - movs r0, #0xfa - lsls r0, r0, #8 - strh r0, [r1, #0xa] -_0807F10A: - cmp r4, #0 - beq _0807F118 - movs r0, #0x15 - ldr r1, _0807F114 @ =gPartner + 0x40 - b _0807F11C - .align 2, 0 -_0807F114: .4byte gPartner + 0x40 -_0807F118: - adds r1, #0x40 - movs r0, #0x15 -_0807F11C: - strb r0, [r1] - cmp r4, #0 - beq _0807F12C - ldr r0, _0807F128 @ =gPartnerBodyPSI - b _0807F12E - .align 2, 0 -_0807F128: .4byte gPartnerBodyPSI -_0807F12C: - ldr r0, _0807F208 @ =gPlayerBodyPSI -_0807F12E: - adds r0, #0x2d - movs r1, #0xff - strb r1, [r0] - adds r1, r6, #0 - adds r1, #0x40 - movs r0, #0x21 - strb r0, [r1] - adds r1, r7, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x20 - mov r1, sb - strb r1, [r0] - ldr r0, _0807F20C @ =gPlayer - cmp r4, #0 - beq _0807F154 - ldr r0, _0807F210 @ =gPartner -_0807F154: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _0807F20C @ =gPlayer - cmp r4, #0 - beq _0807F162 - ldr r1, _0807F210 @ =gPartner -_0807F162: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _0807F20C @ =gPlayer - cmp r4, #0 - beq _0807F16E - ldr r1, _0807F210 @ =gPartner -_0807F16E: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #0xbd - bl m4aSongNumStart - ldr r0, _0807F214 @ =gCurTask - ldr r1, [r0] - ldr r0, _0807F218 @ =Task_PartyBalloonPopped - str r0, [r1, #8] - ldr r0, _0807F21C @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _0807F1DC - bl CreateRoomEvent - mov r1, sb - strb r1, [r0] - ldrh r1, [r6, #4] - strb r1, [r0, #1] - ldrh r1, [r6, #6] - strb r1, [r0, #2] - ldrb r1, [r6, #9] - strb r1, [r0, #3] - mov r1, sb - strb r1, [r0, #4] -_0807F1A0: - ldr r0, _0807F21C @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _0807F1DC - mov r0, sl - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0807F1DC - adds r1, r6, #0 - adds r1, #0x40 - movs r0, #0x21 - strb r0, [r1] - adds r1, r7, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x20 - mov r1, sb - strb r1, [r0] - movs r0, #0xbd - bl m4aSongNumStart - ldr r0, _0807F214 @ =gCurTask - ldr r1, [r0] - ldr r0, _0807F218 @ =Task_PartyBalloonPopped - str r0, [r1, #8] -_0807F1DC: - adds r4, #1 - ldr r0, _0807F220 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - bge _0807F1EC - b _0807EFDE_loop -_0807F1EC: - adds r0, r7, #0 - bl UpdateSpriteAnimation - adds r0, r7, #0 - bl DisplaySprite -_0807F1F8: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807F208: .4byte gPlayerBodyPSI -_0807F20C: .4byte gPlayer -_0807F210: .4byte gPartner -_0807F214: .4byte gCurTask -_0807F218: .4byte Task_PartyBalloonPopped -_0807F21C: .4byte gGameMode -_0807F220: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc deleted file mode 100644 index 62d1e82e8e..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/Task_SegaSonicLetter.inc +++ /dev/null @@ -1,287 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r1, _0807EC68 @ =gUnknown_086CED90 - mov r0, sp - movs r2, #6 - bl memcpy - ldr r0, _0807EC6C @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r4, r0 @ r5 = letter - adds r0, #0xc - adds r7, r4, r0 @ r7 = s - ldr r1, [r5] - mov sl, r1 @ sl = me - ldrb r2, [r5, #8] - lsls r2, r2, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldX - lsls r2, r2, #0x10 - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r1, r1, r0 @ r1 = worldY - lsls r1, r1, #0x10 - ldr r3, _0807EC70 @ =gCamera - ldrh r0, [r3] - lsrs r6, r2, #0x10 - str r6, [sp, #8] @ sp08 = worldX - asrs r2, r2, #0x10 - mov sb, r2 - subs r0, r2, r0 - strh r0, [r7, #0x16] - ldrh r2, [r3, #2] - lsrs r3, r1, #0x10 - str r3, [sp, #0xc] @ sp0C = worldY - asrs r1, r1, #0x10 - mov r8, r1 - subs r2, r1, r2 - strh r2, [r7, #0x18] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0807EC58 - movs r6, #0x18 - ldrsh r0, [r7, r6] - adds r0, #0x80 - cmp r0, #0 - blt _0807EC58 - lsls r1, r2, #0x10 - movs r0, #0x90 - lsls r0, r0, #0x11 - cmp r1, r0 - ble _0807EC74 -_0807EC58: - ldrb r0, [r5, #8] - mov r1, sl - strb r0, [r1] - ldr r0, _0807EC6C @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0807EE02 - .align 2, 0 -_0807EC68: .4byte gUnknown_086CED90 -_0807EC6C: .4byte gCurTask -_0807EC70: .4byte gCamera -_0807EC74: - movs r2, #0 - mov sl, r2 @ sl = r2 = 0 - ldr r2, _0807ECC0 @ =gStageTime - ldr r3, _0807ECC4 @ =0x03000040 - adds r0, r4, r3 - ldrb r1, [r0] - ldr r0, [r2] - subs r0, r0, r1 @ gStageTime - letter->unk40 - ldr r6, _0807ECC8 @ =0x0300003E - adds r5, r4, r6 - ldrb r1, [r5] - lsls r1, r1, #1 - add r1, sp - ldrh r1, [r1] - bl Mod - adds r1, r0, #0 - cmp r1, #0x39 - bhi _0807ECD4 - movs r0, #1 - mov sl, r0 @ sl = 1 - cmp r1, #0 - beq _0807ECA4 - b _0807EDC6_post_elif -_0807ECA4: - movs r1, #0 - mov sl, r1 - ldr r2, _0807ECCC @ =0x0300002D - adds r1, r4, r2 - movs r0, #0xff - strb r0, [r1] - ldr r3, _0807ECD0 @ =0x0300003C - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, #1 - subs r6, #0x12 - b _0807ED40_set_variant - .align 2, 0 -_0807ECC0: .4byte gStageTime -_0807ECC4: .4byte 0x03000040 -_0807ECC8: .4byte 0x0300003E -_0807ECCC: .4byte 0x0300002D -_0807ECD0: .4byte 0x0300003C -_0807ECD4: - ldr r2, _0807ED04 @ =0x0300003F - adds r0, r4, r2 - ldrb r2, [r0] - adds r3, r2, #0 - adds r3, #0x3a - cmp r1, r3 - bhs _0807ED14 - movs r3, #1 - mov sl, r3 - cmp r1, #0x3a - bne _0807EDC6_post_elif - ldr r6, _0807ED08 @ =0x0300002D - adds r1, r4, r6 - movs r0, #0xff - strb r0, [r1] - ldr r1, _0807ED0C @ =0x0300003C - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, #3 - ldr r2, _0807ED10 @ =0x0300002C - adds r1, r4, r2 - strb r0, [r1] - b _0807EDC6_post_elif - .align 2, 0 -_0807ED04: .4byte 0x0300003F -_0807ED08: .4byte 0x0300002D -_0807ED0C: .4byte 0x0300003C -_0807ED10: .4byte 0x0300002C -_0807ED14: - ldrb r0, [r5] - lsls r0, r0, #1 - add r0, sp - ldrh r0, [r0] - subs r0, r0, r2 - cmp r1, r0 - bhs _0807ED54 - movs r6, #1 - mov sl, r6 - cmp r1, r3 - bne _0807EDC6_post_elif - movs r0, #0 - mov sl, r0 - ldr r2, _0807ED48 @ =0x0300002D - adds r1, r4, r2 - movs r0, #0xff - strb r0, [r1] - ldr r3, _0807ED4C @ =0x0300003C - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, r0, #2 - ldr r6, _0807ED50 @ =0x0300002C -_0807ED40_set_variant: - adds r1, r4, r6 - strb r0, [r1] - b _0807EDC6_post_elif - .align 2, 0 -_0807ED48: .4byte 0x0300002D -_0807ED4C: .4byte 0x0300003C -_0807ED50: .4byte 0x0300002C -_0807ED54: - cmp r1, r0 - bne _0807ED70 - ldr r0, _0807ED9C @ =0x0300002D - adds r1, r4, r0 - movs r0, #0xff - strb r0, [r1] - ldr r1, _0807EDA0 @ =0x0300003C - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, #2 - ldr r2, _0807EDA4 @ =0x0300002C - adds r1, r4, r2 - strb r0, [r1] -_0807ED70: - movs r4, #0 - ldr r6, _0807EDA8 @ =gPartner - movs r5, #9 - rsbs r5, r5, #0 -_0807ED78: - ldr r3, _0807EDAC @ =gPlayer - cmp r4, #0 - beq _0807ED80 - ldr r3, _0807EDA8 @ =gPartner -_0807ED80: - adds r0, r7, #0 - mov r1, sb - mov r2, r8 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - beq _0807EDB8 - cmp r4, #0 - beq _0807EDB0 - ldr r0, [r6, #0x10] - ands r0, r5 - str r0, [r6, #0x10] - b _0807EDB8 - .align 2, 0 -_0807ED9C: .4byte 0x0300002D -_0807EDA0: .4byte 0x0300003C -_0807EDA4: .4byte 0x0300002C -_0807EDA8: .4byte gPartner -_0807EDAC: .4byte gPlayer -_0807EDB0: - ldr r1, _0807EE14 @ =gPlayer - ldr r0, [r1, #0x10] - ands r0, r5 - str r0, [r1, #0x10] -_0807EDB8: - adds r4, #1 - ldr r0, _0807EE18 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - blt _0807ED78 -_0807EDC6_post_elif: - movs r4, #0 -_0807EDC8: - mov r3, sl - cmp r3, #1 - bne _0807EDE8 - ldr r6, [sp, #8] - lsls r0, r6, #0x10 - asrs r1, r0, #0x10 - ldr r2, [sp, #0xc] - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - ldr r3, _0807EE14 @ =gPlayer - cmp r4, #0 - beq _0807EDE2 - ldr r3, _0807EE1C @ =gPartner -_0807EDE2: - adds r0, r7, #0 - bl Coll_Player_Platform -_0807EDE8: - adds r4, #1 - ldr r0, _0807EE18 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - blt _0807EDC8 - adds r0, r7, #0 - bl UpdateSpriteAnimation - adds r0, r7, #0 - bl DisplaySprite -_0807EE02: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807EE14: .4byte gPlayer -_0807EE18: .4byte gNumSingleplayerCharacters -_0807EE1C: .4byte gPartner - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc deleted file mode 100644 index 3ceac59f60..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/TeleportOrb__Task_TeleportOrb.inc +++ /dev/null @@ -1,729 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _08084A78 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 @ r7 = orb - ldr r0, [r7] - str r0, [sp, #0x10] @ sp10 = me - ldrb r1, [r7, #8] - lsls r1, r1, #3 - ldrh r0, [r7, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 @ r1 = worldX << 16 - ldr r5, [sp, #0x10] @ r5 = sp10 = me - ldrb r2, [r5, #1] - lsls r2, r2, #3 - ldrh r0, [r7, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldr r3, _08084A7C @ =gCamera - ldrh r0, [r3] - lsrs r5, r1, #0x10 - str r5, [sp] @ sp00 = worldX - asrs r1, r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #8] @ sp08 = screenX - ldrh r0, [r3, #2] - lsrs r1, r2, #0x10 - str r1, [sp, #4] @ sp04 = worldY - asrs r2, r2, #0x10 - subs r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0xc] @ sp0C = screenY - movs r5, #0 - mov ip, r3 @ ip = r3 = gCamera - ldr r2, _08084A80 @ =0x03000044 - adds r2, r2, r4 - mov r8, r2 @ r8 = &orb->unk44 - ldr r4, _08084A84 @ =gPartner - ldr r6, _08084A88 @ =gPlayer - movs r0, #0x26 - adds r0, r0, r4 - mov sl, r0 - movs r1, #0x26 - adds r1, r1, r6 - mov sb, r1 @ sb = &gPlayer.itemEffect - movs r3, #0 -_08084A44_loop: - adds r0, r7, #0 - adds r0, #0x44 - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08084A58 - b _08084CCC -_08084A58: - mov r0, ip @ r0 = ip = gCamera - ldr r1, [r0] - ldr r0, [r7, #0x40] - cmp r1, r0 - beq _08084A64 - b _08084B72 -_08084A64: - mov r2, ip @ r2 = ip = gCamera - movs r0, #0 - ldrsh r1, [r2, r0] - cmp r5, #0 - beq _08084A8C - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - ble _08084A94 - b _08084B72 - .align 2, 0 -_08084A78: .4byte gCurTask -_08084A7C: .4byte gCamera -_08084A80: .4byte 0x03000044 -_08084A84: .4byte gPartner -_08084A88: .4byte gPlayer -_08084A8C: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - bgt _08084B72 -_08084A94: - mov r1, ip @ r1 = ip = gCamera - movs r2, #0 - ldrsh r0, [r1, r2] - adds r1, r0, #0 - adds r1, #0xf0 - cmp r5, #0 - beq _08084AAC - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08084AB4 - b _08084B72 -_08084AAC: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - blt _08084B72 -_08084AB4: - mov r0, ip - movs r2, #2 - ldrsh r1, [r0, r2] - cmp r5, #0 - beq _08084AC8 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _08084AD0 - b _08084B72 -_08084AC8: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - bgt _08084B72 -_08084AD0: - mov r1, ip - movs r2, #2 - ldrsh r0, [r1, r2] - adds r1, r0, #0 - adds r1, #0xa0 - cmp r5, #0 - beq _08084AE8 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08084AF0 - b _08084B72 -_08084AE8: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - blt _08084B72 -_08084AF0: - cmp r5, #0 - beq _08084B04 - ldr r0, [r4, #0x10] - ldr r1, _08084B00 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08084B0C - .align 2, 0 -_08084B00: .4byte 0xFFBFFFFF -_08084B04: - ldr r0, [r6, #0x10] - ldr r1, _08084B1C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08084B0C: - cmp r5, #0 - beq _08084B20 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _08084B28 - .align 2, 0 -_08084B1C: .4byte 0xFFBFFFFF -_08084B20: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_08084B28: - movs r0, #1 - lsls r0, r5 - mov r2, r8 @ r2 = r8 = &orb->unk44 - ldrh r1, [r2] - bics r1, r0 - movs r0, #0 - strh r1, [r2] - cmp r5, #0 - beq _08084B3E - strh r0, [r4, #0xa] - b _08084B40 -_08084B3E: - strh r5, [r6, #0xa] -_08084B40: - cmp r5, #0 - beq _08084B48 - strh r3, [r4, #8] - b _08084B4A -_08084B48: - strh r5, [r6, #8] -_08084B4A: - cmp r5, #0 - beq _08084B52 - strh r3, [r4, #0xc] - b _08084B54 -_08084B52: - strh r5, [r6, #0xc] -_08084B54: - cmp r5, #0 - beq _08084B66 - mov r0, sl @ r0 = sl = - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - mov r1, sl - strb r0, [r1] - b _08084C1A -_08084B66: - mov r2, sb - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - b _08084C1A -_08084B72: - ldr r0, _08084B94 @ =gPlayer - cmp r5, #0 - beq _08084B7A - ldr r0, _08084B98 @ =gPartner -_08084B7A: - str r3, [sp, #0x14] - bl Player_TransitionCancelFlyingAndBoost - ldr r3, [sp, #0x14] - cmp r5, #0 - beq _08084B9C - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - b _08084BA6 - .align 2, 0 -_08084B94: .4byte gPlayer -_08084B98: .4byte gPartner -_08084B9C: - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r6, #0x10] -_08084BA6: - ldr r2, _08084BB0 @ =gPlayer - cmp r5, #0 - beq _08084BB4 - strh r3, [r4, #0xa] - b _08084BB6 - .align 2, 0 -_08084BB0: .4byte gPlayer -_08084BB4: - strh r5, [r2, #0xa] -_08084BB6: - cmp r5, #0 - beq _08084BBE - strh r3, [r4, #8] - b _08084BC0 -_08084BBE: - strh r5, [r2, #8] -_08084BC0: - cmp r5, #0 - beq _08084BC8 - strh r3, [r4, #0xc] - b _08084BCA -_08084BC8: - strh r5, [r2, #0xc] -_08084BCA: - cmp r5, #0 - beq _08084BD8 - movs r0, #5 - ldr r1, _08084BD4 @ =gPartner + 0x40 - b _08084BDE - .align 2, 0 -_08084BD4: .4byte gPartner + 0x40 -_08084BD8: - adds r1, r2, #0 - adds r1, #0x40 - movs r0, #5 -_08084BDE: - strb r0, [r1] - ldr r0, _08084C2C @ =gPlayer - cmp r5, #0 - beq _08084BE8 - ldr r0, _08084C30 @ =gPartner -_08084BE8: - movs r1, #0xe - str r3, [sp, #0x14] - bl Player_HandleSpriteYOffsetChange - ldr r1, _08084C2C @ =gPlayer - ldr r3, [sp, #0x14] - cmp r5, #0 - beq _08084BFA - ldr r1, _08084C30 @ =gPartner -_08084BFA: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08084C2C @ =gPlayer - cmp r5, #0 - beq _08084C06 - ldr r1, _08084C30 @ =gPartner -_08084C06: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #1 - lsls r0, r5 - mov r2, r8 @ r2 = r8 = &orb->unk44 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] - ldr r0, _08084C34 @ =gCamera - mov ip, r0 -_08084C1A: @@@@@@@@@@@@@@ - cmp r5, #0 - beq _08084C38 - ldr r0, [r4, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08084C42 - b _08084CB8 - .align 2, 0 -_08084C2C: .4byte gPlayer -_08084C30: .4byte gPartner -_08084C34: .4byte gCamera -_08084C38: - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08084CB8 -_08084C42: - movs r1, #1 - lsls r1, r5 - mov r2, r8 @ r2 = s8 = &orb->unk44 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] - cmp r5, #0 - beq _08084C60 - ldr r0, [r4, #0x10] - ldr r1, _08084C5C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08084C68 - .align 2, 0 -_08084C5C: .4byte 0xFFBFFFFF -_08084C60: - ldr r0, [r6, #0x10] - ldr r1, _08084C74 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08084C68: - cmp r5, #0 - beq _08084C7C - ldr r1, _08084C78 @ =gPartner + 0x3C - movs r0, #0 - ldrsb r0, [r1, r0] - b _08084C82 - .align 2, 0 -_08084C74: .4byte 0xFFBFFFFF -_08084C78: .4byte gPartner + 0x3C -_08084C7C: - ldr r2, _08084C98 @ =gPlayer + 0x3C - movs r0, #0 - ldrsb r0, [r2, r0] -_08084C82: - cmp r0, #0 - bne _08084CB8 - mov r1, ip - movs r2, #2 - ldrsh r0, [r1, r2] - adds r0, #0x50 - lsls r0, r0, #8 - cmp r5, #0 - beq _08084C9C - str r0, [r4, #4] - b _08084C9E - .align 2, 0 -_08084C98: .4byte gPlayer + 0x3C -_08084C9C: - str r0, [r6, #4] -_08084C9E: - mov r1, ip - movs r2, #0 - ldrsh r0, [r1, r2] - adds r0, #0x78 - lsls r0, r0, #8 - cmp r5, #0 - beq _08084CB0 - str r0, [r4] - b _08084CB2 -_08084CB0: - str r0, [r6] -_08084CB2: - mov r0, ip - strh r3, [r0, #6] - strh r3, [r0, #4] -_08084CB8: - mov r1, ip - ldrh r0, [r1] - adds r1, r7, #0 - adds r1, #0x40 - strh r0, [r1] - mov r2, ip - ldrh r0, [r2, #2] - adds r1, #2 - strh r0, [r1] - b _08084E8C_continue -_08084CCC: - cmp r5, #0 - beq _08084CD4 - ldr r0, [r4, #0x10] - b _08084CD6 -_08084CD4: - ldr r0, [r6, #0x10] -_08084CD6: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08084CE0 - b _08084E8C_continue -_08084CE0: - ldr r0, [sp] @ r0 = sp00 = worldX - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #0xc - cmp r5, #0 - beq _08084CF8 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08084D02 - b _08084E8C_continue -_08084CF8: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r2, r0 - ble _08084D02 - b _08084E8C_continue -_08084D02: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0xc - cmp r5, #0 - beq _08084D16 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08084D20 - b _08084E8C_continue -_08084D16: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - bge _08084D20 - b _08084E8C_continue -_08084D20: - ldr r2, [sp, #4] - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #0xc - cmp r5, #0 - beq _08084D38 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08084D42 - b _08084E8C_continue -_08084D38: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08084D42 - b _08084E8C_continue -_08084D42: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0xc - cmp r5, #0 - beq _08084D56 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08084D60 - b _08084E8C_continue -_08084D56: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08084D60 - b _08084E8C_continue -_08084D60: - ldr r0, _08084D80 @ =gPlayer - cmp r5, #0 - beq _08084D68 - ldr r0, _08084D84 @ =gPartner -_08084D68: - str r3, [sp, #0x14] - bl Player_TransitionCancelFlyingAndBoost - ldr r3, [sp, #0x14] - cmp r5, #0 - beq _08084D88 - ldr r0, [r4, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r4, #0x10] - b _08084D90 - .align 2, 0 -_08084D80: .4byte gPlayer -_08084D84: .4byte gPartner -_08084D88: - ldr r0, [r6, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #0x10] -_08084D90: - ldr r2, _08084DA4 @ =gPlayer - cmp r5, #0 - beq _08084DA8 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - b _08084DB2 - .align 2, 0 -_08084DA4: .4byte gPlayer -_08084DA8: - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r6, #0x10] -_08084DB2: - ldrh r0, [r7, #0x3c] - adds r1, r7, #0 - adds r1, #0x46 - lsls r0, r0, #8 - ldrh r1, [r1] - adds r0, r0, r1 - cmp r5, #0 - beq _08084DC6 - str r0, [r4] - b _08084DC8 -_08084DC6: - str r0, [r2] -_08084DC8: - ldrh r0, [r7, #0x3e] - adds r1, r7, #0 - adds r1, #0x48 - lsls r0, r0, #8 - ldrh r1, [r1] - adds r0, r0, r1 - cmp r5, #0 - beq _08084DDC - str r0, [r4, #4] - b _08084DDE -_08084DDC: - str r0, [r2, #4] -_08084DDE: - cmp r5, #0 - beq _08084DE6 - strh r3, [r4, #0xa] - b _08084DE8 -_08084DE6: - strh r5, [r2, #0xa] -_08084DE8: - cmp r5, #0 - beq _08084DF0 - strh r3, [r4, #8] - b _08084DF2 -_08084DF0: - strh r5, [r2, #8] -_08084DF2: - cmp r5, #0 - beq _08084DFA - strh r3, [r4, #0xc] - b _08084DFC -_08084DFA: - strh r5, [r2, #0xc] -_08084DFC: - cmp r5, #0 - beq _08084E0C - movs r0, #5 - ldr r1, _08084E08 @ =gPartner + 0x40 - b _08084E12 - .align 2, 0 -_08084E08: .4byte gPartner + 0x40 -_08084E0C: - adds r1, r2, #0 - adds r1, #0x40 - movs r0, #5 -_08084E12: - strb r0, [r1] - ldr r0, _08084E64 @ =gPlayer - cmp r5, #0 - beq _08084E1C - ldr r0, _08084E68 @ =gPartner -_08084E1C: - movs r1, #0xe - str r3, [sp, #0x14] - bl Player_HandleSpriteYOffsetChange - ldr r1, _08084E64 @ =gPlayer - ldr r3, [sp, #0x14] - cmp r5, #0 - beq _08084E2E - ldr r1, _08084E68 @ =gPartner -_08084E2E: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08084E64 @ =gPlayer - cmp r5, #0 - beq _08084E3A - ldr r1, _08084E68 @ =gPartner -_08084E3A: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #0xaa - str r3, [sp, #0x14] - bl m4aSongNumStart - movs r0, #1 - lsls r0, r5 - mov r2, r8 @ r2 = r8 = &orb->unk44 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] - ldr r3, [sp, #0x14] @ r3 = sp14 = - cmp r5, #0 - beq _08084E6C - mov r1, sl - ldrb r0, [r1] - movs r1, #0x80 - orrs r0, r1 - mov r2, sl - b _08084E76 - .align 2, 0 -_08084E64: .4byte gPlayer -_08084E68: .4byte gPartner -_08084E6C: - mov r1, sb - ldrb r0, [r1] - movs r1, #0x80 - orrs r0, r1 - mov r2, sb -_08084E76: - strb r0, [r2] - ldr r2, _08084EF0 @ =gCamera - ldrh r1, [r2] - adds r0, r7, #0 - adds r0, #0x40 - strh r1, [r0] - ldrh r0, [r2, #2] - adds r1, r7, #0 - adds r1, #0x42 - strh r0, [r1] - mov ip, r2 -_08084E8C_continue: - adds r5, #1 - ldr r0, _08084EF4 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bge _08084E9C - b _08084A44_loop -_08084E9C: - mov r5, r8 @ r5 = r8 = &orb->unk44 - ldrh r1, [r5] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08084EDE - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #0x10 - adds r0, r0, r2 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08084ED0 - ldr r5, [sp, #0xc] - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08084ED0 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r2, r0 - ble _08084EDE -_08084ED0: - ldrb r0, [r7, #8] - ldr r1, [sp, #0x10] @ r1 = sp10 = me - strb r0, [r1] - ldr r0, _08084EF8 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08084EDE: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08084EF0: .4byte gCamera -_08084EF4: .4byte gNumSingleplayerCharacters -_08084EF8: .4byte gCurTask - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc deleted file mode 100644 index a3e7c9609e..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/air_bubbles__Task_BubbleContainingAir.inc +++ /dev/null @@ -1,408 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r5, _080911B8 @ =gCurTask - ldr r0, [r5] - ldrh r6, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r6 - mov r8, r0 @ r8 = bubbles - ldr r0, _080911BC @ =0x0300000C - adds r7, r6, r0 @ r7 = s - ldr r1, _080911C0 @ =0x03000040 - adds r0, r6, r1 @ r0 = unk40 - ldr r4, _080911C4 @ =gCamera - ldrh r2, [r0] - ldrh r0, [r4] - subs r2, r2, r0 - ldr r3, _080911C8 @ =gSineTable - mov r0, r8 - ldrh r1, [r0, #0x3e] - lsls r0, r1, #1 - adds r0, r0, r1 - ldr r1, _080911CC @ =0x000003FF - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x1b - adds r2, r2, r0 - strh r2, [r7, #0x16] - ldr r1, _080911D0 @ =0x03000042 - adds r3, r6, r1 - ldrh r1, [r3] - ldrh r0, [r4, #2] - subs r1, r1, r0 - mov r4, r8 - ldrh r0, [r4, #0x3e] - lsrs r0, r0, #1 - subs r1, r1, r0 - strh r1, [r7, #0x18] - adds r2, #0x80 - lsls r2, r2, #0x10 - movs r0, #0xf8 - lsls r0, r0, #0x11 - cmp r2, r0 - bhi _080911AE - movs r2, #0x18 - ldrsh r0, [r7, r2] - adds r0, #0x80 - cmp r0, #0 - blt _080911AE - lsls r1, r1, #0x10 - movs r0, #0x90 - lsls r0, r0, #0x11 - cmp r1, r0 - bgt _080911AE - ldr r2, _080911D4 @ =gWater - movs r4, #2 - ldrsh r0, [r2, r4] - cmp r0, #0 - blt _080911AE - movs r1, #0 - ldrsh r0, [r3, r1] - mov r4, r8 - ldrh r3, [r4, #0x3e] - lsrs r1, r3, #1 - subs r0, r0, r1 - movs r4, #2 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _080911D8 -_080911AE: - ldr r0, [r5] - bl TaskDestroy - b _08091400 - .align 2, 0 -_080911B8: .4byte gCurTask -_080911BC: .4byte 0x0300000C -_080911C0: .4byte 0x03000040 -_080911C4: .4byte gCamera -_080911C8: .4byte gSineTable -_080911CC: .4byte 0x000003FF -_080911D0: .4byte 0x03000042 -_080911D4: .4byte gWater -_080911D8: - ldr r0, _080911F8 @ =0x0300003C - adds r2, r6, r0 - ldrb r1, [r2] - lsls r1, r1, #3 - adds r0, r3, #1 - mov r3, r8 - strh r0, [r3, #0x3e] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _080911FC - adds r0, r7, #0 - bl UpdateSpriteAnimation - b _0809120A - .align 2, 0 -_080911F8: .4byte 0x0300003C -_080911FC: - ldrb r0, [r2] - cmp r0, #4 - beq _08091204 - b _080913FA_DisplaySprite_ret -_08091204: - adds r0, r7, #0 - bl UpdateSpriteAnimation -_0809120A: - mov r0, r8 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #4 - beq _08091216 - b _080913FA_DisplaySprite_ret -_08091216: - mov r4, r8 @ r4 = r8 = bubbles - ldrh r0, [r4, #0x3e] - cmp r0, #0x4f - bhi _08091220 - b _080913FA_DisplaySprite_ret -_08091220: - movs r4, #0 - ldr r5, _08091274 @ r5 = gPartner - ldr r6, _08091278 @ r6 = gPlayer - movs r0, #0x5a - adds r0, r0, r6 - mov sl, r0 - movs r1, #0x3c - adds r1, r1, r6 - mov sb, r1 -_08091232_loop: - ldr r0, _0809127C @ =gCamera - ldrh r1, [r0] - ldrh r2, [r7, #0x16] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r0, [r0, #2] - ldrh r3, [r7, #0x18] - adds r0, r0, r3 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - ldr r3, _08091278 @ =gPlayer - cmp r4, #0 - beq _08091250 - ldr r3, _08091274 @ =gPartner -_08091250: - adds r0, r7, #0 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _0809125C - b _080913EA_continue -_0809125C: - ldr r0, _08091278 @ =gPlayer - cmp r4, #0 - beq _08091264 - ldr r0, _08091274 @ =gPartner -_08091264: - bl Player_TransitionCancelFlyingAndBoost - cmp r4, #0 - beq _08091284 - movs r0, #0x1b - ldr r1, _08091280 @ =gPartner + 0x40 - strb r0, [r1] - b _0809128A - .align 2, 0 -_08091274: .4byte gPartner -_08091278: .4byte gPlayer -_0809127C: .4byte gCamera -_08091280: .4byte gPartner + 0x40 -_08091284: - movs r0, #0x1b - ldr r2, _0809129C @ =gPlayer + 0x40 - strb r0, [r2] -_0809128A: - cmp r4, #0 - beq _080912A0 - ldr r0, [r5, #0x10] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _080912AA - b _0809133A - .align 2, 0 -_0809129C: .4byte gPlayer + 0x40 -_080912A0: - ldr r0, [r6, #0x10] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0809133A -_080912AA: - cmp r4, #0 - beq _080912BA - ldr r0, [r5, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _080912C4 -_080912BA: - ldr r0, [r6, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_080912C4: - ldr r2, _080912D8 @ =gPlayer - cmp r4, #0 - beq _080912DC - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _080912E6 - .align 2, 0 -_080912D8: .4byte gPlayer -_080912DC: - ldr r0, [r6, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_080912E6: - cmp r4, #0 - beq _080912F6 - ldr r0, [r5, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08091300 - b _08091314 -_080912F6: - ldr r0, [r2, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08091314 -_08091300: - adds r1, r2, #0 - cmp r4, #0 - beq _08091308 - ldr r1, _08091310 @ =gPartner -_08091308: - movs r0, #6 - strb r0, [r1, #0xe] - adds r1, r2, #0 - b _08091330 - .align 2, 0 -_08091310: .4byte gPartner -_08091314: - ldr r0, _08091344 @ =gPlayer - cmp r4, #0 - beq _0809131C - ldr r0, _08091348 @ =gPartner -_0809131C: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08091344 @ =gPlayer - cmp r4, #0 - beq _0809132A - ldr r1, _08091348 @ =gPartner -_0809132A: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08091344 @ =gPlayer -_08091330: - cmp r4, #0 - beq _08091336 - ldr r1, _08091348 @ =gPartner -_08091336: - movs r0, #0xe - strb r0, [r1, #0xf] -_0809133A: - cmp r4, #0 - beq _0809134C - movs r0, #0 - strh r0, [r5, #8] - b _0809134E - .align 2, 0 -_08091344: .4byte gPlayer -_08091348: .4byte gPartner -_0809134C: - strh r4, [r6, #8] -_0809134E: - cmp r4, #0 - beq _08091358 - movs r0, #0 - strh r0, [r5, #0xa] - b _0809135A -_08091358: - strh r4, [r6, #0xa] -_0809135A: - cmp r4, #0 - beq _08091364 - movs r0, #0 - strh r0, [r5, #0xc] - b _08091366 -_08091364: - strh r4, [r6, #0xc] -_08091366: - cmp r4, #0 - beq _08091376 - ldr r0, [r5, #0x10] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _08091380 -_08091376: - ldr r0, [r6, #0x10] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08091380: - cmp r4, #0 - beq _08091390 - movs r0, #0x3c - ldr r3, _0809138C @ =gPartner + 0x5B - strb r0, [r3] - b _08091396 - .align 2, 0 -_0809138C: .4byte gPartner + 0x5B -_08091390: - movs r0, #0x3c - ldr r1, _080913A4 @ =gPlayer + 0x5B - strb r0, [r1] -_08091396: - cmp r4, #0 - beq _080913AC - movs r0, #0x1e - ldr r2, _080913A8 @ =gPartner + 0x5A - strb r0, [r2] - b _080913B2 - .align 2, 0 -_080913A4: .4byte gPlayer + 0x5B -_080913A8: .4byte gPartner + 0x5A -_080913AC: - movs r0, #0x1e - mov r3, sl - strb r0, [r3] -_080913B2: - cmp r4, #0 - beq _080913C4 - ldr r1, _080913C0 @ =gPartner + 0x3C - movs r0, #0 - ldrsb r0, [r1, r0] - b _080913CA - .align 2, 0 -_080913C0: .4byte gPartner + 0x3C -_080913C4: - mov r2, sb - movs r0, #0 - ldrsb r0, [r2, r0] -_080913CA: - cmp r0, #0 - bne _080913D4 - movs r0, #0x1b - bl m4aSongNumStop -_080913D4: - movs r0, #0xbf - bl m4aSongNumStart - ldr r0, _08091410 @ =gCurTask - ldr r1, [r0] - ldr r0, _08091414 @ =Task_809141C - str r0, [r1, #8] - mov r1, r8 - adds r1, #0x3d - movs r0, #0x10 - strb r0, [r1] -_080913EA_continue: - adds r4, #1 - ldr r0, _08091418 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - bge _080913FA_DisplaySprite_ret - b _08091232_loop -_080913FA_DisplaySprite_ret: - adds r0, r7, #0 - bl DisplaySprite -_08091400: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08091410: .4byte gCurTask -_08091414: .4byte Task_809141C -_08091418: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc deleted file mode 100644 index 7b2efbf785..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/bowl__Task_BowlRotating.inc +++ /dev/null @@ -1,961 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _08080BE4 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - adds r0, #0xc - adds r0, r1, r0 - str r0, [sp] - ldr r1, [r7] - str r1, [sp, #0xc] - ldrb r2, [r7, #8] - lsls r2, r2, #3 - ldrh r0, [r7, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldrb r0, [r1, #1] - lsls r0, r0, #3 - ldrh r1, [r7, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - ldr r1, _08080BE8 @ =gCamera - ldrh r0, [r1] - lsrs r6, r2, #0x10 - asrs r2, r2, #0x10 - subs r2, r2, r0 - ldr r4, [sp] - strh r2, [r4, #0x16] - ldr r4, [r7, #0x48] - ldr r3, [r7, #0x4c] - cmp r4, r3 - bls _08080BEC - ldrh r1, [r1, #2] - ldr r0, [sp, #4] - lsls r2, r0, #0x10 - asrs r0, r2, #0x10 - subs r0, r0, r1 - lsrs r1, r4, #0xd - adds r0, r0, r1 - ldr r1, [sp] - strh r0, [r1, #0x18] - ldr r0, [r7, #0x48] - b _08080C00 - .align 2, 0 -_08080BE4: .4byte gCurTask -_08080BE8: .4byte gCamera -_08080BEC: - ldrh r1, [r1, #2] - ldr r4, [sp, #4] - lsls r2, r4, #0x10 - asrs r0, r2, #0x10 - subs r0, r0, r1 - lsrs r1, r3, #0xd - adds r0, r0, r1 - ldr r1, [sp] - strh r0, [r1, #0x18] - ldr r0, [r7, #0x4c] -_08080C00: - lsrs r0, r0, #0xd - str r0, [sp, #8] - str r2, [sp, #0x10] - movs r5, #0 - lsls r6, r6, #0x10 - mov sl, r6 - adds r2, r7, #0 - adds r2, #0x51 - str r2, [sp, #0x18] - ldr r6, _08080C20 @ =gPartner - ldr r4, _08080C24 @ =gPlayer - mov r8, r4 -_08080C18_loop: - cmp r5, #0 - beq _08080C28 - ldr r0, [r6, #0x10] - b _08080C2C - .align 2, 0 -_08080C20: .4byte gPartner -_08080C24: .4byte gPlayer -_08080C28: - mov r1, r8 - ldr r0, [r1, #0x10] -_08080C2C: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08080C36 - b _08080DF2 -_08080C36: - ldr r2, [sp, #0x18] - ldrb r0, [r2] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08080C46 - b _08080DF2 -_08080C46: - mov r4, sl - asrs r1, r4, #0x10 - cmp r5, #0 - beq _08080C60 - ldr r0, [r6] - asrs r0, r0, #8 - ldr r3, _08080C5C @ =gPlayer - cmp r0, r1 - bgt _08080C6C - b _08080C74 - .align 2, 0 -_08080C5C: .4byte gPlayer -_08080C60: - mov r2, r8 - ldr r0, [r2] - asrs r0, r0, #8 - ldr r3, _08080C70 @ =gPlayer - cmp r0, r1 - ble _08080C74 -_08080C6C: - movs r1, #0xa - b _08080C76 - .align 2, 0 -_08080C70: .4byte gPlayer -_08080C74: - ldr r1, _08080CBC @ =0x0000FFF6 -_08080C76: - mov r4, sl - asrs r0, r4, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - ldr r0, [sp, #4] - adds r0, #0xd - ldr r2, [sp, #8] - adds r0, r0, r2 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r5, #0 - beq _08080C96 - ldr r3, _08080CC0 @ =gPartner -_08080C96: - ldr r0, [sp] - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _08080CA2 - b _08080DF2 -_08080CA2: - adds r0, r7, #0 - adds r0, #0x40 - adds r4, r7, #0 - adds r4, #0x42 - ldrh r3, [r0] - ldrh r1, [r4] - adds r2, r0, #0 - cmp r3, r1 - bls _08080CC4 - strh r3, [r4] - ldr r0, [r7, #0x48] - str r0, [r7, #0x4c] - b _08080CCA - .align 2, 0 -_08080CBC: .4byte 0x0000FFF6 -_08080CC0: .4byte gPartner -_08080CC4: - strh r1, [r2] - ldr r0, [r7, #0x4c] - str r0, [r7, #0x48] -_08080CCA: - movs r0, #1 - lsls r0, r5 - ldr r4, [sp, #0x18] - ldrb r1, [r4] - orrs r0, r1 - strb r0, [r4] - lsls r1, r5, #1 - adds r0, r7, #0 - adds r0, #0x3c - adds r0, r0, r1 - mov sb, r0 - ldr r0, [r7, #0x48] - lsrs r4, r0, #8 - mov r0, sl - asrs r1, r0, #0x10 - cmp r5, #0 - beq _08080CF0 - ldr r0, [r6] - b _08080CF4 -_08080CF0: - mov r2, r8 - ldr r0, [r2] -_08080CF4: - asrs r0, r0, #8 - subs r0, r0, r1 - adds r0, #0x30 - lsls r0, r0, #9 - movs r1, #0x60 - bl Div - cmp r0, #0 - bge _08080D34 - mov r0, sl - asrs r1, r0, #0x10 - cmp r5, #0 - beq _08080D12 - ldr r0, [r6] - b _08080D16 -_08080D12: - mov r2, r8 - ldr r0, [r2] -_08080D16: - asrs r0, r0, #8 - subs r0, r0, r1 - adds r0, #0x30 - lsls r0, r0, #9 - movs r1, #0x60 - bl Div - movs r2, #0xc0 - lsls r2, r2, #2 - adds r1, r4, r2 - subs r1, r1, r0 - ldr r0, _08080D30 @ =0x000003FF - b _08080D5C - .align 2, 0 -_08080D30: .4byte 0x000003FF -_08080D34: - mov r0, sl - asrs r1, r0, #0x10 - cmp r5, #0 - beq _08080D40 - ldr r0, [r6] - b _08080D44 -_08080D40: - mov r2, r8 - ldr r0, [r2] -_08080D44: - asrs r0, r0, #8 - subs r0, r0, r1 - adds r0, #0x30 - lsls r0, r0, #9 - movs r1, #0x60 - bl Div - movs r2, #0xc0 - lsls r2, r2, #2 - adds r1, r4, r2 - adds r0, r0, r1 - ldr r1, _08080D6C @ =0x000003FF -_08080D5C: - ands r0, r1 - movs r1, #0 - mov r4, sb - strh r0, [r4] - cmp r5, #0 - beq _08080D70 - strh r1, [r6, #0x38] - b _08080D74 - .align 2, 0 -_08080D6C: .4byte 0x000003FF -_08080D70: - mov r0, r8 - strh r5, [r0, #0x38] -_08080D74: - ldr r3, _08080D80 @ =gPlayer - cmp r5, #0 - beq _08080D84 - movs r0, #0 - strh r0, [r6, #0x3a] - b _08080D86 - .align 2, 0 -_08080D80: .4byte gPlayer -_08080D84: - strh r5, [r3, #0x3a] -_08080D86: - adds r0, r3, #0 - cmp r5, #0 - beq _08080D8E - ldr r0, _08080DA0 @ =gPartner -_08080D8E: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _08080DA8 - movs r0, #5 - ldr r1, _08080DA4 @ =gPartner + 0x40 - strb r0, [r1] - b _08080DAE - .align 2, 0 -_08080DA0: .4byte gPartner -_08080DA4: .4byte gPartner + 0x40 -_08080DA8: - movs r0, #5 - ldr r2, _08080DC0 @ =gPlayer + 0x40 - strb r0, [r2] -_08080DAE: - cmp r5, #0 - beq _08080DC4 - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r6, #0x10] - b _08080DD0 - .align 2, 0 -_08080DC0: .4byte gPlayer + 0x40 -_08080DC4: - mov r4, r8 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] -_08080DD0: - cmp r5, #0 - beq _08080DE8 - ldr r0, _08080DE4 @ =gPartner + 0x26 - ldrb r1, [r0] - movs r0, #0x80 - orrs r0, r1 - ldr r1, _08080DE4 @ =gPartner + 0x26 - strb r0, [r1] - b _08080DF2 - .align 2, 0 -_08080DE4: .4byte gPartner + 0x26 -_08080DE8: - ldr r2, _08080E4C @ =gPlayer + 0x26 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] -_08080DF2: - adds r5, #1 - ldr r0, _08080E50 @ =gNumSingleplayerCharacters - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r5, r1 - bge _08080E00 - b _08080C18_loop -_08080E00: - movs r5, #0 - mov r8, r5 - ldr r4, _08080E54 @ =gPlayer - mov sb, r4 -_08080E08_loop: - ldr r1, [sp, #0x18] - ldrb r0, [r1] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08080ECC - adds r4, r7, #0 - adds r4, #0x48 - mov r2, r8 - adds r0, r4, r2 - ldr r2, [r0] - lsls r1, r5, #1 - adds r0, r7, #0 - adds r0, #0x3c - adds r0, r0, r1 - lsrs r2, r2, #8 - ldrh r0, [r0] - adds r2, r2, r0 - adds r3, r7, #0 - adds r3, #0x50 - ldrb r1, [r3] - movs r0, #0xf - ands r0, r1 - lsls r0, r0, #6 - adds r2, r2, r0 - ldr r0, _08080E58 @ =0x000003FF - ands r2, r0 - adds r6, r4, #0 - cmp r5, #0 - beq _08080E60 - ldr r4, _08080E5C @ =gPartner - ldr r0, [r4, #0x10] - b _08080E64 - .align 2, 0 -_08080E4C: .4byte gPlayer + 0x26 -_08080E50: .4byte gNumSingleplayerCharacters -_08080E54: .4byte gPlayer -_08080E58: .4byte 0x000003FF -_08080E5C: .4byte gPartner -_08080E60: - mov r1, sb - ldr r0, [r1, #0x10] -_08080E64: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08080ECC - ldr r1, _08080E98 @ =gSineTable - lsls r0, r2, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, #0x32 - bl Div - mov r4, sl - asrs r1, r4, #8 - adds r1, r1, r0 - cmp r5, #0 - beq _08080EA0 - ldr r0, _08080E9C @ =gPartner - str r1, [r0] - b _08080EA4 - .align 2, 0 -_08080E98: .4byte gSineTable -_08080E9C: .4byte gPartner -_08080EA0: - mov r2, sb - str r1, [r2] -_08080EA4: - ldr r4, [sp, #0x10] - asrs r1, r4, #8 - ldr r0, _08080EC0 @ =0xFFFFEF00 - adds r1, r1, r0 - mov r2, r8 - adds r0, r6, r2 - ldr r0, [r0] - lsrs r0, r0, #5 - adds r0, r1, r0 - cmp r5, #0 - beq _08080EC8 - ldr r4, _08080EC4 @ =gPartner - str r0, [r4, #4] - b _08080ECC - .align 2, 0 -_08080EC0: .4byte 0xFFFFEF00 -_08080EC4: .4byte gPartner -_08080EC8: - mov r1, sb - str r0, [r1, #4] -_08080ECC: - movs r2, #4 - add r8, r2 - adds r5, #1 - ldr r4, _08080F0C @ =gNumSingleplayerCharacters - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r5, r0 - blt _08080E08_loop - movs r5, #0 - mov r8, r5 - mov sb, r5 -_08080EE2_loop: - ldr r1, [sp, #0x18] - ldrb r0, [r1] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08080FB0 - adds r1, r7, #0 - adds r1, #0x48 - mov r2, sb - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08080F10 @ =0x000D8107 - adds r6, r1, #0 - cmp r2, r0 - bls _08080F60 - cmp r5, #0 - beq _08080F18 - ldr r0, _08080F14 @ =gPartner - b _08080F1A - .align 2, 0 -_08080F0C: .4byte gNumSingleplayerCharacters -_08080F10: .4byte 0x000D8107 -_08080F14: .4byte gPartner -_08080F18: - ldr r0, _08080F48 @ =gPlayer -_08080F1A: - ldr r1, [r0, #0x10] - movs r0, #0x80 - ands r1, r0 - adds r2, r7, #0 - adds r2, #0x40 - cmp r1, #0 - bne _08080F6E - adds r1, r7, #0 - adds r1, #0x40 - mov r4, r8 - adds r0, r1, r4 - ldrh r0, [r0] - lsrs r0, r0, #2 - ldr r2, _08080F4C @ =0xFFFFF830 - adds r0, r0, r2 - lsls r3, r0, #1 - adds r2, r1, #0 - cmp r5, #0 - beq _08080F54 - ldr r0, _08080F50 @ =gPartner - strh r3, [r0, #0xa] - b _08080F6E - .align 2, 0 -_08080F48: .4byte gPlayer -_08080F4C: .4byte 0xFFFFF830 -_08080F50: .4byte gPartner -_08080F54: - ldr r0, _08080F5C @ =gPlayer - strh r3, [r0, #0xa] - b _08080F6E - .align 2, 0 -_08080F5C: .4byte gPlayer -_08080F60: - adds r2, r7, #0 - adds r2, #0x40 - mov r4, r8 - adds r1, r2, r4 - ldrh r0, [r1] - adds r0, #0x40 - strh r0, [r1] -_08080F6E: - mov r0, r8 - adds r4, r2, r0 - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #0x18 - lsrs r1, r2, #0x10 - cmp r0, r1 - bls _08080F80 - strh r1, [r4] -_08080F80: - ldrh r1, [r4] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - movs r1, #0xa0 - lsls r1, r1, #8 - bl Div - ldr r1, [sp] - adds r1, #0x22 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _08080FA4 - movs r0, #0x10 - strb r0, [r1] -_08080FA4: - mov r0, sb - adds r2, r6, r0 - ldrh r1, [r4] - ldr r0, [r2] - adds r0, r0, r1 - str r0, [r2] -_08080FB0: - movs r1, #2 - add r8, r1 - movs r2, #4 - add sb, r2 - adds r5, #1 - ldr r4, _08081030 @ =gNumSingleplayerCharacters - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r5, r0 - blt _08080EE2_loop - mov r0, sl - asrs r2, r0, #0x10 - ldr r3, _08081034 @ =gCamera - movs r4, #0 - ldrsh r1, [r3, r4] - movs r4, #0xb8 - lsls r4, r4, #1 - adds r0, r1, r4 - cmp r2, r0 - bgt _08080FF8 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _08080FF8 - ldr r0, [sp, #0x10] - asrs r1, r0, #0x10 - movs r2, #2 - ldrsh r3, [r3, r2] - subs r4, #0x50 - adds r0, r3, r4 - cmp r1, r0 - bgt _08080FF8 - adds r0, r3, #0 - subs r0, #0x80 - cmp r1, r0 - bge _0808103C -_08080FF8: - ldr r1, [sp] - ldrh r0, [r1, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08081020 - ldr r2, [sp] - movs r4, #0x18 - ldrsh r0, [r2, r4] - adds r0, #0x80 - cmp r0, #0 - blt _08081020 - movs r0, #0x18 - ldrsh r1, [r2, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0808103C -_08081020: - ldrb r0, [r7, #8] - ldr r1, [sp, #0xc] - strb r0, [r1] - ldr r0, _08081038 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0808126E - .align 2, 0 -_08081030: .4byte gNumSingleplayerCharacters -_08081034: .4byte gCamera -_08081038: .4byte gCurTask -_0808103C: - movs r4, #0 - adds r2, r7, #0 - adds r2, #0x44 - str r2, [sp, #0x14] - ldr r0, [sp, #0x18] - mov r8, r0 - ldr r6, _08081088 @ =gPartner - movs r1, #0x80 - mov sb, r1 - ldr r5, _0808108C @ =gPlayer - movs r2, #0x26 - adds r2, r2, r5 - mov ip, r2 -_08081056: - mov r1, r8 - ldrb r0, [r1] - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08081066 - b _080811CA -_08081066: - lsls r1, r4, #2 - adds r0, r7, #0 - adds r0, #0x48 - adds r2, r0, r1 - ldr r1, [r2] - ldr r0, _08081090 @ =0x000D8107 - cmp r1, r0 - bhi _08081078 - b _080811CA -_08081078: - adds r0, #1 - str r0, [r2] - cmp r4, #0 - beq _08081094 - ldr r0, [r6, #0x10] - mov r2, sb - ands r0, r2 - b _0808109A - .align 2, 0 -_08081088: .4byte gPartner -_0808108C: .4byte gPlayer -_08081090: .4byte 0x000D8107 -_08081094: - ldr r0, [r5, #0x10] - mov r1, sb - ands r0, r1 -_0808109A: - adds r3, r7, #0 - adds r3, #0x50 - cmp r0, #0 - bne _080810DE - adds r0, r7, #0 - adds r0, #0x50 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #0xf - bhi _080810C4 - ldrb r1, [r3] - movs r0, #0xb4 - muls r1, r0, r1 - cmp r4, #0 - beq _080810C0 - ldr r0, [r6, #4] - adds r0, r0, r1 - str r0, [r6, #4] - b _080810DE -_080810C0: - ldr r0, [r5, #4] - b _080810DA -_080810C4: - cmp r4, #0 - beq _080810D4 - ldr r0, [r6, #4] - movs r2, #0xb4 - lsls r2, r2, #4 - adds r0, r0, r2 - str r0, [r6, #4] - b _080810DE -_080810D4: - ldr r0, [r5, #4] - movs r1, #0xb4 - lsls r1, r1, #4 -_080810DA: - adds r0, r0, r1 - str r0, [r5, #4] -_080810DE: - cmp r4, #0 - bne _080810E8 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] -_080810E8: - ldrb r0, [r3] - cmp r0, #0x40 - bls _080811CA - cmp r4, #0 - beq _080810FA - ldr r0, [r6, #0x10] - mov r2, sb - ands r0, r2 - b _08081100 -_080810FA: - ldr r0, [r5, #0x10] - mov r1, sb - ands r0, r1 -_08081100: - cmp r0, #0 - bne _0808119A - cmp r4, #0 - beq _08081118 - ldr r0, [r6, #0x10] - ldr r1, _08081114 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] - b _08081120 - .align 2, 0 -_08081114: .4byte 0xFFBFFFFF -_08081118: - ldr r0, [r5, #0x10] - ldr r1, _08081130 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] -_08081120: - cmp r4, #0 - beq _08081134 - ldr r0, [r6, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #0x10] - b _0808113C - .align 2, 0 -_08081130: .4byte 0xFFBFFFFF -_08081134: - ldr r0, [r5, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r5, #0x10] -_0808113C: - cmp r4, #0 - beq _0808114A - ldr r0, [r6, #0x10] - movs r1, #0x10 - orrs r0, r1 - str r0, [r6, #0x10] - b _08081152 -_0808114A: - ldr r0, [r5, #0x10] - movs r1, #0x10 - orrs r0, r1 - str r0, [r5, #0x10] -_08081152: - cmp r4, #0 - beq _08081160 - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] - b _08081168 -_08081160: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_08081168: - cmp r4, #0 - beq _08081172 - movs r0, #0 - strh r0, [r6, #8] - b _08081174 -_08081172: - strh r4, [r5, #8] -_08081174: - cmp r4, #0 - beq _0808117E - movs r0, #0 - strh r0, [r6, #0xc] - b _08081180 -_0808117E: - strh r4, [r5, #0xc] -_08081180: - mov r2, sl - asrs r0, r2, #8 - cmp r4, #0 - beq _0808118C - str r0, [r6] - b _0808118E -_0808118C: - str r0, [r5] -_0808118E: - movs r1, #1 - lsls r1, r4 - mov r2, r8 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] -_0808119A: - ldr r0, _080811B4 @ =gCurTask - ldr r1, [r0] - ldr r0, _080811B8 @ =Task_Bowl3 - str r0, [r1, #8] - cmp r4, #0 - beq _080811C0 - ldr r0, _080811BC @ =gPartner + 0x26 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - ldr r1, _080811BC @ =gPartner + 0x26 - strb r0, [r1] - b _080811CA - .align 2, 0 -_080811B4: .4byte gCurTask -_080811B8: .4byte Task_Bowl3 -_080811BC: .4byte gPartner + 0x26 -_080811C0: - mov r2, ip - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_080811CA: - adds r4, #1 - ldr r1, _08081200 @ =gNumSingleplayerCharacters - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r4, r0 - bge _080811D8 - b _08081056 -_080811D8: - ldr r1, [sp, #0x14] - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bls _080811EC - movs r0, #0xf0 - strh r0, [r1] -_080811EC: - ldr r2, [sp, #0x14] - ldrh r0, [r2] - cmp r0, #0x38 - bne _08081230 - movs r4, #0 - movs r5, #0x80 -_080811F8: - cmp r4, #0 - beq _08081208 - ldr r0, _08081204 @ =gPartner - b _0808120A - .align 2, 0 -_08081200: .4byte gNumSingleplayerCharacters -_08081204: .4byte gPartner -_08081208: - ldr r0, _08081228 @ =gPlayer -_0808120A: - ldr r0, [r0, #0x10] - ands r0, r5 - cmp r0, #0 - bne _08081218 - movs r0, #0xcf - bl m4aSongNumStart -_08081218: - adds r4, #1 - ldr r0, _0808122C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - blt _080811F8 - b _08081262 - .align 2, 0 -_08081228: .4byte gPlayer -_0808122C: .4byte gNumSingleplayerCharacters -_08081230: - cmp r0, #0x70 - bne _08081262 - movs r4, #0 - movs r5, #0x80 -_08081238: - cmp r4, #0 - beq _08081244 - ldr r0, _08081240 @ =gPartner - b _08081246 - .align 2, 0 -_08081240: .4byte gPartner -_08081244: - ldr r0, _08081280 @ =gPlayer -_08081246: - ldr r0, [r0, #0x10] - ands r0, r5 - cmp r0, #0 - bne _08081254 - movs r0, #0xd0 - bl m4aSongNumStart -_08081254: - adds r4, #1 - ldr r0, _08081284 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - blt _08081238 -_08081262: - ldr r0, [sp] - bl UpdateSpriteAnimation - ldr r0, [sp] - bl DisplaySprite -_0808126E: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08081280: .4byte gPlayer -_08081284: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc deleted file mode 100644 index 64a12a35be..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC1.inc +++ /dev/null @@ -1,574 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov r8, r0 - str r1, [sp] - str r2, [sp, #4] - str r3, [sp, #8] - movs r0, #0 - str r0, [sp, #0xc] - movs r1, #0 - str r1, [sp, #0x10] - movs r6, #0 - ldr r4, _0807ACAC @ =gPartner - ldr r5, _0807ACB0 @ =gPlayer - ldr r2, _0807ACB4 @ =0x0000FA27 - mov sl, r2 -_0807ACA2: - cmp r6, #0 - beq _0807ACB8 - ldr r3, [r4] - mov sb, r3 - b _0807ACBC - .align 2, 0 -_0807ACAC: .4byte gPartner -_0807ACB0: .4byte gPlayer -_0807ACB4: .4byte 0x0000FA27 -_0807ACB8: - ldr r0, [r5] - mov sb, r0 -_0807ACBC: - cmp r6, #0 - beq _0807ACCA - ldr r1, [r4, #0x10] - movs r0, #0x80 - ands r1, r0 - adds r7, r6, #1 - b _0807ACD2 -_0807ACCA: - ldr r1, [r5, #0x10] - movs r0, #0x80 - ands r1, r0 - movs r7, #1 -_0807ACD2: - cmp r1, #0 - beq _0807ACD8 - b _0807B066 -_0807ACD8: - ldr r0, _0807AD44 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _0807ACE6 - adds r7, r6, #1 - cmp r0, #5 - bne _0807AD30 -_0807ACE6: - movs r2, #0 - ldr r1, _0807AD48 @ =gMultiplayerPlayerTasks - ldr r0, [r1] - adds r7, r6, #1 - cmp r0, #0 - beq _0807AD30 - adds r3, r1, #0 -_0807ACF4: - ldr r0, _0807AD4C @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r2, r0 - beq _0807AD1C - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - ldr r0, [r0, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0807AD1C - movs r0, #1 - str r0, [sp, #0x10] -_0807AD1C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bhi _0807AD30 - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - bne _0807ACF4 -_0807AD30: - cmp r6, #0 - beq _0807AD50 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807AD5C - b _0807AD64 - .align 2, 0 -_0807AD44: .4byte gGameMode -_0807AD48: .4byte gMultiplayerPlayerTasks -_0807AD4C: .4byte 0x04000128 -_0807AD50: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0807AD64 -_0807AD5C: - ldr r1, [sp, #0x10] - cmp r1, #0 - bne _0807AD64 - b _0807B066 -_0807AD64: - mov r2, r8 - ldr r0, [r2, #0x40] - asrs r0, r0, #8 - ldr r3, [sp, #4] - adds r0, r3, r0 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - ldr r0, [r2, #0x44] - asrs r0, r0, #8 - ldr r2, [sp, #8] - adds r0, r2, r0 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - ldr r3, _0807ADA0 @ =gPlayer - cmp r6, #0 - beq _0807AD86 - ldr r3, _0807ADA4 @ =gPartner -_0807AD86: - ldr r0, [sp] - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _0807AD92 - b _0807B066 -_0807AD92: - cmp r6, #0 - beq _0807ADAC - ldr r3, _0807ADA8 @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r3, r0] - b _0807ADB2 - .align 2, 0 -_0807ADA0: .4byte gPlayer -_0807ADA4: .4byte gPartner -_0807ADA8: .4byte gPartner + 0x59 -_0807ADAC: - ldr r1, _0807ADC8 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] -_0807ADB2: - ldr r3, _0807ADCC @ =gPlayer - cmp r0, #1 - beq _0807ADDE - cmp r6, #0 - beq _0807ADD4 - ldr r2, _0807ADD0 @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - beq _0807ADDE - b _0807AE34 - .align 2, 0 -_0807ADC8: .4byte gPlayer + 0x59 -_0807ADCC: .4byte gPlayer -_0807ADD0: .4byte gPartner + 0x59 -_0807ADD4: - ldr r1, _0807ADF0 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #2 - bne _0807AE34 -_0807ADDE: - cmp r6, #0 - beq _0807ADF8 - ldr r2, _0807ADF4 @ =gPartner + 0x3D - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _0807AE06 - b _0807AE34 - .align 2, 0 -_0807ADF0: .4byte gPlayer + 0x59 -_0807ADF4: .4byte gPartner + 0x3D -_0807ADF8: - adds r0, r3, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0807AE34 -_0807AE06: - ldr r0, _0807AE20 @ =gPlayer - cmp r6, #0 - beq _0807AE0E - ldr r0, _0807AE24 @ =gPartner -_0807AE0E: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _0807AE2C - movs r0, #5 - ldr r3, _0807AE28 @ =gPartner + 0x40 - strb r0, [r3] - b _0807AE32 - .align 2, 0 -_0807AE20: .4byte gPlayer -_0807AE24: .4byte gPartner -_0807AE28: .4byte gPartner + 0x40 -_0807AE2C: - movs r0, #5 - ldr r1, _0807AE4C @ =gPlayer + 0x40 - strb r0, [r1] -_0807AE32: - ldr r3, _0807AE50 @ =gPlayer -_0807AE34: - ldr r0, _0807AE54 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _0807AE40 - cmp r0, #5 - bne _0807AE5C -_0807AE40: - cmp r6, #0 - beq _0807AE58 - movs r0, #0x1e - strh r0, [r4, #0x1c] - b _0807AE5C - .align 2, 0 -_0807AE4C: .4byte gPlayer + 0x40 -_0807AE50: .4byte gPlayer -_0807AE54: .4byte gGameMode -_0807AE58: - movs r0, #0x1e - strh r0, [r3, #0x1c] -_0807AE5C: - cmp r6, #0 - beq _0807AE6C - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807AE76 -_0807AE6C: - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807AE76: - cmp r6, #0 - beq _0807AE84 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _0807AE8C -_0807AE84: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_0807AE8C: - cmp r6, #0 - beq _0807AEA0 - ldr r0, [r4, #0x10] - ldr r1, _0807AE9C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - b _0807AEA8 - .align 2, 0 -_0807AE9C: .4byte 0xFFFFFEFF -_0807AEA0: - ldr r0, [r5, #0x10] - ldr r1, _0807AEB8 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] -_0807AEA8: - cmp r6, #0 - beq _0807AEBC - ldr r0, [r4, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r4, #0x10] - b _0807AEC4 - .align 2, 0 -_0807AEB8: .4byte 0xFFFFFEFF -_0807AEBC: - ldr r0, [r5, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r5, #0x10] -_0807AEC4: - cmp r6, #0 - beq _0807AED4 - ldr r0, [r4, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807AEDE -_0807AED4: - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807AEDE: - adds r1, r3, #0 - cmp r6, #0 - beq _0807AEE6 - ldr r1, _0807AF04 @ =gPartner -_0807AEE6: - movs r0, #6 - strb r0, [r1, #0xe] - adds r1, r3, #0 - cmp r6, #0 - beq _0807AEF2 - ldr r1, _0807AF04 @ =gPartner -_0807AEF2: - movs r0, #9 - strb r0, [r1, #0xf] - mov r2, r8 - ldr r0, [r2, #0x44] - asrs r1, r0, #8 - cmp r6, #0 - beq _0807AF08 - ldr r0, [r4, #4] - b _0807AF0A - .align 2, 0 -_0807AF04: .4byte gPartner -_0807AF08: - ldr r0, [r3, #4] -_0807AF0A: - asrs r0, r0, #8 - ldr r2, [sp, #8] - subs r0, r0, r2 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - mov r1, r8 - ldr r0, [r1, #0x40] - asrs r1, r0, #8 - cmp r6, #0 - beq _0807AF24 - ldr r0, [r4] - b _0807AF26 -_0807AF24: - ldr r0, [r3] -_0807AF26: - asrs r0, r0, #8 - ldr r3, [sp, #4] - subs r0, r0, r3 - subs r0, r0, r1 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - adds r0, r2, #0 - bl sa2__sub_8004418 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - ldr r1, [sp] - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0807AFC4 - ldr r0, _0807AF5C @ =0x000001FF - cmp r2, r0 - bls _0807AF6C - cmp r6, #0 - beq _0807AF64 - ldr r0, _0807AF60 @ =0x0000F99A - strh r0, [r4, #0xa] - b _0807B054 - .align 2, 0 -_0807AF5C: .4byte 0x000001FF -_0807AF60: .4byte 0x0000F99A -_0807AF64: - ldr r0, _0807AF68 @ =0x0000F99A - b _0807B052 - .align 2, 0 -_0807AF68: .4byte 0x0000F99A -_0807AF6C: - cmp r2, #0xff - bhi _0807AF94 - cmp r6, #0 - beq _0807AF80 - ldr r2, _0807AF7C @ =0x00000297 - strh r2, [r4, #8] - b _0807AF84 - .align 2, 0 -_0807AF7C: .4byte 0x00000297 -_0807AF80: - ldr r3, _0807AF8C @ =0x00000297 - strh r3, [r5, #8] -_0807AF84: - cmp r6, #0 - bne _0807AFAC - ldr r0, _0807AF90 @ =0x000005D9 - b _0807B052 - .align 2, 0 -_0807AF8C: .4byte 0x00000297 -_0807AF90: .4byte 0x000005D9 -_0807AF94: - cmp r6, #0 - beq _0807AFA4 - ldr r0, _0807AFA0 @ =0x0000FD69 - strh r0, [r4, #8] - b _0807AFA8 - .align 2, 0 -_0807AFA0: .4byte 0x0000FD69 -_0807AFA4: - ldr r0, _0807AFB4 @ =0x0000FD69 - strh r0, [r5, #8] -_0807AFA8: - cmp r6, #0 - beq _0807AFBC -_0807AFAC: - ldr r0, _0807AFB8 @ =0x000005D9 - strh r0, [r4, #0xa] - b _0807B054 - .align 2, 0 -_0807AFB4: .4byte 0x0000FD69 -_0807AFB8: .4byte 0x000005D9 -_0807AFBC: - ldr r0, _0807AFC0 @ =0x000005D9 - b _0807B052 - .align 2, 0 -_0807AFC0: .4byte 0x000005D9 -_0807AFC4: - movs r0, #0xf7 - lsls r0, r0, #1 - cmp r2, r0 - bls _0807B014 - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r2, r0 - bls _0807AFF6 - cmp r6, #0 - beq _0807AFDE - subs r0, #0x69 - strh r0, [r4, #8] - b _0807AFE2 -_0807AFDE: - ldr r1, _0807AFEC @ =0x00000297 - strh r1, [r5, #8] -_0807AFE2: - cmp r6, #0 - beq _0807AFF0 - mov r2, sl - strh r2, [r4, #0xa] - b _0807B054 - .align 2, 0 -_0807AFEC: .4byte 0x00000297 -_0807AFF0: - mov r3, sl - strh r3, [r5, #0xa] - b _0807B054 -_0807AFF6: - cmp r6, #0 - beq _0807B004 - ldr r0, _0807B000 @ =0x0000FD69 - strh r0, [r4, #8] - b _0807B008 - .align 2, 0 -_0807B000: .4byte 0x0000FD69 -_0807B004: - ldr r0, _0807B010 @ =0x0000FD69 - strh r0, [r5, #8] -_0807B008: - cmp r6, #0 - bne _0807B030 - b _0807B03C - .align 2, 0 -_0807B010: .4byte 0x0000FD69 -_0807B014: - cmp r2, #0x14 - bhi _0807B042 - cmp r6, #0 - beq _0807B028 - ldr r2, _0807B024 @ =0x00000297 - strh r2, [r4, #8] - b _0807B02C - .align 2, 0 -_0807B024: .4byte 0x00000297 -_0807B028: - ldr r3, _0807B038 @ =0x00000297 - strh r3, [r5, #8] -_0807B02C: - cmp r6, #0 - beq _0807B03C -_0807B030: - mov r0, sl - strh r0, [r4, #0xa] - b _0807B054 - .align 2, 0 -_0807B038: .4byte 0x00000297 -_0807B03C: - mov r1, sl - strh r1, [r5, #0xa] - b _0807B054 -_0807B042: - cmp r6, #0 - beq _0807B050 - ldr r0, _0807B04C @ =0x00000666 - strh r0, [r4, #0xa] - b _0807B054 - .align 2, 0 -_0807B04C: .4byte 0x00000666 -_0807B050: - ldr r0, _0807B070 @ =0x00000666 -_0807B052: - strh r0, [r5, #0xa] -_0807B054: - movs r0, #0xb8 - bl m4aSongNumStart - mov r1, r8 - adds r1, #0x4c - movs r0, #0 - strb r0, [r1] - movs r2, #1 - str r2, [sp, #0xc] -_0807B066: - cmp r6, #0 - beq _0807B074 - mov r3, sb - str r3, [r4] - b _0807B078 - .align 2, 0 -_0807B070: .4byte 0x00000666 -_0807B074: - mov r0, sb - str r0, [r5] -_0807B078: - adds r6, r7, #0 - ldr r0, _0807B09C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r6, r0 - bge _0807B088 - b _0807ACA2 -_0807B088: - ldr r0, [sp, #0xc] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807B09C: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc deleted file mode 100644 index 0af0925533..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/bumpers__BumperCheckCollAndPosC3.inc +++ /dev/null @@ -1,1160 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - str r0, [sp] - str r1, [sp, #4] - str r2, [sp, #8] - adds r7, r3, #0 - movs r0, #0 - mov sb, r0 - movs r1, #0 - str r1, [sp, #0xc] - movs r6, #0 - ldr r4, _0807B468 @ =gPartner - ldr r5, _0807B46C @ =gPlayer - movs r2, #4 - mov sl, r2 -BumperCheckCollAndPosC3_loop: @ 0x0807B45A - cmp r6, #0 - beq _0807B470 - ldr r0, [r4] - mov r8, r0 - ldr r1, _0807B46C @ =gPlayer - mov ip, r1 - b _0807B478 - .align 2, 0 -_0807B468: .4byte gPartner -_0807B46C: .4byte gPlayer -_0807B470: - ldr r2, [r5] - mov r8, r2 - ldr r0, _0807B50C @ =gPlayer - mov ip, r0 -_0807B478: - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - lsls r0, r7, #0x10 - asrs r2, r0, #0x10 - mov r3, ip - cmp r6, #0 - beq _0807B48A - ldr r3, _0807B510 @ =gPartner -_0807B48A: - ldr r0, [sp, #4] - bl Coll_Player_Entity_Intersection - adds r2, r6, #1 - str r2, [sp, #0x10] - cmp r0, #0 - bne _0807B49C - bl _0807BC64 -_0807B49C: - ldr r0, _0807B514 @ =gGameMode - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #3 - beq _0807B4AA - cmp r1, #5 - bne _0807B4FA -_0807B4AA: - movs r1, #0 - ldr r2, _0807B518 @ =gMultiplayerPlayerTasks - ldr r0, [r2] - mov ip, r0 - adds r0, r6, #1 - str r0, [sp, #0x10] - mov r0, ip - cmp r0, #0 - beq _0807B4FA - mov ip, r2 -_0807B4BE: - ldr r0, _0807B51C @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r1, r0 - beq _0807B4E6 - lsls r0, r1, #2 - add r0, ip - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r0, r0, r2 - ldr r0, [r0, #0x5c] - mov r2, sl - ands r0, r2 - cmp r0, #0 - beq _0807B4E6 - movs r0, #1 - str r0, [sp, #0xc] -_0807B4E6: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bhi _0807B4FA - lsls r0, r1, #2 - add r0, ip - ldr r0, [r0] - cmp r0, #0 - bne _0807B4BE -_0807B4FA: - cmp r6, #0 - beq _0807B520 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807B52C - b _0807B534 - .align 2, 0 -_0807B50C: .4byte gPlayer -_0807B510: .4byte gPartner -_0807B514: .4byte gGameMode -_0807B518: .4byte gMultiplayerPlayerTasks -_0807B51C: .4byte 0x04000128 -_0807B520: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0807B534 -_0807B52C: - ldr r1, [sp, #0xc] - cmp r1, #0 - bne _0807B534 - b _0807BC64 -_0807B534: - ldr r2, [sp, #4] - ldr r1, [r2, #0x10] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0807B544 - b _0807B8C2 -_0807B544: - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - cmp r1, #0 - bne _0807B550 - b _0807B70A -_0807B550: - mov r1, r8 - asrs r0, r1, #8 - ldr r2, [sp, #8] - subs r0, r2, r0 - movs r1, #0x41 - subs r1, r1, r0 - cmp r6, #0 - beq _0807B56C - ldr r0, [r4, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - blt _0807B578 - b _0807BC64 -_0807B56C: - ldr r0, [r5, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - blt _0807B578 - b _0807BC64 -_0807B578: - cmp r6, #0 - beq _0807B584 - ldr r1, _0807B580 @ =gPartner + 0x59 - b _0807B586 - .align 2, 0 -_0807B580: .4byte gPartner + 0x59 -_0807B584: - ldr r1, _0807B5A4 @ =gPlayer + 0x59 -_0807B586: - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r2, _0807B5A8 @ =gPlayer - mov ip, r2 - cmp r0, #1 - beq _0807B5BA - cmp r6, #0 - beq _0807B5B0 - ldr r1, _0807B5AC @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #2 - beq _0807B5BA - b _0807B618 - .align 2, 0 -_0807B5A4: .4byte gPlayer + 0x59 -_0807B5A8: .4byte gPlayer -_0807B5AC: .4byte gPartner + 0x59 -_0807B5B0: - ldr r2, _0807B5CC @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0807B618 -_0807B5BA: - cmp r6, #0 - beq _0807B5D4 - ldr r1, _0807B5D0 @ =gPartner + 0x3D - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _0807B5E2 - b _0807B618 - .align 2, 0 -_0807B5CC: .4byte gPlayer + 0x59 -_0807B5D0: .4byte gPartner + 0x3D -_0807B5D4: - mov r0, ip - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0807B618 -_0807B5E2: - ldr r0, _0807B600 @ =gPlayer - cmp r6, #0 - beq _0807B5EA - ldr r0, _0807B604 @ =gPartner -_0807B5EA: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _0807B60C - movs r0, #5 - ldr r2, _0807B608 @ =gPartner + 0x40 - strb r0, [r2] - ldr r0, _0807B600 @ =gPlayer - mov ip, r0 - b _0807B616 - .align 2, 0 -_0807B600: .4byte gPlayer -_0807B604: .4byte gPartner -_0807B608: .4byte gPartner + 0x40 -_0807B60C: - movs r0, #5 - ldr r1, _0807B62C @ =gPlayer + 0x40 - strb r0, [r1] - ldr r2, _0807B630 @ =gPlayer - mov ip, r2 -_0807B616: - ldr r3, _0807B634 @ =gGameMode -_0807B618: - ldrb r0, [r3] - cmp r0, #3 - beq _0807B622 - cmp r0, #5 - bne _0807B63E -_0807B622: - cmp r6, #0 - beq _0807B638 - movs r0, #0x1e - strh r0, [r4, #0x1c] - b _0807B63E - .align 2, 0 -_0807B62C: .4byte gPlayer + 0x40 -_0807B630: .4byte gPlayer -_0807B634: .4byte gGameMode -_0807B638: - movs r0, #0x1e - mov r1, ip - strh r0, [r1, #0x1c] -_0807B63E: - cmp r6, #0 - beq _0807B64E - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807B658 -_0807B64E: - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807B658: - cmp r6, #0 - beq _0807B666 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _0807B66E -_0807B666: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_0807B66E: - cmp r6, #0 - beq _0807B680 - ldr r0, [r4, #0x10] - ldr r1, _0807B67C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - b _0807B688 - .align 2, 0 -_0807B67C: .4byte 0xFFFFFEFF -_0807B680: - ldr r0, [r5, #0x10] - ldr r1, _0807B698 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] -_0807B688: - cmp r6, #0 - beq _0807B69C - ldr r0, [r4, #0x10] - mov r2, sl - orrs r0, r2 - str r0, [r4, #0x10] - b _0807B6A4 - .align 2, 0 -_0807B698: .4byte 0xFFFFFEFF -_0807B69C: - ldr r0, [r5, #0x10] - mov r1, sl - orrs r0, r1 - str r0, [r5, #0x10] -_0807B6A4: - cmp r6, #0 - beq _0807B6B4 - ldr r0, [r4, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807B6BE -_0807B6B4: - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807B6BE: - mov r1, ip - cmp r6, #0 - beq _0807B6C6 - ldr r1, _0807B6E0 @ =gPartner -_0807B6C6: - movs r0, #6 - strb r0, [r1, #0xe] - mov r1, ip - cmp r6, #0 - beq _0807B6D2 - ldr r1, _0807B6E0 @ =gPartner -_0807B6D2: - movs r0, #9 - strb r0, [r1, #0xf] - cmp r6, #0 - beq _0807B6E8 - ldr r2, _0807B6E4 @ =0xFFFFFB50 - strh r2, [r4, #8] - b _0807B6EE - .align 2, 0 -_0807B6E0: .4byte gPartner -_0807B6E4: .4byte 0xFFFFFB50 -_0807B6E8: - ldr r1, _0807B6FC @ =0xFFFFFB50 - mov r0, ip - strh r1, [r0, #8] -_0807B6EE: - cmp r6, #0 - beq _0807B700 - movs r0, #0x96 - lsls r0, r0, #3 - strh r0, [r4, #0xa] - b _0807BC52 - .align 2, 0 -_0807B6FC: .4byte 0xFFFFFB50 -_0807B700: - movs r0, #0x96 - lsls r0, r0, #3 - mov r2, ip - strh r0, [r2, #0xa] - b _0807BC52 -_0807B70A: - mov r1, r8 - asrs r0, r1, #8 - ldr r2, [sp, #8] - subs r0, r0, r2 - movs r1, #0x41 - subs r1, r1, r0 - cmp r6, #0 - beq _0807B726 - ldr r0, [r4, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - blt _0807B732 - b _0807BC64 -_0807B726: - ldr r0, [r5, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - blt _0807B732 - b _0807BC64 -_0807B732: - cmp r6, #0 - beq _0807B740 - ldr r1, _0807B73C @ =gPartner + 0x59 - b _0807B742 - .align 2, 0 -_0807B73C: .4byte gPartner + 0x59 -_0807B740: - ldr r1, _0807B760 @ =gPlayer + 0x59 -_0807B742: - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r2, _0807B764 @ =gPlayer - mov ip, r2 - cmp r0, #1 - beq _0807B776 - cmp r6, #0 - beq _0807B76C - ldr r1, _0807B768 @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #2 - beq _0807B776 - b _0807B7D4 - .align 2, 0 -_0807B760: .4byte gPlayer + 0x59 -_0807B764: .4byte gPlayer -_0807B768: .4byte gPartner + 0x59 -_0807B76C: - ldr r2, _0807B788 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0807B7D4 -_0807B776: - cmp r6, #0 - beq _0807B790 - ldr r1, _0807B78C @ =gPartner + 0x3D - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _0807B79E - b _0807B7D4 - .align 2, 0 -_0807B788: .4byte gPlayer + 0x59 -_0807B78C: .4byte gPartner + 0x3D -_0807B790: - mov r0, ip - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0807B7D4 -_0807B79E: - ldr r0, _0807B7BC @ =gPlayer - cmp r6, #0 - beq _0807B7A6 - ldr r0, _0807B7C0 @ =gPartner -_0807B7A6: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _0807B7C8 - movs r0, #5 - ldr r2, _0807B7C4 @ =gPartner + 0x40 - strb r0, [r2] - ldr r0, _0807B7BC @ =gPlayer - mov ip, r0 - b _0807B7D2 - .align 2, 0 -_0807B7BC: .4byte gPlayer -_0807B7C0: .4byte gPartner -_0807B7C4: .4byte gPartner + 0x40 -_0807B7C8: - movs r0, #5 - ldr r1, _0807B7E8 @ =gPlayer + 0x40 - strb r0, [r1] - ldr r2, _0807B7EC @ =gPlayer - mov ip, r2 -_0807B7D2: - ldr r3, _0807B7F0 @ =gGameMode -_0807B7D4: - ldrb r0, [r3] - cmp r0, #3 - beq _0807B7DE - cmp r0, #5 - bne _0807B7FA -_0807B7DE: - cmp r6, #0 - beq _0807B7F4 - movs r0, #0x1e - strh r0, [r4, #0x1c] - b _0807B7FA - .align 2, 0 -_0807B7E8: .4byte gPlayer + 0x40 -_0807B7EC: .4byte gPlayer -_0807B7F0: .4byte gGameMode -_0807B7F4: - movs r0, #0x1e - mov r1, ip - strh r0, [r1, #0x1c] -_0807B7FA: - cmp r6, #0 - beq _0807B80A - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807B814 -_0807B80A: - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807B814: - cmp r6, #0 - beq _0807B822 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _0807B82A -_0807B822: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_0807B82A: - cmp r6, #0 - beq _0807B83C - ldr r0, [r4, #0x10] - ldr r1, _0807B838 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - b _0807B844 - .align 2, 0 -_0807B838: .4byte 0xFFFFFEFF -_0807B83C: - ldr r0, [r5, #0x10] - ldr r1, _0807B854 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] -_0807B844: - cmp r6, #0 - beq _0807B858 - ldr r0, [r4, #0x10] - mov r2, sl - orrs r0, r2 - str r0, [r4, #0x10] - b _0807B860 - .align 2, 0 -_0807B854: .4byte 0xFFFFFEFF -_0807B858: - ldr r0, [r5, #0x10] - mov r1, sl - orrs r0, r1 - str r0, [r5, #0x10] -_0807B860: - cmp r6, #0 - beq _0807B870 - ldr r0, [r4, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807B87A -_0807B870: - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807B87A: - mov r1, ip - cmp r6, #0 - beq _0807B882 - ldr r1, _0807B8A0 @ =gPartner -_0807B882: - movs r0, #6 - strb r0, [r1, #0xe] - mov r1, ip - cmp r6, #0 - beq _0807B88E - ldr r1, _0807B8A0 @ =gPartner -_0807B88E: - movs r0, #9 - strb r0, [r1, #0xf] - cmp r6, #0 - beq _0807B8A4 - movs r0, #0x96 - lsls r0, r0, #3 - strh r0, [r4, #8] - b _0807B8AC - .align 2, 0 -_0807B8A0: .4byte gPartner -_0807B8A4: - movs r0, #0x96 - lsls r0, r0, #3 - mov r2, ip - strh r0, [r2, #8] -_0807B8AC: - cmp r6, #0 - beq _0807B8B8 - movs r0, #0x96 - lsls r0, r0, #3 - strh r0, [r4, #0xa] - b _0807BA82 -_0807B8B8: - movs r0, #0x96 - lsls r0, r0, #3 - mov r1, ip - strh r0, [r1, #0xa] - b _0807BA82 -_0807B8C2: - movs r0, #0x80 - lsls r0, r0, #3 - ands r1, r0 - cmp r1, #0 - bne _0807B8CE - b _0807BA9C -_0807B8CE: - mov r1, r8 - asrs r0, r1, #8 - ldr r2, [sp, #8] - subs r0, r2, r0 - adds r1, r0, #0 - subs r1, #0x3c - cmp r6, #0 - beq _0807B8EA - ldr r0, [r4, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - bgt _0807B8F6 - b _0807BC64 -_0807B8EA: - ldr r0, [r5, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - bgt _0807B8F6 - b _0807BC64 -_0807B8F6: - cmp r6, #0 - beq _0807B904 - ldr r1, _0807B900 @ =gPartner + 0x59 - b _0807B906 - .align 2, 0 -_0807B900: .4byte gPartner + 0x59 -_0807B904: - ldr r1, _0807B924 @ =gPlayer + 0x59 -_0807B906: - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r2, _0807B928 @ =gPlayer - mov ip, r2 - cmp r0, #1 - beq _0807B93A - cmp r6, #0 - beq _0807B930 - ldr r1, _0807B92C @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #2 - beq _0807B93A - b _0807B998 - .align 2, 0 -_0807B924: .4byte gPlayer + 0x59 -_0807B928: .4byte gPlayer -_0807B92C: .4byte gPartner + 0x59 -_0807B930: - ldr r2, _0807B94C @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0807B998 -_0807B93A: - cmp r6, #0 - beq _0807B954 - ldr r1, _0807B950 @ =gPartner + 0x3D - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _0807B962 - b _0807B998 - .align 2, 0 -_0807B94C: .4byte gPlayer + 0x59 -_0807B950: .4byte gPartner + 0x3D -_0807B954: - mov r0, ip - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0807B998 -_0807B962: - ldr r0, _0807B980 @ =gPlayer - cmp r6, #0 - beq _0807B96A - ldr r0, _0807B984 @ =gPartner -_0807B96A: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _0807B98C - movs r0, #5 - ldr r2, _0807B988 @ =gPartner + 0x40 - strb r0, [r2] - ldr r0, _0807B980 @ =gPlayer - mov ip, r0 - b _0807B996 - .align 2, 0 -_0807B980: .4byte gPlayer -_0807B984: .4byte gPartner -_0807B988: .4byte gPartner + 0x40 -_0807B98C: - movs r0, #5 - ldr r1, _0807B9AC @ =gPlayer + 0x40 - strb r0, [r1] - ldr r2, _0807B9B0 @ =gPlayer - mov ip, r2 -_0807B996: - ldr r3, _0807B9B4 @ =gGameMode -_0807B998: - ldrb r0, [r3] - cmp r0, #3 - beq _0807B9A2 - cmp r0, #5 - bne _0807B9BE -_0807B9A2: - cmp r6, #0 - beq _0807B9B8 - movs r0, #0x1e - strh r0, [r4, #0x1c] - b _0807B9BE - .align 2, 0 -_0807B9AC: .4byte gPlayer + 0x40 -_0807B9B0: .4byte gPlayer -_0807B9B4: .4byte gGameMode -_0807B9B8: - movs r0, #0x1e - mov r1, ip - strh r0, [r1, #0x1c] -_0807B9BE: - cmp r6, #0 - beq _0807B9CE - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807B9D8 -_0807B9CE: - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807B9D8: - cmp r6, #0 - beq _0807B9E6 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _0807B9EE -_0807B9E6: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_0807B9EE: - cmp r6, #0 - beq _0807BA00 - ldr r0, [r4, #0x10] - ldr r1, _0807B9FC @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - b _0807BA08 - .align 2, 0 -_0807B9FC: .4byte 0xFFFFFEFF -_0807BA00: - ldr r0, [r5, #0x10] - ldr r1, _0807BA18 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] -_0807BA08: - cmp r6, #0 - beq _0807BA1C - ldr r0, [r4, #0x10] - mov r2, sl - orrs r0, r2 - str r0, [r4, #0x10] - b _0807BA24 - .align 2, 0 -_0807BA18: .4byte 0xFFFFFEFF -_0807BA1C: - ldr r0, [r5, #0x10] - mov r1, sl - orrs r0, r1 - str r0, [r5, #0x10] -_0807BA24: - cmp r6, #0 - beq _0807BA34 - ldr r0, [r4, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807BA3E -_0807BA34: - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807BA3E: - mov r1, ip - cmp r6, #0 - beq _0807BA46 - ldr r1, _0807BA60 @ =gPartner -_0807BA46: - movs r0, #6 - strb r0, [r1, #0xe] - mov r1, ip - cmp r6, #0 - beq _0807BA52 - ldr r1, _0807BA60 @ =gPartner -_0807BA52: - movs r0, #9 - strb r0, [r1, #0xf] - cmp r6, #0 - beq _0807BA68 - ldr r2, _0807BA64 @ =0xFFFFFB50 - strh r2, [r4, #8] - b _0807BA6E - .align 2, 0 -_0807BA60: .4byte gPartner -_0807BA64: .4byte 0xFFFFFB50 -_0807BA68: - ldr r1, _0807BA78 @ =0xFFFFFB50 - mov r0, ip - strh r1, [r0, #8] -_0807BA6E: - cmp r6, #0 - beq _0807BA7C - ldr r2, _0807BA78 @ =0xFFFFFB50 - strh r2, [r4, #0xa] - b _0807BA82 - .align 2, 0 -_0807BA78: .4byte 0xFFFFFB50 -_0807BA7C: - ldr r1, _0807BA98 @ =0xFFFFFB50 - mov r0, ip - strh r1, [r0, #0xa] -_0807BA82: - movs r0, #0xb8 - bl m4aSongNumStart - ldr r1, [sp] - adds r1, #0x4c - movs r0, #0 - strb r0, [r1] - movs r2, #1 - mov sb, r2 - b _0807BC64 - .align 2, 0 -_0807BA98: .4byte 0xFFFFFB50 -_0807BA9C: - mov r1, r8 - asrs r0, r1, #8 - ldr r2, [sp, #8] - subs r0, r0, r2 - adds r1, r0, #0 - subs r1, #0x3c - cmp r6, #0 - beq _0807BAB8 - ldr r0, [r4, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - bgt _0807BAC4 - b _0807BC64 -_0807BAB8: - ldr r0, [r5, #4] - asrs r0, r0, #8 - subs r0, r0, r7 - cmp r0, r1 - bgt _0807BAC4 - b _0807BC64 -_0807BAC4: - cmp r6, #0 - beq _0807BAD0 - ldr r1, _0807BACC @ =gPartner + 0x59 - b _0807BAD2 - .align 2, 0 -_0807BACC: .4byte gPartner + 0x59 -_0807BAD0: - ldr r1, _0807BAF0 @ =gPlayer + 0x59 -_0807BAD2: - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r2, _0807BAF4 @ =gPlayer - mov ip, r2 - cmp r0, #1 - beq _0807BB06 - cmp r6, #0 - beq _0807BAFC - ldr r1, _0807BAF8 @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #2 - beq _0807BB06 - b _0807BB64 - .align 2, 0 -_0807BAF0: .4byte gPlayer + 0x59 -_0807BAF4: .4byte gPlayer -_0807BAF8: .4byte gPartner + 0x59 -_0807BAFC: - ldr r2, _0807BB18 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0807BB64 -_0807BB06: - cmp r6, #0 - beq _0807BB20 - ldr r1, _0807BB1C @ =gPartner + 0x3D - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _0807BB2E - b _0807BB64 - .align 2, 0 -_0807BB18: .4byte gPlayer + 0x59 -_0807BB1C: .4byte gPartner + 0x3D -_0807BB20: - mov r0, ip - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0807BB64 -_0807BB2E: - ldr r0, _0807BB4C @ =gPlayer - cmp r6, #0 - beq _0807BB36 - ldr r0, _0807BB50 @ =gPartner -_0807BB36: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _0807BB58 - movs r0, #5 - ldr r2, _0807BB54 @ =gPartner + 0x40 - strb r0, [r2] - ldr r0, _0807BB4C @ =gPlayer - mov ip, r0 - b _0807BB62 - .align 2, 0 -_0807BB4C: .4byte gPlayer -_0807BB50: .4byte gPartner -_0807BB54: .4byte gPartner + 0x40 -_0807BB58: - movs r0, #5 - ldr r1, _0807BB78 @ =gPlayer + 0x40 - strb r0, [r1] - ldr r2, _0807BB7C @ =gPlayer - mov ip, r2 -_0807BB62: - ldr r3, _0807BB80 @ =gGameMode -_0807BB64: - ldrb r0, [r3] - cmp r0, #3 - beq _0807BB6E - cmp r0, #5 - bne _0807BB8A -_0807BB6E: - cmp r6, #0 - beq _0807BB84 - movs r0, #0x1e - strh r0, [r4, #0x1c] - b _0807BB8A - .align 2, 0 -_0807BB78: .4byte gPlayer + 0x40 -_0807BB7C: .4byte gPlayer -_0807BB80: .4byte gGameMode -_0807BB84: - movs r0, #0x1e - mov r1, ip - strh r0, [r1, #0x1c] -_0807BB8A: - cmp r6, #0 - beq _0807BB9A - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807BBA4 -_0807BB9A: - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807BBA4: - cmp r6, #0 - beq _0807BBB2 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _0807BBBA -_0807BBB2: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_0807BBBA: - cmp r6, #0 - beq _0807BBCC - ldr r0, [r4, #0x10] - ldr r1, _0807BBC8 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - b _0807BBD4 - .align 2, 0 -_0807BBC8: .4byte 0xFFFFFEFF -_0807BBCC: - ldr r0, [r5, #0x10] - ldr r1, _0807BBE4 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] -_0807BBD4: - cmp r6, #0 - beq _0807BBE8 - ldr r0, [r4, #0x10] - mov r2, sl - orrs r0, r2 - str r0, [r4, #0x10] - b _0807BBF0 - .align 2, 0 -_0807BBE4: .4byte 0xFFFFFEFF -_0807BBE8: - ldr r0, [r5, #0x10] - mov r1, sl - orrs r0, r1 - str r0, [r5, #0x10] -_0807BBF0: - cmp r6, #0 - beq _0807BC00 - ldr r0, [r4, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0807BC0A -_0807BC00: - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] -_0807BC0A: - mov r1, ip - cmp r6, #0 - beq _0807BC12 - ldr r1, _0807BC30 @ =gPartner -_0807BC12: - movs r0, #6 - strb r0, [r1, #0xe] - mov r1, ip - cmp r6, #0 - beq _0807BC1E - ldr r1, _0807BC30 @ =gPartner -_0807BC1E: - movs r0, #9 - strb r0, [r1, #0xf] - cmp r6, #0 - beq _0807BC34 - movs r0, #0x96 - lsls r0, r0, #3 - strh r0, [r4, #8] - b _0807BC3C - .align 2, 0 -_0807BC30: .4byte gPartner -_0807BC34: - movs r0, #0x96 - lsls r0, r0, #3 - mov r2, ip - strh r0, [r2, #8] -_0807BC3C: - cmp r6, #0 - beq _0807BC4C - ldr r0, _0807BC48 @ =0xFFFFFB50 - strh r0, [r4, #0xa] - b _0807BC52 - .align 2, 0 -_0807BC48: .4byte 0xFFFFFB50 -_0807BC4C: - ldr r2, _0807BC70 @ =0xFFFFFB50 - mov r1, ip - strh r2, [r1, #0xa] -_0807BC52: - movs r0, #0xb8 - bl m4aSongNumStart - ldr r1, [sp] - adds r1, #0x4c - movs r0, #0 - strb r0, [r1] - movs r0, #1 - mov sb, r0 -_0807BC64: - cmp r6, #0 - beq _0807BC74 - mov r1, r8 - str r1, [r4] - b _0807BC78 - .align 2, 0 -_0807BC70: .4byte 0xFFFFFB50 -_0807BC74: - mov r2, r8 - str r2, [r5] -_0807BC78: - ldr r6, [sp, #0x10] - ldr r0, _0807BC9C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r6, r0 - bge _0807BC8A - bl BumperCheckCollAndPosC3_loop -_0807BC8A: - mov r0, sb - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807BC9C: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc deleted file mode 100644 index 7f78c07856..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_CarouselIdle.inc +++ /dev/null @@ -1,640 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r4, _080857CC @ =gCurTask - ldr r0, [r4] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r1, r1, r0 - mov sb, r1 @ sb = carousel - ldr r1, _080857D0 @ =0x0300000C - adds r1, r0, r1 - str r1, [sp] @ sp00 = s1 - ldr r2, _080857D4 @ =0x0300003C - adds r2, r0, r2 - str r2, [sp, #4] @ sp04 = s2 - mov r3, sb - ldr r6, [r3] @ r6 = me - ldrb r2, [r3, #8] - lsls r2, r2, #3 - ldrh r0, [r3, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 @ r2 = worldX << 16 - ldrb r1, [r6, #1] - lsls r1, r1, #3 - ldrh r0, [r3, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 @ r1 = worldY << 16 - ldr r5, _080857D8 @ =gCamera - ldrh r3, [r5] - lsrs r7, r2, #0x10 - mov r8, r7 @ r8 = worldX - asrs r2, r2, #0x10 - subs r3, r2, r3 - ldr r0, [sp] - strh r3, [r0, #0x16] @ s->x = worldX - gCamera.x; - ldrh r0, [r5, #2] - lsrs r7, r1, #0x10 - str r7, [sp, #8] @ sp08 = worldY - asrs r1, r1, #0x10 - subs r0, r1, r0 - ldr r7, [sp] @ r7 = sp00 = s1 - strh r0, [r7, #0x18] @ s->y = worldY - gCamera.y; - ldr r0, [sp, #4] @ r0 = sp04 = s2 - strh r3, [r0, #0x16] - ldrh r0, [r7, #0x18] - ldr r3, [sp, #4] @ r0 = sp04 = s2 - strh r0, [r3, #0x18] - movs r7, #0 - ldrsh r3, [r5, r7] - movs r7, #0xb8 - lsls r7, r7, #1 - adds r0, r3, r7 - cmp r2, r0 - bgt _08085796 - adds r0, r3, #0 - subs r0, #0x80 - cmp r2, r0 - blt _08085796 - movs r0, #2 - ldrsh r3, [r5, r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r3, r2 - cmp r1, r0 - bgt _08085796 - adds r0, r3, #0 - subs r0, #0x80 - cmp r1, r0 - bge _080857DC -_08085796: - ldr r3, [sp] @ r3 = sp00 = s1 - ldrh r0, [r3, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _080857BC - movs r7, #0x18 - ldrsh r0, [r3, r7] - adds r0, #0x80 - cmp r0, #0 - blt _080857BC - movs r0, #0x18 - ldrsh r1, [r3, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _080857DC -_080857BC: - mov r1, sb - ldrb r0, [r1, #8] - strb r0, [r6] - ldr r0, [r4] - bl TaskDestroy - b _08085B94_return - .align 2, 0 -_080857CC: .4byte gCurTask -_080857D0: .4byte 0x0300000C -_080857D4: .4byte 0x0300003C -_080857D8: .4byte gCamera -_080857DC: - movs r5, #0 - mov r2, r8 - lsls r2, r2, #0x10 - mov sl, r2 @ sl = worldX << 16 - ldr r6, _080857F4 @ =gPartner - ldr r7, _080857F8 @ =gPlayer -_080857E8_loop: - cmp r5, #0 - bne _080857F0 - cmp r5, #0 - beq _080857FC -_080857F0: - ldr r0, [r6, #0x10] - b _080857FE - .align 2, 0 -_080857F4: .4byte gPartner -_080857F8: .4byte gPlayer -_080857FC: - ldr r0, [r7, #0x10] -_080857FE: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08085808 - b _08085B78_continue -_08085808: - cmp r5, #0 - beq _08085824 - ldr r3, _0808581C @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #2 - beq _08085832 - ldr r3, _08085820 @ =gPlayer - b _08085906 - .align 2, 0 -_0808581C: .4byte gPartner + 0x59 -_08085820: .4byte gPlayer -_08085824: - ldr r1, _08085840 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r3, _08085844 @ =gPlayer - cmp r0, #2 - beq _08085832 - b _08085906 -_08085832: - cmp r5, #0 - beq _0808584C - ldr r2, _08085848 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r2, r0] - b _08085852 - .align 2, 0 -_08085840: .4byte gPlayer + 0x59 -_08085844: .4byte gPlayer -_08085848: .4byte gPartner + 0x40 -_0808584C: - ldr r3, _08085864 @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r3, r0] -_08085852: - cmp r0, #0x46 - bne _08085858 - b _08085B78_continue -_08085858: - cmp r5, #0 - beq _0808586C - ldr r1, _08085868 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r1, r0] - b _08085872 - .align 2, 0 -_08085864: .4byte gPlayer + 0x40 -_08085868: .4byte gPartner + 0x40 -_0808586C: - ldr r2, _08085884 @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r2, r0] -_08085872: - cmp r0, #0x47 - bne _08085878 - b _08085B78_continue -_08085878: - cmp r5, #0 - beq _0808588C - ldr r3, _08085888 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r3, r0] - b _08085892 - .align 2, 0 -_08085884: .4byte gPlayer + 0x40 -_08085888: .4byte gPartner + 0x40 -_0808588C: - ldr r1, _080858A4 @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r1, r0] -_08085892: - cmp r0, #0x48 - bne _08085898 - b _08085B78_continue -_08085898: - cmp r5, #0 - beq _080858AC - ldr r2, _080858A8 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r2, r0] - b _080858B2 - .align 2, 0 -_080858A4: .4byte gPlayer + 0x40 -_080858A8: .4byte gPartner + 0x40 -_080858AC: - ldr r3, _080858C4 @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r3, r0] -_080858B2: - cmp r0, #0x49 - bne _080858B8 - b _08085B78_continue -_080858B8: - cmp r5, #0 - beq _080858CC - ldr r1, _080858C8 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r1, r0] - b _080858D2 - .align 2, 0 -_080858C4: .4byte gPlayer + 0x40 -_080858C8: .4byte gPartner + 0x40 -_080858CC: - ldr r2, _080858EC @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r2, r0] -_080858D2: - cmp r0, #0x4a - bne _080858D8 - b _08085B78_continue -_080858D8: - cmp r5, #0 - beq _080858F8 - ldr r3, _080858F0 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0x4b - bne _080858E8 - b _08085B78_continue -_080858E8: - ldr r3, _080858F4 @ =gPlayer - b _08085906 - .align 2, 0 -_080858EC: .4byte gPlayer + 0x40 -_080858F0: .4byte gPartner + 0x40 -_080858F4: .4byte gPlayer -_080858F8: - ldr r1, _08085934 @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r3, _08085938 @ =gPlayer - cmp r0, #0x4b - bne _08085906 - b _08085B78_continue -_08085906: - mov r2, sl @ r2 = sl = worldX << 16 - asrs r4, r2, #0x10 @ r4 = worldX - ldr r1, [sp, #8] @ r1 = sp08 = worldY - lsls r0, r1, #0x10 - asrs r2, r0, #0x10 @ r2 = worldY - mov r8, r0 @ r8 = worldY << 16 - cmp r5, #0 - beq _08085918 - ldr r3, _0808593C @ =gPartner -_08085918: - ldr r0, [sp] @ r0 = sp00 = s1 - adds r1, r4, #0 - bl Coll_Player_PlatformCrumbling - adds r1, r4, #0 - subs r1, #8 - cmp r5, #0 - beq _08085940 - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - ble _0808594A - b _08085B78_continue - .align 2, 0 -_08085934: .4byte gPlayer + 0x40 -_08085938: .4byte gPlayer -_0808593C: .4byte gPartner -_08085940: - ldr r0, [r7] - asrs r0, r0, #8 - cmp r1, r0 - ble _0808594A - b _08085B78_continue -_0808594A: - mov r2, sl @ r2 = sl = worldX << 16 - asrs r0, r2, #0x10 - adds r1, r0, #0 - adds r1, #8 - cmp r5, #0 - beq _08085960 - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808596A - b _08085B78_continue -_08085960: - ldr r0, [r7] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808596A - b _08085B78_continue -_0808596A: - mov r3, r8 @ r3 = r8 = worldY << 16 - asrs r0, r3, #0x10 - adds r1, r0, #0 - subs r1, #0x30 - cmp r5, #0 - beq _08085980 - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _0808598A - b _08085B78_continue -_08085980: - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _0808598A - b _08085B78_continue -_0808598A: - mov r1, r8 @ r1 = r8 = worldY << 16 - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0xc - cmp r5, #0 - beq _080859A0 - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _080859AA - b _08085B78_continue -_080859A0: - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _080859AA - b _08085B78_continue -_080859AA: - mov r2, sb @ r2 = sb = carousel - adds r2, #0x79 - movs r0, #1 - lsls r0, r5 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _080859C6 - movs r2, #8 - ldrsh r0, [r6, r2] - cmp r0, #0 - blt _080859CE - b _080859DE -_080859C6: - movs r3, #8 - ldrsh r0, [r7, r3] - cmp r0, #0 - bge _080859DE -_080859CE: - cmp r5, #0 - beq _080859D8 - ldrh r0, [r6, #8] - rsbs r0, r0, #0 - b _080859E8 -_080859D8: - ldrh r0, [r7, #8] - rsbs r0, r0, #0 - b _080859E8 -_080859DE: - cmp r5, #0 - beq _080859E6 - ldrh r0, [r6, #8] - b _080859E8 -_080859E6: - ldrh r0, [r7, #8] -_080859E8: - lsls r0, r0, #2 - mov r1, sb @ r1 = sb = carousel - adds r1, #0x6e - strh r0, [r1] - mov r0, sl @ r0 = sl = worldX << 16 - asrs r1, r0, #0x10 - cmp r5, #0 - beq _080859FC - ldr r0, [r6] - b _080859FE -_080859FC: - ldr r0, [r7] -_080859FE: - asrs r0, r0, #8 - subs r0, r0, r1 - adds r0, #0x30 - lsls r0, r0, #9 - movs r1, #0x60 - bl Div - cmp r0, #0 - bge _08085A40 - mov r2, sl @ r2 = sl = worldX << 16 - asrs r1, r2, #0x10 - cmp r5, #0 - beq _08085A1C - ldr r0, [r6] - b _08085A1E -_08085A1C: - ldr r0, [r7] -_08085A1E: - asrs r0, r0, #8 - subs r0, r0, r1 - adds r0, #0x30 - lsls r0, r0, #9 - movs r1, #0x60 - bl Div - movs r3, #0xc0 - lsls r3, r3, #2 - adds r1, r3, #0 - subs r1, r1, r0 - ldr r2, _08085A3C @ =0x000003FF - adds r0, r2, #0 - b _08085A66 - .align 2, 0 -_08085A3C: .4byte 0x000003FF -_08085A40: - mov r3, sl @ r3 = sl = worldX << 16 - asrs r1, r3, #0x10 - cmp r5, #0 - beq _08085A4C - ldr r0, [r6] - b _08085A4E -_08085A4C: - ldr r0, [r7] -_08085A4E: - asrs r0, r0, #8 - subs r0, r0, r1 - adds r0, #0x30 - lsls r0, r0, #9 - movs r1, #0x60 - bl Div - movs r1, #0xc0 - lsls r1, r1, #2 - adds r0, r0, r1 - ldr r2, _08085A84 @ =0x000003FF - adds r1, r2, #0 -_08085A66: - ands r1, r0 - mov r0, sb @ r0 = sb = carousel - adds r0, #0x6c - movs r2, #0 - strh r1, [r0] - mov r3, sb @ r3 = sb = carousel - str r2, [r3, #0x70] - adds r0, #0xa - strh r2, [r0] - subs r0, #2 - strh r2, [r0] - cmp r5, #0 - beq _08085A88 - strh r2, [r6, #8] - b _08085A8A - .align 2, 0 -_08085A84: .4byte 0x000003FF -_08085A88: - strh r5, [r7, #8] -_08085A8A: - ldr r3, _08085A9C @ =gPlayer - cmp r5, #0 - beq _08085AA0 - movs r1, #0xc - ldrsh r0, [r6, r1] - cmp r0, #0 - bgt _08085AA8 - b _08085AC2 - .align 2, 0 -_08085A9C: .4byte gPlayer -_08085AA0: - movs r2, #0xc - ldrsh r0, [r3, r2] - cmp r0, #0 - ble _08085AC2 -_08085AA8: - mov r1, sb @ r1 = sb = carousel - adds r1, #0x78 - movs r0, #1 - strb r0, [r1] - cmp r5, #0 - beq _08085ABC - movs r0, #0xf0 - lsls r0, r0, #3 - strh r0, [r6, #0xc] - b _08085ADC -_08085ABC: - movs r0, #0xf0 - lsls r0, r0, #3 - b _08085ADA -_08085AC2: - mov r0, sb @ r0 = sb = carousel - adds r0, #0x78 - movs r1, #0 - strb r1, [r0] - cmp r5, #0 - beq _08085AD8 - ldr r0, _08085AD4 @ =0x0000F880 - strh r0, [r6, #0xc] - b _08085ADC - .align 2, 0 -_08085AD4: .4byte 0x0000F880 -_08085AD8: - ldr r0, _08085AE8 @ =0x0000F880 -_08085ADA: - strh r0, [r3, #0xc] -_08085ADC: - cmp r5, #0 - beq _08085AEC - movs r2, #0 - strh r2, [r6, #0x38] - b _08085AEE - .align 2, 0 -_08085AE8: .4byte 0x0000F880 -_08085AEC: - strh r5, [r3, #0x38] -_08085AEE: - cmp r5, #0 - beq _08085AF8 - movs r0, #0 - strh r0, [r6, #0x3a] - b _08085AFA -_08085AF8: - strh r5, [r3, #0x3a] -_08085AFA: - adds r0, r3, #0 - cmp r5, #0 - beq _08085B02 - ldr r0, _08085B14 @ =gPartner -_08085B02: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _08085B1C - movs r0, #0x21 - ldr r1, _08085B18 @ =gPartner + 0x40 - strb r0, [r1] - b _08085B22 - .align 2, 0 -_08085B14: .4byte gPartner -_08085B18: .4byte gPartner + 0x40 -_08085B1C: - movs r0, #0x21 - ldr r2, _08085B34 @ =gPlayer + 0x40 - strb r0, [r2] -_08085B22: - cmp r5, #0 - beq _08085B38 - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r6, #0x10] - b _08085B42 - .align 2, 0 -_08085B34: .4byte gPlayer + 0x40 -_08085B38: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r7, #0x10] -_08085B42: - movs r0, #0xd1 - bl m4aSongNumStart - ldr r0, _08085B60 @ =gCurTask - ldr r1, [r0] - ldr r0, _08085B64 @ =Task_RidingCarousel - str r0, [r1, #8] - cmp r5, #0 - beq _08085B6C - ldr r3, _08085B68 @ =gPartner + 0x26 - ldrb r0, [r3] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] - b _08085B78_continue - .align 2, 0 -_08085B60: .4byte gCurTask -_08085B64: .4byte Task_RidingCarousel -_08085B68: .4byte gPartner + 0x26 -_08085B6C: - ldr r1, _08085BA4 @ =gPlayer + 0x26 - ldrb r0, [r1] - movs r1, #0x80 - orrs r0, r1 - ldr r2, _08085BA4 @ =gPlayer + 0x26 - strb r0, [r2] -_08085B78_continue: - adds r5, #1 - ldr r0, _08085BA8 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bge _08085B88 - b _080857E8_loop -_08085B88: - ldr r0, [sp] @ r0 = sp00 = s1 - bl DisplaySprite - ldr r0, [sp, #4] @ r0 = sp04 = s2 - bl DisplaySprite -_08085B94_return: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08085BA4: .4byte gPlayer + 0x26 -_08085BA8: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc deleted file mode 100644 index c913381682..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/carousel__Task_RidingCarousel.inc +++ /dev/null @@ -1,1155 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r0, _08085C44 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r1, r1, r0 - mov sb, r1 @ sb = carousel - ldr r1, _08085C48 @ =0x0300000C - adds r1, r0, r1 - str r1, [sp] @ sp00 = s1 - ldr r2, _08085C4C @ =0x0300003C - adds r2, r0, r2 - str r2, [sp, #4] @ sp04 = s2 - mov r3, sb - ldr r3, [r3] - str r3, [sp, #0x10] @ sp10 = me - mov r4, sb - ldrb r2, [r4, #8] - lsls r2, r2, #3 - ldrh r0, [r4, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #3 - ldrh r0, [r4, #6] - lsls r0, r0, #8 - adds r3, r3, r0 - lsls r3, r3, #0x10 - ldr r1, _08085C50 @ =gCamera - ldrh r0, [r1] - lsrs r4, r2, #0x10 - str r4, [sp, #8] @ sp08 = worldX - asrs r2, r2, #0x10 - subs r2, r2, r0 - ldr r0, [sp] @ r0 = sp00 = s1 - strh r2, [r0, #0x16] - ldrh r1, [r1, #2] - lsrs r4, r3, #0x10 - str r4, [sp, #0xc] @ sp0C = worldY - asrs r3, r3, #0x10 - subs r1, r3, r1 - mov r4, sb - ldr r0, [r4, #0x70] - lsrs r0, r0, #0xd - adds r1, r1, r0 - adds r1, #2 - ldr r0, [sp] @ r0 = sp00 = s1 - strh r1, [r0, #0x18] - ldr r1, [sp, #4] @ r1 = sp04 = s2 - strh r2, [r1, #0x16] - ldrh r0, [r0, #0x18] - adds r0, #2 - strh r0, [r1, #0x18] - movs r5, #0 - ldr r4, _08085C54 @ =gPartner - ldr r7, _08085C58 @ =gPlayer - str r3, [sp, #0x14] @ sp14 = worldY -_08085C2C_loop: - cmp r5, #0 - beq _08085C5C - ldr r1, [r4, #0x10] - movs r0, #0x80 - ands r1, r0 - ldr r2, [sp, #8] @ r2 = sp08 = worldX - lsls r2, r2, #0x10 - str r2, [sp, #0x18] @ sp18 = worldX << 16 - mov r3, sb - adds r3, #0x79 - str r3, [sp, #0x1c] @ sp1C = &carousel->unk79 - b _08085C6E - .align 2, 0 -_08085C44: .4byte gCurTask -_08085C48: .4byte 0x0300000C -_08085C4C: .4byte 0x0300003C -_08085C50: .4byte gCamera -_08085C54: .4byte gPartner -_08085C58: .4byte gPlayer -_08085C5C: - ldr r1, [r7, #0x10] - movs r0, #0x80 - ands r1, r0 - ldr r0, [sp, #8] @ r0 = sp08 = worldX - lsls r0, r0, #0x10 - str r0, [sp, #0x18] @ sp18 = worldX << 16 - mov r2, sb - adds r2, #0x79 - str r2, [sp, #0x1c] @ sp1C = &carousel->unk79 -_08085C6E: - cmp r1, #0 - bne _08085CAC - mov r1, sb - adds r1, #0x79 - ldrb r0, [r1] - asrs r0, r5 - movs r3, #1 - ands r0, r3 - ldr r2, [sp, #8] @ r2 = sp08 = worldX - lsls r2, r2, #0x10 - str r2, [sp, #0x18] @ sp18 = worldX << 16 - str r1, [sp, #0x1c] @ sp1C = &carousel->unk79 - cmp r0, #0 - beq _08085CBC - asrs r0, r2, #8 - cmp r5, #0 - beq _08085C94 - str r0, [r4] - b _08085C96 -_08085C94: - str r0, [r7] -_08085C96: - mov r3, sb - ldr r0, [r3, #0x70] - lsrs r0, r0, #0xd - ldr r1, [sp, #0x14] @ r1 = worldY - adds r0, r1, r0 - lsls r0, r0, #8 - cmp r5, #0 - beq _08085CAA - str r0, [r4, #4] - b _08085CAC -_08085CAA: - str r0, [r7, #4] -_08085CAC: - ldr r2, [sp, #0x1c] @ r2 = sp1C = &carousel->unk79 - ldrb r0, [r2] - asrs r0, r5 - movs r3, #1 - ands r0, r3 - cmp r0, #0 - beq _08085CBC - b _08085EE8_continue -_08085CBC: - mov r1, sb - ldr r0, [r1, #0x70] - lsls r0, r0, #3 - ldr r2, [sp, #0x18] @ r2 = sp18 = worldX << 16 - asrs r1, r2, #0x10 @ r1 = worldX - lsrs r3, r0, #0x10 - mov sl, r3 - asrs r0, r0, #0x10 - ldr r2, [sp, #0x14] @ r2 = worldY - adds r6, r2, r0 @ r6 = worldY + - lsls r0, r6, #0x10 - asrs r2, r0, #0x10 - ldr r3, _08085D08 @ =gPlayer - ldr r0, [sp, #0xc] @ r0 = sp0C = worldY - lsls r0, r0, #0x10 - mov r8, r0 @ r8 = worldY << 16 - cmp r5, #0 - beq _08085CE2 - ldr r3, _08085D0C @ =gPartner -_08085CE2: - ldr r0, [sp] @ r0 = sp00 = s1 - bl Coll_Player_PlatformCrumbling - movs r1, #8 - ands r1, r0 - cmp r1, #0 - beq _08085D14 - ldr r1, [sp, #0x1c] @ r1 = sp1C = &carousel->unk79 - ldrb r0, [r1] - asrs r0, r5 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - bne _08085D14 - lsls r0, r6, #8 - cmp r5, #0 - beq _08085D10 - str r0, [r4, #4] - b _08085D6A - .align 2, 0 -_08085D08: .4byte gPlayer -_08085D0C: .4byte gPartner -_08085D10: - str r0, [r7, #4] - b _08085D6A -_08085D14: - ldr r3, [sp, #0x18] @ r3 = sp18 = worldX << 16 - asrs r6, r3, #0x10 - mov r0, r8 - asrs r1, r0, #0x10 - mov r2, sl - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - lsls r1, r1, #0x10 - asrs r2, r1, #0x10 - ldr r3, _08085D58 @ =gPlayer - cmp r5, #0 - beq _08085D30 - ldr r3, _08085D5C @ =gPartner -_08085D30: - ldr r0, [sp] @ r0 = sp00 = s1 - adds r1, r6, #0 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _08085D6A - ldr r3, [sp, #0x1c] @ r3 = sp1C = &carousel->unk79 - ldrb r0, [r3] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08085D6A - cmp r5, #0 - beq _08085D60 - ldr r0, [r4, #0x10] - subs r1, #0xa - ands r0, r1 - str r0, [r4, #0x10] - b _08085D6A - .align 2, 0 -_08085D58: .4byte gPlayer -_08085D5C: .4byte gPartner -_08085D60: - ldr r0, [r7, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r7, #0x10] -_08085D6A: - ldr r2, [sp, #0x18] @ r2 = sp18 = worldX << 16 - asrs r0, r2, #0x10 - adds r1, r0, #0 - subs r1, #8 - cmp r5, #0 - beq _08085D80 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - ble _08085D8A - b _08085EE8_continue -_08085D80: - ldr r0, [r7] - asrs r0, r0, #8 - cmp r1, r0 - ble _08085D8A - b _08085EE8_continue -_08085D8A: - ldr r3, [sp, #0x18] @ r3 = sp18 = worldX << 16 - asrs r0, r3, #0x10 - adds r1, r0, #0 - adds r1, #8 - cmp r5, #0 - beq _08085DA0 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08085DAA - b _08085EE8_continue -_08085DA0: - ldr r0, [r7] - asrs r0, r0, #8 - cmp r1, r0 - bge _08085DAA - b _08085EE8_continue -_08085DAA: - mov r1, r8 - asrs r0, r1, #0x10 - mov r3, sl - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - adds r0, r0, r1 - adds r3, r0, #0 - subs r3, #0x30 - cmp r5, #0 - beq _08085DC8 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r3, r0 - ble _08085DD2 - b _08085EE8_continue -_08085DC8: - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r3, r0 - ble _08085DD2 - b _08085EE8_continue -_08085DD2: - mov r1, r8 - asrs r0, r1, #0x10 - asrs r1, r2, #0x10 - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0xc - cmp r5, #0 - beq _08085DEC - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08085DF6 - b _08085EE8_continue -_08085DEC: - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08085DF6 - b _08085EE8_continue -_08085DF6: - mov r2, sb - ldr r1, [r2, #0x70] - ldr r0, _08085E18 @ =0x003C2A57 - cmp r1, r0 - bhi _08085EE8_continue - movs r1, #1 - lsls r1, r5 - ldr r3, [sp, #0x1c] @ r3 = sp1C = &carousel->unk79 - ldrb r0, [r3] - orrs r1, r0 - movs r0, #0 - strb r1, [r3] - cmp r5, #0 - beq _08085E1C - strh r0, [r4, #8] - b _08085E1E - .align 2, 0 -_08085E18: .4byte 0x003C2A57 -_08085E1C: - strh r5, [r7, #8] -_08085E1E: - ldr r2, _08085E30 @ =gPlayer - cmp r5, #0 - beq _08085E34 - movs r1, #0xc - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _08085E3C - b _08085E4E - .align 2, 0 -_08085E30: .4byte gPlayer -_08085E34: - movs r3, #0xc - ldrsh r0, [r2, r3] - cmp r0, #0 - ble _08085E4E -_08085E3C: - cmp r5, #0 - beq _08085E48 - movs r0, #0xf0 - lsls r0, r0, #3 - strh r0, [r4, #0xc] - b _08085E60 -_08085E48: - movs r0, #0xf0 - lsls r0, r0, #3 - b _08085E5E -_08085E4E: - cmp r5, #0 - beq _08085E5C - ldr r0, _08085E58 @ =0x0000F880 - strh r0, [r4, #0xc] - b _08085E60 - .align 2, 0 -_08085E58: .4byte 0x0000F880 -_08085E5C: - ldr r0, _08085E6C @ =0x0000F880 -_08085E5E: - strh r0, [r2, #0xc] -_08085E60: - cmp r5, #0 - beq _08085E70 - movs r0, #0 - strh r0, [r4, #0x38] - b _08085E72 - .align 2, 0 -_08085E6C: .4byte 0x0000F880 -_08085E70: - strh r5, [r2, #0x38] -_08085E72: - cmp r5, #0 - beq _08085E7C - movs r0, #0 - strh r0, [r4, #0x3a] - b _08085E7E -_08085E7C: - strh r5, [r2, #0x3a] -_08085E7E: - adds r0, r2, #0 - cmp r5, #0 - beq _08085E86 - ldr r0, _08085E98 @ =gPartner -_08085E86: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _08085EA0 - movs r0, #0x21 - ldr r1, _08085E9C @ =gPartner + 0x40 - strb r0, [r1] - b _08085EA6 - .align 2, 0 -_08085E98: .4byte gPartner -_08085E9C: .4byte gPartner + 0x40 -_08085EA0: - movs r0, #0x21 - ldr r2, _08085EB8 @ =gPlayer + 0x40 - strb r0, [r2] -_08085EA6: - cmp r5, #0 - beq _08085EBC - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - b _08085EC6 - .align 2, 0 -_08085EB8: .4byte gPlayer + 0x40 -_08085EBC: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r7, #0x10] -_08085EC6: - cmp r5, #0 - beq _08085EDC - ldr r3, _08085ED8 @ =gPartner + 0x26 - ldrb r1, [r3] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3] - b _08085EE8_continue - .align 2, 0 -_08085ED8: .4byte gPartner + 0x26 -_08085EDC: - ldr r0, _08085F1C @ =gPlayer + 0x26 - ldrb r1, [r0] - movs r0, #0x80 - orrs r0, r1 - ldr r1, _08085F1C @ =gPlayer + 0x26 - strb r0, [r1] -_08085EE8_continue: - adds r5, #1 - ldr r0, _08085F20 @ =gNumSingleplayerCharacters - movs r1, #0 - ldrsb r1, [r0, r1] - adds r2, r0, #0 - cmp r5, r1 - bge _08085EF8 - b _08085C2C_loop -_08085EF8: - mov r3, sb - ldr r1, [r3, #0x70] - ldr r0, _08085F24 @ =0x003C2A57 - cmp r1, r0 - bls _08085F9C - movs r4, #0 - movs r0, #0x6e - add r0, sb - mov r8, r0 @ r8 = carousel->unk6E - ldr r7, [sp] @ r7 = sp00 = s1 - adds r7, #0x22 @ r7 = &s1->animSpeed - ldr r6, _08085F28 @ =gPartner - ldr r5, _08085F2C @ =gPlayer -_08085F12_loop: - cmp r4, #0 - beq _08085F30 - ldr r0, [r6, #0x10] - b _08085F32 - .align 2, 0 -_08085F1C: .4byte gPlayer + 0x26 -_08085F20: .4byte gNumSingleplayerCharacters -_08085F24: .4byte 0x003C2A57 -_08085F28: .4byte gPartner -_08085F2C: .4byte gPlayer -_08085F30: - ldr r0, [r5, #0x10] -_08085F32: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08085F8C - ldr r1, [sp, #0x1c] @ r1 = sp1C = &carousel->unk79 - ldrb r0, [r1] - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08085F8C - mov r2, r8 @ r2 = r8 = carousel->unk6E - ldrh r0, [r2] - lsrs r0, r0, #2 - ldr r3, _08085F64 @ =0xFFFFF830 - adds r0, r0, r3 - lsls r0, r0, #1 - movs r1, #3 - bl Div - cmp r4, #0 - beq _08085F68 - strh r0, [r6, #8] - b _08085F6A - .align 2, 0 -_08085F64: .4byte 0xFFFFF830 -_08085F68: - strh r0, [r5, #8] -_08085F6A: - mov r1, r8 @ r1 = r8 = carousel->unk6E - ldrh r0, [r1] - lsrs r0, r0, #2 - ldr r2, _08085F84 @ =0xFFFFF830 - adds r0, r0, r2 - lsls r0, r0, #1 - movs r1, #3 - bl Div - cmp r4, #0 - beq _08085F88 - strh r0, [r6, #0xc] - b _08085F8A - .align 2, 0 -_08085F84: .4byte 0xFFFFF830 -_08085F88: - strh r0, [r5, #0xc] -_08085F8A: - ldr r2, _08085F98 @ =gNumSingleplayerCharacters -_08085F8C: - adds r4, #1 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r4, r0 - blt _08085F12_loop - b _08085FAC - .align 2, 0 -_08085F98: .4byte gNumSingleplayerCharacters -_08085F9C: - mov r1, sb - adds r1, #0x6e - ldrh r0, [r1] - adds r0, #0x40 - strh r0, [r1] - mov r8, r1 @ r8 = carousel->unk6E - ldr r7, [sp] @ r7 = sp00 = s1 - adds r7, #0x22 @ r7 = &s1->animSpeed -_08085FAC: - mov r3, r8 @ r3 = r8 = carousel->unk6E - ldrh r0, [r3] - movs r1, #0x80 - lsls r1, r1, #8 - cmp r0, r1 - bls _08085FBA - strh r1, [r3] -_08085FBA: - mov r4, r8 @ r4 = r8 = carousel->unk6E - ldrh r1, [r4] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - movs r1, #0xa0 - lsls r1, r1, #8 - bl Div - strb r0, [r7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _08085FDC - movs r0, #0x10 - strb r0, [r7] -_08085FDC: - mov r1, r8 @ r1 = r8 = carousel->unk6E - ldrh r0, [r1] - mov r2, sb - ldr r1, [r2, #0x70] - adds r1, r1, r0 - str r1, [r2, #0x70] - ldr r3, [sp, #0x18] @ r3 = sp18 = worldX << 16 - asrs r2, r3, #0x10 - ldr r4, _0808605C @ =gCamera - movs r0, #0 - ldrsh r1, [r4, r0] - movs r3, #0xb8 - lsls r3, r3, #1 - adds r0, r1, r3 - cmp r2, r0 - bgt _08086020 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _08086020 - ldr r1, [sp, #0xc] @ r1 = sp0C = worldY - lsls r0, r1, #0x10 - asrs r3, r0, #0x10 - movs r2, #2 - ldrsh r1, [r4, r2] - movs r4, #0x90 - lsls r4, r4, #1 - adds r0, r1, r4 - cmp r3, r0 - bgt _08086020 - adds r0, r1, #0 - subs r0, #0x80 - cmp r3, r0 - bge _08086064 -_08086020: - ldr r1, [sp] @ r1 = sp00 = s1 - ldrh r0, [r1, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08086048 - ldr r2, [sp] @ r2 = sp00 = s1 - movs r3, #0x18 - ldrsh r0, [r2, r3] - adds r0, #0x80 - cmp r0, #0 - blt _08086048 - movs r4, #0x18 - ldrsh r1, [r2, r4] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08086064 -_08086048: - mov r1, sb - ldrb r0, [r1, #8] - ldr r2, [sp, #0x10] @ r2 = sp10 = me - strb r0, [r2] - ldr r0, _08086060 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0808640E - .align 2, 0 -_0808605C: .4byte gCamera -_08086060: .4byte gCurTask -_08086064: - movs r5, #0 - movs r3, #0x74 - add r3, sb - mov sl, r3 @ sl = &carousel->unk74 - ldr r4, _0808607C @ =gPartner - ldr r6, _08086080 @ =gPlayer - adds r7, r4, #0 - adds r7, #0x26 -_08086074_loop: - cmp r5, #0 - beq _08086084 - ldr r0, [r4, #0x10] - b _08086086 - .align 2, 0 -_0808607C: .4byte gPartner -_08086080: .4byte gPlayer -_08086084: - ldr r0, [r6, #0x10] -_08086086: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08086090 - b _08086314 -_08086090: - ldr r1, [sp, #0x1c] @ r1 = sp1C = &carousel->unk79 - ldrb r0, [r1] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080860A0 - b _08086314 -_080860A0: - mov r2, sb - ldr r1, [r2, #0x70] - ldr r0, _080860D4 @ =0x003C2A57 - cmp r1, r0 - bhi _080860AC - b _0808637A_continue -_080860AC: - adds r0, #1 - str r0, [r2, #0x70] - adds r2, #0x76 - cmp r5, #0 - bne _080860BC - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] -_080860BC: - ldrh r1, [r2] - ldr r0, _080860D8 @ =0x0000012B - cmp r1, r0 - bhi _080860E8 - cmp r5, #0 - beq _080860DC - ldrh r0, [r4, #0x38] - movs r1, #0x30 - ands r0, r1 - cmp r0, #0 - bne _080860E8 - b _0808637A_continue - .align 2, 0 -_080860D4: .4byte 0x003C2A57 -_080860D8: .4byte 0x0000012B -_080860DC: - ldrh r0, [r6, #0x38] - movs r1, #0x30 - ands r0, r1 - cmp r0, #0 - bne _080860E8 - b _0808637A_continue -_080860E8: - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r2] - cmp r5, #0 - beq _08086104 - ldrh r1, [r4, #0x38] - movs r0, #0x20 - ands r1, r0 - ldr r2, _08086100 @ =gPlayer - cmp r1, #0 - bne _08086110 - b _0808615C - .align 2, 0 -_08086100: .4byte gPlayer -_08086104: - ldrh r1, [r6, #0x38] - movs r0, #0x20 - ands r1, r0 - ldr r2, _08086120 @ =gPlayer - cmp r1, #0 - beq _0808615C -_08086110: - cmp r5, #0 - beq _08086124 - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - bgt _0808612C - b _08086156 - .align 2, 0 -_08086120: .4byte gPlayer -_08086124: - movs r1, #0xc - ldrsh r0, [r2, r1] - cmp r0, #0 - ble _08086156 -_0808612C: - cmp r5, #0 - beq _0808613A - movs r3, #0xc - ldrsh r0, [r4, r3] - rsbs r0, r0, #0 - strh r0, [r4, #0xc] - b _08086142 -_0808613A: - movs r1, #0xc - ldrsh r0, [r6, r1] - rsbs r0, r0, #0 - strh r0, [r6, #0xc] -_08086142: - cmp r5, #0 - beq _0808614C -_08086146: - movs r3, #0xc - ldrsh r0, [r4, r3] - b _08086150 -_0808614C: - movs r1, #0xc - ldrsh r0, [r2, r1] -_08086150: - cmp r5, #0 - bne _080861C2 - b _080861C6 -_08086156: - cmp r5, #0 - bne _08086146 - b _0808614C -_0808615C: - cmp r5, #0 - beq _0808616C - ldrh r0, [r4, #0x38] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08086176 - b _08086198 -_0808616C: - ldrh r0, [r2, #0x38] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08086198 -_08086176: - cmp r5, #0 - beq _08086184 - movs r3, #0xc - ldrsh r0, [r4, r3] - cmp r0, #0 - blt _080861A2 - b _08086156 -_08086184: - movs r1, #0xc - ldrsh r0, [r2, r1] - cmp r0, #0 - bge _08086156 - b _080861A2 -_0808618E: - movs r3, #0xc - ldrsh r0, [r4, r3] - rsbs r0, r0, #0 - strh r0, [r4, #0xc] - b _08086156 -_08086198: - mov r0, sb - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - bne _080861B0 -_080861A2: - cmp r5, #0 - bne _0808618E - movs r1, #0xc - ldrsh r0, [r6, r1] - rsbs r0, r0, #0 - strh r0, [r6, #0xc] - b _08086156 -_080861B0: - cmp r5, #0 - beq _080861BA - movs r3, #0xc - ldrsh r0, [r4, r3] - b _080861BE -_080861BA: - movs r1, #0xc - ldrsh r0, [r2, r1] -_080861BE: - cmp r5, #0 - beq _080861C6 -_080861C2: - strh r0, [r4, #8] - b _080861C8 -_080861C6: - strh r0, [r2, #8] -_080861C8: - movs r1, #1 - lsls r1, r5 - ldr r2, [sp, #0x1c] @ r2 = sp1C = &carousel->unk79 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r0, _080861F0 @ =gPlayer - cmp r5, #0 - beq _080861DC - ldr r0, _080861F4 @ =gPartner -_080861DC: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _080861FC - ldr r0, [r4, #0x10] - ldr r1, _080861F8 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08086204 - .align 2, 0 -_080861F0: .4byte gPlayer -_080861F4: .4byte gPartner -_080861F8: .4byte 0xFFBFFFFF -_080861FC: - ldr r0, [r6, #0x10] - ldr r1, _08086218 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08086204: - ldr r2, _0808621C @ =gPlayer - cmp r5, #0 - beq _08086220 - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _0808622A - .align 2, 0 -_08086218: .4byte 0xFFBFFFFF -_0808621C: .4byte gPlayer -_08086220: - ldr r0, [r6, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_0808622A: - cmp r5, #0 - beq _08086238 - ldr r0, [r4, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r4, #0x10] - b _08086240 -_08086238: - ldr r0, [r6, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #0x10] -_08086240: - cmp r5, #0 - beq _0808624E - ldr r0, [r4, #0x10] - movs r1, #0x10 - orrs r0, r1 - str r0, [r4, #0x10] - b _08086256 -_0808624E: - ldr r0, [r6, #0x10] - movs r1, #0x10 - orrs r0, r1 - str r0, [r6, #0x10] -_08086256: - cmp r5, #0 - beq _08086264 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _0808626C -_08086264: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_0808626C: - cmp r5, #0 - beq _0808627C - movs r0, #4 - ldr r3, _08086278 @ =gPartner + 0x40 - strb r0, [r3] - b _08086284 - .align 2, 0 -_08086278: .4byte gPartner + 0x40 -_0808627C: - adds r1, r2, #0 - adds r1, #0x40 - movs r0, #4 - strb r0, [r1] -_08086284: - ldr r0, _080862B8 @ =gPlayer - cmp r5, #0 - beq _0808628C - ldr r0, _080862BC @ =gPartner -_0808628C: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _080862B8 @ =gPlayer - cmp r5, #0 - beq _0808629A - ldr r1, _080862BC @ =gPartner -_0808629A: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r2, _080862B8 @ =gPlayer - adds r1, r2, #0 - cmp r5, #0 - beq _080862A8 - ldr r1, _080862BC @ =gPartner -_080862A8: - movs r0, #0xe - strb r0, [r1, #0xf] - cmp r5, #0 - beq _080862C0 - movs r0, #0 - strh r0, [r4, #0xa] - b _080862C2 - .align 2, 0 -_080862B8: .4byte gPlayer -_080862BC: .4byte gPartner -_080862C0: - strh r5, [r2, #0xa] -_080862C2: - ldr r1, [sp, #0x18] @ r1 = sp18 = worldX << 16 - asrs r0, r1, #8 - cmp r5, #0 - beq _080862CE - str r0, [r4] - b _080862D0 -_080862CE: - str r0, [r2] -_080862D0: - ldr r0, _080862E8 @ =gCurTask - ldr r1, [r0] - ldr r0, _080862EC @ =Task_ExitCarousel - str r0, [r1, #8] - cmp r5, #0 - beq _080862F0 - ldrb r1, [r7] - movs r0, #0x7f - ands r0, r1 - strb r0, [r7] - b _080862FA - .align 2, 0 -_080862E8: .4byte gCurTask -_080862EC: .4byte Task_ExitCarousel -_080862F0: - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_080862FA: - ldr r1, _0808630C @ =gPlayer + 0x64 - cmp r5, #0 - beq _08086302 - ldr r1, _08086310 @ =gPartner + 0x64 -_08086302: - ldr r1, [r1] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x26] - b _0808637A_continue - .align 2, 0 -_0808630C: .4byte gPlayer + 0x64 -_08086310: .4byte gPartner + 0x64 -_08086314: - cmp r5, #0 - beq _08086324 - ldr r0, [r4, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808632E - b _0808637A_continue -_08086324: - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808637A_continue -_0808632E: - mov r2, sb - ldr r0, [r2, #0x70] - ldr r1, _08086348 @ =0x003C2A58 - cmp r0, r1 - bls _0808633A - str r1, [r2, #0x70] -_0808633A: - cmp r5, #0 - beq _08086350 - ldr r0, [r4, #0x10] - ldr r1, _0808634C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08086358 - .align 2, 0 -_08086348: .4byte 0x003C2A58 -_0808634C: .4byte 0xFFBFFFFF -_08086350: - ldr r0, [r6, #0x10] - ldr r1, _080863B4 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08086358: - mov r2, sb - adds r2, #0x76 - cmp r5, #0 - bne _08086366 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] -_08086366: - ldrh r1, [r2] - movs r3, #0x96 - lsls r3, r3, #0x11 - lsrs r0, r3, #0x10 - cmp r1, r0 - bls _0808637A_continue - ldr r0, _080863B8 @ =gCurTask - ldr r1, [r0] - ldr r0, _080863BC @ =Task_ExitCarousel - str r0, [r1, #8] -_0808637A_continue: - adds r5, #1 - ldr r0, _080863C0 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bge _0808638A - b _08086074_loop -_0808638A: - mov r2, sl @ r2 = sl = &carousel->unk74 - ldrh r0, [r2] - adds r0, #1 - strh r0, [r2] - mov r4, r8 @ r4 = r8 = carousel->unk6E - ldrh r1, [r4] - ldr r0, _080863C4 @ =0x000031FF - cmp r1, r0 - bhi _080863C8 - cmp r1, #0 - beq _080863FC - ldrh r0, [r2] - movs r1, #0x19 - bl Mod - cmp r0, #0 - bne _080863FC - movs r0, #0xd1 - bl m4aSongNumStart - b _080863FC - .align 2, 0 -_080863B4: .4byte 0xFFBFFFFF -_080863B8: .4byte gCurTask -_080863BC: .4byte Task_ExitCarousel -_080863C0: .4byte gNumSingleplayerCharacters -_080863C4: .4byte 0x000031FF -_080863C8: - ldr r0, _080863E4 @ =0x00004AFF - cmp r1, r0 - bhi _080863E8 - ldrh r0, [r2] - movs r1, #0x10 - bl Mod - cmp r0, #0 - bne _080863FC - movs r0, #0xd2 - bl m4aSongNumStart - b _080863FC - .align 2, 0 -_080863E4: .4byte 0x00004AFF -_080863E8: - mov r1, sl @ r1 = sl = &carousel->unk74 - ldrh r0, [r1] - movs r1, #8 - bl Mod - cmp r0, #0 - bne _080863FC - movs r0, #0xd3 - bl m4aSongNumStart -_080863FC: - ldr r0, [sp] @ r0 = sp00 = s1 - bl UpdateSpriteAnimation - ldr r0, [sp] @ r0 = sp00 = s1 - bl DisplaySprite - ldr r0, [sp, #4] @ r0 = sp04 = s2 - bl DisplaySprite -_0808640E: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc deleted file mode 100644 index c5adde4077..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/grind_rail__Task_GrindRailStart.inc +++ /dev/null @@ -1,194 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r3, _08023C04 @ =gPlayer - adds r0, r3, #0 - adds r0, #0x59 - ldrb r0, [r0] - mov ip, r0 - mov r0, ip - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08023B2A - b _08023C70_return -_08023B2A: - ldr r0, _08023C08 @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r2, r0 - ldr r7, [r0] - ldr r1, _08023C0C @ =0x03000008 - adds r0, r2, r1 - ldrb r0, [r0] - mov sl, r0 - ldr r4, _08023C10 @ =0x03000004 - adds r0, r2, r4 - ldrh r1, [r0] - ldr r0, _08023C14 @ =0x03000006 - adds r2, r2, r0 - ldrh r2, [r2] - mov r4, sl - lsls r0, r4, #3 - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrb r0, [r7, #1] - lsls r0, r0, #3 - lsls r2, r2, #8 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r6, [r3, #0x10] - movs r0, #0x80 - ands r0, r6 - cmp r0, #0 - beq _08023B70 - b _08023C70_return -_08023B70: - lsls r1, r1, #0x10 - asrs r5, r1, #0x10 - ldr r0, [r3] - asrs r4, r0, #8 - mov sb, r1 - lsls r2, r2, #0x10 - mov r8, r2 - cmp r5, r4 - bgt _08023C2A - ldrb r0, [r7, #5] - lsls r0, r0, #3 - adds r0, r5, r0 - cmp r0, r4 - blt _08023C2A - asrs r2, r2, #0x10 - ldr r0, [r3, #4] - asrs r1, r0, #8 - cmp r2, r1 - bgt _08023C2A - ldrb r0, [r7, #6] - lsls r0, r0, #3 - adds r0, r2, r0 - cmp r0, r1 - blt _08023C2A - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #0 - bne _08023C2A - movs r1, #0xa - ldrsh r0, [r3, r1] - cmp r0, #0 - blt _08023C2A - ldrh r1, [r3, #8] - movs r4, #8 - ldrsh r0, [r3, r4] - cmp r0, #0 - ble _08023C2A - cmp r0, #0x80 - bge _08023BC4 - movs r1, #0x80 -_08023BC4: - strh r1, [r3, #8] - orrs r6, r2 - str r6, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x27 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - ldr r2, _08023C18 @ =gPlayerBodyPSI - ldr r0, [r2, #0x1c] - ldr r1, _08023C1C @ =0xFFFFCFFF - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2, #0x1c] - adds r2, r3, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - mov r1, ip - lsls r0, r1, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - bne _08023C20 - movs r0, #0x86 - bl m4aSongNumStart - b _08023C26 - .align 2, 0 -_08023C04: .4byte gPlayer -_08023C08: .4byte gCurTask -_08023C0C: .4byte 0x03000008 -_08023C10: .4byte 0x03000004 -_08023C14: .4byte 0x03000006 -_08023C18: .4byte gPlayerBodyPSI -_08023C1C: .4byte 0xFFFFCFFF -_08023C20: - movs r0, #0x72 - bl m4aSongNumStart -_08023C26: - bl CreateGrindEffect -_08023C2A: - ldr r2, _08023C80 @ =gCamera - ldrh r0, [r2] - mov r3, sb - asrs r1, r3, #0x10 - subs r1, r1, r0 - ldrh r2, [r2, #2] - mov r4, r8 - asrs r0, r4, #0x10 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x10 - adds r1, r1, r0 - movs r0, #0xf8 - lsls r0, r0, #0x11 - cmp r1, r0 - bhi _08023C64 - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08023C64 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08023C70_return -_08023C64: - mov r1, sl - strb r1, [r7] - ldr r0, _08023C84 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08023C70_return: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08023C80: .4byte gCamera -_08023C84: .4byte gCurTask - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc deleted file mode 100644 index d366ce7566..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/half_pipe__sub_804D4A0.inc +++ /dev/null @@ -1,189 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r3, r0, #0 @ r3 = param0 - adds r4, r2, #0 @ r4 = p - ldr r0, _0804D4E8 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 @ r1 = halfpipe - mov r8, r1 @ r8 = r1 = halfpipe - movs r6, #0 - ldr r0, _0804D4EC @ =0x0000029F - cmp r3, r0 - bhi _0804D550 - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _0804D4CA - rsbs r0, r0, #0 -_0804D4CA: - ldr r2, _0804D4F0 @ =0xFFFFFDC0 - adds r0, r0, r2 - lsls r0, r0, #0xe - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - blt _0804D4F4 - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, r2 - ble _0804D4E2 - adds r1, r2, #0 -_0804D4E2: - adds r0, r1, #0 - b _0804D4F6 - .align 2, 0 -_0804D4E8: .4byte gCurTask -_0804D4EC: .4byte 0x0000029F -_0804D4F0: .4byte 0xFFFFFDC0 -_0804D4F4: - movs r0, #0 -_0804D4F6: - ldr r7, _0804D518 @ =gSineTable - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r6, r0, #0x16 - movs r5, #0x80 - lsls r5, r5, #1 - cmp r6, r5 - ble _0804D50C - adds r6, r5, #0 -_0804D50C: - ldr r0, _0804D51C @ =0x0000014F - cmp r3, r0 - bgt _0804D520 - lsls r0, r3, #0xf - b _0804D526 - .align 2, 0 -_0804D518: .4byte gSineTable -_0804D51C: .4byte 0x0000014F -_0804D520: - ldr r2, _0804D58C @ =0xFFFFFD60 - adds r0, r3, r2 - lsls r0, r0, #0xf -_0804D526: - movs r1, #0xa8 - lsls r1, r1, #1 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x16 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r7 - movs r2, #0 - ldrsh r1, [r0, r2] - rsbs r1, r1, #0 @ -COS_24_8(Div(divParam0, 0x150)); - lsls r0, r1, #1 - adds r0, r0, r1 - asrs r0, r0, #2 - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r0, r1 - muls r0, r6, r0 - asrs r0, r0, #8 - adds r6, r0, #0 -_0804D550: - ldr r0, [r4, #0x10] - movs r3, #4 - ands r0, r3 - cmp r0, #0 - bne _0804D5B8 -__0804D55A: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0804D5B8 - adds r1, r4, #0 - adds r1, #0x40 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #4 - beq _0804D582 - adds r0, r2, #0 - subs r0, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0804D5B8 -_0804D582: - ldr r0, _0804D590 @ =0x000007FF - cmp r6, r0 - bgt _0804D594 - strb r3, [r1] - b _0804D5B8 - .align 2, 0 -_0804D58C: .4byte 0xFFFFFD60 -_0804D590: .4byte 0x000007FF -_0804D594: - ldr r0, _0804D5A0 @ =0x000017FF - cmp r6, r0 - bgt _0804D5A4 - movs r0, #0x18 - b _0804D5B6 - .align 2, 0 -_0804D5A0: .4byte 0x000017FF -_0804D5A4: - ldr r0, _0804D5B0 @ =0x00002FFF - cmp r6, r0 - bgt _0804D5B4 - movs r0, #0x19 - b _0804D5B6 - .align 2, 0 -_0804D5B0: .4byte 0x00002FFF -_0804D5B4: - movs r0, #0x1a -_0804D5B6: - strb r0, [r1] -_0804D5B8: - ldr r0, [r4, #0x10] - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - movs r0, #0 - strh r0, [r4, #0xa] - mov r2, r8 - ldr r1, [r2, #0x1c] - subs r1, r1, r6 - movs r0, #0xf - ldrsb r0, [r4, r0] - lsls r0, r0, #8 - subs r1, r1, r0 - ldr r0, [r4, #4] - subs r1, r1, r0 - ldr r2, _0804D5FC @ =0xFFFFFA00 - adds r3, r0, #0 - cmp r1, r2 - blt _0804D5EA - adds r0, r1, #0 - movs r2, #0xc0 - lsls r2, r2, #3 - cmp r0, r2 - ble _0804D5EC -_0804D5EA: - adds r0, r2, #0 -_0804D5EC: - adds r0, r3, r0 - str r0, [r4, #4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D5FC: .4byte 0xFFFFFA00 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc deleted file mode 100644 index 8f8d474fb2..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/hook__Task_SwingingHook.inc +++ /dev/null @@ -1,1399 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - ldr r0, _080879D8 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r4, r0 - str r0, [sp, #0x24] @ sp24 = hook - ldr r0, _080879DC @ =0x0300000C - adds r0, r0, r4 - mov sb, r0 @ sb = s1 - ldr r1, _080879E0 @ =0x0300009C - adds r1, r4, r1 - str r1, [sp] @ sp00 = transform - ldr r2, _080879E4 @ =0x0300003C - adds r7, r4, r2 @ r7 = s2 - ldr r3, _080879E8 @ =0x0300006C - adds r3, r3, r4 - mov r8, r3 @ r8 = s3 - ldr r5, [sp, #0x24] @ r5 = sp24 = hook - ldr r5, [r5] @ r5 = me - str r5, [sp, #0x20] @ sp20 = me - movs r0, #0 - str r0, [sp, #0x18] @ sp18 = 0 - movs r1, #0 - str r1, [sp, #0x1c] - ldr r2, [sp, #0x24] @ r2 = sp24 = hook - ldrb r0, [r2, #8] - lsls r0, r0, #3 - ldrh r1, [r2, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] @ sp04 = worldX - ldrb r0, [r5, #1] - lsls r0, r0, #3 - ldrh r1, [r2, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] @ sp0C = worldY - ldr r3, [sp, #4] - str r3, [sp, #8] @ sp08 = worldX - str r0, [sp, #0x10] @ sp10 = worldY - ldr r0, _080879EC @ =gStageTime - ldr r0, [r0] - lsls r0, r0, #3 - movs r1, #3 - bl Div - ldr r5, _080879F0 @ =0x030000B2 - adds r4, r4, r5 - ldrh r1, [r4] - adds r0, r0, r1 - movs r1, #0x80 - lsls r1, r1, #2 - bl Mod - adds r5, r0, #0 @ r5 = modRes = Mod(Div(gStageTime * 8, 3) + hook->qUnkB2, Q(2)); - movs r0, #0x80 - lsls r0, r0, #1 - cmp r5, r0 - bls _080879FC - ldr r1, _080879F4 @ =0xFFFFFF00 - adds r5, r5, r1 - subs r5, r0, r5 - ldr r0, _080879F8 @ =gSineTable - lsls r1, r5, #2 - adds r1, r1, r0 - ldrh r1, [r1] - lsrs r2, r1, #8 - adds r3, r0, #0 @ r3 = r0 = gSineTable - b _08087A10 - .align 2, 0 -_080879D8: .4byte gCurTask -_080879DC: .4byte 0x0300000C -_080879E0: .4byte 0x0300009C -_080879E4: .4byte 0x0300003C -_080879E8: .4byte 0x0300006C -_080879EC: .4byte gStageTime -_080879F0: .4byte 0x030000B2 -_080879F4: .4byte 0xFFFFFF00 -_080879F8: .4byte gSineTable -_080879FC: - ldr r1, _08087A2C @ =gSineTable - lsls r0, r5, #2 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r1, #0 @ r3 = r1 = gSineTable -_08087A10: - adds r0, r5, #0 - subs r0, #0x7e - ldr r1, _08087A30 @ =0x000001FF - ands r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r5, r0, #0x17 - ands r5, r1 - cmp r5, #0xff - bhi _08087A34 - lsrs r5, r5, #1 - b _08087A3E - .align 2, 0 -_08087A2C: .4byte gSineTable -_08087A30: .4byte 0x000001FF -_08087A34: - movs r1, #0x80 - lsls r1, r1, #2 - subs r0, r1, r5 - lsrs r0, r0, #1 - subs r5, r1, r0 -_08087A3E: - lsls r5, r5, #1 - mov ip, r5 @ ip = r5 = modRes - ldr r0, _08087B24 @ =0x000003FF - ands r0, r5 - lsls r1, r0, #1 - adds r1, r1, r3 - movs r5, #0 - ldrsh r4, [r1, r5] - str r4, [sp, #0x14] @ sp14 = sinVal = SIN(modRes & ONE_CYCLE) - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r0, r2, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - mov sl, r1 @ sl = cosVal = SIN(modRes & ONE_CYCLE) - ldr r6, _08087B28 @ =gCamera - ldrh r0, [r6] - ldr r5, [sp, #4] @ r5 = sp04 = worldX - lsls r4, r5, #0x10 - asrs r2, r4, #0x10 - subs r0, r2, r0 - mov r1, sb - strh r0, [r1, #0x16] - ldrh r0, [r6, #2] - ldr r5, [sp, #0xc] @ r5 = sp0C = worldY - lsls r3, r5, #0x10 - asrs r1, r3, #0x10 - subs r0, r1, r0 - mov r5, sb - strh r0, [r5, #0x18] - ldrh r0, [r6] - subs r2, r2, r0 - mov r0, r8 @ r0 = r8 = s3 - strh r2, [r0, #0x16] - ldrh r0, [r6, #2] - subs r1, r1, r0 - subs r1, #8 - mov r2, r8 @ r2 = r8 = s3 - strh r1, [r2, #0x18] - ldr r5, [sp, #8] @ r5 = sp08 = worldX - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - movs r0, #0 - ldrsh r1, [r6, r0] - movs r5, #0xb8 - lsls r5, r5, #1 - adds r0, r1, r5 - str r4, [sp, #0x2c] @ sp2C = worldX << 16 - str r3, [sp, #0x30] @ sp30 = worldY << 16 - mov r3, ip @ r3 = ip = modRes - str r3, [sp, #0x28] - cmp r2, r0 - bgt _08087AD8 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _08087AD8 - ldr r4, [sp, #0x10] @ r4 = sp10 = worldY - lsls r0, r4, #0x10 - asrs r2, r0, #0x10 - movs r5, #2 - ldrsh r1, [r6, r5] - movs r3, #0x90 - lsls r3, r3, #1 - adds r0, r1, r3 - cmp r2, r0 - bgt _08087AD8 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _08087AD8 - b _08087CE4 -_08087AD8: - mov r4, sb - ldrh r0, [r4, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08087B00 - movs r5, #0x18 - ldrsh r0, [r4, r5] - adds r0, #0x80 - cmp r0, #0 - blt _08087B00 - movs r0, #0x18 - ldrsh r1, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - bgt _08087B00 - b _08087CE4 -_08087B00: - movs r4, #0 - ldr r5, _08087B2C @ =gPartner - ldr r6, _08087B30 @ =gPlayer - movs r1, #0x59 - adds r1, r1, r5 - mov sl, r1 @ sl = &gPartner->character - movs r2, #0x40 - adds r2, r2, r5 - mov r8, r2 @ r8 = &gPartner->charState - movs r7, #0 @ r7 = 0 -_08087B14_loop: - cmp r4, #0 - beq _08087B34 - ldr r0, [r5, #0x10] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08087B40 - b _08087CB0 - .align 2, 0 -_08087B24: .4byte 0x000003FF -_08087B28: .4byte gCamera -_08087B2C: .4byte gPartner -_08087B30: .4byte gPlayer -_08087B34: - ldr r0, [r6, #0x10] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08087B40 - b _08087CB0 -_08087B40: - cmp r4, #0 - beq _08087B4C - ldr r0, [r5, #0x28] - cmp r0, sb - beq _08087B54 - b _08087CB0 -_08087B4C: - ldr r0, [r6, #0x28] - cmp r0, sb - beq _08087B54 - b _08087CB0 -_08087B54: - ldr r0, _08087B70 @ =gPlayer - cmp r4, #0 - beq _08087B5C - ldr r0, _08087B74 @ =gPartner -_08087B5C: - bl Player_TransitionCancelFlyingAndBoost - cmp r4, #0 - beq _08087B7C - ldr r0, [r5, #0x10] - ldr r1, _08087B78 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] - b _08087B84 - .align 2, 0 -_08087B70: .4byte gPlayer -_08087B74: .4byte gPartner -_08087B78: .4byte 0xFFBFFFFF -_08087B7C: - ldr r0, [r6, #0x10] - ldr r1, _08087B94 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08087B84: - ldr r3, _08087B98 @ =gPlayer - cmp r4, #0 - beq _08087B9C - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] - b _08087BA4 - .align 2, 0 -_08087B94: .4byte 0xFFBFFFFF -_08087B98: .4byte gPlayer -_08087B9C: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_08087BA4: - cmp r4, #0 - beq _08087BB4 - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _08087BBE -_08087BB4: - ldr r0, [r6, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08087BBE: - cmp r4, #0 - beq _08087BC6 - str r7, [r5, #0x28] - b _08087BC8 -_08087BC6: - str r4, [r3, #0x28] -_08087BC8: - cmp r4, #0 - beq _08087BD0 - strh r7, [r5, #8] - b _08087BD2 -_08087BD0: - strh r4, [r3, #8] -_08087BD2: - cmp r4, #0 - beq _08087BDA - strh r7, [r5, #0xc] - b _08087BDC -_08087BDA: - strh r4, [r3, #0xc] -_08087BDC: - cmp r4, #0 - beq _08087BE4 - strh r7, [r5, #0xa] - b _08087BE6 -_08087BE4: - strh r4, [r3, #0xa] -_08087BE6: - cmp r4, #0 - beq _08087BF6 - mov r1, sl @ r1 = sl = gPartner->character - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #3 - bne _08087C04 - b _08087C5C -_08087BF6: - adds r0, r3, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - beq _08087C5C -_08087C04: - cmp r4, #0 - beq _08087C12 - ldr r0, [r5, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r5, #0x10] - b _08087C1A -_08087C12: - ldr r0, [r6, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #0x10] -_08087C1A: - cmp r4, #0 - beq _08087C26 - movs r0, #5 - mov r2, r8 - strb r0, [r2] - b _08087C2E -_08087C26: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #5 - strb r0, [r1] -_08087C2E: - ldr r0, _08087C54 @ =gPlayer - cmp r4, #0 - beq _08087C36 - ldr r0, _08087C58 @ =gPartner -_08087C36: - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - ldr r1, _08087C54 @ =gPlayer - cmp r4, #0 - beq _08087C44 - ldr r1, _08087C58 @ =gPartner -_08087C44: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08087C54 @ =gPlayer - cmp r4, #0 - beq _08087C50 - ldr r1, _08087C58 @ =gPartner -_08087C50: - movs r0, #9 - b _08087CAE - .align 2, 0 -_08087C54: .4byte gPlayer -_08087C58: .4byte gPartner -_08087C5C: - cmp r4, #0 - beq _08087C6C - ldr r0, [r5, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _08087C76 -_08087C6C: - ldr r0, [r6, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08087C76: - cmp r4, #0 - beq _08087C82 - movs r0, #0x55 - mov r3, r8 - strb r0, [r3] - b _08087C8A -_08087C82: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #0x55 - strb r0, [r1] -_08087C8A: - ldr r0, _08087CD4 @ =gPlayer - cmp r4, #0 - beq _08087C92 - ldr r0, _08087CD8 @ =gPartner -_08087C92: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08087CD4 @ =gPlayer - cmp r4, #0 - beq _08087CA0 - ldr r1, _08087CD8 @ =gPartner -_08087CA0: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08087CD4 @ =gPlayer - cmp r4, #0 - beq _08087CAC - ldr r1, _08087CD8 @ =gPartner -_08087CAC: - movs r0, #0xe -_08087CAE: - strb r0, [r1, #0xf] -_08087CB0: - adds r4, #1 - ldr r0, _08087CDC @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - bge _08087CC0 - b _08087B14_loop -_08087CC0: - ldr r4, [sp, #0x24] @ r4 = sp24 = hook - ldrb r0, [r4, #8] - ldr r5, [sp, #0x20] @ r5 = sp20 = me - strb r0, [r5] - ldr r0, _08087CE0 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08088350 - .align 2, 0 -_08087CD4: .4byte gPlayer -_08087CD8: .4byte gPartner -_08087CDC: .4byte gNumSingleplayerCharacters -_08087CE0: .4byte gCurTask -_08087CE4: - mov r0, r8 - bl DisplaySprite - movs r4, #0 - ldr r0, [sp, #0x24] @ r0 = sp24 = hook - adds r0, #0xb4 - mov r8, r0 @ r8 = &hook->unkB4 - movs r5, #0x5a @ r5 = 90 - ldr r6, _08087D40 @ =gCamera -_08087CF6_loop: - ldr r1, [sp, #0x14] @ r1 = sp14 = sinVal - adds r0, r1, #0 - muls r0, r5, r0 - movs r1, #0x64 - bl Div - ldr r2, [sp, #0x18] - adds r2, r2, r0 - str r2, [sp, #0x18] @ sp18 += Div(sinVal * 90, 100); - mov r0, sl @ r0 = sl = cosVal - muls r0, r5, r0 - movs r1, #0x64 - bl Div - ldr r3, [sp, #0x1c] - adds r3, r3, r0 - str r3, [sp, #0x1c] @ sp1C += Div(cosVal * 90, 100); - ldrh r1, [r6] - ldr r2, [sp, #0x2c] @ r2 = sp2C = worldX << 16 - asrs r0, r2, #0x10 - subs r0, r0, r1 - ldr r3, [sp, #0x18] - asrs r1, r3, #0xa - adds r0, r0, r1 - strh r0, [r7, #0x16] - ldrh r1, [r6, #2] - ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 - asrs r0, r2, #0x10 - subs r0, r0, r1 - ldr r3, [sp, #0x1c] - asrs r1, r3, #0xa - adds r0, r0, r1 - strh r0, [r7, #0x18] - cmp r4, #4 - bne _08087D44 - movs r0, #0xc0 - b _08087D48 - .align 2, 0 -_08087D40: .4byte gCamera -_08087D44: - movs r0, #0x90 - lsls r0, r0, #3 -_08087D48: - strh r0, [r7, #0x1a] - adds r0, r7, #0 - bl DisplaySprite - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #2 - bls _08087CF6_loop - movs r4, #0x6e - ldr r5, [sp, #0x14] - adds r0, r5, #0 - muls r0, r4, r0 - movs r1, #0x64 - bl Div - ldr r1, [sp, #0x18] - adds r1, r1, r0 - str r1, [sp, #0x18] - mov r0, sl - muls r0, r4, r0 - movs r1, #0x64 - bl Div - ldr r2, [sp, #0x1c] - adds r2, r2, r0 - str r2, [sp, #0x1c] - movs r5, #0 - ldr r4, _08087D90 @ =gPartner - ldr r6, _08087D94 @ =gPlayer - mov sl, r5 @ sl = r5 = 0 - movs r7, #1 -_08087D88_loop: - cmp r5, #0 - beq _08087D98 - ldr r0, [r4, #0x10] - b _08087D9A - .align 2, 0 -_08087D90: .4byte gPartner -_08087D94: .4byte gPlayer -_08087D98: - ldr r0, [r6, #0x10] -_08087D9A: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087DA4 - b _08088230 -_08087DA4: - mov r3, r8 - ldrb r0, [r3] - asrs r0, r5 - ands r0, r7 - cmp r0, #0 - bne _08087DB2 - b _080880B2 -_08087DB2: - ldr r0, [sp, #0x18] - movs r1, #0xc3 - lsls r1, r1, #2 - bl Div - ldr r2, [sp, #0x2c] @ r2 = sp2C = worldX << 16 - asrs r1, r2, #0x10 - adds r1, r1, r0 - subs r1, #4 - lsls r1, r1, #8 - cmp r5, #0 - beq _08087DCE - str r1, [r4] - b _08087DD0 -_08087DCE: - str r1, [r6] -_08087DD0: - cmp r5, #0 - beq _08087DDE - ldr r0, [r4, #0x10] - ands r0, r7 - cmp r0, #0 - bne _08087DE6 - b _08087E00 -_08087DDE: - ldr r0, [r6, #0x10] - ands r0, r7 - cmp r0, #0 - beq _08087E00 -_08087DE6: - cmp r5, #0 - beq _08087DF6 - ldr r0, [r4] - movs r3, #0xa0 - lsls r3, r3, #4 - adds r0, r0, r3 - str r0, [r4] - b _08087E00 -_08087DF6: - ldr r0, [r6] - movs r1, #0xa0 - lsls r1, r1, #4 - adds r0, r0, r1 - str r0, [r6] -_08087E00: - ldr r0, [sp, #0x1c] - movs r1, #0xaa - lsls r1, r1, #2 - bl Div - ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 - asrs r1, r2, #0x10 - adds r1, r1, r0 - adds r1, #2 - lsls r1, r1, #8 - cmp r5, #0 - beq _08087E1C - str r1, [r4, #4] - b _08087E1E -_08087E1C: - str r1, [r6, #4] -_08087E1E: - cmp r5, #0 - beq _08087E28 - mov r3, sl @ r3 = sl = 0 - strb r3, [r4, #0x14] - b _08087E2A -_08087E28: - strb r5, [r6, #0x14] -_08087E2A: - ldr r0, _08087E3C @ =gPlayerControls - ldrh r1, [r0] - cmp r5, #0 - beq _08087E40 - ldrh r0, [r4, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _08087E4A - b _080880A4 - .align 2, 0 -_08087E3C: .4byte gPlayerControls -_08087E40: - ldrh r0, [r6, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _08087E4A - b _080880A4 -_08087E4A: - ldr r0, _08087E64 @ =gPlayer - cmp r5, #0 - beq _08087E52 - ldr r0, _08087E68 @ =gPartner -_08087E52: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _08087E70 - ldr r0, [r4, #0x10] - ldr r1, _08087E6C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08087E78 - .align 2, 0 -_08087E64: .4byte gPlayer -_08087E68: .4byte gPartner -_08087E6C: .4byte 0xFFBFFFFF -_08087E70: - ldr r0, [r6, #0x10] - ldr r1, _08087E88 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08087E78: - ldr r3, _08087E8C @ =gPlayer - cmp r5, #0 - beq _08087E90 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _08087E98 - .align 2, 0 -_08087E88: .4byte 0xFFBFFFFF -_08087E8C: .4byte gPlayer -_08087E90: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_08087E98: - cmp r5, #0 - beq _08087EA8 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r4, #0x10] - b _08087EB2 -_08087EA8: - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r6, #0x10] -_08087EB2: - cmp r5, #0 - beq _08087EBE - movs r0, #0xfb - lsls r0, r0, #8 - strh r0, [r4, #0xa] - b _08087EC4 -_08087EBE: - movs r0, #0xfb - lsls r0, r0, #8 - strh r0, [r3, #0xa] -_08087EC4: - cmp r5, #0 - beq _08087ECE - mov r0, sl @ r0 = sl = 0 - str r0, [r4, #0x28] - b _08087ED0 -_08087ECE: - str r5, [r3, #0x28] -_08087ED0: - cmp r5, #0 - beq _08087EE0 - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _08087EEA -_08087EE0: - ldr r0, [r6, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08087EEA: - cmp r5, #0 - beq _08087EF8 - ldr r2, _08087EF4 @ =gPartner + 0x26 - b _08087EFC - .align 2, 0 -_08087EF4: .4byte gPartner + 0x26 -_08087EF8: - adds r2, r3, #0 - adds r2, #0x26 -_08087EFC: - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _08087F14 - ldrh r0, [r4, #0x38] - movs r1, #0x30 - ands r0, r1 - cmp r0, #0 - bne _08087F1E - b _08087FB0 -_08087F14: - ldrh r0, [r3, #0x38] - movs r1, #0x30 - ands r0, r1 - cmp r0, #0 - beq _08087FB0 -_08087F1E: - cmp r5, #0 - beq _08087F2E - ldrh r0, [r4, #0x38] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08087F38 - b _08087F70 -_08087F2E: - ldrh r0, [r3, #0x38] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08087F70 -_08087F38: - cmp r5, #0 - beq _08087F44 - ldr r0, [r4, #0x10] - orrs r0, r7 - str r0, [r4, #0x10] - b _08087F4A -_08087F44: - ldr r0, [r6, #0x10] - orrs r0, r7 - str r0, [r6, #0x10] -_08087F4A: - cmp r5, #0 - beq _08087F56 - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r4, #8] - b _08087F5C -_08087F56: - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r3, #8] -_08087F5C: - cmp r5, #0 - beq _08087F68 - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r4, #0xc] - b _08087FC8 -_08087F68: - movs r0, #0xfe - lsls r0, r0, #8 - strh r0, [r3, #0xc] - b _08087FC8 -_08087F70: - cmp r5, #0 - beq _08087F80 - ldr r0, [r4, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - b _08087F8A -_08087F80: - ldr r0, [r6, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08087F8A: - cmp r5, #0 - beq _08087F96 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #8] - b _08087F9C -_08087F96: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r3, #8] -_08087F9C: - cmp r5, #0 - beq _08087FA8 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0xc] - b _08087FC8 -_08087FA8: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r3, #0xc] - b _08087FC8 -_08087FB0: - cmp r5, #0 - beq _08087FBA - mov r0, sl @ r0 = sl = 0 - strh r0, [r4, #8] - b _08087FBC -_08087FBA: - strh r5, [r3, #8] -_08087FBC: - cmp r5, #0 - beq _08087FC6 - mov r1, sl @ r1 = sl = 0 - strh r1, [r4, #0xc] - b _08087FC8 -_08087FC6: - strh r5, [r3, #0xc] -_08087FC8: - cmp r5, #0 - beq _08087FDC - ldr r2, _08087FD8 @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #3 - bne _08087FEA - b _08088048 - .align 2, 0 -_08087FD8: .4byte gPartner + 0x59 -_08087FDC: - adds r0, r3, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - beq _08088048 -_08087FEA: - cmp r5, #0 - beq _08087FF8 - ldr r0, [r4, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r4, #0x10] - b _08088000 -_08087FF8: - ldr r0, [r6, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #0x10] -_08088000: - cmp r5, #0 - beq _08088010 - movs r0, #5 - ldr r3, _0808800C @ =gPartner + 0x40 - strb r0, [r3] - b _08088018 - .align 2, 0 -_0808800C: .4byte gPartner + 0x40 -_08088010: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #5 - strb r0, [r1] -_08088018: - ldr r0, _08088040 @ =gPlayer - cmp r5, #0 - beq _08088020 - ldr r0, _08088044 @ =gPartner -_08088020: - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - ldr r1, _08088040 @ =gPlayer - cmp r5, #0 - beq _0808802E - ldr r1, _08088044 @ =gPartner -_0808802E: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08088040 @ =gPlayer - cmp r5, #0 - beq _0808803A - ldr r1, _08088044 @ =gPartner -_0808803A: - movs r0, #9 - b _08088084 - .align 2, 0 -_08088040: .4byte gPlayer -_08088044: .4byte gPartner -_08088048: - cmp r5, #0 - beq _08088058 - movs r0, #0x55 - ldr r1, _08088054 @ =gPartner + 0x40 - b _0808805E - .align 2, 0 -_08088054: .4byte gPartner + 0x40 -_08088058: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #0x55 -_0808805E: - strb r0, [r1] - ldr r0, _0808809C @ =gPlayer - cmp r5, #0 - beq _08088068 - ldr r0, _080880A0 @ =gPartner -_08088068: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _0808809C @ =gPlayer - cmp r5, #0 - beq _08088076 - ldr r1, _080880A0 @ =gPartner -_08088076: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _0808809C @ =gPlayer - cmp r5, #0 - beq _08088082 - ldr r1, _080880A0 @ =gPartner -_08088082: - movs r0, #0xe -_08088084: - strb r0, [r1, #0xf] - ldr r0, [sp, #0x24] @ r0 = sp24 = hook - adds r0, #0xb0 - adds r0, r0, r5 - movs r1, #0x14 - strb r1, [r0] - adds r1, r7, #0 - lsls r1, r5 - mov r2, r8 - ldrb r0, [r2] - bics r0, r1 - b _08088292 - .align 2, 0 -_0808809C: .4byte gPlayer -_080880A0: .4byte gPartner -_080880A4: - cmp r5, #0 - beq _080880AE - mov r3, sl @ r3 = sl = 0 - strh r3, [r4, #0xa] - b _08088294_continue -_080880AE: - strh r5, [r6, #0xa] - b _08088294_continue -_080880B2: - ldr r0, [sp, #0x24] @ r0 = sp24 = hook - adds r0, #0xb0 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - beq _080880C4 - subs r0, #1 - strb r0, [r1] - b _08088294_continue -_080880C4: - ldr r0, [sp, #0x18] - ldr r1, _080880E4 @ =950 - bl Div - ldr r2, [sp, #0x2c] @ r2 = sp2C = worldX << 16 - asrs r1, r2, #0x10 - adds r1, r1, r0 - subs r1, #0x10 - cmp r5, #0 - beq _080880E8 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - ble _080880F2 - b _08088294_continue - .align 2, 0 -_080880E4: .4byte 0x000003B6 -_080880E8: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - ble _080880F2 - b _08088294_continue -_080880F2: - ldr r0, [sp, #0x18] - ldr r1, _08088110 @ =950 - bl Div - ldr r3, [sp, #0x2c] @ r3 = sp2C = worldX << 16 - asrs r1, r3, #0x10 - adds r1, r1, r0 - adds r1, #0x10 - cmp r5, #0 - beq _08088114 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808811E - b _08088294_continue - .align 2, 0 -_08088110: .4byte 0x000003B6 -_08088114: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808811E - b _08088294_continue -_0808811E: - ldr r0, [sp, #0x1c] - ldr r1, _0808813C @ =950 - bl Div - ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 - asrs r1, r2, #0x10 - adds r1, r1, r0 - subs r1, #0x10 - cmp r5, #0 - beq _08088140 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _0808814A - b _08088294_continue - .align 2, 0 -_0808813C: .4byte 0x000003B6 -_08088140: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - ble _0808814A - b _08088294_continue -_0808814A: - ldr r0, [sp, #0x1c] - ldr r1, _08088168 @ =950 - bl Div - ldr r3, [sp, #0x30] @ r3 = sp30 = worldY << 16 - asrs r1, r3, #0x10 - adds r1, r1, r0 - adds r1, #0x10 - cmp r5, #0 - beq _0808816C - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08088176 - b _08088294_continue - .align 2, 0 -_08088168: .4byte 0x000003B6 -_0808816C: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08088176 - b _08088294_continue -_08088176: - adds r0, r7, #0 - lsls r0, r5 - mov r2, r8 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r0, _08088198 @ =gPlayer - cmp r5, #0 - beq _0808818A - ldr r0, _0808819C @ =gPartner -_0808818A: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _080881A0 - mov r3, sb - str r3, [r4, #0x28] - b _080881A4 - .align 2, 0 -_08088198: .4byte gPlayer -_0808819C: .4byte gPartner -_080881A0: - mov r0, sb - str r0, [r6, #0x28] -_080881A4: - cmp r5, #0 - beq _080881B2 - ldr r0, [r4, #0x10] - movs r1, #8 - orrs r0, r1 - str r0, [r4, #0x10] - b _080881BA -_080881B2: - ldr r0, [r6, #0x10] - movs r1, #8 - orrs r0, r1 - str r0, [r6, #0x10] -_080881BA: - cmp r5, #0 - beq _080881CA - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - b _080881D4 -_080881CA: - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r6, #0x10] -_080881D4: - cmp r5, #0 - beq _080881DE - mov r1, sl @ r1 = sl = 0 - strh r1, [r4, #8] - b _080881E0 -_080881DE: - strh r5, [r6, #8] -_080881E0: - cmp r5, #0 - beq _080881EA - mov r2, sl @ r2 = sl = 0 - strh r2, [r4, #0xc] - b _080881EC -_080881EA: - strh r5, [r6, #0xc] -_080881EC: - cmp r5, #0 - beq _080881F6 - mov r3, sl @ r3 = sl = 0 - strh r3, [r4, #0xa] - b _080881F8 -_080881F6: - strh r5, [r6, #0xa] -_080881F8: - cmp r5, #0 - beq _08088208 - movs r0, #0x26 - ldr r1, _08088204 @ =gPartner + 0x40 - b _0808820E - .align 2, 0 -_08088204: .4byte gPartner + 0x40 -_08088208: - adds r1, r6, #0 - adds r1, #0x40 - movs r0, #0x26 -_0808820E: - strb r0, [r1] - cmp r5, #0 - beq _08088224 - ldr r2, _08088220 @ =gPartner + 0x26 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - b _08088292 - .align 2, 0 -_08088220: .4byte gPartner + 0x26 -_08088224: - adds r2, r6, #0 - adds r2, #0x26 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - b _08088292 -_08088230: - mov r3, r8 - ldrb r0, [r3] - asrs r0, r5 - ands r0, r7 - cmp r0, #0 - beq _08088294_continue - cmp r5, #0 - beq _08088250 - ldr r0, [r4, #0x10] - ldr r1, _0808824C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08088258 - .align 2, 0 -_0808824C: .4byte 0xFFBFFFFF -_08088250: - ldr r0, [r6, #0x10] - ldr r1, _08088280 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08088258: - ldr r0, [sp, #0x24] @ r0 = sp24 = hook - adds r0, #0xb0 - adds r0, r0, r5 - movs r1, #0x14 - strb r1, [r0] - adds r1, r7, #0 - lsls r1, r5 - mov r2, r8 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _08088288 - ldr r3, _08088284 @ =gPartner + 0x26 - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3] - b _08088294_continue - .align 2, 0 -_08088280: .4byte 0xFFBFFFFF -_08088284: .4byte gPartner + 0x26 -_08088288: - adds r2, r6, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 -_08088292: - strb r0, [r2] -_08088294_continue: - adds r5, #1 - ldr r0, _080882FC @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bge _080882A4 - b _08087D88_loop -_080882A4: - ldr r4, _08088300 @ =0x000003FF - adds r0, r4, #0 - ldr r5, [sp, #0x28] - bics r0, r5 - ldr r1, [sp] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #2] - strh r0, [r1, #4] - ldr r2, _08088304 @ =gCamera - ldrh r1, [r2] - ldr r3, [sp, #0x2c] @ r2 = sp2C = worldX << 16 - asrs r0, r3, #0x10 - subs r0, r0, r1 - ldr r4, [sp, #0x18] - asrs r1, r4, #0xa - adds r0, r0, r1 - ldr r5, [sp] - strh r0, [r5, #6] - ldrh r1, [r2, #2] - ldr r2, [sp, #0x30] @ r2 = sp30 = worldY << 16 - asrs r0, r2, #0x10 - subs r0, r0, r1 - ldr r3, [sp, #0x1c] - asrs r1, r3, #0xa - adds r0, r0, r1 - strh r0, [r5, #8] - ldr r4, [sp, #0x20] - movs r0, #3 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _0808830C - ldr r2, _08088308 @ =gOamMatrixIndex - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0xc - movs r1, #0x7e - orrs r0, r1 - mov r5, sb - str r0, [r5, #0x10] - b _08088320 - .align 2, 0 -_080882FC: .4byte gNumSingleplayerCharacters -_08088300: .4byte 0x000003FF -_08088304: .4byte gCamera -_08088308: .4byte gOamMatrixIndex -_0808830C: - ldr r2, _08088360 @ =gOamMatrixIndex - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0xc - movs r1, #0x7f - orrs r0, r1 - mov r1, sb - str r0, [r1, #0x10] -_08088320: - mov r0, sb - ldr r1, [sp] - bl TransformSprite - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - bl DisplaySprite - mov r2, sb - ldr r0, [r2, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r2, #0x10] - mov r0, sb - bl DisplaySprite - mov r3, sb - ldr r0, [r3, #0x10] - ldr r1, _08088364 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r3, #0x10] -_08088350: - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08088360: .4byte gOamMatrixIndex -_08088364: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc deleted file mode 100644 index e9f575e320..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type0_2.inc +++ /dev/null @@ -1,452 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r1, _08086E04 @ =gCurTask - ldr r0, [r1] - ldrh r6, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r6, r0 - ldr r2, _08086E08 @ =0x0300000C - adds r7, r6, r2 - ldr r3, [r4] - str r3, [sp] - ldrb r0, [r4, #8] - lsls r0, r0, #3 - ldrh r1, [r4, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r1, [sp] - ldrb r0, [r1, #1] - lsls r0, r0, #3 - ldrh r1, [r4, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov sb, r2 - ldr r5, _08086E0C @ =gPlayer - ldr r0, [r5, #0x10] - mov r8, r0 - movs r0, #0x80 - mov r1, r8 - ands r1, r0 - mov r8, r1 - cmp r1, #0 - beq _08086D14 - b _08086F10 -_08086D14: - movs r0, #0x40 - adds r0, r0, r5 - mov sb, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x26 - beq _08086D38 - adds r0, r5, #0 - str r2, [sp, #4] - str r3, [sp, #8] - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0x26 - mov r1, sb - strb r0, [r1] - ldr r3, [sp, #8] - ldr r2, [sp, #4] -_08086D38: - mov r0, r8 - strh r0, [r5, #0xa] - ldr r1, _08086E10 @ =0x03000050 - adds r6, r6, r1 - ldrb r0, [r6] - cmp r0, #0 - beq _08086E28 - ldr r0, [r4, #0x40] - adds r0, #0x14 - str r0, [r4, #0x40] - ldr r1, [r4, #0x4c] - adds r1, r1, r0 - str r1, [r4, #0x4c] - lsls r0, r3, #0x10 - asrs r0, r0, #8 - ldr r3, _08086E14 @ =0xFFFFFA00 - adds r0, r0, r3 - adds r0, r0, r1 - str r0, [r5] - lsls r0, r2, #0x10 - asrs r6, r0, #0x10 - movs r0, #0x8a - lsls r0, r0, #1 - adds r1, r6, r0 - lsls r1, r1, #8 - ldr r0, [r4, #0x4c] - asrs r0, r0, #1 - adds r1, r1, r0 - str r1, [r5, #4] - ldr r0, [r4, #0x4c] - asrs r0, r0, #9 - adds r0, r6, r0 - ldr r1, _08086E18 @ =gCamera - mov sl, r1 - ldrh r1, [r1, #2] - subs r0, r0, r1 - adds r0, #0xf0 - strh r0, [r7, #0x18] - ldr r0, [r4, #0x4c] - asrs r0, r0, #8 - cmp r0, #2 - ble _08086E7E - movs r0, #0xb4 - bl m4aSongNumStop - adds r0, r5, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r0, [r5, #0x10] - ldr r1, _08086E1C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] - movs r0, #4 - mov r2, sb - strb r0, [r2] - adds r0, r5, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - ldr r3, _08086E04 @ =gCurTask - ldr r1, [r3] - ldr r0, _08086E20 @ =Task_HookRail_Shared1 - str r0, [r1, #8] - ldr r0, [r4, #0x40] - strh r0, [r5, #0xc] - ldr r0, [r5, #4] - ldr r1, _08086E24 @ =0xFFFFF600 - adds r0, r0, r1 - str r0, [r5, #4] - ldr r0, [r4, #0x4c] - asrs r0, r0, #9 - adds r0, r6, r0 - mov r2, sl - ldrh r1, [r2, #2] - subs r0, r0, r1 - adds r0, #0x78 - strh r0, [r7, #0x18] - adds r2, r5, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r1, [r5, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08086E7E - ldr r0, [r5, #0x28] - cmp r0, r7 - bne _08086E7E - mov r3, r8 - str r3, [r5, #0x28] - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x10] - b _08086E7E - .align 2, 0 -_08086E04: .4byte gCurTask -_08086E08: .4byte 0x0300000C -_08086E0C: .4byte gPlayer -_08086E10: .4byte 0x03000050 -_08086E14: .4byte 0xFFFFFA00 -_08086E18: .4byte gCamera -_08086E1C: .4byte 0xFFBFFFFF -_08086E20: .4byte Task_HookRail_Shared1 -_08086E24: .4byte 0xFFFFF600 -_08086E28: - ldr r0, [r4, #0x40] - subs r0, #9 - str r0, [r4, #0x40] - ldr r1, _08086EB4 @ =0xFFFFFA00 - cmp r0, r1 - bge _08086E36 - str r1, [r4, #0x40] -_08086E36: - ldr r1, [r4, #0x4c] - ldr r0, [r4, #0x40] - adds r1, r1, r0 - str r1, [r4, #0x4c] - lsls r0, r3, #0x10 - asrs r0, r0, #8 - ldr r3, _08086EB4 @ =0xFFFFFA00 - adds r0, r0, r3 - adds r0, r0, r1 - str r0, [r5] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r1, r2, #0 - adds r1, #0x26 - lsls r1, r1, #8 - ldr r0, [r4, #0x4c] - asrs r0, r0, #1 - subs r1, r1, r0 - str r1, [r5, #4] - ldr r0, [r4, #0x4c] - asrs r0, r0, #9 - subs r2, r2, r0 - ldr r0, _08086EB8 @ =gCamera - ldrh r0, [r0, #2] - subs r2, r2, r0 - strh r2, [r7, #0x18] - ldr r0, [r5] - ldr r1, [r4, #0x48] - subs r0, r0, r1 - asrs r0, r0, #8 - movs r1, #0xf4 - rsbs r1, r1, #0 - cmp r0, r1 - bge _08086E7E - movs r0, #1 - strb r0, [r6] -_08086E7E: - ldr r0, _08086EBC @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _08086ECC - ldr r0, _08086EC0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08086EC4 @ =gMultiSioRecv - adds r1, r1, r0 - ldr r3, _08086EB8 @ =gCamera - ldrh r0, [r1, #2] - ldrh r2, [r3] - subs r0, r0, r2 - adds r0, #5 - strh r0, [r7, #0x16] - ldrh r0, [r1, #4] - ldrh r1, [r3, #2] - subs r0, r0, r1 - subs r0, #0x24 - strh r0, [r7, #0x18] - ldr r6, _08086EC8 @ =gPlayer - adds r2, r3, #0 - b _08086EEA - .align 2, 0 -_08086EB4: .4byte 0xFFFFFA00 -_08086EB8: .4byte gCamera -_08086EBC: .4byte gGameMode -_08086EC0: .4byte 0x04000128 -_08086EC4: .4byte gMultiSioRecv -_08086EC8: .4byte gPlayer -_08086ECC: - ldr r3, _08086F08 @ =gPlayer - ldr r0, [r3] - asrs r0, r0, #8 - ldr r2, _08086F0C @ =gCamera - ldrh r1, [r2] - subs r0, r0, r1 - adds r0, #5 - strh r0, [r7, #0x16] - ldr r0, [r3, #4] - asrs r0, r0, #8 - ldrh r1, [r2, #2] - subs r0, r0, r1 - subs r0, #0x24 - strh r0, [r7, #0x18] - adds r6, r3, #0 -_08086EEA: - ldr r0, [r6] - asrs r0, r0, #8 - ldrh r1, [r2] - subs r0, r0, r1 - adds r0, #5 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - ldrh r1, [r2, #2] - subs r0, r0, r1 - subs r0, #0x24 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _08086FDA - .align 2, 0 -_08086F08: .4byte gPlayer -_08086F0C: .4byte gCamera -_08086F10: - ldr r0, _08086F70 @ =0x03000050 - adds r6, r6, r0 - ldrb r0, [r6] - cmp r0, #0 - beq _08086F80 - ldr r0, [r4, #0x40] - adds r0, #0x14 - str r0, [r4, #0x40] - ldr r1, [r4, #0x4c] - adds r1, r1, r0 - str r1, [r4, #0x4c] - asrs r1, r1, #9 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - ldr r1, _08086F74 @ =gCamera - ldrh r1, [r1, #2] - subs r0, r0, r1 - adds r0, #0xf0 - strh r0, [r7, #0x18] - ldr r0, [r4, #0x4c] - asrs r0, r0, #8 - lsls r3, r3, #0x10 - mov r8, r3 - cmp r0, #2 - ble _08086FC4 - movs r0, #0xb4 - bl m4aSongNumStop - ldr r2, _08086F78 @ =gCurTask - ldr r1, [r2] - ldr r0, _08086F7C @ =Task_HookRail_Shared1 - str r0, [r1, #8] - ldr r1, [r5, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08086FC4 - ldr r0, [r5, #0x28] - cmp r0, r7 - bne _08086FC4 - movs r0, #0 - str r0, [r5, #0x28] - subs r0, #9 - ands r1, r0 - str r1, [r5, #0x10] - b _08086FC4 - .align 2, 0 -_08086F70: .4byte 0x03000050 -_08086F74: .4byte gCamera -_08086F78: .4byte gCurTask -_08086F7C: .4byte Task_HookRail_Shared1 -_08086F80: - ldr r0, [r4, #0x40] - subs r0, #9 - str r0, [r4, #0x40] - ldr r1, _0808702C @ =0xFFFFFA00 - cmp r0, r1 - bge _08086F8E - str r1, [r4, #0x40] -_08086F8E: - ldr r1, [r4, #0x4c] - ldr r0, [r4, #0x40] - adds r1, r1, r0 - str r1, [r4, #0x4c] - lsls r2, r3, #0x10 - asrs r0, r2, #8 - adds r0, r0, r1 - ldr r1, [r4, #0x48] - subs r0, r0, r1 - asrs r0, r0, #8 - movs r1, #0xf4 - rsbs r1, r1, #0 - mov r8, r2 - cmp r0, r1 - bge _08086FB0 - movs r0, #1 - strb r0, [r6] -_08086FB0: - ldr r1, [r4, #0x4c] - asrs r1, r1, #9 - mov r3, sb - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - ldr r1, _08087030 @ =gCamera - ldrh r1, [r1, #2] - subs r0, r0, r1 - strh r0, [r7, #0x18] -_08086FC4: - ldr r0, [r4, #0x4c] - asrs r0, r0, #8 - mov r2, r8 - asrs r1, r2, #0x10 - adds r1, r1, r0 - ldr r0, _08087030 @ =gCamera - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r7, #0x16] - ldrh r5, [r7, #0x16] - ldrh r2, [r7, #0x18] -_08086FDA: - lsls r0, r5, #0x10 - movs r3, #0x80 - lsls r3, r3, #0x10 - adds r0, r0, r3 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08086FFE - lsls r0, r2, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08086FFE - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0808703C -_08086FFE: - ldr r2, _08087034 @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808701A - ldr r0, [r2, #0x28] - cmp r0, r7 - bne _0808701A - movs r0, #0 - str r0, [r2, #0x28] - subs r0, #9 - ands r1, r0 - str r1, [r2, #0x10] -_0808701A: - ldrb r0, [r4, #8] - ldr r1, [sp] - strb r0, [r1] - ldr r0, _08087038 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08087042 - .align 2, 0 -_0808702C: .4byte 0xFFFFFA00 -_08087030: .4byte gCamera -_08087034: .4byte gPlayer -_08087038: .4byte gCurTask -_0808703C: - adds r0, r7, #0 - bl DisplaySprite -_08087042: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc deleted file mode 100644 index 1d93e0b330..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/hook_rail__Task_HookRail_Type1_2.inc +++ /dev/null @@ -1,351 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r1, _0808696C @ =gCurTask - ldr r0, [r1] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r1, r0 @ r5 = hookRail - ldr r2, _08086970 @ =0x0300000C - adds r6, r1, r2 @ r6 = s - ldr r3, [r5] - str r3, [sp] @ sp00 = r3 = me - ldrb r0, [r5, #8] - lsls r0, r0, #3 - ldrh r1, [r5, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sb, r0 @ sb = worldX - ldrb r0, [r3, #1] - lsls r0, r0, #3 - ldrh r1, [r5, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 @ sl = worldY - ldr r4, _08086974 @ =gPlayer - ldr r1, [r4, #0x10] - movs r0, #0x80 - mov r8, r0 - mov r2, r8 - ands r2, r1 - mov r8, r2 - cmp r2, #0 - beq _080868D8 - b _08086A50 -_080868D8: - adds r7, r4, #0 - adds r7, #0x40 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r0, #0x26 - beq _080868EE - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0x26 - strb r0, [r7] -_080868EE: - mov r3, r8 - strh r3, [r4, #0xa] - ldr r0, [r4] - ldr r1, [r5, #0x48] - subs r0, r0, r1 - asrs r0, r0, #8 - movs r1, #0xf0 - lsls r1, r1, #1 - cmp r0, r1 - ble _08086984 - movs r0, #0xb4 - bl m4aSongNumStop - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r0, [r4, #0x10] - ldr r1, _08086978 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - movs r0, #4 - strb r0, [r7] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - ldr r0, _0808696C @ =gCurTask - ldr r1, [r0] - ldr r0, _0808697C @ =Task_HookRail_Shared0 - str r0, [r1, #8] - ldr r0, [r5, #0x40] - movs r1, #0 - strh r0, [r4, #0xc] - ldr r0, [r4, #4] - ldr r2, _08086980 @ =0xFFFFF600 - adds r0, r0, r2 - str r0, [r4, #4] - strb r1, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] @ gPlayer.itemEffect &= ~PLAYER_ITEM_EFFECT__TELEPORT; - ldr r1, [r4, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080869BC - ldr r0, [r4, #0x28] - cmp r0, r6 - bne _080869BC - mov r3, r8 - str r3, [r4, #0x28] - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x10] - b _080869BC - .align 2, 0 -_0808696C: .4byte gCurTask -_08086970: .4byte 0x0300000C -_08086974: .4byte gPlayer -_08086978: .4byte 0xFFBFFFFF -_0808697C: .4byte Task_HookRail_Shared0 -_08086980: .4byte 0xFFFFF600 -_08086984: - ldr r0, [r5, #0x40] - adds r0, #0x10 - str r0, [r5, #0x40] - ldr r1, [r5, #0x4c] - adds r1, r1, r0 - str r1, [r5, #0x4c] - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #8 - ldr r3, _080869F4 @ =0xFFFFFA00 - adds r0, r0, r3 - adds r0, r0, r1 - str r0, [r4] - mov r1, sl @ r1 = sl = worldY - lsls r0, r1, #0x10 - asrs r0, r0, #8 - movs r2, #0x90 - lsls r2, r2, #6 - adds r0, r0, r2 - ldr r1, [r5, #0x4c] - asrs r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #4] - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0x26 - strb r0, [r7] -_080869BC: - ldr r0, _080869F8 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _08086A0C - ldr r0, _080869FC @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08086A00 @ =gMultiSioRecv - adds r1, r1, r0 - ldr r3, _08086A04 @ =gCamera - ldrh r0, [r1, #2] - ldrh r2, [r3] - subs r0, r0, r2 - adds r0, #5 - strh r0, [r6, #0x16] - ldrh r0, [r1, #4] - ldrh r1, [r3, #2] - subs r0, r0, r1 - subs r0, #0x24 - strh r0, [r6, #0x18] - ldr r4, _08086A08 @ =gPlayer - adds r2, r3, #0 - b _08086A2A - .align 2, 0 -_080869F4: .4byte 0xFFFFFA00 -_080869F8: .4byte gGameMode -_080869FC: .4byte 0x04000128 -_08086A00: .4byte gMultiSioRecv -_08086A04: .4byte gCamera -_08086A08: .4byte gPlayer -_08086A0C: - ldr r3, _08086A48 @ =gPlayer - ldr r0, [r3] - asrs r0, r0, #8 - ldr r2, _08086A4C @ =gCamera - ldrh r1, [r2] - subs r0, r0, r1 - adds r0, #5 - strh r0, [r6, #0x16] - ldr r0, [r3, #4] - asrs r0, r0, #8 - ldrh r1, [r2, #2] - subs r0, r0, r1 - subs r0, #0x24 - strh r0, [r6, #0x18] - adds r4, r3, #0 -_08086A2A: - ldr r0, [r4] - asrs r0, r0, #8 - ldrh r1, [r2] - subs r0, r0, r1 - adds r0, #5 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r0, [r4, #4] - asrs r0, r0, #8 - ldrh r1, [r2, #2] - subs r0, r0, r1 - subs r0, #0x24 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08086AD2 - .align 2, 0 -_08086A48: .4byte gPlayer -_08086A4C: .4byte gCamera -_08086A50: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08086A68 - ldr r0, [r4, #0x28] - cmp r0, r6 - bne _08086A68 - movs r0, #0 - str r0, [r4, #0x28] - subs r0, #9 - ands r1, r0 - str r1, [r4, #0x10] -_08086A68: - ldr r0, [r5, #0x40] - adds r0, #0x10 - str r0, [r5, #0x40] - ldr r1, [r5, #0x4c] - adds r1, r1, r0 - str r1, [r5, #0x4c] - asrs r1, r1, #8 - mov r3, sb - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - ldr r2, _08086B24 @ =gCamera - ldrh r1, [r2] - subs r0, r0, r1 - strh r0, [r6, #0x16] - ldr r1, [r5, #0x4c] - asrs r1, r1, #9 - mov r3, sl - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r0, r0, r1 - ldrh r1, [r2, #2] - subs r0, r0, r1 - strh r0, [r6, #0x18] - ldrh r7, [r6, #0x16] @ r7 = screenX = s->x; - ldrh r4, [r6, #0x18] @ r4 = screenY = s->y; - ldr r0, [r5, #0x4c] - asrs r0, r0, #8 - movs r1, #0xf0 - lsls r1, r1, #1 - cmp r0, r1 - ble _08086AD2 - movs r0, #0xb4 - bl m4aSongNumStop - ldr r0, _08086B28 @ =gCurTask - ldr r1, [r0] - ldr r0, _08086B2C @ =Task_HookRail_Shared0 - str r0, [r1, #8] - ldr r2, _08086B30 @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08086AD2 - ldr r0, [r2, #0x28] - cmp r0, r6 - bne _08086AD2 - movs r0, #0 - str r0, [r2, #0x28] - subs r0, #9 - ands r1, r0 - str r1, [r2, #0x10] -_08086AD2: - lsls r0, r7, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x10 - adds r0, r0, r1 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08086AF6 - lsls r0, r4, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08086AF6 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08086B34 -_08086AF6: - ldr r2, _08086B30 @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08086B12 - ldr r0, [r2, #0x28] - cmp r0, r6 - bne _08086B12 - movs r0, #0 - str r0, [r2, #0x28] - subs r0, #9 - ands r1, r0 - str r1, [r2, #0x10] -_08086B12: - ldrb r0, [r5, #8] - ldr r2, [sp] - strb r0, [r2] - ldr r0, _08086B28 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08086B3A - .align 2, 0 -_08086B24: .4byte gCamera -_08086B28: .4byte gCurTask -_08086B2C: .4byte Task_HookRail_Shared0 -_08086B30: .4byte gPlayer -_08086B34: - adds r0, r6, #0 - bl DisplaySprite -_08086B3A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc deleted file mode 100644 index ade56524f0..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/ice_block__Task_IceBlock.inc +++ /dev/null @@ -1,320 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r0, #0 - str r0, [sp, #8] - ldr r1, _08091894 @ =gCurTask - mov r8, r1 - ldr r0, [r1] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 - str r0, [sp, #4] @ r0 = block - ldr r2, _08091898 @ =0x0300000C - adds r7, r1, r2 @ r7 = s - ldr r3, [r0] - str r3, [sp] @ sp00 = me - ldrb r2, [r0, #8] - lsls r2, r2, #3 - ldrh r0, [r0, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 @ r2 = worldX << 16 - ldrb r1, [r3, #1] - lsls r1, r1, #3 - ldr r3, [sp, #4] - ldrh r0, [r3, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 @ r1 = worldY << 16 - ldr r3, _0809189C @ =gCamera - ldrh r0, [r3] - lsrs r6, r2, #0x10 @ r6 = worldX - asrs r5, r2, #0x10 @ r5 = worldX - subs r0, r5, r0 - strh r0, [r7, #0x16] - ldrh r0, [r3, #2] - lsrs r2, r1, #0x10 @ r2 = worldY - asrs r4, r1, #0x10 @ r4 = worldY - subs r0, r4, r0 - strh r0, [r7, #0x18] - ldr r0, _080918A0 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _080918AC - ldr r0, [sp] - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080918AC - adds r0, r5, #0 - adds r1, r4, #0 - bl CreateDustCloud - movs r0, #0x8a - bl m4aSongNumStart - ldr r1, _080918A4 @ =gSpriteTransformX - ldrh r0, [r7, #0x16] - strh r0, [r1] - ldr r2, _080918A8 @ =gSpriteTransformY - ldrh r1, [r7, #0x18] - strh r1, [r2] - subs r0, r5, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, #0x10 - subs r1, r4, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CreateIceBlockShards - mov r1, r8 - ldr r0, [r1] - bl TaskDestroy - b _08091A66_return - .align 2, 0 -_08091894: .4byte gCurTask -_08091898: .4byte 0x0300000C -_0809189C: .4byte gCamera -_080918A0: .4byte gGameMode -_080918A4: .4byte gSpriteTransformX -_080918A8: .4byte gSpriteTransformY -_080918AC: - lsls r6, r6, #0x10 - mov sl, r6 @ sl = worldX << 16 - lsls r2, r2, #0x10 - mov sb, r2 @ sb = worldY << 16 - mov r2, sl - asrs r2, r2, #0x10 - str r2, [sp, #0xc] @ sp0C = worldX - mov r3, sb - asrs r3, r3, #0x10 - str r3, [sp, #0x10] @ sp10 = worldY -_080918C0_loop: - ldr r6, _08091914 @ =gPlayer - ldr r0, [sp, #8] - cmp r0, #0 - beq _080918CA - ldr r6, _08091918 @ =gPartner -_080918CA: - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080918D6 - b _080919FC -_080918D6: - adds r0, r6, #0 - adds r0, #0x40 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #5 - bne _0809191C - adds r0, r7, #0 - mov r2, sl - asrs r1, r2, #0x10 - mov r3, sb - asrs r2, r3, #0x10 - adds r3, r6, #0 - bl Coll_Player_Platform - adds r1, r0, #0 - adds r0, r6, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r2, #0 - mov r8, r2 - cmp r0, #3 - beq _08091920 - movs r0, #8 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r0, r0, #0x1f - mov r8, r0 - b _08091920 - .align 2, 0 -_08091914: .4byte gPlayer -_08091918: .4byte gPartner -_0809191C: - movs r3, #0 - mov r8, r3 -_08091920: - mov r0, sl @ r0 = sl = worldX << 16 - asrs r4, r0, #0x10 - mov r1, sb - asrs r5, r1, #0x10 - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_800C394 - cmp r0, #0 - bne _0809194E - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_8091E88 - cmp r0, #0 - bne _0809194E - mov r2, r8 - cmp r2, #0 - beq _080919FC -_0809194E: - movs r3, #0 - ldr r0, _080919E4 @ =gPlayer - mov sb, r0 - ldr r1, _080919E8 @ =gNumSingleplayerCharacters - mov r8, r1 - movs r6, #8 - movs r5, #9 - rsbs r5, r5, #0 - movs r4, #2 -_08091960_loop: - mov r2, sb - cmp r3, #0 - beq _08091968 - ldr r2, _080919EC @ =gPartner -_08091968: - ldr r1, [r2, #0x10] - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - beq _0809197E - ldr r0, [r2, #0x28] - cmp r0, r7 - bne _0809197E - ands r1, r5 - orrs r1, r4 - str r1, [r2, #0x10] -_0809197E: - adds r3, #1 - mov r2, r8 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r3, r0 - blt _08091960_loop - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - bl CreateDustCloud - movs r0, #0x8a - bl m4aSongNumStart - ldr r1, _080919F0 @ =gSpriteTransformX - ldrh r0, [r7, #0x16] - strh r0, [r1] - ldr r2, _080919F4 @ =gSpriteTransformY - ldrh r1, [r7, #0x18] - strh r1, [r2] - ldr r3, [sp, #0xc] - subs r0, r3, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, #0x10 - ldr r2, [sp, #0x10] - subs r1, r2, r1 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CreateIceBlockShards - ldr r0, _080919F8 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _080919DC - bl CreateRoomEvent - movs r2, #0 - movs r1, #1 - strb r1, [r0] - ldr r3, [sp, #4] - ldrh r1, [r3, #4] - strb r1, [r0, #1] - ldrh r1, [r3, #6] - strb r1, [r0, #2] - ldrb r1, [r3, #9] - strb r1, [r0, #3] - strb r2, [r0, #4] -_080919DC: - movs r0, #0xc1 - bl m4aSongNumStart - b _08091A4E - .align 2, 0 -_080919E4: .4byte gPlayer -_080919E8: .4byte gNumSingleplayerCharacters -_080919EC: .4byte gPartner -_080919F0: .4byte gSpriteTransformX -_080919F4: .4byte gSpriteTransformY -_080919F8: .4byte gGameMode -_080919FC: - adds r0, r7, #0 - mov r2, sl @ r2 = sl = worldX << 16 - asrs r1, r2, #0x10 @ r1 = worldX - mov r3, sb - asrs r2, r3, #0x10 - adds r3, r6, #0 - bl Coll_Player_Platform - ldr r0, [sp, #8] - adds r0, #1 - str r0, [sp, #8] - ldr r0, _08091A58 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, [sp, #8] - cmp r1, r0 - bge _08091A22 - b _080918C0_loop -_08091A22: - ldrh r0, [r7, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08091A46 - movs r2, #0x18 - ldrsh r0, [r7, r2] - adds r0, #0x80 - cmp r0, #0 - blt _08091A46 - movs r3, #0x18 - ldrsh r1, [r7, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08091A60 -_08091A46: - ldr r1, [sp, #4] - ldrb r0, [r1, #8] - ldr r2, [sp] - strb r0, [r2] -_08091A4E: - ldr r0, _08091A5C @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08091A66_return - .align 2, 0 -_08091A58: .4byte gNumSingleplayerCharacters -_08091A5C: .4byte gCurTask -_08091A60: - adds r0, r7, #0 - bl DisplaySprite -_08091A66_return: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc deleted file mode 100644 index 9f783990f7..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/lava_platform__Task_80929A0.inc +++ /dev/null @@ -1,724 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _08092A84 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r4 - mov sl, r0 @ sl = platform - ldr r1, [r0] @ r1 = platform->base.me - ldr r0, _08092A88 @ =0x0300000C - adds r0, r0, r4 - mov sb, r0 @ sb = s - ldr r2, _08092A8C @ =0x03000044 - adds r2, r4, r2 - str r2, [sp, #8] @ sp08 = s2 - mov r5, sl @ r5 = sl = platform - ldrb r3, [r5, #8] - lsls r3, r3, #3 - ldrh r0, [r5, #4] - lsls r0, r0, #8 - adds r3, r3, r0 - lsls r3, r3, #0x10 @ r3 = worldX << 16 - ldrb r2, [r1, #1] - lsls r2, r2, #3 - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 @ r2 = worldY << 16 - ldr r1, [r5, #0x78] - adds r1, #0x25 - str r1, [r5, #0x78] @ - ldr r0, [r5, #0x7c] - adds r0, r0, r1 - str r0, [r5, #0x7c] @ platform->qUnk7C += platform->qUnk78; - ldr r1, _08092A90 @ =gCamera - ldrh r0, [r1] - lsrs r5, r3, #0x10 - str r5, [sp] @ sp00 = worldX - asrs r3, r3, #0x10 @ r3 = worldX - subs r0, r3, r0 - mov r5, sb - strh r0, [r5, #0x16] - ldrh r0, [r1, #2] - lsrs r5, r2, #0x10 - str r5, [sp, #4] - asrs r2, r2, #0x10 - subs r0, r2, r0 - subs r0, #3 - mov r5, sb - strh r0, [r5, #0x18] - ldrh r0, [r1] - subs r3, r3, r0 - ldr r0, [sp, #8] - strh r3, [r0, #0x16] - ldrh r0, [r1, #2] - subs r2, r2, r0 - mov r1, sl - ldr r0, [r1, #0x7c] - asrs r0, r0, #8 - adds r2, r2, r0 - ldr r3, [sp, #8] - strh r2, [r3, #0x18] - movs r6, #0 - ldr r5, _08092A94 @ =0x03000074 - adds r5, r5, r4 - mov r8, r5 @ r8 = r5 = &platform->unk74 - ldr r0, _08092A94 @ =0x03000074 - adds r0, r4, r0 - str r0, [sp, #0x10] @ sp10 = &platform->unk74 -_08092A34_loop: - mov r1, r8 - ldrb r0, [r1] - asrs r0, r6 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _08092AC8 - ldr r5, [sp] - lsls r3, r5, #0x10 - asrs r7, r3, #0x10 - mov r0, sl - ldr r1, [r0, #0x7c] - asrs r1, r1, #8 - ldr r5, [sp, #4] - lsls r2, r5, #0x10 - asrs r0, r2, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - ldr r5, _08092A98 @ =gPlayer - str r3, [sp, #0x14] - str r2, [sp, #0x18] - cmp r6, #0 - beq _08092A66 - ldr r5, _08092A9C @ =gPartner -_08092A66: - ldr r0, [sp, #8] - adds r1, r7, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _08092AA0 - movs r1, #1 - lsls r1, r6 - mov r2, r8 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - b _08092BE4_continue - .align 2, 0 -_08092A84: .4byte gCurTask -_08092A88: .4byte 0x0300000C -_08092A8C: .4byte 0x03000044 -_08092A90: .4byte gCamera -_08092A94: .4byte 0x03000074 -_08092A98: .4byte gPlayer -_08092A9C: .4byte gPartner -_08092AA0: - mov r3, sl - ldr r1, [r3, #0x78] - cmp r6, #0 - beq _08092AB8 - ldr r5, _08092AB4 @ =gPartner - ldr r0, [r5, #4] - adds r0, r0, r1 - str r0, [r5, #4] - b _08092BE4_continue - .align 2, 0 -_08092AB4: .4byte gPartner -_08092AB8: - ldr r2, _08092AC4 @ =gPlayer - ldr r0, [r2, #4] - adds r0, r0, r1 - str r0, [r2, #4] - b _08092BE4_continue - .align 2, 0 -_08092AC4: .4byte gPlayer -_08092AC8: - ldr r3, [sp] @ r3 = sp00 = worldX - lsls r0, r3, #0x10 - asrs r7, r0, #0x10 @ r7 = worldX - mov r5, sl @ r5 = sl = platform - ldr r1, [r5, #0x7c] - asrs r1, r1, #8 - ldr r3, [sp, #4] @ r3 = worldY - lsls r2, r3, #0x10 - asrs r4, r2, #0x10 @ r4 = worldY - adds r1, r4, r1 - lsls r1, r1, #0x10 - asrs r3, r1, #0x10 - ldr r5, _08092B14 @ =gPlayer - str r0, [sp, #0x14] - str r2, [sp, #0x18] - cmp r6, #0 - beq _08092AEC - ldr r5, _08092B18 @ =gPartner -_08092AEC: - ldr r0, [sp, #8] - adds r1, r7, #0 - adds r2, r3, #0 - adds r3, r5, #0 - bl Coll_Player_PlatformCrumbling - cmp r0, #0 - beq _08092BD8 - mov r5, sl - ldr r0, [r5, #0x7c] - asrs r0, r0, #8 - adds r0, r4, r0 - subs r0, #0x1b - lsls r0, r0, #8 - cmp r6, #0 - beq _08092B1C - ldr r1, _08092B18 @ =gPartner - str r0, [r1, #4] - b _08092B20 - .align 2, 0 -_08092B14: .4byte gPlayer -_08092B18: .4byte gPartner -_08092B1C: - ldr r2, _08092B40 @ =gPlayer - str r0, [r2, #4] -_08092B20: - movs r0, #1 - lsls r0, r6 - ldr r3, [sp, #0x10] @ r3 = &platform->unk74 - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - cmp r6, #0 - beq _08092B48 - ldr r5, _08092B44 @ =gPartner - ldr r0, [r5, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08092B54 - b _08092B60 - .align 2, 0 -_08092B40: .4byte gPlayer -_08092B44: .4byte gPartner -_08092B48: - ldr r1, _08092B6C @ =gPlayer - ldr r0, [r1, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08092B60 -_08092B54: - movs r1, #1 - lsls r1, r6 - ldr r2, [sp, #0x10] @ r2 = &platform->unk74 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] -_08092B60: - cmp r6, #0 - beq _08092B74 - ldr r3, _08092B70 @ =gPartner - movs r5, #0xa - ldrsh r0, [r3, r5] - b _08092B7A - .align 2, 0 -_08092B6C: .4byte gPlayer -_08092B70: .4byte gPartner -_08092B74: - ldr r1, _08092B90 @ =gPlayer - movs r2, #0xa - ldrsh r0, [r1, r2] -_08092B7A: - cmp r0, #0 - bne _08092BE4_continue - cmp r6, #0 - beq _08092B98 - ldr r3, _08092B94 @ =gPartner + 0x40 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #4 - bne _08092BA2 - b _08092BE4_continue - .align 2, 0 -_08092B90: .4byte gPlayer -_08092B94: .4byte gPartner + 0x40 -_08092B98: - ldr r5, _08092BBC @ =gPlayer + 0x40 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #4 - beq _08092BE4_continue -_08092BA2: - ldr r0, _08092BC0 @ =gPlayer - cmp r6, #0 - beq _08092BAA - ldr r0, _08092BC4 @ =gPartner -_08092BAA: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _08092BCC - movs r0, #4 - ldr r1, _08092BC8 @ =gPartner + 0x40 - strb r0, [r1] - b _08092BE4_continue - .align 2, 0 -_08092BBC: .4byte gPlayer + 0x40 -_08092BC0: .4byte gPlayer -_08092BC4: .4byte gPartner -_08092BC8: .4byte gPartner + 0x40 -_08092BCC: - movs r0, #4 - ldr r2, _08092BD4 @ =gPlayer + 0x40 - strb r0, [r2] - b _08092BE4_continue - .align 2, 0 -_08092BD4: .4byte gPlayer + 0x40 -_08092BD8: - movs r1, #1 - lsls r1, r6 - mov r3, r8 - ldrb r0, [r3] - bics r0, r1 - strb r0, [r3] -_08092BE4_continue: - adds r6, #1 - ldr r0, _08092C1C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r6, r0 - bge _08092BF4 - b _08092A34_loop -_08092BF4: - mov r0, sl - adds r0, #0x84 - ldr r2, [r0] - subs r1, r2, #1 - str r1, [r0] - cmp r1, #0x30 - bne _08092C24 - mov r1, sb - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - movs r1, #0 - ldr r0, _08092C20 @ =0x00000231 - mov r5, sb - strh r0, [r5, #0xa] - mov r0, sb - adds r0, #0x20 - strb r1, [r0] - b _08092E54 - .align 2, 0 -_08092C1C: .4byte gNumSingleplayerCharacters -_08092C20: .4byte 0x00000231 -_08092C24: - adds r0, r2, #0 - subs r0, #0x32 - cmp r0, #0x2e - bls _08092C2E - b _08092E68 -_08092C2E: - movs r5, #0 - ldr r6, _08092C80 @ =gPlayerBodyPSI+0xC+0x28 - ldr r0, [sp, #0x14] - asrs r0, r0, #0x10 - str r0, [sp, #0xc] - ldr r4, _08092C84 @ =gPartner - ldr r7, _08092C88 @ =gPlayer - ldr r1, [sp, #0x18] - asrs r1, r1, #0x10 - mov r8, r1 -_08092C42_loop: - ldr r1, _08092C80 @ =gPlayerBodyPSI+0xC+0x28 - cmp r5, #0 - beq _08092C4A - ldr r1, _08092C8C @ =gPartnerBodyPSI+0xC+0x28 -_08092C4A: - ldr r1, [r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08092C56 - b _08092E44_continue -_08092C56: - adds r0, r6, #0 - cmp r5, #0 - beq _08092C5E - ldr r0, _08092C8C @ =gPartnerBodyPSI+0xC+0x28 -_08092C5E: - movs r3, #4 - ldrsb r3, [r0, r3] - mov r1, sb @ r1 = sb = s - adds r1, #0x34 - movs r2, #0 - ldrsb r2, [r1, r2] - ldr r0, [sp, #0xc] - adds r2, r0, r2 - cmp r5, #0 - beq _08092C90 - ldr r0, [r4] - asrs r0, r0, #8 - adds r0, r0, r3 - cmp r2, r0 - ble _08092C9A - b _08092CCA - .align 2, 0 -_08092C80: .4byte gPlayerBodyPSI+0xC+0x28 -_08092C84: .4byte gPartner -_08092C88: .4byte gPlayer -_08092C8C: .4byte gPartnerBodyPSI+0xC+0x28 -_08092C90: - ldr r0, [r7] - asrs r0, r0, #8 - adds r0, r0, r3 - cmp r2, r0 - bgt _08092CCA -_08092C9A: - adds r0, r6, #0 - cmp r5, #0 - beq _08092CA2 - ldr r0, _08092CBC @ =gPartnerBodyPSI+0xC+0x28 -_08092CA2: - movs r3, #4 - ldrsb r3, [r0, r3] - mov r0, sb - adds r0, #0x36 - movs r2, #0 - ldrsb r2, [r0, r2] - ldr r0, [sp, #0xc] - adds r2, r2, r0 - cmp r5, #0 - beq _08092CC0 - ldr r0, [r4] - b _08092CC2 - .align 2, 0 -_08092CBC: .4byte gPartnerBodyPSI+0xC+0x28 -_08092CC0: - ldr r0, [r7] -_08092CC2: - asrs r0, r0, #8 - adds r0, r0, r3 - cmp r2, r0 - bge _08092D56 -_08092CCA: - adds r0, r6, #0 - cmp r5, #0 - beq _08092CD2 - ldr r0, _08092CF0 @ =gPartnerBodyPSI+0xC+0x28 -_08092CD2: - movs r2, #4 - ldrsb r2, [r0, r2] - movs r3, #0 - ldrsb r3, [r1, r3] - ldr r0, [sp, #0xc] - adds r3, r0, r3 - cmp r5, #0 - beq _08092CF4 - ldr r0, [r4] - asrs r0, r0, #8 - adds r0, r0, r2 - cmp r3, r0 - bge _08092D00 - b _08092E44_continue - .align 2, 0 -_08092CF0: .4byte gPartnerBodyPSI+0xC+0x28 -_08092CF4: - ldr r0, [r7] - asrs r0, r0, #8 - adds r0, r0, r2 - cmp r3, r0 - bge _08092D00 - b _08092E44_continue -_08092D00: - adds r0, r6, #0 - cmp r5, #0 - beq _08092D08 - ldr r0, _08092D44 @ =gPartnerBodyPSI+0xC+0x28 -_08092D08: - movs r3, #4 - ldrsb r3, [r0, r3] - adds r0, r6, #0 - cmp r5, #0 - beq _08092D14 - ldr r0, _08092D44 @ =gPartnerBodyPSI+0xC+0x28 -_08092D14: - movs r2, #6 - ldrsb r2, [r0, r2] - adds r0, r6, #0 - cmp r5, #0 - beq _08092D20 - ldr r0, _08092D44 @ =gPartnerBodyPSI+0xC+0x28 -_08092D20: - ldrb r0, [r0, #4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r2, r2, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - ldr r0, [sp, #0xc] - adds r1, r0, r1 - cmp r5, #0 - beq _08092D48 - ldr r0, [r4] - asrs r0, r0, #8 - adds r0, r0, r3 - adds r0, r0, r2 - cmp r0, r1 - bge _08092D56 - b _08092E44_continue - .align 2, 0 -_08092D44: .4byte gPartnerBodyPSI+0xC+0x28 -_08092D48: - ldr r0, [r7] - asrs r0, r0, #8 - adds r0, r0, r3 - adds r0, r0, r2 - cmp r0, r1 - bge _08092D56 - b _08092E44_continue -_08092D56: - adds r0, r6, #0 - cmp r5, #0 - beq _08092D5E - ldr r0, _08092D7C @ =gPartnerBodyPSI+0xC+0x28 -_08092D5E: - movs r3, #5 - ldrsb r3, [r0, r3] - mov r1, sb - adds r1, #0x35 - movs r2, #0 - ldrsb r2, [r1, r2] - add r2, r8 - cmp r5, #0 - beq _08092D80 - ldr r0, [r4, #4] - asrs r0, r0, #8 - adds r0, r0, r3 - cmp r2, r0 - ble _08092D8A - b _08092DB6 - .align 2, 0 -_08092D7C: .4byte gPartnerBodyPSI+0xC+0x28 -_08092D80: - ldr r0, [r7, #4] - asrs r0, r0, #8 - adds r0, r0, r3 - cmp r2, r0 - bgt _08092DB6 -_08092D8A: - adds r0, r6, #0 - cmp r5, #0 - beq _08092D92 - ldr r0, _08092DA8 @ =gPartnerBodyPSI+0xC+0x28 -_08092D92: - movs r3, #5 - ldrsb r3, [r0, r3] - mov r0, sb - adds r0, #0x37 - movs r2, #0 - ldrsb r2, [r0, r2] - add r2, r8 - cmp r5, #0 - beq _08092DAC - ldr r0, [r4, #4] - b _08092DAE - .align 2, 0 -_08092DA8: .4byte gPartnerBodyPSI+0xC+0x28 -_08092DAC: - ldr r0, [r7, #4] -_08092DAE: - asrs r0, r0, #8 - adds r0, r0, r3 - cmp r2, r0 - bge _08092E38 -_08092DB6: - adds r0, r6, #0 - cmp r5, #0 - beq _08092DBE - ldr r0, _08092DD8 @ =gPartnerBodyPSI+0xC+0x28 -_08092DBE: - movs r2, #5 - ldrsb r2, [r0, r2] - movs r3, #0 - ldrsb r3, [r1, r3] - add r3, r8 - cmp r5, #0 - beq _08092DDC - ldr r0, [r4, #4] - asrs r0, r0, #8 - adds r0, r0, r2 - cmp r3, r0 - bge _08092DE6 - b _08092E44_continue - .align 2, 0 -_08092DD8: .4byte gPartnerBodyPSI+0xC+0x28 -_08092DDC: - ldr r0, [r7, #4] - asrs r0, r0, #8 - adds r0, r0, r2 - cmp r3, r0 - blt _08092E44_continue -_08092DE6: - adds r0, r6, #0 - cmp r5, #0 - beq _08092DEE - ldr r0, _08092E28 @ =gPartnerBodyPSI+0xC+0x28 -_08092DEE: - movs r3, #5 - ldrsb r3, [r0, r3] - adds r0, r6, #0 - cmp r5, #0 - beq _08092DFA - ldr r0, _08092E28 @ =gPartnerBodyPSI+0xC+0x28 -_08092DFA: - movs r2, #7 - ldrsb r2, [r0, r2] - adds r0, r6, #0 - cmp r5, #0 - beq _08092E06 - ldr r0, _08092E28 @ =gPartnerBodyPSI+0xC+0x28 -_08092E06: - ldrb r0, [r0, #5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r2, r2, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - add r1, r8 - cmp r5, #0 - beq _08092E2C - ldr r0, [r4, #4] - asrs r0, r0, #8 - adds r0, r0, r3 - adds r0, r0, r2 - cmp r0, r1 - bge _08092E38 - b _08092E44_continue - .align 2, 0 -_08092E28: .4byte gPartnerBodyPSI+0xC+0x28 -_08092E2C: - ldr r0, [r7, #4] - asrs r0, r0, #8 - adds r0, r0, r3 - adds r0, r0, r2 - cmp r0, r1 - blt _08092E44_continue -_08092E38: - ldr r0, _08092E5C @ =gPlayer - cmp r5, #0 - beq _08092E40 - ldr r0, _08092E60 @ =gPartner -_08092E40: - bl Coll_DamagePlayer -_08092E44_continue: - adds r5, #1 - ldr r0, _08092E64 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bge _08092E54 - b _08092C42_loop -_08092E54: - mov r0, sb - bl UpdateSpriteAnimation - b _08092E92 - .align 2, 0 -_08092E5C: .4byte gPlayer -_08092E60: .4byte gPartner -_08092E64: .4byte gNumSingleplayerCharacters -_08092E68: - cmp r1, #0x2f - bgt _08092E92 - mov r0, sb - bl UpdateSpriteAnimation - cmp r0, #0 - bne _08092E8C - mov r1, sb - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - movs r1, #0 - ldr r0, _08092EC4 @ =0x00000231 - mov r2, sb - strh r0, [r2, #0xa] - mov r0, sb - adds r0, #0x20 - strb r1, [r0] -_08092E8C: - mov r0, sb - bl UpdateSpriteAnimation -_08092E92: - mov r3, sl - ldr r0, [r3, #0x7c] - cmp r0, #0 - blt _08092EE6 - mov r1, sl - adds r1, #0x80 - ldr r0, [r1] - subs r0, #1 - str r0, [r1] - cmp r0, #0 - beq _08092EC8 - ldr r0, [r3, #0x78] - lsls r0, r0, #1 - movs r1, #5 - bl Div - rsbs r0, r0, #0 - mov r5, sl - str r0, [r5, #0x78] - movs r0, #0 - ldr r1, [sp, #0x10] @ r1 = &platform->unk74 - strb r0, [r1] - str r0, [r5, #0x7c] - b _08092EE6 - .align 2, 0 -_08092EC4: .4byte 0x00000231 -_08092EC8: - mov r1, sb - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - movs r1, #0 - ldr r0, _08092F08 @ =0x00000231 - mov r2, sb - strh r0, [r2, #0xa] - mov r0, sb - adds r0, #0x20 - strb r1, [r0] - ldr r0, _08092F0C @ =gCurTask - ldr r1, [r0] - ldr r0, _08092F10 @ =Task_UnderwaterLavaPlatform - str r0, [r1, #8] -_08092EE6: - mov r0, sb - bl DisplaySprite - ldr r0, [sp, #8] - bl UpdateSpriteAnimation - ldr r0, [sp, #8] - bl DisplaySprite - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08092F08: .4byte 0x00000231 -_08092F0C: .4byte gCurTask -_08092F10: .4byte Task_UnderwaterLavaPlatform - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc deleted file mode 100644 index 7e50f832b8..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Dir.inc +++ /dev/null @@ -1,869 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r0, _080822D4 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - mov sl, r1 - ldr r0, [r1] - str r0, [sp, #0x10] - ldrb r1, [r1, #8] - lsls r1, r1, #3 - mov r2, sl - ldrh r0, [r2, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r3, [sp, #0x10] - ldrb r2, [r3, #1] - lsls r2, r2, #3 - mov r4, sl - ldrh r0, [r4, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldr r3, _080822D8 @ =gCamera - ldrh r0, [r3] - lsrs r5, r1, #0x10 - str r5, [sp] - asrs r1, r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #8] - ldrh r0, [r3, #2] - lsrs r1, r2, #0x10 - str r1, [sp, #4] - asrs r2, r2, #0x10 - subs r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0xc] - movs r7, #0 - ldr r3, _080822DC @ =gPartner - ldr r2, _080822E0 @ =gPlayer - mov sb, r2 - movs r4, #0 - str r4, [sp, #0x1c] -_080822C2: - cmp r7, #0 - beq _080822E4 - ldr r1, [r3, #0x10] - movs r0, #0x80 - ands r1, r0 - mov r5, sl - adds r5, #0x68 - str r5, [sp, #0x14] - b _080822F2 - .align 2, 0 -_080822D4: .4byte gCurTask -_080822D8: .4byte gCamera -_080822DC: .4byte gPartner -_080822E0: .4byte gPlayer -_080822E4: - mov r0, sb - ldr r1, [r0, #0x10] - movs r0, #0x80 - ands r1, r0 - mov r2, sl - adds r2, #0x68 - str r2, [sp, #0x14] -_080822F2: - cmp r1, #0 - beq _080822F8 - b _0808280A -_080822F8: - mov r1, sl - adds r1, #0x68 - ldrb r2, [r1] - adds r0, r2, #0 - asrs r0, r7 - movs r4, #1 - ands r0, r4 - str r1, [sp, #0x14] - cmp r0, #0 - bne _0808230E - b _080825E0 -_0808230E: - ldr r0, _08082370 @ =gPlayer + 0x6D - cmp r7, #0 - beq _08082316 - ldr r0, _08082374 @ =gPartner + 0x6D -_08082316: - movs r1, #0 - ldrsb r1, [r0, r1] - mov r0, sl - adds r0, #0x3c - str r0, [sp, #0x18] - ldrb r5, [r0] - cmp r1, r5 - beq _08082328 - b _080825D4 -_08082328: - movs r0, #0x3e - add r0, sl - mov r8, r0 - adds r4, r0, r7 - ldrb r1, [r4] - mov r2, sl - ldr r0, [r2, #0x50] - muls r0, r1, r0 - mov r5, sl - adds r5, #0x3d - ldrb r1, [r5] - str r3, [sp, #0x20] - bl Div - adds r6, r0, #0 - ldrb r1, [r4] - mov r4, sl - ldr r0, [r4, #0x54] - muls r0, r1, r0 - ldrb r1, [r5] - bl Div - adds r1, r0, #0 - mov r0, sl - adds r0, #0x40 - ldr r2, [sp, #0x1c] - adds r0, r0, r2 - ldr r0, [r0] - adds r0, r0, r6 - lsls r0, r0, #8 - mov r4, r8 - ldr r3, [sp, #0x20] - cmp r7, #0 - beq _08082378 - str r0, [r3] - b _0808237C - .align 2, 0 -_08082370: .4byte gPlayer + 0x6D -_08082374: .4byte gPartner + 0x6D -_08082378: - mov r2, sb - str r0, [r2] -_0808237C: - mov r0, sl - adds r0, #0x48 - ldr r2, [sp, #0x1c] - adds r0, r0, r2 - ldr r0, [r0] - adds r0, r0, r1 - lsls r0, r0, #8 - cmp r7, #0 - beq _08082392 - str r0, [r3, #4] - b _08082396 -_08082392: - mov r1, sb - str r0, [r1, #4] -_08082396: - mov r1, sl - adds r1, #0x58 - ldr r2, [sp, #0x1c] - adds r0, r1, r2 - ldr r2, [r0] - mov r8, r1 - cmp r7, #0 - beq _080823AA - ldr r0, [r3] - b _080823AE -_080823AA: - mov r1, sb - ldr r0, [r1] -_080823AE: - subs r0, r0, r2 - cmp r7, #0 - beq _080823B8 - strh r0, [r3, #8] - b _080823BC -_080823B8: - mov r2, sb - strh r0, [r2, #8] -_080823BC: - mov r1, sl - adds r1, #0x60 - ldr r2, [sp, #0x1c] - adds r0, r1, r2 - ldr r2, [r0] - adds r6, r1, #0 - cmp r7, #0 - beq _080823D0 - ldr r0, [r3, #4] - b _080823D4 -_080823D0: - mov r1, sb - ldr r0, [r1, #4] -_080823D4: - subs r0, r0, r2 - cmp r7, #0 - beq _080823DE - strh r0, [r3, #0xa] - b _080823E2 -_080823DE: - mov r2, sb - strh r0, [r2, #0xa] -_080823E2: - adds r1, r4, r7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08082430 @ =gPlayer + 0x6D - ldrb r5, [r5] - cmp r0, r5 - bhs _0808240C - adds r0, r2, #0 - cmp r7, #0 - beq _080823FE - ldr r0, _08082434 @ =gPartner + 0x6D -_080823FE: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r4, [sp, #0x18] - ldrb r4, [r4] - cmp r0, r4 - ble _080824EA -_0808240C: - adds r0, r2, #0 - cmp r7, #0 - beq _08082414 - ldr r0, _08082434 @ =gPartner + 0x6D -_08082414: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r5, [sp, #0x18] - ldrb r5, [r5] - cmp r0, r5 - bne _080824DC - cmp r7, #0 - beq _0808243C - ldr r0, [r3, #0x10] - ldr r1, _08082438 @ =0xFFDFFFFF - ands r0, r1 - str r0, [r3, #0x10] - b _08082448 - .align 2, 0 -_08082430: .4byte gPlayer + 0x6D -_08082434: .4byte gPartner + 0x6D -_08082438: .4byte 0xFFDFFFFF -_0808243C: - mov r1, sb - ldr r0, [r1, #0x10] - ldr r1, _0808245C @ =0xFFDFFFFF - ands r0, r1 - mov r2, sb - str r0, [r2, #0x10] -_08082448: - ldr r0, _08082460 @ =gPlayerControls - ldrh r1, [r0] - ldrh r0, [r0, #2] - orrs r1, r0 - cmp r7, #0 - beq _08082464 - ldrh r0, [r3, #0x38] - orrs r1, r0 - strh r1, [r3, #0x38] - b _0808246C - .align 2, 0 -_0808245C: .4byte 0xFFDFFFFF -_08082460: .4byte gPlayerControls -_08082464: - mov r4, sb - ldrh r0, [r4, #0x38] - orrs r1, r0 - strh r1, [r4, #0x38] -_0808246C: - cmp r7, #0 - beq _08082480 - ldr r0, [r3, #0x10] - ldr r1, _0808247C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r3, #0x10] - b _0808248A - .align 2, 0 -_0808247C: .4byte 0xFFBFFFFF -_08082480: - mov r5, sb - ldr r0, [r5, #0x10] - ldr r1, _0808249C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] -_0808248A: - cmp r7, #0 - beq _080824A4 - ldr r0, _080824A0 @ =gPartner + 0x26 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - ldr r1, _080824A0 @ =gPartner + 0x26 - strb r0, [r1] - b _080824AE - .align 2, 0 -_0808249C: .4byte 0xFFBFFFFF -_080824A0: .4byte gPartner + 0x26 -_080824A4: - ldr r2, _080824B8 @ =gPlayer + 0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_080824AE: - cmp r7, #0 - beq _080824BC - movs r4, #0 - strh r4, [r3, #0xa] - b _080824C0 - .align 2, 0 -_080824B8: .4byte gPlayer + 0x26 -_080824BC: - mov r5, sb - strh r7, [r5, #0xa] -_080824C0: - cmp r7, #0 - beq _080824CA - movs r0, #0 - strh r0, [r3, #8] - b _080824CE -_080824CA: - mov r1, sb - strh r7, [r1, #8] -_080824CE: - cmp r7, #0 - beq _080824D8 - movs r2, #0 - strh r2, [r3, #0xc] - b _080824DC -_080824D8: - mov r4, sb - strh r7, [r4, #0xc] -_080824DC: - movs r1, #1 - lsls r1, r7 - ldr r5, [sp, #0x14] - ldrb r0, [r5] - bics r0, r1 - strb r0, [r5] - b _080825A4 -_080824EA: - cmp r7, #0 - beq _080824FA - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r3, #0x10] - b _08082508 -_080824FA: - mov r1, sb - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - mov r4, sb - str r0, [r4, #0x10] -_08082508: - subs r2, #0x6d - ldr r0, _08082520 @ =gPlayerControls - ldrh r1, [r0] - ldrh r0, [r0, #2] - orrs r1, r0 - cmp r7, #0 - beq _08082524 - ldrh r0, [r3, #0x38] - orrs r1, r0 - strh r1, [r3, #0x38] - b _0808252C - .align 2, 0 -_08082520: .4byte gPlayerControls -_08082524: - mov r5, sb - ldrh r0, [r5, #0x38] - orrs r1, r0 - strh r1, [r5, #0x38] -_0808252C: - cmp r7, #0 - beq _0808253C - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r3, #0x10] - b _0808254A -_0808253C: - mov r1, sb - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - mov r4, sb - str r0, [r4, #0x10] -_0808254A: - cmp r7, #0 - beq _08082554 - movs r5, #0 - strh r5, [r3, #0xc] - b _08082556 -_08082554: - strh r7, [r2, #0xc] -_08082556: - cmp r7, #0 - beq _08082560 - movs r0, #0 - strh r0, [r3, #0x38] - b _08082562 -_08082560: - strh r7, [r2, #0x38] -_08082562: - cmp r7, #0 - beq _0808256C - movs r1, #0 - strh r1, [r3, #0x3a] - b _0808256E -_0808256C: - strh r7, [r2, #0x3a] -_0808256E: - ldr r0, _080825B0 @ =gPlayer - cmp r7, #0 - beq _08082576 - ldr r0, _080825B4 @ =gPartner -_08082576: - movs r1, #0xe - str r3, [sp, #0x20] - bl Player_HandleSpriteYOffsetChange - ldr r1, _080825B0 @ =gPlayer - ldr r3, [sp, #0x20] - cmp r7, #0 - beq _08082588 - ldr r1, _080825B4 @ =gPartner -_08082588: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _080825B0 @ =gPlayer - cmp r7, #0 - beq _08082594 - ldr r1, _080825B4 @ =gPartner -_08082594: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #1 - lsls r0, r7 - ldr r2, [sp, #0x14] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_080825A4: - ldr r1, [sp, #0x1c] - add r1, r8 - cmp r7, #0 - beq _080825B8 - ldr r0, [r3] - b _080825BC - .align 2, 0 -_080825B0: .4byte gPlayer -_080825B4: .4byte gPartner -_080825B8: - mov r4, sb - ldr r0, [r4] -_080825BC: - str r0, [r1] - ldr r5, [sp, #0x1c] - adds r1, r6, r5 - cmp r7, #0 - beq _080825CC - ldr r0, [r3, #4] - str r0, [r1] - b _0808280A -_080825CC: - mov r2, sb - ldr r0, [r2, #4] - str r0, [r1] - b _0808280A -_080825D4: - adds r0, r4, #0 - lsls r0, r7 - bics r2, r0 - ldr r4, [sp, #0x14] - strb r2, [r4] - b _0808280A -_080825E0: - cmp r7, #0 - beq _080825F8 - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0808260C - mov r5, sl - adds r5, #0x3c - str r5, [sp, #0x18] - b _08082624 -_080825F8: - mov r0, sb - ldr r1, [r0, #0x10] - movs r0, #0x80 - lsls r0, r0, #0xf - ands r1, r0 - mov r2, sl - adds r2, #0x3c - str r2, [sp, #0x18] - cmp r1, #0 - beq _08082624 -_0808260C: - ldr r0, _08082648 @ =gPlayer + 0x6D - cmp r7, #0 - beq _08082614 - ldr r0, _0808264C @ =gPartner + 0x6D -_08082614: - movs r1, #0 - ldrsb r1, [r0, r1] - mov r0, sl - adds r0, #0x3c - str r0, [sp, #0x18] - ldrb r4, [r0] - cmp r1, r4 - blt _0808262E -_08082624: - ldr r5, [sp, #0x18] - ldrb r0, [r5] - cmp r0, #0 - beq _0808262E - b _0808280A -_0808262E: - ldr r0, [sp] - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #8 - cmp r7, #0 - beq _08082650 - ldr r0, [r3] - asrs r0, r0, #8 - cmp r2, r0 - ble _0808265C - b _0808280A - .align 2, 0 -_08082648: .4byte gPlayer + 0x6D -_0808264C: .4byte gPartner + 0x6D -_08082650: - mov r4, sb - ldr r0, [r4] - asrs r0, r0, #8 - cmp r2, r0 - ble _0808265C - b _0808280A -_0808265C: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #8 - cmp r7, #0 - beq _08082670 - ldr r0, [r3] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808267C - b _0808280A -_08082670: - mov r5, sb - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808267C - b _0808280A -_0808267C: - ldr r0, [sp, #4] - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #0xa - cmp r7, #0 - beq _08082694 - ldr r0, [r3, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _080826A0 - b _0808280A -_08082694: - mov r4, sb - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _080826A0 - b _0808280A -_080826A0: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0xa - cmp r7, #0 - beq _080826B4 - ldr r0, [r3, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _080826C0 - b _0808280A -_080826B4: - mov r5, sb - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _080826C0 - b _0808280A -_080826C0: - mov r0, sl - adds r0, #0x3e - adds r0, r0, r7 - movs r1, #0 - strb r1, [r0] - cmp r7, #0 - beq _080826D8 - ldr r0, [r3, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r3, #0x10] - b _080826E2 -_080826D8: - mov r2, sb - ldr r0, [r2, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r2, #0x10] -_080826E2: - ldr r2, _080826F4 @ =gPlayer - cmp r7, #0 - beq _080826F8 - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r3, #0x10] - b _08082704 - .align 2, 0 -_080826F4: .4byte gPlayer -_080826F8: - mov r4, sb - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r4, #0x10] -_08082704: - cmp r7, #0 - beq _08082714 - ldr r0, [r3, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r3, #0x10] - b _08082720 -_08082714: - mov r5, sb - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5, #0x10] -_08082720: - mov r0, sl - adds r0, #0x40 - ldr r4, [sp, #0x1c] - adds r1, r0, r4 - cmp r7, #0 - beq _08082730 - ldr r0, [r3] - b _08082732 -_08082730: - ldr r0, [r2] -_08082732: - asrs r0, r0, #8 - str r0, [r1] - mov r0, sl - adds r0, #0x48 - ldr r5, [sp, #0x1c] - adds r1, r0, r5 - cmp r7, #0 - beq _08082746 - ldr r0, [r3, #4] - b _08082748 -_08082746: - ldr r0, [r2, #4] -_08082748: - asrs r0, r0, #8 - str r0, [r1] - cmp r7, #0 - beq _08082756 - movs r0, #0 - strh r0, [r3, #0xa] - b _08082758 -_08082756: - strh r7, [r2, #0xa] -_08082758: - cmp r7, #0 - beq _08082762 - movs r1, #0 - strh r1, [r3, #8] - b _08082764 -_08082762: - strh r7, [r2, #8] -_08082764: - cmp r7, #0 - beq _0808276E - movs r4, #0 - strh r4, [r3, #0xc] - b _08082770 -_0808276E: - strh r7, [r2, #0xc] -_08082770: - cmp r7, #0 - beq _0808277A - movs r5, #0 - strh r5, [r3, #0x38] - b _0808277C -_0808277A: - strh r7, [r2, #0x38] -_0808277C: - cmp r7, #0 - beq _08082786 - movs r0, #0 - strh r0, [r3, #0x3a] - b _08082788 -_08082786: - strh r7, [r2, #0x3a] -_08082788: - ldr r0, _080827EC @ =gPlayer - cmp r7, #0 - beq _08082790 - ldr r0, _080827F0 @ =gPartner -_08082790: - movs r1, #0xe - str r3, [sp, #0x20] - bl Player_HandleSpriteYOffsetChange - ldr r1, _080827EC @ =gPlayer - ldr r3, [sp, #0x20] - cmp r7, #0 - beq _080827A2 - ldr r1, _080827F0 @ =gPartner -_080827A2: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _080827EC @ =gPlayer - cmp r7, #0 - beq _080827AE - ldr r1, _080827F0 @ =gPartner -_080827AE: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #0xaa - str r3, [sp, #0x20] - bl m4aSongNumStart - movs r1, #1 - lsls r1, r7 - ldr r2, [sp, #0x14] - ldrb r0, [r2] - orrs r1, r0 - movs r2, #0 - ldr r4, [sp, #0x14] - strb r1, [r4] - ldr r1, _080827F4 @ =gPlayer + 0x6D - ldr r3, [sp, #0x20] - cmp r7, #0 - beq _080827D4 - ldr r1, _080827F8 @ =gPartner + 0x6D -_080827D4: - ldr r5, [sp, #0x18] - ldrb r0, [r5] - strb r0, [r1] - cmp r7, #0 - beq _08082800 - ldr r1, _080827FC @ =gPartner + 0x26 - ldrb r0, [r1] - movs r1, #0x80 - orrs r0, r1 - ldr r2, _080827FC @ =gPartner + 0x26 - strb r0, [r2] - b _0808280A - .align 2, 0 -_080827EC: .4byte gPlayer -_080827F0: .4byte gPartner -_080827F4: .4byte gPlayer + 0x6D -_080827F8: .4byte gPartner + 0x6D -_080827FC: .4byte gPartner + 0x26 -_08082800: - ldr r4, _08082874 @ =gPlayer + 0x26 - ldrb r0, [r4] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4] -_0808280A: - ldr r5, [sp, #0x1c] - adds r5, #4 - str r5, [sp, #0x1c] - adds r7, #1 - ldr r0, _08082878 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r7, r0 - bge _08082820 - b _080822C2 -_08082820: - ldr r0, [sp, #0x14] - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08082864 - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #0x10 - adds r0, r0, r2 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08082854 - ldr r3, [sp, #0xc] - lsls r0, r3, #0x10 - asrs r2, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08082854 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r2, r0 - ble _08082864 -_08082854: - mov r4, sl - ldrb r0, [r4, #8] - ldr r5, [sp, #0x10] - strb r0, [r5] - ldr r0, _0808287C @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08082864: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08082874: .4byte gPlayer + 0x26 -_08082878: .4byte gNumSingleplayerCharacters -_0808287C: .4byte gCurTask - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc deleted file mode 100644 index 43dd9a2e15..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Exit.inc +++ /dev/null @@ -1,887 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _0808387C @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 @ r7 = exit - adds r0, #0xc - adds r0, r4, r0 - str r0, [sp, #0x10] @ sp10 = s - ldr r1, [r7] - str r1, [sp, #0x14] @ sp14 = me - ldrb r2, [r7, #8] - lsls r2, r2, #3 - ldrh r0, [r7, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldrb r1, [r1, #1] - lsls r1, r1, #3 - ldrh r0, [r7, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r3, _08083880 @ =gCamera - ldrh r0, [r3] - lsrs r5, r2, #0x10 - str r5, [sp] @ sp00 = worldX - asrs r2, r2, #0x10 - subs r2, r2, r0 - lsls r0, r2, #0x10 - lsrs r5, r0, #0x10 @ r5 = screenX - ldrh r0, [r3, #2] - lsrs r6, r1, #0x10 - str r6, [sp, #4] @ sp04 = worldY - asrs r1, r1, #0x10 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] @ sp08 = screenY - ldr r0, [sp, #0x10] - strh r2, [r0, #0x16] @ s->x = screenX; - ldrh r0, [r3, #2] - subs r1, r1, r0 - ldr r2, [sp, #0x10] - strh r1, [r2, #0x18] @ s->y = screenY; - ldr r3, _08083884 @ =0x03000041 - adds r4, r4, r3 - ldrb r0, [r4] - movs r6, #0 - str r6, [sp, #0xc] - cmp r0, #0 - beq _08083868 - ldr r0, _08083888 @ =0x0000FFE8 - str r0, [sp, #0xc] -_08083868: - movs r6, #0 - lsls r5, r5, #0x10 - str r5, [sp, #0x18] - ldr r4, _0808388C @ =gPartner - ldr r5, _08083890 @ =gPlayer - mov sl, r6 @ sl = i * 4 -_08083874_loop: - cmp r6, #0 - beq _08083894 - ldr r0, [r4, #0x10] - b _08083896 - .align 2, 0 -_0808387C: .4byte gCurTask -_08083880: .4byte gCamera -_08083884: .4byte 0x03000041 -_08083888: .4byte 0x0000FFE8 -_0808388C: .4byte gPartner -_08083890: .4byte gPlayer -_08083894: - ldr r0, [r5, #0x10] -_08083896: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080838A0 - b _08083D6A_continue -_080838A0: - adds r2, r7, #0 - adds r2, #0x40 - ldrb r1, [r2] - asrs r1, r6 - movs r0, #1 - ands r1, r0 - mov r8, r2 @ r8 = r2 = &exit->unk40 - cmp r1, #0 - bne _080838B4 - b _08083ADC -_080838B4: - cmp r6, #0 - beq _080838C0 - ldrh r0, [r4, #0xa] - adds r0, #0x2a - strh r0, [r4, #0xa] - b _080838C6 -_080838C0: - ldrh r0, [r5, #0xa] - adds r0, #0x2a - strh r0, [r5, #0xa] -_080838C6: - adds r0, r7, #0 - adds r0, #0x4c - mov r2, sl @ r2 = sl = i * 4 - adds r1, r0, r2 - ldr r2, [r1] @ r2 = exit->unk4C[i] - mov sb, r0 - cmp r6, #0 - beq _080838DC - movs r3, #0xa - ldrsh r0, [r4, r3] - b _080838E0 -_080838DC: - movs r3, #0xa - ldrsh r0, [r5, r3] -_080838E0: - adds r0, r2, r0 - str r0, [r1] - mov r0, sb - add r0, sl @ r0 = &exit->unk4C[i] - ldr r0, [r0] - cmp r6, #0 - beq _080838F2 - str r0, [r4, #4] - b _080838F4 -_080838F2: - str r0, [r5, #4] -_080838F4: - adds r0, r7, #0 - adds r0, #0x44 - add r0, sl - ldr r0, [r0] - cmp r6, #0 - beq _08083904 - str r0, [r4] - b _08083906 -_08083904: - str r0, [r5] -_08083906: - cmp r6, #0 - beq _08083918 - ldr r1, _08083914 @ =gPartner + 0x54 - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - b _08083920 - .align 2, 0 -_08083914: .4byte gPartner + 0x54 -_08083918: - ldr r2, _08083930 @ =gPlayer + 0x54 - ldrh r0, [r2] - subs r0, #4 - strh r0, [r2] -_08083920: - cmp r6, #0 - beq _08083938 - ldr r3, _08083934 @ =gPartner + 0x54 - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0xaf - ble _08083942 - b _0808395E - .align 2, 0 -_08083930: .4byte gPlayer + 0x54 -_08083934: .4byte gPartner + 0x54 -_08083938: - ldr r2, _08083950 @ =gPlayer + 0x54 - movs r3, #0 - ldrsh r0, [r2, r3] - cmp r0, #0xaf - bgt _0808395E -_08083942: - cmp r6, #0 - beq _08083958 - movs r0, #0xb0 - ldr r1, _08083954 @ =gPartner + 0x54 - strh r0, [r1] - b _0808395E - .align 2, 0 -_08083950: .4byte gPlayer + 0x54 -_08083954: .4byte gPartner + 0x54 -_08083958: - movs r0, #0xb0 - ldr r2, _0808396C @ =gPlayer + 0x54 - strh r0, [r2] -_0808395E: - cmp r6, #0 - beq _08083974 - ldr r3, _08083970 @ =gPartner + 0x54 - movs r1, #0 - ldrsh r0, [r3, r1] - b _0808397A - .align 2, 0 -_0808396C: .4byte gPlayer + 0x54 -_08083970: .4byte gPartner + 0x54 -_08083974: - ldr r2, _08083984 @ =gPlayer + 0x54 - movs r3, #0 - ldrsh r0, [r2, r3] -_0808397A: - cmp r6, #0 - beq _0808398C - ldr r1, _08083988 @ =gPartner + 0x56 - strh r0, [r1] - b _08083990 - .align 2, 0 -_08083984: .4byte gPlayer + 0x54 -_08083988: .4byte gPartner + 0x56 -_0808398C: - ldr r2, _080839A0 @ =gPlayer + 0x56 - strh r0, [r2] -_08083990: - cmp r6, #0 - beq _080839A4 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r4, #0x10] - b _080839AE - .align 2, 0 -_080839A0: .4byte gPlayer + 0x56 -_080839A4: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r5, #0x10] -_080839AE: - cmp r6, #0 - beq _080839BE - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - b _080839C8 -_080839BE: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5, #0x10] -_080839C8: - cmp r6, #0 - beq _080839D6 - movs r3, #0xa - ldrsh r0, [r4, r3] - cmp r0, #0 - bgt _080839E0 - b _08083D6A_continue -_080839D6: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bgt _080839E0 - b _08083D6A_continue -_080839E0: - ldr r0, _080839F8 @ =gPlayer - cmp r6, #0 - beq _080839E8 - ldr r0, _080839FC @ =gPartner -_080839E8: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _08083A04 - movs r0, #5 - ldr r2, _08083A00 @ =gPartner + 0x40 - strb r0, [r2] - b _08083A0A - .align 2, 0 -_080839F8: .4byte gPlayer -_080839FC: .4byte gPartner -_08083A00: .4byte gPartner + 0x40 -_08083A04: - movs r0, #5 - ldr r3, _08083A18 @ =gPlayer + 0x40 - strb r0, [r3] -_08083A0A: - cmp r6, #0 - beq _08083A20 - ldr r0, [r4, #0x10] - ldr r1, _08083A1C @ =0xFFDFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08083A28 - .align 2, 0 -_08083A18: .4byte gPlayer + 0x40 -_08083A1C: .4byte 0xFFDFFFFF -_08083A20: - ldr r0, [r5, #0x10] - ldr r1, _08083A3C @ =0xFFDFFFFF - ands r0, r1 - str r0, [r5, #0x10] -_08083A28: - ldr r0, _08083A40 @ =gPlayerControls - ldrh r1, [r0] - ldrh r0, [r0, #2] - orrs r1, r0 - cmp r6, #0 - beq _08083A44 - ldrh r0, [r4, #0x38] - orrs r1, r0 - strh r1, [r4, #0x38] - b _08083A4A - .align 2, 0 -_08083A3C: .4byte 0xFFDFFFFF -_08083A40: .4byte gPlayerControls -_08083A44: - ldrh r0, [r5, #0x38] - orrs r1, r0 - strh r1, [r5, #0x38] -_08083A4A: - cmp r6, #0 - beq _08083A5C - ldr r0, [r4, #0x10] - ldr r1, _08083A58 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - b _08083A64 - .align 2, 0 -_08083A58: .4byte 0xFFBFFFFF -_08083A5C: - ldr r0, [r5, #0x10] - ldr r1, _08083A80 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] -_08083A64: - movs r1, #1 - lsls r1, r6 - mov r2, r8 @ r2 = r8 = &exit->unk40 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - cmp r6, #0 - beq _08083A88 - movs r0, #0x80 - lsls r0, r0, #1 - ldr r3, _08083A84 @ =gPartner + 0x54 - strh r0, [r3] - b _08083A90 - .align 2, 0 -_08083A80: .4byte 0xFFBFFFFF -_08083A84: .4byte gPartner + 0x54 -_08083A88: - movs r0, #0x80 - lsls r0, r0, #1 - ldr r1, _08083AA0 @ =gPlayer + 0x54 - strh r0, [r1] -_08083A90: - cmp r6, #0 - beq _08083AA8 - movs r0, #0x80 - lsls r0, r0, #1 - ldr r2, _08083AA4 @ =gPartner + 0x56 - strh r0, [r2] - b _08083AB0 - .align 2, 0 -_08083AA0: .4byte gPlayer + 0x54 -_08083AA4: .4byte gPartner + 0x56 -_08083AA8: - movs r0, #0x80 - lsls r0, r0, #1 - ldr r3, _08083AC4 @ =gPlayer + 0x56 - strh r0, [r3] -_08083AB0: - cmp r6, #0 - beq _08083ACC - ldr r0, _08083AC8 @ =gPartner + 0x26 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - ldr r1, _08083AC8 @ =gPartner + 0x26 - strb r0, [r1] - b _08083D6A_continue - .align 2, 0 -_08083AC4: .4byte gPlayer + 0x56 -_08083AC8: .4byte gPartner + 0x26 -_08083ACC: - ldr r2, _08083AD8 @ =gPlayer + 0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - b _08083D6A_continue - .align 2, 0 -_08083AD8: .4byte gPlayer + 0x26 -_08083ADC: - ldr r0, _08083B0C @ =gPlayer + 0x6D - cmp r6, #0 - beq _08083AE4 - ldr r0, _08083B10 @ =gPartner + 0x6D -_08083AE4: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x7f - bne _08083AF0 - b _08083D26 -_08083AF0: - ldr r0, [sp] @ r0 = sp00 = worldX - lsls r3, r0, #0x10 - asrs r2, r3, #0x10 @ r2 = sp00 = worldX - ldr r0, [sp, #0xc] @ sp0C = sp0C - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - adds r2, r2, r0 - cmp r6, #0 - beq _08083B14 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08083B1E - b _08083D26 - .align 2, 0 -_08083B0C: .4byte gPlayer + 0x6D -_08083B10: .4byte gPartner + 0x6D -_08083B14: - ldr r0, [r5] - asrs r0, r0, #8 - cmp r2, r0 - ble _08083B1E - b _08083D26 -_08083B1E: - asrs r0, r3, #0x10 @ r0 = worldX - asrs r1, r1, #0x10 @ r1 = sp0C - adds r0, r0, r1 - adds r1, r0, #0 - adds r1, #0x18 - cmp r6, #0 - beq _08083B36 - ldr r0, [r4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08083B40 - b _08083D26 -_08083B36: - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - bge _08083B40 - b _08083D26 -_08083B40: - ldr r2, [sp, #4] - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #0x18 - cmp r6, #0 - beq _08083B58 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08083B62 - b _08083D26 -_08083B58: - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08083B62 - b _08083D26 -_08083B62: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0x18 - cmp r6, #0 - beq _08083B76 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08083B80 - b _08083D26 -_08083B76: - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08083B80 - b _08083D26 -_08083B80: - mov r3, r8 @ r3 = r8 = &exit->unk40 - ldrb r1, [r3] - asrs r1, r6 - movs r0, #1 - ands r1, r0 - ldr r3, _08083BA0 @ =gPlayer - cmp r1, #0 - bne _08083BBC - adds r0, r7, #0 - adds r0, #0x44 - mov r2, sl - adds r1, r0, r2 - cmp r6, #0 - beq _08083BA4 - ldr r0, [r4] - b _08083BA6 - .align 2, 0 -_08083BA0: .4byte gPlayer -_08083BA4: - ldr r0, [r5] -_08083BA6: - str r0, [r1] - adds r0, r7, #0 - adds r0, #0x4c - mov r2, sl - adds r1, r0, r2 - cmp r6, #0 - beq _08083BB8 - ldr r0, [r4, #4] - b _08083BBA -_08083BB8: - ldr r0, [r3, #4] -_08083BBA: - str r0, [r1] -_08083BBC: - ldr r0, _08083BD8 @ =gPlayer - cmp r6, #0 - beq _08083BC4 - ldr r0, _08083BDC @ =gPartner -_08083BC4: - bl Player_TransitionCancelFlyingAndBoost - cmp r6, #0 - beq _08083BE4 - ldr r0, [r4, #0x10] - ldr r1, _08083BE0 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - b _08083BEC - .align 2, 0 -_08083BD8: .4byte gPlayer -_08083BDC: .4byte gPartner -_08083BE0: .4byte 0xFFFFFEFF -_08083BE4: - ldr r0, [r5, #0x10] - ldr r1, _08083BFC @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] -_08083BEC: - ldr r3, _08083C00 @ =gPlayer - cmp r6, #0 - beq _08083C04 - ldr r0, [r4, #0x10] - movs r1, #0x10 - orrs r0, r1 - str r0, [r4, #0x10] - b _08083C0C - .align 2, 0 -_08083BFC: .4byte 0xFFFFFEFF -_08083C00: .4byte gPlayer -_08083C04: - ldr r0, [r5, #0x10] - movs r1, #0x10 - orrs r0, r1 - str r0, [r5, #0x10] -_08083C0C: - cmp r6, #0 - beq _08083C1A - ldr r0, [r4, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r4, #0x10] - b _08083C22 -_08083C1A: - ldr r0, [r5, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r5, #0x10] -_08083C22: - cmp r6, #0 - beq _08083C30 - ldr r0, [r4, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #0x10] - b _08083C38 -_08083C30: - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] -_08083C38: - cmp r6, #0 - beq _08083C48 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r4, #0x10] - b _08083C52 -_08083C48: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r5, #0x10] -_08083C52: - cmp r6, #0 - beq _08083C62 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - b _08083C6C -_08083C62: - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5, #0x10] -_08083C6C: - cmp r6, #0 - beq _08083C78 - movs r0, #0xfb - lsls r0, r0, #8 - strh r0, [r4, #0xa] - b _08083C7E -_08083C78: - movs r0, #0xfb - lsls r0, r0, #8 - strh r0, [r3, #0xa] -_08083C7E: - cmp r6, #0 - beq _08083C88 - movs r0, #0 - strh r0, [r4, #8] - b _08083C8A -_08083C88: - strh r6, [r3, #8] -_08083C8A: - cmp r6, #0 - beq _08083C94 - movs r0, #0 - strh r0, [r4, #0xc] - b _08083C96 -_08083C94: - strh r6, [r3, #0xc] -_08083C96: - cmp r6, #0 - beq _08083CA0 - movs r0, #0 - strh r0, [r4, #0x38] - b _08083CA2 -_08083CA0: - strh r6, [r3, #0x38] -_08083CA2: - cmp r6, #0 - beq _08083CAC - movs r0, #0 - strh r0, [r4, #0x3a] - b _08083CAE -_08083CAC: - strh r6, [r3, #0x3a] -_08083CAE: - ldr r0, _08083D08 @ =gPlayer - cmp r6, #0 - beq _08083CB6 - ldr r0, _08083D0C @ =gPartner -_08083CB6: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08083D08 @ =gPlayer - cmp r6, #0 - beq _08083CC4 - ldr r1, _08083D0C @ =gPartner -_08083CC4: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08083D08 @ =gPlayer - cmp r6, #0 - beq _08083CD0 - ldr r1, _08083D0C @ =gPartner -_08083CD0: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #0xaa - bl m4aSongNumStart - ldr r1, _08083D10 @ =gPlayer + 0x6D - cmp r6, #0 - beq _08083CE2 - ldr r1, _08083D14 @ =gPartner + 0x6D -_08083CE2: - movs r0, #0x7f - strb r0, [r1] - movs r1, #1 - lsls r1, r6 - mov r3, r8 - ldrb r0, [r3] - orrs r1, r0 - movs r0, #0 - strb r1, [r3] - cmp r6, #0 - beq _08083D1C - ldr r1, _08083D18 @ =gPartner + 0x26 - ldrb r0, [r1] - movs r1, #0x80 - orrs r0, r1 - ldr r2, _08083D18 @ =gPartner + 0x26 - strb r0, [r2] - b _08083D26 - .align 2, 0 -_08083D08: .4byte gPlayer -_08083D0C: .4byte gPartner -_08083D10: .4byte gPlayer + 0x6D -_08083D14: .4byte gPartner + 0x6D -_08083D18: .4byte gPartner + 0x26 -_08083D1C: - ldr r3, _08083D3C @ =gPlayer + 0x26 - ldrb r0, [r3] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] -_08083D26: - cmp r6, #0 - beq _08083D44 - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _08083D6A_continue - ldr r3, _08083D40 @ =gPlayer - b _08083D52 - .align 2, 0 -_08083D3C: .4byte gPlayer + 0x26 -_08083D40: .4byte gPlayer -_08083D44: - ldr r1, [r5, #0x10] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r1, r0 - ldr r3, _08083DD8 @ =gPlayer - cmp r1, #0 - bne _08083D6A_continue -_08083D52: - ldr r1, [sp] - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - ldr r2, [sp, #4] - lsls r0, r2, #0x10 - asrs r2, r0, #0x10 - cmp r6, #0 - beq _08083D64 - ldr r3, _08083DDC @ =gPartner -_08083D64: - ldr r0, [sp, #0x10] - bl Coll_Player_Platform -_08083D6A_continue: - movs r3, #4 - add sl, r3 - adds r6, #1 - ldr r0, _08083DE0 @ =gNumSingleplayerCharacters - movs r1, #0 - ldrsb r1, [r0, r1] - mov sb, r0 - cmp r6, r1 - bge _08083D7E - b _08083874_loop -_08083D7E: - ldr r5, [sp, #0x18] - movs r6, #0x80 - lsls r6, r6, #0x10 - adds r1, r5, r6 - movs r0, #0xf8 - lsls r0, r0, #0x11 - cmp r1, r0 - bhi _08083DA4 - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08083DA4 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08083E42 -_08083DA4: - movs r2, #0 - ldr r3, _08083DE4 @ =gCurTask - mov sl, r3 - movs r5, #0x40 - adds r5, r5, r7 - mov r8, r5 - ldr r4, _08083DDC @ =gPartner - ldr r6, _08083DE8 @ =0xFFDFFFFF - mov ip, r6 - ldr r3, _08083DD8 @ =gPlayer - ldr r6, _08083DEC @ =0xFFBFFFFF - ldr r5, _08083DF0 @ =gPlayerControls -_08083DBC_loop: - mov r1, r8 - ldrb r0, [r1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08083E26_continue - cmp r2, #0 - beq _08083DF4 - ldr r0, [r4, #0x10] - mov r1, ip - ands r0, r1 - str r0, [r4, #0x10] - b _08083DFC - .align 2, 0 -_08083DD8: .4byte gPlayer -_08083DDC: .4byte gPartner -_08083DE0: .4byte gNumSingleplayerCharacters -_08083DE4: .4byte gCurTask -_08083DE8: .4byte 0xFFDFFFFF -_08083DEC: .4byte 0xFFBFFFFF -_08083DF0: .4byte gPlayerControls -_08083DF4: - ldr r0, [r3, #0x10] - mov r1, ip - ands r0, r1 - str r0, [r3, #0x10] -_08083DFC: - ldrh r1, [r5] - ldrh r0, [r5, #2] - orrs r1, r0 - cmp r2, #0 - beq _08083E0E - ldrh r0, [r4, #0x38] - orrs r1, r0 - strh r1, [r4, #0x38] - b _08083E14 -_08083E0E: - ldrh r0, [r3, #0x38] - orrs r1, r0 - strh r1, [r3, #0x38] -_08083E14: - cmp r2, #0 - beq _08083E20 - ldr r0, [r4, #0x10] - ands r0, r6 - str r0, [r4, #0x10] - b _08083E26_continue -_08083E20: - ldr r0, [r3, #0x10] - ands r0, r6 - str r0, [r3, #0x10] -_08083E26_continue: - adds r2, #1 - mov r1, sb - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _08083DBC_loop - ldrb r0, [r7, #8] - ldr r2, [sp, #0x14] - strb r0, [r2] - mov r3, sl - ldr r0, [r3] - bl TaskDestroy - b _08083E4E -_08083E42: - ldr r0, [sp, #0x10] - bl UpdateSpriteAnimation - ldr r0, [sp, #0x10] - bl DisplaySprite -_08083E4E: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc deleted file mode 100644 index 82e4c726cc..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/marble_track_exit__Task_MarbleTrack_Unk.inc +++ /dev/null @@ -1,776 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _080829BC @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - mov r8, r1 - ldr r0, [r1] - str r0, [sp, #0x10] - ldrb r1, [r1, #8] - lsls r1, r1, #3 - mov r2, r8 - ldrh r0, [r2, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 - ldr r3, [sp, #0x10] - ldrb r2, [r3, #1] - lsls r2, r2, #3 - mov r4, r8 - ldrh r0, [r4, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - lsls r2, r2, #0x10 - ldr r3, _080829C0 @ =gCamera - ldrh r0, [r3] - lsrs r4, r1, #0x10 - str r4, [sp] - asrs r1, r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0xc] - ldrh r0, [r3, #2] - lsrs r1, r2, #0x10 - str r1, [sp, #4] - asrs r2, r2, #0x10 - subs r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #8] - movs r4, #0 - ldr r5, _080829C4 @ =gPartner - ldr r7, _080829C8 @ =gPlayer - movs r2, #0 - str r2, [sp, #0x14] - mov sl, r2 -_080829B2: - cmp r4, #0 - beq _080829CC - ldr r0, [r5, #0x10] - b _080829CE - .align 2, 0 -_080829BC: .4byte gCurTask -_080829C0: .4byte gCamera -_080829C4: .4byte gPartner -_080829C8: .4byte gPlayer -_080829CC: - ldr r0, [r7, #0x10] -_080829CE: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080829D8 - b _08082DC8 -_080829D8: - mov r2, r8 - adds r2, #0x4c - ldrb r1, [r2] - asrs r1, r4 - movs r0, #1 - ands r1, r0 - mov sb, r2 - cmp r1, #0 - bne _080829EC - b _08082C08 -_080829EC: - cmp r4, #0 - beq _080829F8 - ldrh r0, [r5, #0xa] - adds r0, #0x2a - strh r0, [r5, #0xa] - b _080829FE -_080829F8: - ldrh r0, [r7, #0xa] - adds r0, #0x2a - strh r0, [r7, #0xa] -_080829FE: - cmp r4, #0 - beq _08082A08 - movs r3, #0xa - ldrsh r1, [r5, r3] - b _08082A0C -_08082A08: - movs r0, #0xa - ldrsh r1, [r7, r0] -_08082A0C: - cmp r4, #0 - beq _08082A18 - ldr r0, [r5, #4] - adds r0, r0, r1 - str r0, [r5, #4] - b _08082A1E -_08082A18: - ldr r0, [r7, #4] - adds r0, r0, r1 - str r0, [r7, #4] -_08082A1E: - mov r0, r8 - adds r0, #0x3c - ldr r2, [sp, #0x14] - adds r1, r0, r2 - ldr r2, [r1] - mov ip, r0 - cmp r4, #0 - beq _08082A34 - movs r3, #0xa - ldrsh r0, [r5, r3] - b _08082A38 -_08082A34: - movs r3, #0xa - ldrsh r0, [r7, r3] -_08082A38: - adds r0, r2, r0 - str r0, [r1] - ldr r0, _08082A64 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - asrs r0, r0, #0x19 - cmp r0, #1 - beq _08082A4E - cmp r1, #0xf - bne _08082ACE -_08082A4E: - ldr r1, [sp] - lsls r0, r1, #0x10 - asrs r2, r0, #8 - adds r1, r0, #0 - cmp r4, #0 - beq _08082A68 - ldr r0, [r5] - cmp r0, r2 - blt _08082A6E - b _08082A9C - .align 2, 0 -_08082A64: .4byte gCurrentLevel -_08082A68: - ldr r0, [r7] - cmp r0, r2 - bge _08082A9C -_08082A6E: - cmp r4, #0 - beq _08082A7A - ldr r0, [r5] - adds r0, #0x80 - str r0, [r5] - b _08082A80 -_08082A7A: - ldr r0, [r7] - adds r0, #0x80 - str r0, [r7] -_08082A80: - asrs r2, r1, #8 - cmp r4, #0 - beq _08082A8E - ldr r0, [r5] - cmp r0, r2 - bgt _08082A94 - b _08082ACE -_08082A8E: - ldr r0, [r7] - cmp r0, r2 - ble _08082ACE -_08082A94: - asrs r0, r1, #8 - cmp r4, #0 - bne _08082AC8 - b _08082ACC -_08082A9C: - cmp r4, #0 - beq _08082AA8 - ldr r0, [r5] - subs r0, #0x80 - str r0, [r5] - b _08082AAE -_08082AA8: - ldr r0, [r7] - subs r0, #0x80 - str r0, [r7] -_08082AAE: - asrs r2, r1, #8 - cmp r4, #0 - beq _08082ABC - ldr r0, [r5] - cmp r0, r2 - blt _08082AC2 - b _08082ACE -_08082ABC: - ldr r0, [r7] - cmp r0, r2 - bge _08082ACE -_08082AC2: - asrs r0, r1, #8 - cmp r4, #0 - beq _08082ACC -_08082AC8: - str r0, [r5] - b _08082ACE -_08082ACC: - str r0, [r7] -_08082ACE: - ldr r3, _08082B48 @ =gPlayer + 0x6D - adds r0, r3, #0 - cmp r4, #0 - beq _08082AD8 - ldr r0, _08082B4C @ =gPartner + 0x6D -_08082AD8: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r1, r8 - adds r1, #0x4d - adds r6, r1, #0 - ldrb r2, [r6] - cmp r0, r2 - bgt _08082B18 - lsls r0, r4, #1 - subs r1, #9 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - mov r1, r8 - adds r1, #0x48 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - cmp r0, r1 - bhs _08082B18 - ldr r0, [sp, #0x14] - add r0, ip - ldr r1, [r0] - asrs r1, r1, #8 - mov r0, r8 - adds r0, #0x4a - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _08082B94 -_08082B18: - adds r0, r3, #0 - cmp r4, #0 - beq _08082B20 - ldr r0, _08082B4C @ =gPartner + 0x6D -_08082B20: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r6, [r6] - cmp r0, r6 - bne _08082B80 - adds r1, r3, #0 - cmp r4, #0 - beq _08082B34 - ldr r1, _08082B4C @ =gPartner + 0x6D -_08082B34: - movs r0, #0x7f - strb r0, [r1] - cmp r4, #0 - beq _08082B54 - ldr r0, [r5, #0x10] - ldr r1, _08082B50 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] - b _08082B5C - .align 2, 0 -_08082B48: .4byte gPlayer + 0x6D -_08082B4C: .4byte gPartner + 0x6D -_08082B50: .4byte 0xFFBFFFFF -_08082B54: - ldr r0, [r7, #0x10] - ldr r1, _08082B6C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r7, #0x10] -_08082B5C: - cmp r4, #0 - beq _08082B74 - ldr r3, _08082B70 @ =gPartner + 0x26 - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3] - b _08082B80 - .align 2, 0 -_08082B6C: .4byte 0xFFBFFFFF -_08082B70: .4byte gPartner + 0x26 -_08082B74: - ldr r0, _08082B90 @ =gPlayer + 0x26 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - ldr r1, _08082B90 @ =gPlayer + 0x26 - strb r0, [r1] -_08082B80: - movs r1, #1 - lsls r1, r4 - mov r2, sb - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - b _08082E00 - .align 2, 0 -_08082B90: .4byte gPlayer + 0x26 -_08082B94: - cmp r4, #0 - beq _08082BA4 - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5, #0x10] - b _08082BAE -_08082BA4: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r7, #0x10] -_08082BAE: - adds r2, r3, #0 - subs r2, #0x6d - cmp r4, #0 - beq _08082BBC - mov r3, sl - strh r3, [r5, #8] - b _08082BBE -_08082BBC: - strh r4, [r2, #8] -_08082BBE: - cmp r4, #0 - beq _08082BC8 - mov r0, sl - strh r0, [r5, #0xc] - b _08082BCA -_08082BC8: - strh r4, [r2, #0xc] -_08082BCA: - ldr r0, _08082C00 @ =gPlayer - cmp r4, #0 - beq _08082BD2 - ldr r0, _08082C04 @ =gPartner -_08082BD2: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08082C00 @ =gPlayer - cmp r4, #0 - beq _08082BE0 - ldr r1, _08082C04 @ =gPartner -_08082BE0: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08082C00 @ =gPlayer - cmp r4, #0 - beq _08082BEC - ldr r1, _08082C04 @ =gPartner -_08082BEC: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #1 - lsls r0, r4 - mov r2, sb - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _08082E00 - .align 2, 0 -_08082C00: .4byte gPlayer -_08082C04: .4byte gPartner -_08082C08: - cmp r4, #0 - beq _08082C1E - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08082C2E - mov r6, r8 - adds r6, #0x4d - b _08082C48 -_08082C1E: - ldr r1, [r7, #0x10] - movs r0, #0x80 - lsls r0, r0, #0xf - ands r1, r0 - mov r6, r8 - adds r6, #0x4d - cmp r1, #0 - beq _08082C48 -_08082C2E: - ldr r0, _08082C68 @ =gPlayer + 0x6D - cmp r4, #0 - beq _08082C36 - ldr r0, _08082C6C @ =gPartner + 0x6D -_08082C36: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r1, r8 - adds r1, #0x4d - adds r6, r1, #0 - ldrb r3, [r6] - cmp r0, r3 - blt _08082C50 -_08082C48: - ldrb r0, [r6] - cmp r0, #0 - beq _08082C50 - b _08082E00 -_08082C50: - ldr r0, [sp] - lsls r1, r0, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #0xc - cmp r4, #0 - beq _08082C70 - ldr r0, [r5] - asrs r0, r0, #8 - cmp r2, r0 - ble _08082C7A - b _08082E00 - .align 2, 0 -_08082C68: .4byte gPlayer + 0x6D -_08082C6C: .4byte gPartner + 0x6D -_08082C70: - ldr r0, [r7] - asrs r0, r0, #8 - cmp r2, r0 - ble _08082C7A - b _08082E00 -_08082C7A: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0xc - cmp r4, #0 - beq _08082C8E - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - bge _08082C98 - b _08082E00 -_08082C8E: - ldr r0, [r7] - asrs r0, r0, #8 - cmp r1, r0 - bge _08082C98 - b _08082E00 -_08082C98: - ldr r2, [sp, #4] - lsls r1, r2, #0x10 - asrs r0, r1, #0x10 - adds r2, r0, #0 - subs r2, #0xc - cmp r4, #0 - beq _08082CB0 - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08082CBA - b _08082E00 -_08082CB0: - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08082CBA - b _08082E00 -_08082CBA: - asrs r0, r1, #0x10 - adds r1, r0, #0 - adds r1, #0xc - cmp r4, #0 - beq _08082CCE - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08082CD8 - b _08082E00 -_08082CCE: - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08082CD8 - b _08082E00 -_08082CD8: - lsls r0, r4, #1 - mov r1, r8 - adds r1, #0x44 - adds r1, r1, r0 - mov r3, sl - strh r3, [r1] - mov r0, r8 - adds r0, #0x3c - ldr r1, [sp, #0x14] - adds r0, r0, r1 - mov r2, sl - str r2, [r0] - cmp r4, #0 - beq _08082CFE - ldr r0, [r5, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r5, #0x10] - b _08082D06 -_08082CFE: - ldr r0, [r7, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r7, #0x10] -_08082D06: - ldr r2, _08082D18 @ =gPlayer - cmp r4, #0 - beq _08082D1C - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5, #0x10] - b _08082D26 - .align 2, 0 -_08082D18: .4byte gPlayer -_08082D1C: - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r7, #0x10] -_08082D26: - cmp r4, #0 - beq _08082D30 - mov r3, sl - strh r3, [r5, #0xa] - b _08082D32 -_08082D30: - strh r4, [r2, #0xa] -_08082D32: - cmp r4, #0 - beq _08082D3C - mov r0, sl - strh r0, [r5, #8] - b _08082D3E -_08082D3C: - strh r4, [r2, #8] -_08082D3E: - cmp r4, #0 - beq _08082D48 - mov r1, sl - strh r1, [r5, #0xc] - b _08082D4A -_08082D48: - strh r4, [r2, #0xc] -_08082D4A: - ldr r0, _08082DA4 @ =gPlayer - cmp r4, #0 - beq _08082D52 - ldr r0, _08082DA8 @ =gPartner -_08082D52: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08082DA4 @ =gPlayer - cmp r4, #0 - beq _08082D60 - ldr r1, _08082DA8 @ =gPartner -_08082D60: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08082DA4 @ =gPlayer - cmp r4, #0 - beq _08082D6C - ldr r1, _08082DA8 @ =gPartner -_08082D6C: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #0xaa - bl m4aSongNumStart - movs r1, #1 - lsls r1, r4 - mov r2, sb - ldrb r0, [r2] - orrs r1, r0 - movs r2, #0 - mov r3, sb - strb r1, [r3] - ldr r1, _08082DAC @ =gPlayer + 0x6D - cmp r4, #0 - beq _08082D8E - ldr r1, _08082DB0 @ =gPartner + 0x6D -_08082D8E: - ldrb r0, [r6] - strb r0, [r1] - cmp r4, #0 - beq _08082DB8 - ldr r1, _08082DB4 @ =gPartner + 0x26 - ldrb r0, [r1] - movs r1, #0x80 - orrs r0, r1 - ldr r2, _08082DB4 @ =gPartner + 0x26 - strb r0, [r2] - b _08082E00 - .align 2, 0 -_08082DA4: .4byte gPlayer -_08082DA8: .4byte gPartner -_08082DAC: .4byte gPlayer + 0x6D -_08082DB0: .4byte gPartner + 0x6D -_08082DB4: .4byte gPartner + 0x26 -_08082DB8: - ldr r3, _08082DC4 @ =gPlayer + 0x26 - ldrb r0, [r3] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] - b _08082E00 - .align 2, 0 -_08082DC4: .4byte gPlayer + 0x26 -_08082DC8: - mov r1, r8 - adds r1, #0x4c - ldrb r3, [r1] - adds r0, r3, #0 - asrs r0, r4 - movs r2, #1 - ands r0, r2 - mov sb, r1 - cmp r0, #0 - beq _08082E00 - adds r0, r2, #0 - lsls r0, r4 - bics r3, r0 - strb r3, [r1] - cmp r4, #0 - beq _08082DF8 - ldr r0, [r5, #0x10] - ldr r1, _08082DF4 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] - b _08082E00 - .align 2, 0 -_08082DF4: .4byte 0xFFBFFFFF -_08082DF8: - ldr r0, [r7, #0x10] - ldr r1, _08082E8C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r7, #0x10] -_08082E00: - ldr r0, [sp, #0x14] - adds r0, #4 - str r0, [sp, #0x14] - adds r4, #1 - ldr r0, _08082E90 @ =gNumSingleplayerCharacters - movs r1, #0 - ldrsb r1, [r0, r1] - mov ip, r0 - cmp r4, r1 - bge _08082E16 - b _080829B2 -_08082E16: - mov r2, sb - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08082EC6 - ldr r3, [sp, #0xc] - lsls r0, r3, #0x10 - movs r4, #0x80 - lsls r4, r4, #0x10 - adds r0, r0, r4 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08082E4A - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - asrs r2, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08082E4A - movs r0, #0x90 - lsls r0, r0, #1 - cmp r2, r0 - ble _08082EC6 -_08082E4A: - movs r2, #0 - ldr r3, _08082E94 @ =gCurTask - mov sl, r3 - ldr r3, _08082E98 @ =gPlayer + 0x6D - mov r6, r8 - adds r6, #0x4d - ldr r7, _08082E9C @ =gPartner - ldr r5, _08082E8C @ =0xFFBFFFFF - adds r4, r3, #0 - subs r4, #0x6d -_08082E5E: - adds r0, r3, #0 - cmp r2, #0 - beq _08082E66 - ldr r0, _08082EA0 @ =gPartner + 0x6D -_08082E66: - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r1, [r6] - cmp r0, r1 - bne _08082EAA - mov r1, sb - ldrb r0, [r1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08082EAA - cmp r2, #0 - beq _08082EA4 - ldr r0, [r7, #0x10] - ands r0, r5 - str r0, [r7, #0x10] - b _08082EAA - .align 2, 0 -_08082E8C: .4byte 0xFFBFFFFF -_08082E90: .4byte gNumSingleplayerCharacters -_08082E94: .4byte gCurTask -_08082E98: .4byte gPlayer + 0x6D -_08082E9C: .4byte gPartner -_08082EA0: .4byte gPartner + 0x6D -_08082EA4: - ldr r0, [r4, #0x10] - ands r0, r5 - str r0, [r4, #0x10] -_08082EAA: - adds r2, #1 - mov r1, ip - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _08082E5E - mov r2, r8 - ldrb r0, [r2, #8] - ldr r3, [sp, #0x10] - strb r0, [r3] - mov r4, sl - ldr r0, [r4] - bl TaskDestroy -_08082EC6: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc deleted file mode 100644 index 1fecb2f26a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_8095E90.inc +++ /dev/null @@ -1,316 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _08095FD4 @ =gCurTask - ldr r0, [r1] - mov ip, r0 - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r4 - mov r8, r0 - ldr r2, [r0] - mov sl, r2 - ldr r3, _08095FD8 @ =0x0300000C - adds r3, r4, r3 - str r3, [sp] - ldr r2, _08095FDC @ =0x0300003C - adds r0, r4, r2 - ldrb r0, [r0] - ldr r7, _08095FE0 @ =gPlayer - cmp r0, #0 - beq _08095EC4 - ldr r7, _08095FE4 @ =gPartner -_08095EC4: - mov r3, r8 - ldrb r2, [r3, #8] - lsls r2, r2, #3 - ldrh r0, [r3, #4] - lsls r0, r0, #8 - adds r2, r2, r0 - mov r0, sl - ldrb r1, [r0, #1] - lsls r1, r1, #3 - ldrh r0, [r3, #6] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r3, _08095FE8 @ =gCamera - ldrh r0, [r3] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r2, r2, r0 - lsls r0, r2, #0x10 - lsrs r5, r0, #0x10 - ldrh r0, [r3, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [sp] - strh r2, [r0, #0x16] - ldrh r0, [r3, #2] - subs r1, r1, r0 - ldr r2, [sp] - strh r1, [r2, #0x18] - ldr r3, _08095FEC @ =0x03000058 - adds r3, r3, r4 - mov sb, r3 - ldrb r0, [r3] - cmp r0, #0 - bne _08095F10 - b _08096054 -_08095F10: - ldr r0, [r7, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08095F1C - b _08096040 -_08095F1C: - adds r0, r7, #0 - adds r0, #0x6d - str r0, [sp, #4] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, _08095FF0 @ =0x0300003D - adds r1, r1, r4 - mov sl, r1 - ldrb r2, [r1] - cmp r0, r2 - beq _08095F36 - b _08096038 -_08095F36: - ldr r3, _08095FF4 @ =0x0300003F - adds r5, r4, r3 - ldrb r1, [r5] - mov r2, r8 - ldr r0, [r2, #0x48] - muls r0, r1, r0 - subs r3, #1 - adds r4, r4, r3 - ldrb r1, [r4] - bl Div - adds r6, r0, #0 - ldrb r1, [r5] - mov r2, r8 - ldr r0, [r2, #0x4c] - muls r0, r1, r0 - ldrb r1, [r4] - bl Div - mov r3, r8 - ldr r2, [r3, #0x40] - adds r2, r2, r6 - lsls r2, r2, #8 - str r2, [r7] - ldr r1, [r3, #0x44] - adds r1, r1, r0 - lsls r1, r1, #8 - str r1, [r7, #4] - ldr r0, [r3, #0x54] - subs r1, r1, r0 - strh r1, [r7, #0xa] - ldr r0, [r3, #0x50] - subs r2, r2, r0 - strh r2, [r7, #0xc] - strh r2, [r7, #8] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r2, [r7] - asrs r2, r2, #8 - ldr r0, [r3, #0x40] - ldr r1, [r3, #0x48] - adds r0, r0, r1 - cmp r2, r0 - bne _08095FFC - ldr r0, [r7, #4] - asrs r0, r0, #8 - ldr r1, [r3, #0x44] - ldr r2, [r3, #0x4c] - adds r1, r1, r2 - cmp r0, r1 - bne _08095FFC - ldr r1, [sp, #4] - movs r0, #0 - ldrsb r0, [r1, r0] - mov r2, sl - ldrb r2, [r2] - cmp r0, r2 - bne _08095FC0 - ldr r0, [r7, #0x10] - ldr r1, _08095FF8 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r7, #0x10] - ldr r2, _08095FE0 @ =gPlayer - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_08095FC0: - movs r0, #0 - mov r3, sb - strb r0, [r3] - adds r2, r7, #0 - adds r2, #0x26 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] - b _0809602C - .align 2, 0 -_08095FD4: .4byte gCurTask -_08095FD8: .4byte 0x0300000C -_08095FDC: .4byte 0x0300003C -_08095FE0: .4byte gPlayer -_08095FE4: .4byte gPartner -_08095FE8: .4byte gCamera -_08095FEC: .4byte 0x03000058 -_08095FF0: .4byte 0x0300003D -_08095FF4: .4byte 0x0300003F -_08095FF8: .4byte 0xFFBFFFFF -_08095FFC: - adds r0, r7, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r7, #0x10] - adds r1, r7, #0 - adds r1, #0x40 - movs r0, #5 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r7, #0xe] - movs r0, #0xe - strb r0, [r7, #0xf] - mov r1, r8 - adds r1, #0x58 - movs r0, #1 - strb r0, [r1] -_0809602C: - ldr r0, [r7] - mov r1, r8 - str r0, [r1, #0x50] - ldr r0, [r7, #4] - str r0, [r1, #0x54] - b _080960DC -_08096038: - movs r3, #0 - mov r2, sb - strb r3, [r2] - b _080960DC -_08096040: - movs r1, #0 - mov r0, sb - strb r1, [r0] - ldr r0, [r7, #0x10] - ldr r1, _08096050 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r7, #0x10] - b _080960DC - .align 2, 0 -_08096050: .4byte 0xFFBFFFFF -_08096054: - ldr r0, _080960CC @ =Task_PipeEntrance - mov r2, ip - str r0, [r2, #8] - lsls r0, r5, #0x10 - movs r3, #0x80 - lsls r3, r3, #0x10 - adds r0, r0, r3 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0809607E - lsls r0, r6, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _0809607E - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _080960DC -_0809607E: - mov r0, r8 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _080960B0 - adds r0, r7, #0 - adds r0, #0x6d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r1, r8 - adds r1, #0x3d - ldrb r1, [r1] - cmp r0, r1 - bne _080960B0 - ldr r0, [r7, #0x10] - ldr r1, _080960D0 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r7, #0x10] - ldr r2, _080960D4 @ =gPlayer - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_080960B0: - mov r0, r8 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _080960C2 - mov r1, r8 - ldrb r0, [r1, #8] - mov r2, sl - strb r0, [r2] -_080960C2: - ldr r3, _080960D8 @ =gCurTask - ldr r0, [r3] - bl TaskDestroy - b _080960F2 - .align 2, 0 -_080960CC: .4byte Task_PipeEntrance -_080960D0: .4byte 0xFFBFFFFF -_080960D4: .4byte gPlayer -_080960D8: .4byte gCurTask -_080960DC: - ldr r0, [sp] - bl UpdateSpriteAnimation - mov r0, r8 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _080960F2 - ldr r0, [sp] - bl DisplaySprite -_080960F2: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc deleted file mode 100644 index 643d1f65ed..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/pipe__Task_PipeExit.inc +++ /dev/null @@ -1,228 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _080964B8 @ =gCurTask - ldr r0, [r1] - ldrh r0, [r0, #6] - mov r8, r0 - movs r0, #0xc0 - lsls r0, r0, #0x12 - add r0, r8 - str r0, [sp] - ldr r2, [r0] - str r2, [sp, #4] - ldr r6, _080964BC @ =0x0300000C - add r6, r8 - ldr r0, _080964C0 @ =0x0300003C - add r0, r8 - ldrb r0, [r0] - ldr r4, _080964C4 @ =gPlayer - cmp r0, #0 - beq _080963D2 - ldr r4, _080964C8 @ =gPartner -_080963D2: - ldr r3, [sp] - ldrb r1, [r3, #8] - lsls r1, r1, #3 - ldrh r0, [r3, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, [sp, #4] - ldrb r2, [r0, #1] - lsls r2, r2, #3 - ldrh r0, [r3, #6] - lsls r0, r0, #8 - adds r2, r2, r0 - ldr r3, _080964CC @ =gCamera - ldrh r0, [r3] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov sl, r1 - subs r0, r1, r0 - strh r0, [r6, #0x16] - ldrh r0, [r3, #2] - lsls r2, r2, #0x10 - asrs r7, r2, #0x10 - subs r0, r7, r0 - strh r0, [r6, #0x18] - ldr r0, [r4, #0x10] - movs r1, #0x80 - mov sb, r1 - adds r5, r0, #0 - ands r5, r1 - cmp r5, #0 - bne _080964EA - movs r2, #0x80 - lsls r2, r2, #0xf - ands r0, r2 - cmp r0, #0 - beq _080964DC - movs r3, #0x6d - adds r3, r3, r4 - mov sb, r3 - movs r1, #0 - ldrsb r1, [r3, r1] - ldr r0, _080964D0 @ =0x0300003D - add r0, r8 - ldrb r0, [r0] - cmp r1, r0 - bge _08096500 - adds r0, r6, #0 - mov r1, sl - adds r2, r7, #0 - adds r3, r4, #0 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - beq _08096500 - ldr r1, _080964D4 @ =0x0300003E - add r1, r8 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - adds r1, #6 - ands r0, r1 - subs r1, #0xfe - ands r0, r1 - adds r1, #0xf0 - ands r0, r1 - subs r1, #0x10 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #5 - strb r0, [r1] - lsls r0, r7, #8 - str r0, [r4, #4] - mov r2, sl - lsls r0, r2, #8 - str r0, [r4] - strh r5, [r4, #0xa] - strh r5, [r4, #8] - strh r5, [r4, #0xc] - strh r5, [r4, #0x38] - strh r5, [r4, #0x3a] - movs r0, #0x7f - mov r3, sb - strb r0, [r3] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - ldr r0, _080964B8 @ =gCurTask - ldr r1, [r0] - ldr r0, _080964D8 @ =Task_809656C - str r0, [r1, #8] - adds r2, r4, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - b _08096500 - .align 2, 0 -_080964B8: .4byte gCurTask -_080964BC: .4byte 0x0300000C -_080964C0: .4byte 0x0300003C -_080964C4: .4byte gPlayer -_080964C8: .4byte gPartner -_080964CC: .4byte gCamera -_080964D0: .4byte 0x0300003D -_080964D4: .4byte 0x0300003E -_080964D8: .4byte Task_809656C -_080964DC: - adds r0, r6, #0 - mov r1, sl - adds r2, r7, #0 - adds r3, r4, #0 - bl Coll_Player_Platform - b _08096500 -_080964EA: - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r0, [r4, #0x10] - mov r1, sb - orrs r0, r1 - str r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #1 - strb r0, [r1] -_08096500: - ldrh r0, [r6, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08096524 - movs r2, #0x18 - ldrsh r0, [r6, r2] - adds r0, #0x80 - cmp r0, #0 - blt _08096524 - movs r3, #0x18 - ldrsh r1, [r6, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08096544 -_08096524: - ldr r0, [sp] - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08096536 - ldr r1, [sp] - ldrb r0, [r1, #8] - ldr r2, [sp, #4] - strb r0, [r2] -_08096536: - ldr r0, _08096540 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0809655A - .align 2, 0 -_08096540: .4byte gCurTask -_08096544: - adds r0, r6, #0 - bl UpdateSpriteAnimation - ldr r0, [sp] - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _0809655A - adds r0, r6, #0 - bl DisplaySprite -_0809655A: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc deleted file mode 100644 index af87973bb4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/platform_spiked__sub_80805C8.inc +++ /dev/null @@ -1,185 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - mov ip, r0 @ ip = s - adds r7, r1, #0 @ r7 = worldX - mov r8, r2 @ r8 = worldY - adds r5, r3, #0 @ r5 = rect - ldr r4, [sp, #0x20] @ r4 = p - adds r0, #0x2c - movs r3, #0 - ldrsb r3, [r0, r3] - adds r2, r7, r3 - ldr r0, [r4] - asrs r0, r0, #8 - movs r6, #0 - ldrsb r6, [r5, r6] - adds r1, r0, r6 - cmp r2, r1 - bgt _08080608 - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _08080616 - cmp r2, r1 - bge _08080608 - b _0808070C -_08080608: - movs r0, #2 - ldrsb r0, [r5, r0] - subs r0, r0, r6 - adds r0, r1, r0 - cmp r0, r2 - bge _08080616 - b _0808070C -_08080616: - mov r0, ip - adds r0, #0x2d - movs r3, #0 - ldrsb r3, [r0, r3] - mov r0, r8 - adds r2, r0, r3 - ldr r0, [r4, #4] - asrs r0, r0, #8 - movs r6, #1 - ldrsb r6, [r5, r6] - adds r1, r0, r6 - cmp r2, r1 - bgt _08080646 - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _08080652 - cmp r2, r1 - blt _0808070C -_08080646: - movs r0, #3 - ldrsb r0, [r5, r0] - subs r0, r0, r6 - adds r0, r1, r0 - cmp r0, r2 - blt _0808070C -_08080652: - mov r0, ip - adds r0, #0x2c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r7, r0 - movs r1, #2 - ldrsb r1, [r5, r1] - subs r1, r0, r1 - adds r2, r1, #0 - adds r2, #8 - ldr r0, [r4] - asrs r3, r0, #8 - cmp r3, r2 - bgt _0808067E - lsls r0, r1, #8 - str r0, [r4] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _080806AA - b _080806A4 -_0808067E: - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r7, r0 - movs r1, #0 - ldrsb r1, [r5, r1] - subs r0, r0, r1 - adds r2, r0, #0 - subs r2, #8 - cmp r3, r2 - blt _0808070C - lsls r0, r0, #8 - str r0, [r4] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _080806AA -_080806A4: - movs r0, #0 - strh r0, [r4, #0xc] - strh r0, [r4, #8] -_080806AA: - ldr r0, [r4, #4] - asrs r0, r0, #8 - adds r0, #9 - ldr r1, [r4] - asrs r1, r1, #8 - adds r5, r4, #0 - adds r5, #0x27 - ldrb r2, [r5] - movs r7, #0 - str r7, [sp] - ldr r6, _08080708 @ =sa2__sub_801EE64 - str r6, [sp, #4] - movs r3, #8 - bl sa2__sub_801E4E4 - cmp r0, #0 - bge _080806D4 - lsls r1, r0, #8 - ldr r0, [r4, #4] - adds r0, r0, r1 - str r0, [r4, #4] -_080806D4: - ldr r0, [r4, #4] - asrs r0, r0, #8 - ldr r1, [r4] - asrs r1, r1, #8 - ldrb r2, [r5] - movs r3, #8 - rsbs r3, r3, #0 - str r7, [sp] - str r6, [sp, #4] - bl sa2__sub_801E4E4 - cmp r0, #0 - bge _080806F6 - lsls r1, r0, #8 - ldr r0, [r4, #4] - adds r0, r0, r1 - str r0, [r4, #4] -_080806F6: - ldr r0, [r4, #0x10] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - adds r1, #0x18 - ands r0, r1 - str r0, [r4, #0x10] - movs r0, #1 - b _0808070E - .align 2, 0 -_08080708: .4byte sa2__sub_801EE64 -_0808070C: - movs r0, #0 -_0808070E: - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc deleted file mode 100644 index 186c9a4f89..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__Task_BarrelOfDoomMini.inc +++ /dev/null @@ -1,620 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _0807E4E0 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r1 - mov r8, r0 @ r8 = platform - ldr r0, _0807E4E4 @ =0x0300000C - adds r0, r0, r1 - mov sl, r0 @ sl = s - mov r1, r8 - ldr r1, [r1] - str r1, [sp, #8] @ sp08 = me - mov r2, r8 - ldrb r0, [r2, #8] - lsls r0, r0, #3 - ldrh r1, [r2, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 @ r3 = worldX - ldr r4, [sp, #8] - ldrb r0, [r4, #1] - lsls r0, r0, #3 - ldrh r1, [r2, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 @ r4 = worldY - ldr r0, [r2, #0x44] - cmp r0, #0 - beq _0807E4F0 - cmp r0, #0 - bge _0807E4E8 - ldr r0, [r2, #0x3c] - adds r0, #0x30 - str r0, [r2, #0x3c] - b _0807E4F0 - .align 2, 0 -_0807E4E0: .4byte gCurTask -_0807E4E4: .4byte 0x0300000C -_0807E4E8: - mov r1, r8 - ldr r0, [r1, #0x3c] - subs r0, #0x30 - str r0, [r1, #0x3c] -_0807E4F0: - ldr r2, _0807E534 @ =gCamera - ldrh r1, [r2] - lsls r3, r3, #0x10 @ r3 = worldX << 16 - asrs r0, r3, #0x10 - subs r0, r0, r1 - mov r1, sl - strh r0, [r1, #0x16] - ldrh r0, [r2, #2] - lsls r2, r4, #0x10 @ r2 = worldY << 16 - asrs r1, r2, #0x10 - subs r1, r1, r0 - mov r4, r8 - ldr r0, [r4, #0x44] - asrs r0, r0, #8 - adds r1, r1, r0 - mov r0, sl - strh r1, [r0, #0x18] - movs r4, #0 - str r3, [sp, #0xc] @ r3 = worldX << 16 - str r2, [sp, #0x10] @ r2 = worldY << 16 - ldr r6, _0807E538 @ =gPartner - ldr r7, _0807E53C @ =gPlayer - movs r1, #0 - str r1, [sp, #0x14] @ r1 = sp14 = i * 4 - movs r2, #9 - rsbs r2, r2, #0 - mov sb, r2 @ sb = ~MOVESTATE_STOOD_ON_OBJ -_0807E526_loop: - ldr r1, [sp, #0x14] @ r1 = sp14 = i * 4 - add r1, sp - cmp r4, #0 - beq _0807E540 - movs r3, #0xa - ldrsh r0, [r6, r3] - b _0807E544 - .align 2, 0 -_0807E534: .4byte gCamera -_0807E538: .4byte gPartner -_0807E53C: .4byte gPlayer -_0807E540: - movs r2, #0xa - ldrsh r0, [r7, r2] -_0807E544: - str r0, [r1] - cmp r4, #0 - beq _0807E55C - ldr r0, [r6, #0x10] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0807E56A - ldr r3, _0807E558 @ =gPlayer - b _0807E7D4 - .align 2, 0 -_0807E558: .4byte gPlayer -_0807E55C: - ldr r1, [r7, #0x10] - movs r0, #8 - ands r1, r0 - ldr r3, _0807E578 @ =gPlayer - cmp r1, #0 - bne _0807E56A - b _0807E7D4 -_0807E56A: - cmp r4, #0 - beq _0807E57C - ldr r0, [r6, #0x28] - cmp r0, sl - beq _0807E586 - ldr r3, _0807E578 @ =gPlayer - b _0807E7D4 - .align 2, 0 -_0807E578: .4byte gPlayer -_0807E57C: - ldr r0, [r7, #0x28] - ldr r3, _0807E590 @ =gPlayer - cmp r0, sl - beq _0807E586 - b _0807E7D4 -_0807E586: - cmp r4, #0 - beq _0807E594 - movs r0, #0 - strh r0, [r6, #0xa] - b _0807E596 - .align 2, 0 -_0807E590: .4byte gPlayer -_0807E594: - strh r4, [r7, #0xa] -_0807E596: - mov r3, r8 - ldr r1, [r3, #0x3c] - cmp r4, #0 - beq _0807E5A6 - ldr r0, [r6, #4] - adds r0, r0, r1 - str r0, [r6, #4] - b _0807E5AC -_0807E5A6: - ldr r0, [r7, #4] - adds r0, r0, r1 - str r0, [r7, #4] -_0807E5AC: - ldr r0, _0807E5C0 @ =gPlayerControls - ldrh r1, [r0, #2] - adds r2, r0, #0 - cmp r4, #0 - beq _0807E5C4 - ldrh r0, [r6, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _0807E5CC - b _0807E638 - .align 2, 0 -_0807E5C0: .4byte gPlayerControls -_0807E5C4: - ldrh r0, [r7, #0x3a] - ands r0, r1 - cmp r0, #0 - beq _0807E638 -_0807E5CC: - cmp r4, #0 - beq _0807E5DC - ldrh r0, [r6, #0x38] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807E5E6 - b _0807E638 -_0807E5DC: - ldrh r0, [r7, #0x38] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807E638 -_0807E5E6: - cmp r4, #0 - beq _0807E5FC - ldr r1, _0807E5F8 @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #3 - beq _0807E608 - b _0807E824_continue - .align 2, 0 -_0807E5F8: .4byte gPartner + 0x59 -_0807E5FC: - ldr r2, _0807E618 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #3 - beq _0807E608 - b _0807E824_continue -_0807E608: - cmp r4, #0 - beq _0807E61C - ldr r0, [r6, #0x10] - mov r3, sb - ands r0, r3 - str r0, [r6, #0x10] - b _0807E624 - .align 2, 0 -_0807E618: .4byte gPlayer + 0x59 -_0807E61C: - ldr r0, [r7, #0x10] - mov r1, sb - ands r0, r1 - str r0, [r7, #0x10] -_0807E624: - cmp r4, #0 - beq _0807E630 - movs r0, #0xfa - lsls r0, r0, #8 - strh r0, [r6, #0xa] - b _0807E824_continue -_0807E630: - movs r0, #0xfa - lsls r0, r0, #8 - strh r0, [r7, #0xa] - b _0807E824_continue -_0807E638: - ldrh r1, [r2] - cmp r4, #0 - beq _0807E648 - ldrh r0, [r6, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _0807E650 - b _0807E6D8 -_0807E648: - ldrh r0, [r7, #0x3a] - ands r0, r1 - cmp r0, #0 - beq _0807E6D8 -_0807E650: - cmp r4, #0 - beq _0807E660 - ldrh r0, [r6, #0x38] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807E66A - b _0807E6D8 -_0807E660: - ldrh r0, [r7, #0x38] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807E6D8 -_0807E66A: - cmp r4, #0 - beq _0807E680 - ldr r2, _0807E67C @ =gPartner + 0x59 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #3 - bne _0807E68A - b _0807E6C0 - .align 2, 0 -_0807E67C: .4byte gPartner + 0x59 -_0807E680: - ldr r3, _0807E6B4 @ =gPlayer + 0x59 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #3 - beq _0807E6C0 -_0807E68A: - ldr r0, _0807E6B8 @ =gPlayer - cmp r4, #0 - beq _0807E692 - ldr r0, _0807E6BC @ =gPartner -_0807E692: - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - ldr r1, _0807E6B8 @ =gPlayer - cmp r4, #0 - beq _0807E6A0 - ldr r1, _0807E6BC @ =gPartner -_0807E6A0: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _0807E6B8 @ =gPlayer - cmp r4, #0 - beq _0807E6AC - ldr r1, _0807E6BC @ =gPartner -_0807E6AC: - movs r0, #9 - strb r0, [r1, #0xf] - b _0807E824_continue - .align 2, 0 -_0807E6B4: .4byte gPlayer + 0x59 -_0807E6B8: .4byte gPlayer -_0807E6BC: .4byte gPartner -_0807E6C0: - cmp r4, #0 - beq _0807E6CE - ldr r0, [r6, #0x10] - mov r1, sb - ands r0, r1 - str r0, [r6, #0x10] - b _0807E824_continue -_0807E6CE: - ldr r0, [r7, #0x10] - mov r2, sb - ands r0, r2 - str r0, [r7, #0x10] - b _0807E824_continue -_0807E6D8: - ldrh r1, [r2] - cmp r4, #0 - beq _0807E6F0 - ldrh r0, [r6, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _0807E6FA - ldr r3, _0807E6EC @ =gPlayer - b _0807E72E - .align 2, 0 -_0807E6EC: .4byte gPlayer -_0807E6F0: - ldrh r0, [r7, #0x3a] - ands r0, r1 - ldr r3, _0807E70C @ =gPlayer - cmp r0, #0 - beq _0807E72E -_0807E6FA: - mov r3, r8 - ldr r0, [r3, #0x3c] - asrs r0, r0, #1 - ldr r1, _0807E710 @ =0xFFFFFC00 - adds r0, r0, r1 - cmp r4, #0 - beq _0807E714 - strh r0, [r6, #0xa] - b _0807E716 - .align 2, 0 -_0807E70C: .4byte gPlayer -_0807E710: .4byte 0xFFFFFC00 -_0807E714: - strh r0, [r7, #0xa] -_0807E716: - cmp r4, #0 - beq _0807E724 - ldr r0, [r6, #0x10] - mov r2, sb - ands r0, r2 - str r0, [r6, #0x10] - b _0807E824_continue -_0807E724: - ldr r0, [r7, #0x10] - mov r3, sb - ands r0, r3 - str r0, [r7, #0x10] - b _0807E824_continue -_0807E72E: - cmp r4, #0 - beq _0807E73E - ldr r0, [r6, #4] - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r0, r1 - str r0, [r6, #4] - b _0807E748 -_0807E73E: - ldr r0, [r7, #4] - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r0, r2 - str r0, [r7, #4] -_0807E748: - cmp r4, #0 - beq _0807E752 - movs r0, #1 - strh r0, [r6, #0xa] - b _0807E756 -_0807E752: - movs r0, #1 - strh r0, [r3, #0xa] -_0807E756: - mov r0, r8 - ldr r1, [r0, #0x40] - asrs r1, r1, #8 - ldr r2, [sp, #0xc] @ r2 = sp0C = worldX << 16 - asrs r0, r2, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - mov r0, r8 - ldr r1, [r0, #0x44] - asrs r1, r1, #8 - ldr r2, [sp, #0x10] - asrs r0, r2, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r4, #0 - beq _0807E77C - ldr r3, _0807E798 @ =gPartner -_0807E77C: - mov r0, sl - adds r1, r5, #0 - bl Coll_Player_PlatformCrumbling - cmp r0, #0 - bne _0807E7C0 - cmp r4, #0 - beq _0807E79C - ldr r0, [r6, #0x10] - mov r3, sb - ands r0, r3 - str r0, [r6, #0x10] - b _0807E7A4 - .align 2, 0 -_0807E798: .4byte gPartner -_0807E79C: - ldr r0, [r7, #0x10] - mov r1, sb - ands r0, r1 - str r0, [r7, #0x10] -_0807E7A4: - cmp r4, #0 - beq _0807E7B8 - ldr r0, [r6, #4] - ldr r2, _0807E7B4 @ =0xFFFFF800 - adds r0, r0, r2 - str r0, [r6, #4] - b _0807E7C0 - .align 2, 0 -_0807E7B4: .4byte 0xFFFFF800 -_0807E7B8: - ldr r0, [r7, #4] - ldr r3, _0807E7CC @ =0xFFFFF800 - adds r0, r0, r3 - str r0, [r7, #4] -_0807E7C0: - cmp r4, #0 - beq _0807E7D0 - movs r0, #0 - strh r0, [r6, #0xa] - b _0807E824_continue - .align 2, 0 -_0807E7CC: .4byte 0xFFFFF800 -_0807E7D0: - strh r4, [r7, #0xa] - b _0807E824_continue -_0807E7D4: - mov r0, r8 - ldr r1, [r0, #0x40] - asrs r1, r1, #8 - ldr r2, [sp, #0xc] @ r2 = sp0C = worldX << 16 - asrs r0, r2, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - mov r0, r8 - ldr r1, [r0, #0x44] - asrs r1, r1, #8 - ldr r2, [sp, #0x10] - asrs r0, r2, #0x10 - adds r0, r0, r1 - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r4, #0 - beq _0807E7FA - ldr r3, _0807E8DC @ =gPartner -_0807E7FA: - mov r0, sl - adds r1, r5, #0 - bl Coll_Player_PlatformCrumbling - movs r1, #8 - ands r1, r0 - cmp r1, #0 - beq _0807E824_continue - ldr r0, [sp, #0x14] @ r1 = sp14 = i * 4 - add r0, sp - ldr r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - movs r1, #0xa - bl Div - mov r3, r8 - ldr r1, [r3, #0x3c] - adds r1, r1, r0 - str r1, [r3, #0x3c] -_0807E824_continue: - ldr r0, [sp, #0x14] - adds r0, #4 - str r0, [sp, #0x14] @ r1 = sp14 = i * 4 - adds r4, #1 - ldr r0, _0807E8E0 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r4, r0 - bge _0807E83A - b _0807E526_loop -_0807E83A: - mov r2, r8 - ldr r1, [r2, #0x3c] - ldr r0, _0807E8E4 @ =0x000026AC @ 9.900 - muls r0, r1, r0 - ldr r1, _0807E8E8 @ =0x00002710 @ 10.000 - bl Div - mov r3, r8 - str r0, [r3, #0x3c] - adds r0, #0x2f - cmp r0, #0x5e - bhi _0807E864 - ldr r1, [r3, #0x44] - ldr r0, _0807E8EC @ =0xFFFFFD00 - cmp r1, r0 - ble _0807E864 - ldr r0, _0807E8F0 @ =0x000002FF - cmp r1, r0 - bgt _0807E864 - movs r0, #0 - str r0, [r3, #0x3c] -_0807E864: - mov r4, r8 - ldr r0, [r4, #0x44] - ldr r1, [r4, #0x3c] - adds r0, r0, r1 - str r0, [r4, #0x44] - ldr r0, [sp, #0xc] - asrs r3, r0, #0x10 - ldr r4, _0807E8F4 @ =gCamera - movs r2, #0 - ldrsh r1, [r4, r2] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r1, r2 - cmp r3, r0 - bgt _0807E8A4 - adds r0, r1, #0 - subs r0, #0x80 - cmp r3, r0 - blt _0807E8A4 - ldr r3, [sp, #0x10] - asrs r2, r3, #0x10 - movs r0, #2 - ldrsh r1, [r4, r0] - movs r3, #0x90 - lsls r3, r3, #1 - adds r0, r1, r3 - cmp r2, r0 - bgt _0807E8A4 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - bge _0807E8FC -_0807E8A4: - mov r4, sl - ldrh r0, [r4, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0807E8CA - movs r1, #0x18 - ldrsh r0, [r4, r1] - adds r0, #0x80 - cmp r0, #0 - blt _0807E8CA - movs r2, #0x18 - ldrsh r1, [r4, r2] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0807E8FC -_0807E8CA: - mov r3, r8 - ldrb r0, [r3, #8] - ldr r4, [sp, #8] @ r4 = me - strb r0, [r4] - ldr r0, _0807E8F8 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0807E902 - .align 2, 0 -_0807E8DC: .4byte gPartner -_0807E8E0: .4byte gNumSingleplayerCharacters -_0807E8E4: .4byte 0x000026AC -_0807E8E8: .4byte 0x00002710 -_0807E8EC: .4byte 0xFFFFFD00 -_0807E8F0: .4byte 0x000002FF -_0807E8F4: .4byte gCamera -_0807E8F8: .4byte gCurTask -_0807E8FC: - mov r0, sl - bl DisplaySprite -_0807E902: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc deleted file mode 100644 index 794546088e..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/platform_sq__sub_807E914.inc +++ /dev/null @@ -1,188 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov ip, r0 @ ip = r0 = s - mov sb, r1 @ sb = r1 = worldX - mov sl, r2 @ sl = r2 = worldY - adds r6, r3, #0 @ r6 = r3 = unk08 - ldr r4, [sp, #0x2c] @ r4 = sp2C = p - adds r0, #0x2c - movs r3, #0 - ldrsb r3, [r0, r3] - adds r2, r1, r3 @ r2 = worldX + s->hitboxes[0].left - ldr r0, [r4] - asrs r0, r0, #8 - movs r5, #0 - ldrsb r5, [r6, r5] - adds r1, r0, r5 - cmp r2, r1 - bgt _0807E958 - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0807E966 - cmp r2, r1 - bge _0807E958 - b _0807EA5C_return_0 -_0807E958: - movs r0, #2 - ldrsb r0, [r6, r0] - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r2 - bge _0807E966 - b _0807EA5C_return_0 -_0807E966: - mov r2, ip - adds r2, #0x2d - movs r0, #0 - ldrsb r0, [r2, r0] - str r0, [sp, #8] - adds r5, r0, #0 - add r5, sl - ldr r1, [r4, #4] - asrs r0, r1, #8 - movs r3, #1 - ldrsb r3, [r6, r3] - mov r8, r3 - adds r3, r0, r3 - cmp r5, r3 - bgt _0807E99C - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r7, [sp, #8] - subs r0, r0, r7 - adds r0, r5, r0 - cmp r0, r3 - bge _0807E9AA - cmp r5, r3 - blt _0807EA5C_return_0 -_0807E99C: - movs r0, #3 - ldrsb r0, [r6, r0] - mov r7, r8 - subs r0, r0, r7 - adds r0, r3, r0 - cmp r0, r5 - blt _0807EA5C_return_0 -_0807E9AA: - asrs r5, r1, #8 @ r5 = I(p->qWorldY) - movs r0, #0 - ldrsb r0, [r2, r0] - add r0, sl - movs r1, #3 - ldrsb r1, [r6, r1] - subs r0, r0, r1 - adds r0, #2 - cmp r5, r0 - ble _0807EA5C_return_0 - mov r0, ip - adds r0, #0x2c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - movs r1, #2 - ldrsb r1, [r6, r1] - subs r2, r0, r1 - adds r1, r2, #0 - adds r1, #8 - ldr r0, [r4] - asrs r3, r0, #8 - cmp r3, r1 - bgt _0807E9E0 - lsls r1, r2, #8 - b _0807E9FC -_0807E9E0: - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - movs r1, #0 - ldrsb r1, [r6, r1] - subs r0, r0, r1 - subs r1, r0, #7 - cmp r3, r1 - blt _0807EA5C_return_0 - adds r1, r0, #1 - lsls r1, r1, #8 -_0807E9FC: - str r1, [r4] - adds r0, r5, #0 - adds r0, #9 - asrs r1, r1, #8 - adds r5, r4, #0 - adds r5, #0x27 - ldrb r2, [r5] - movs r7, #0 - str r7, [sp] - ldr r6, _0807EA58 @ =sa2__sub_801EE64 - str r6, [sp, #4] - movs r3, #8 - bl sa2__sub_801E4E4 - cmp r0, #0 - bge _0807EA24 - lsls r1, r0, #8 - ldr r0, [r4, #4] - adds r0, r0, r1 - str r0, [r4, #4] -_0807EA24: - ldr r0, [r4, #4] - asrs r0, r0, #8 - ldr r1, [r4] - asrs r1, r1, #8 - ldrb r2, [r5] - movs r3, #8 - rsbs r3, r3, #0 - str r7, [sp] - str r6, [sp, #4] - bl sa2__sub_801E4E4 - cmp r0, #0 - bge _0807EA46 - lsls r1, r0, #8 - ldr r0, [r4, #4] - adds r0, r0, r1 - str r0, [r4, #4] -_0807EA46: - ldr r0, [r4, #0x10] - movs r1, #0x21 - rsbs r1, r1, #0 - ands r0, r1 - adds r1, #0x18 - ands r0, r1 - str r0, [r4, #0x10] - movs r0, #1 - b _0807EA5E - .align 2, 0 -_0807EA58: .4byte sa2__sub_801EE64 -_0807EA5C_return_0: - movs r0, #0 -_0807EA5E: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc deleted file mode 100644 index 5e81e3e276..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_8077FA4.inc +++ /dev/null @@ -1,139 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r7, r0, #0 @ r7 = pole - adds r5, r1, #0 @ r5 = s - str r2, [sp] @ sp00 = r2 = worldX - str r3, [sp, #4] @ sp04 = r3 = worldY - movs r0, #0 - mov sl, r0 @ sl = 0 - mov sb, r0 @ sb = 0 - adds r0, r2, #0 - adds r0, #0xf - lsls r0, r0, #8 - str r0, [sp, #8] @ sp08 = qWorldX = Q(worldX + 15) - ldr r1, _08078014 @ =gPlayer + 0x26 - mov r8, r1 @ r8 =r1 = &gPlayer->itemEffect - adds r0, r5, #0 - adds r0, #0x21 - str r0, [sp, #0xc] @ sp0C = &s->prevVariant -_08077FD0_loop: - ldr r4, _08078018 @ =gPlayer - mov r1, sb - cmp r1, #0 - beq _08077FDA - ldr r4, _0807801C @ =gPartner -_08077FDA: - ldr r0, [sp] - lsls r1, r0, #0x10 - ldr r0, [sp, #4] - lsls r2, r0, #0x10 - adds r0, r5, #0 - asrs r1, r1, #0x10 - asrs r2, r2, #0x10 - adds r3, r4, #0 - bl Coll_Player_Entity_Intersection - movs r1, #0x80 - lsls r1, r1, #0xc - ands r1, r0 - cmp r1, #0 - beq _0807808A_continue - ldr r2, [r4, #0x10] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0807808A_continue - movs r0, #4 - ands r0, r2 - cmp r0, #0 - bne _08078024 - movs r0, #0xc - ldrsh r1, [r4, r0] - ldr r0, _08078020 @ =0xFFFFFD00 - b _0807802A - .align 2, 0 -_08078014: .4byte gPlayer + 0x26 -_08078018: .4byte gPlayer -_0807801C: .4byte gPartner -_08078020: .4byte 0xFFFFFD00 -_08078024: - movs r0, #0xc - ldrsh r1, [r4, r0] - ldr r0, _080780AC @ =0xFFFFFAC0 -_0807802A: - cmp r1, r0 - bge _0807808A_continue - movs r6, #1 - ands r2, r6 - cmp r2, #0 - beq _0807808A_continue - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0xaf - bl m4aSongNumStart - ldr r1, [sp, #8] - str r1, [r4] - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - mov r0, r8 - ldrb r1, [r0] - movs r0, #0x80 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - movs r0, #0xff - ldr r1, [sp, #0xc] - strb r0, [r1] - adds r0, #0xd6 - strh r0, [r5, #0xa] - adds r0, r5, #0 - adds r0, #0x20 - strb r6, [r0] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r1, r7, #0 - adds r1, #0x3f - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x40 - ldrb r0, [r1] - adds r2, r7, #0 - adds r2, #0x3e - strb r0, [r2] - movs r0, #0x1e - strb r0, [r1] - mov sl, r6 -_0807808A_continue: - movs r0, #1 - add sb, r0 - ldr r0, _080780B0 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp sb, r0 - blt _08077FD0_loop - mov r0, sl - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080780AC: .4byte 0xFFFFFAC0 -_080780B0: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc deleted file mode 100644 index f748005538..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80780B4.inc +++ /dev/null @@ -1,155 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - mov r8, r0 - adds r5, r1, #0 - str r2, [sp] - str r3, [sp, #4] - movs r0, #0 - str r0, [sp, #8] - movs r6, #0 - adds r0, r2, #0 - subs r0, #0xf - lsls r0, r0, #8 - str r0, [sp, #0xc] - ldr r1, _080780E4 @ =gPlayer + 0x26 - mov sl, r1 - adds r2, r5, #0 - adds r2, #0x21 - str r2, [sp, #0x10] - b _08078122 - .align 2, 0 -_080780E4: .4byte gPlayer + 0x26 -_080780E8: - movs r3, #0xc - ldrsh r1, [r4, r3] - movs r0, #0xa8 - lsls r0, r0, #3 - cmp r1, r0 - ble _0807810E - movs r7, #1 - ands r2, r7 - cmp r2, #0 - bne _0807810E - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0xaf - bl m4aSongNumStart - ldr r0, [sp, #0xc] - str r0, [r4] - b _08078180 -_0807810E: - adds r6, #1 - ldr r0, _080781D8 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r6, r0 - bge _080781C4 - ldr r4, _080781DC @ =gPartner - cmp r6, #0 - bne _08078130 -_08078122: - ldr r4, _080781E0 @ =gPlayer - ldr r1, [sp] - lsls r1, r1, #0x10 - str r1, [sp, #0x14] - ldr r2, [sp, #4] - lsls r2, r2, #0x10 - mov sb, r2 -_08078130: - adds r0, r5, #0 - ldr r3, [sp, #0x14] - asrs r1, r3, #0x10 - mov r3, sb - asrs r2, r3, #0x10 - adds r3, r4, #0 - bl Coll_Player_Entity_Intersection - movs r1, #0x80 - lsls r1, r1, #0xc - ands r1, r0 - cmp r1, #0 - beq _0807810E - ldr r2, [r4, #0x10] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0807810E - movs r0, #4 - ands r0, r2 - cmp r0, #0 - bne _080780E8 - movs r0, #0xc - ldrsh r1, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - ble _0807810E - movs r7, #1 - ands r2, r7 - cmp r2, #0 - bne _0807810E - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0xaf - bl m4aSongNumStart - ldr r1, [sp, #0xc] - str r1, [r4] -_08078180: - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - mov r2, sl - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xff - ldr r3, [sp, #0x10] - strb r0, [r3] - adds r0, #0xd6 - strh r0, [r5, #0xa] - adds r0, r5, #0 - adds r0, #0x20 - strb r7, [r0] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r0, [r0] - mov r1, r8 - adds r1, #0x3f - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x40 - ldrb r1, [r2] - mov r0, r8 - adds r0, #0x3e - strb r1, [r0] - movs r0, #0x1e - strb r0, [r2] - movs r0, #1 - str r0, [sp, #8] -_080781C4: - ldr r0, [sp, #8] - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080781D8: .4byte gNumSingleplayerCharacters -_080781DC: .4byte gPartner -_080781E0: .4byte gPlayer - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc deleted file mode 100644 index 8f20f11607..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/red_flag__sub_80781E4.inc +++ /dev/null @@ -1,178 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sl, r0 - adds r5, r1, #0 - adds r7, r2, #0 - mov r8, r3 - movs r0, #0 - str r0, [sp] - movs r6, #0 - ldr r0, _08078214 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x19 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - ldr r1, _08078218 @ =gPlayer + 0x26 - mov sb, r1 - b _0807822C - .align 2, 0 -_08078214: .4byte gCurrentLevel -_08078218: .4byte gPlayer + 0x26 -_0807821C: - adds r6, #1 - ldr r0, _080782B8 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r6, r0 - blt _0807822C - b _08078326 -_0807822C: - ldr r4, _080782BC @ =gPlayer - cmp r6, #0 - beq _08078234 - ldr r4, _080782C0 @ =gPartner -_08078234: - lsls r1, r7, #0x10 - mov r0, r8 - lsls r2, r0, #0x10 - adds r0, r5, #0 - asrs r1, r1, #0x10 - asrs r2, r2, #0x10 - adds r3, r4, #0 - bl Coll_Player_Entity_Intersection - movs r1, #0x80 - lsls r1, r1, #0xc - ands r1, r0 - cmp r1, #0 - beq _0807821C - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0807826E - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0807821C -_0807826E: - adds r0, r4, #0 - bl Player_TransitionCancelFlyingAndBoost - movs r0, #0xaf - bl m4aSongNumStart - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - mov r0, sb - ldrb r1, [r0] - movs r0, #0x80 - orrs r0, r1 - mov r1, sb - strb r0, [r1] - mov r0, r8 - adds r0, #0x10 - lsls r0, r0, #8 - str r0, [r4, #4] - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080782C4 - adds r0, r7, #0 - subs r0, #8 - lsls r0, r0, #8 - str r0, [r4] - ldr r0, [r4, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - b _080782D2 - .align 2, 0 -_080782B8: .4byte gNumSingleplayerCharacters -_080782BC: .4byte gPlayer -_080782C0: .4byte gPartner -_080782C4: - adds r0, r7, #0 - adds r0, #8 - lsls r0, r0, #8 - str r0, [r4] - ldr r0, [r4, #0x10] - movs r1, #1 - orrs r0, r1 -_080782D2: - str r0, [r4, #0x10] - adds r1, r5, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - ldr r0, [sp, #4] - cmp r0, #0 - beq _080782EE - ldr r0, _080782F4 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xe - bne _080782F8 -_080782EE: - movs r0, #0xea - lsls r0, r0, #1 - b _080782FC - .align 2, 0 -_080782F4: .4byte gCurrentLevel -_080782F8: - movs r0, #0xeb - lsls r0, r0, #1 -_080782FC: - strh r0, [r5, #0xa] - adds r0, r5, #0 - adds r0, #0x20 - movs r1, #1 - strb r1, [r0] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r0, [r0] - mov r1, sl - adds r1, #0x3f - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x40 - ldrb r1, [r2] - mov r0, sl - adds r0, #0x3e - strb r1, [r0] - movs r0, #0x1f - strb r0, [r2] - movs r0, #1 - str r0, [sp] -_08078326: - ldr r0, [sp] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc deleted file mode 100644 index 4b315e81f0..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/run_wheel__sub_808EC84.inc +++ /dev/null @@ -1,553 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - mov sl, r0 - str r1, [sp] - str r2, [sp, #4] - str r3, [sp, #8] - ldr r7, [sp, #0x2c] - adds r0, r7, #0 - adds r0, #0x40 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xf - bne _0808ECAA - b _0808F084 -_0808ECAA: - ldr r0, [r7, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808ECB6 - b _0808F084 -_0808ECB6: - bl sub_80549FC - adds r3, r0, #0 - cmp r3, #0 - beq _0808ED4C - movs r0, #0x4e - add r0, sl - mov sb, r0 - ldrb r0, [r0] - lsls r0, r0, #7 - ldr r1, _0808ED40 @ =0x000003FF - mov r8, r1 - ands r0, r1 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - ldr r3, _0808ED44 @ =gSineTable - adds r0, r0, r3 - movs r4, #0 - ldrsh r0, [r0, r4] - ldr r5, _0808ED48 @ =0x00001770 - adds r1, r5, #0 - bl Div - adds r4, r0, #0 - mov r6, sl - ldr r0, [r6, #0x40] - movs r6, #0xc8 - lsls r6, r6, #4 - adds r1, r6, #0 - bl Div - muls r4, r0, r4 - ldr r0, [sp, #4] - adds r4, r0, r4 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r1, sb - ldrb r0, [r1] - lsls r0, r0, #7 - mov r2, r8 - ands r0, r2 - lsls r0, r0, #1 - ldr r3, _0808ED44 @ =gSineTable - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r5, #0 - bl Div - adds r5, r0, #0 - mov r2, sl - ldr r0, [r2, #0x40] - adds r1, r6, #0 - bl Div - adds r2, r5, #0 - muls r2, r0, r2 - ldr r3, [sp, #8] - adds r2, r3, r2 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, [sp] - adds r1, r4, #0 - adds r3, r7, #0 - bl Coll_Player_Platform - b _0808F0A0 - .align 2, 0 -_0808ED40: .4byte 0x000003FF -_0808ED44: .4byte gSineTable -_0808ED48: .4byte 0x00001770 -_0808ED4C: - ldr r2, [r7, #0x10] - movs r5, #8 - adds r0, r2, #0 - ands r0, r5 - cmp r0, #0 - bne _0808ED5A - b _0808F0A0 -_0808ED5A: - ldr r0, [r7, #0x28] - ldr r4, [sp] - cmp r0, r4 - beq _0808ED64 - b _0808F0A0 -_0808ED64: - movs r6, #0x18 - ldrsh r0, [r4, r6] - ldr r4, _0808EDE4 @ =gCamera - movs r6, #2 - ldrsh r1, [r4, r6] - adds r0, r0, r1 - ldr r1, [sp] - adds r1, #0x2d - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r1, #0xf - ldrsb r1, [r7, r1] - subs r0, r0, r1 - lsls r0, r0, #8 - str r0, [r7, #4] - movs r1, #2 - ands r1, r2 - cmp r1, #0 - bne _0808ED9C - adds r0, r7, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0808EE5C -_0808ED9C: - mov r0, sl - adds r0, #0x4c - strh r3, [r0] - cmp r1, #0 - beq _0808EDFE - str r3, [r7, #0x28] - movs r1, #9 - rsbs r1, r1, #0 - ands r1, r2 - str r1, [r7, #0x10] - adds r0, r7, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - bne _0808EDC8 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - bne _0808EDEC -_0808EDC8: - ldrh r1, [r7, #8] - movs r0, #8 - ldrsh r2, [r7, r0] - ldr r0, _0808EDE8 @ =0xFFFFFEE0 - cmp r2, r0 - blt _0808EDE0 - adds r0, r1, #0 - movs r1, #0x90 - lsls r1, r1, #1 - cmp r2, r1 - ble _0808EDE0 - adds r0, r1, #0 -_0808EDE0: - strh r0, [r7, #8] - b _0808EDF0 - .align 2, 0 -_0808EDE4: .4byte gCamera -_0808EDE8: .4byte 0xFFFFFEE0 -_0808EDEC: - mov r1, sl - str r3, [r1, #0x44] -_0808EDF0: - adds r2, r7, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - b _0808EE9C -_0808EDFE: - ldrh r1, [r4] - ldr r2, [sp] - ldrh r2, [r2, #0x16] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r4, #2] - ldr r3, [sp] - ldrh r3, [r3, #0x18] - adds r2, r2, r3 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r0, [sp] - adds r3, r7, #0 - bl Coll_Player_Platform - ands r0, r5 - cmp r0, #0 - beq _0808EE9C - ldr r0, [r7, #0x10] - orrs r0, r5 - str r0, [r7, #0x10] - ldr r4, [sp] - str r4, [r7, #0x28] - ldrh r1, [r7, #0xc] - movs r6, #0xc - ldrsh r2, [r7, r6] - ldr r0, _0808EE58 @ =0xFFFFFDC0 - cmp r2, r0 - blt _0808EE46 - adds r0, r1, #0 - movs r1, #0x90 - lsls r1, r1, #2 - cmp r2, r1 - ble _0808EE46 - adds r0, r1, #0 -_0808EE46: - strh r0, [r7, #0xc] - adds r2, r7, #0 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - b _0808EE9C - .align 2, 0 -_0808EE58: .4byte 0xFFFFFDC0 -_0808EE5C: - ldr r2, _0808EEC8 @ =gSineTable - mov r0, sl - adds r0, #0x4e - ldrb r0, [r0] - lsls r0, r0, #7 - ldr r1, _0808EECC @ =0x000003FF - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r1, _0808EED0 @ =0x00001770 - bl Div - adds r4, r0, #0 - mov r3, sl - ldr r0, [r3, #0x40] - movs r1, #0xc8 - lsls r1, r1, #4 - bl Div - muls r0, r4, r0 - ldr r4, [sp, #4] - adds r0, r4, r0 - lsls r0, r0, #8 - movs r6, #8 - ldrsh r1, [r7, r6] - subs r0, r0, r1 - str r0, [r7] -_0808EE9C: - adds r0, r7, #0 - adds r0, #0x3c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0808EEAC - b _0808F076 -_0808EEAC: - mov r1, sl - ldr r0, [r1, #0x44] - movs r1, #0x1c - bl Div - cmp r0, #0 - bge _0808EED4 - mov r2, sl - ldr r0, [r2, #0x44] - movs r1, #0x1c - bl Div - rsbs r0, r0, #0 - b _0808EEDE - .align 2, 0 -_0808EEC8: .4byte gSineTable -_0808EECC: .4byte 0x000003FF -_0808EED0: .4byte 0x00001770 -_0808EED4: - mov r3, sl - ldr r0, [r3, #0x44] - movs r1, #0x1c - bl Div -_0808EEDE: - ldr r1, [sp] - adds r1, #0x22 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x59 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r3, r0, #0 - cmp r1, #3 - bne _0808EEFE - subs r0, #0x19 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _0808EF0A -_0808EEFE: - movs r4, #0xc - ldrsh r0, [r7, r4] - subs r0, #0x10 - mov r6, sl - str r0, [r6, #0x44] - b _0808EF12 -_0808EF0A: - movs r1, #0xc - ldrsh r0, [r7, r1] - mov r2, sl - str r0, [r2, #0x44] -_0808EF12: - mov r4, sl - ldr r0, [r4, #0x44] - cmp r0, #0 - ble _0808EF1E - lsls r0, r0, #1 - str r0, [r4, #0x44] -_0808EF1E: - mov r6, sl - ldr r0, [r6, #0x44] - movs r1, #0xb2 - lsls r1, r1, #4 - cmp r0, r1 - ble _0808EF2C - str r1, [r6, #0x44] -_0808EF2C: - mov r1, sl - ldr r0, [r1, #0x40] - ldr r2, [r1, #0x44] - adds r0, r0, r2 - str r0, [r1, #0x40] - ldr r1, [r1, #0x3c] - cmp r0, r1 - ble _0808EF48 - mov r4, sl - str r1, [r4, #0x40] - cmp r2, #0 - bge _0808EF76 - movs r0, #0 - str r0, [r4, #0x44] -_0808EF48: - mov r6, sl - ldr r0, [r6, #0x44] - cmp r0, #0 - bge _0808EF76 - ldrh r1, [r7, #0xc] - movs r2, #0xc - ldrsh r0, [r7, r2] - cmp r0, #0 - bgt _0808EF76 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - bne _0808EF70 - adds r0, r7, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - beq _0808EF76 -_0808EF70: - adds r0, r1, #0 - subs r0, #0x40 - strh r0, [r7, #0xc] -_0808EF76: - ldrh r1, [r7, #0xc] - movs r3, #0xc - ldrsh r2, [r7, r3] - ldr r0, _0808EFE0 @ =0xFFFFF700 - cmp r2, r0 - blt _0808EF8A - movs r0, #0x90 - lsls r0, r0, #3 - cmp r2, r0 - ble _0808EF8C -_0808EF8A: - adds r1, r0, #0 -_0808EF8C: - movs r2, #0 - strh r1, [r7, #0xc] - mov r4, sl - ldr r0, [r4, #0x40] - cmp r0, #0 - bge _0808EFC0 - str r2, [r4, #0x40] - str r2, [r4, #0x44] - adds r0, r7, #0 - adds r0, #0x3e - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - bne _0808EFB0 - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0808EFB0 - strh r2, [r7, #0xc] -_0808EFB0: - ldr r1, [sp] - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - ldr r1, [sp] - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] -_0808EFC0: - mov r6, sl - ldr r0, [r6, #0x44] - cmp r0, #0 - blt _0808EFE4 - ldr r0, [r6, #0x48] - cmp r0, #0 - bgt _0808EFFC - ldr r1, [sp] - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - ldr r1, [sp] - adds r1, #0x20 - movs r0, #1 - b _0808EFFA - .align 2, 0 -_0808EFE0: .4byte 0xFFFFF700 -_0808EFE4: - mov r1, sl - ldr r0, [r1, #0x48] - cmp r0, #0 - blt _0808EFFC - ldr r1, [sp] - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - ldr r1, [sp] - adds r1, #0x20 - movs r0, #0 -_0808EFFA: - strb r0, [r1] -_0808EFFC: - mov r3, sl - adds r3, #0x4c - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - mov r4, sl - ldr r2, [r4, #0x44] - ldr r6, _0808F02C @ =0x000004FF - adds r1, r2, r6 - ldr r0, _0808F030 @ =0x000009FE - cmp r1, r0 - bhi _0808F034 - cmp r2, #0 - beq _0808F06E - ldrh r0, [r3] - movs r1, #0x19 - bl Mod - cmp r0, #0 - bne _0808F06E - movs r0, #0xd4 - bl m4aSongNumStart - b _0808F06E - .align 2, 0 -_0808F02C: .4byte 0x000004FF -_0808F030: .4byte 0x000009FE -_0808F034: - ldr r0, _0808F054 @ =0x0000081F - adds r1, r2, r0 - ldr r0, _0808F058 @ =0x0000103E - cmp r1, r0 - bhi _0808F05C - ldrh r0, [r3] - movs r1, #0x10 - bl Mod - cmp r0, #0 - bne _0808F06E - movs r0, #0xd5 - bl m4aSongNumStart - b _0808F06E - .align 2, 0 -_0808F054: .4byte 0x0000081F -_0808F058: .4byte 0x0000103E -_0808F05C: - ldrh r0, [r3] - movs r1, #8 - bl Mod - cmp r0, #0 - bne _0808F06E - movs r0, #0xd6 - bl m4aSongNumStart -_0808F06E: - mov r1, sl - ldr r0, [r1, #0x44] - str r0, [r1, #0x48] - b _0808F0A0 -_0808F076: - mov r2, sl - ldr r0, [r2, #0x44] - cmp r0, #0 - ble _0808F080 - asrs r0, r0, #1 -_0808F080: - strh r0, [r7, #0xc] - b _0808F0A0 -_0808F084: - ldr r1, [r7, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0808F0A0 - ldr r0, [r7, #0x28] - ldr r3, [sp] - cmp r0, r3 - bne _0808F0A0 - movs r0, #0 - str r0, [r7, #0x28] - subs r0, #9 - ands r1, r0 - str r1, [r7, #0x10] -_0808F0A0: - movs r0, #1 - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc deleted file mode 100644 index 37e079e94c..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/spiked_barrel__Task_SpikedBarrel.inc +++ /dev/null @@ -1,582 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - movs r0, #0 - str r0, [sp, #0x10] @ sp10 = 0 - ldr r0, _080909D8 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 @ r7 = barrel - ldr r2, _080909DC @ =0x0300000C - adds r2, r2, r1 - mov sb, r2 @ sb = s - ldr r3, [r7] @ r3 = me - str r3, [sp, #8] @ sp08 = r3 = me - ldr r4, _080909E0 @ =0x03000050 - adds r2, r1, r4 @ r2 = unk50 - movs r6, #0 - ldrsh r0, [r2, r6] - cmp r0, #0 - beq _080909F4 - ldr r0, [r7, #0x48] - mov r8, r0 @ r8 = barrel->unk48 - ldrb r3, [r3, #5] - lsls r3, r3, #0xb - ldr r5, _080909E4 @ =gSineTable - movs r6, #0 - ldrsh r4, [r2, r6] @ r4 = barrel->unk50 - ldr r2, _080909E8 @ =gStageTime - ldr r6, _080909EC @ =0x03000044 - adds r0, r1, r6 - ldrh r1, [r0] - ldr r0, [r2] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - muls r0, r4, r0 - ldr r1, _080909F0 @ =0x000003FF - ands r0, r1 @ theta = CLAMP_SIN_PERIOD(barrel->unk50 * ((gStageTime + barrel->unk44) & 0xFF)); - lsls r0, r0, #1 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r3, r0 - asrs r0, r0, #0xe - str r0, [r7, #0x48] - mov r2, r8 - subs r2, r0, r2 - str r2, [sp, #0xc] - b _080909FC - .align 2, 0 -_080909D8: .4byte gCurTask -_080909DC: .4byte 0x0300000C -_080909E0: .4byte 0x03000050 -_080909E4: .4byte gSineTable -_080909E8: .4byte gStageTime -_080909EC: .4byte 0x03000044 -_080909F0: .4byte 0x000003FF -_080909F4: - movs r3, #0 - str r3, [sp, #0xc] - ldr r4, [sp, #0x10] - str r4, [r7, #0x48] -_080909FC: - adds r1, r7, #0 - adds r1, #0x52 - movs r6, #0 - ldrsh r0, [r1, r6] - cmp r0, #0 - beq _08090A4C - ldr r6, [r7, #0x4c] - ldr r0, [sp, #8] - ldrb r3, [r0, #6] - lsls r3, r3, #0xb - ldr r5, _08090A40 @ =gSineTable - movs r2, #0 - ldrsh r4, [r1, r2] - ldr r2, _08090A44 @ =gStageTime - adds r0, r7, #0 - adds r0, #0x44 - ldrh r1, [r0] - ldr r0, [r2] - adds r0, r0, r1 - movs r1, #0xff - ands r0, r1 - muls r0, r4, r0 - ldr r1, _08090A48 @ =0x000003FF - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r4, #0 - ldrsh r0, [r0, r4] - muls r0, r3, r0 - asrs r0, r0, #0xe - str r0, [r7, #0x4c] - subs r6, r0, r6 - str r6, [sp, #0x10] - b _08090A52 - .align 2, 0 -_08090A40: .4byte gSineTable -_08090A44: .4byte gStageTime -_08090A48: .4byte 0x000003FF -_08090A4C: - movs r6, #0 - str r6, [sp, #0x10] - str r6, [r7, #0x4c] -_08090A52: - ldrb r0, [r7, #8] - lsls r0, r0, #3 - ldrh r1, [r7, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] @ sp00 = worldX - ldr r1, [sp, #8] - ldrb r0, [r1, #1] - lsls r0, r0, #3 - ldrh r1, [r7, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] @ sp04 = worldY - ldr r0, [r7, #0x48] - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl Div - ldr r4, _08090D08 @ =gCamera - ldrh r2, [r4] - ldr r3, [sp] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r2 - adds r1, r1, r0 - mov r6, sb - strh r1, [r6, #0x16] - ldr r0, [r7, #0x4c] - adds r1, r5, #0 - bl Div - ldrh r2, [r4, #2] - ldr r3, [sp, #4] - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r2 - adds r1, r1, r0 - strh r1, [r6, #0x18] - movs r4, #0 - str r4, [sp, #0x14] @ sp14 = i; - adds r6, r7, #0 - adds r6, #0x56 - str r6, [sp, #0x20] @ sp20 = barrel->unk56 -_08090AB2_loop: - ldr r6, _08090D0C @ =gPlayer - ldr r0, [sp, #0x14] - cmp r0, #0 - beq _08090ABC - ldr r6, _08090D10 @ =gPartner -_08090ABC: - ldr r0, [r6, #0x10] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08090AE2 - ldr r0, [r6, #0x28] - cmp r0, sb - bne _08090AE2 - ldr r0, [r6] - ldr r1, [sp, #0xc] @ r1 = qSp0C - adds r0, r0, r1 - str r0, [r6] - ldr r0, [r6, #4] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - ldr r3, [sp, #0x10] @ r3 = sp10 - adds r0, r0, r3 - str r0, [r6, #4] -_08090AE2: - ldr r1, [r7, #0x48] - asrs r1, r1, #8 - ldr r4, [sp] @ r4 = sp00 = worldX - lsls r5, r4, #0x10 - asrs r0, r5, #0x10 - mov r8, r0 @ r8 = worldX - add r1, r8 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, [r7, #0x4c] - asrs r0, r0, #8 - ldr r2, [sp, #4] - lsls r4, r2, #0x10 - asrs r2, r4, #0x10 - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r0, sb - adds r3, r6, #0 - bl Coll_Player_PlatformCrumbling - ldr r3, [sp, #0x20] @ barrel->unk56 - ldrb r0, [r3] - str r5, [sp, #0x18] @ sp18 = worldX << 16 - str r4, [sp, #0x1c] @ sp1C = worldY << 16 - cmp r0, #0 - beq _08090B1E - cmp r0, #2 - beq _08090B1E - b _08090C88 -_08090B1E: - mov r4, sb - ldr r1, [r4, #0x30] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08090B2C - b _08090C88 -_08090B2C: - ldr r0, [r7, #0x48] - movs r1, #0x80 - lsls r1, r1, #1 - mov sl, r1 @ sl = 0x100 - bl Div - add r0, r8 - mov r5, sb - adds r5, #0x34 - movs r1, #0 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - ldr r2, [r6] - asrs r2, r2, #8 - ldr r1, [r6, #0x64] - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r2, r2, r1 - cmp r0, r2 - bgt _08090B80 - ldr r0, [r7, #0x48] - mov r1, sl - bl Div - add r0, r8 - mov r1, sb - adds r1, #0x36 - movs r2, #0 - ldrsb r2, [r1, r2] - adds r2, r2, r0 - ldr r1, [r6] - asrs r1, r1, #8 - ldr r0, [r6, #0x64] - adds r0, #0x38 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - cmp r2, r1 - bge _08090BC6 -_08090B80: - ldr r0, [r7, #0x48] - mov r1, sl - bl Div - add r0, r8 - movs r1, #0 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - ldr r2, [r6] - asrs r2, r2, #8 - ldr r3, [r6, #0x64] - adds r1, r3, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r2, r2, r1 - cmp r0, r2 - blt _08090C88 - adds r0, r3, #0 - adds r0, #0x3a - movs r4, #0 - ldrsb r4, [r0, r4] - subs r4, r4, r1 - adds r4, r2, r4 - ldr r0, [r7, #0x48] - mov r1, sl - bl Div - add r0, r8 - movs r1, #0 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - cmp r4, r0 - blt _08090C88 -_08090BC6: - ldr r0, [r7, #0x4c] - movs r2, #0x80 - lsls r2, r2, #1 - mov sl, r2 - mov r1, sl - bl Div - ldr r3, [sp, #0x1c] - asrs r5, r3, #0x10 - adds r0, r5, r0 - movs r4, #0x35 - add r4, sb - mov r8, r4 - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r0, r1 - ldr r2, [r6, #4] - asrs r2, r2, #8 - ldr r1, [r6, #0x64] - adds r1, #0x39 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r2, r2, r1 - cmp r0, r2 - bgt _08090C22 - ldr r0, [r7, #0x4c] - mov r1, sl - bl Div - adds r0, r5, r0 - mov r1, sb - adds r1, #0x37 - movs r2, #0 - ldrsb r2, [r1, r2] - adds r2, r2, r0 - ldr r1, [r6, #4] - asrs r1, r1, #8 - ldr r0, [r6, #0x64] - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - cmp r2, r1 - bge _08090C6C -_08090C22: - ldr r0, [r7, #0x4c] - mov r1, sl - bl Div - adds r0, r5, r0 - mov r2, r8 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r1, [r6, #4] - asrs r1, r1, #8 - ldr r3, [r6, #0x64] - adds r2, r3, #0 - adds r2, #0x39 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - cmp r0, r1 - blt _08090C88 - adds r0, r3, #0 - adds r0, #0x3b - movs r4, #0 - ldrsb r4, [r0, r4] - subs r4, r4, r2 - adds r4, r1, r4 - ldr r0, [r7, #0x4c] - mov r1, sl - bl Div - adds r0, r5, r0 - mov r3, r8 - movs r1, #0 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - cmp r4, r0 - blt _08090C88 -_08090C6C: - ldr r0, _08090D0C @ =gPlayer - ldr r0, [r0, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08090C88 - adds r0, r6, #0 - bl Coll_DamagePlayer - cmp r0, #0 - beq _08090C88 - movs r0, #0xab - bl m4aSongNumStart -_08090C88: - ldr r4, [sp, #0x14] - adds r4, #1 - str r4, [sp, #0x14] - ldr r0, _08090D14 @ =gNumSingleplayerCharacters - movs r1, #0 - ldrsb r1, [r0, r1] - adds r3, r0, #0 - cmp r4, r1 - bge _08090C9C - b _08090AB2_loop -_08090C9C: - ldr r6, [sp, #0x18] - asrs r5, r6, #0x10 @ r5 = worldX - ldr r2, _08090D08 @ =gCamera - movs r0, #0 - ldrsh r1, [r2, r0] - movs r4, #0xb8 - lsls r4, r4, #1 - adds r0, r1, r4 - cmp r5, r0 - bgt _08090CD2 - adds r0, r1, #0 - subs r0, #0x80 - cmp r5, r0 - blt _08090CD2 - ldr r6, [sp, #0x1c] - asrs r4, r6, #0x10 @r4 = worldY - movs r0, #2 - ldrsh r1, [r2, r0] - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r1, r2 - cmp r4, r0 - bgt _08090CD2 - adds r0, r1, #0 - subs r0, #0x80 - cmp r4, r0 - bge _08090D1C -_08090CD2: - mov r4, sb - ldrh r0, [r4, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _08090CF8 - movs r6, #0x18 - ldrsh r0, [r4, r6] - adds r0, #0x80 - cmp r0, #0 - blt _08090CF8 - movs r0, #0x18 - ldrsh r1, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08090D1C -_08090CF8: - ldrb r0, [r7, #8] - ldr r1, [sp, #8] - strb r0, [r1] - ldr r0, _08090D18 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _08090DE0_return - .align 2, 0 -_08090D08: .4byte gCamera -_08090D0C: .4byte gPlayer -_08090D10: .4byte gPartner -_08090D14: .4byte gNumSingleplayerCharacters -_08090D18: .4byte gCurTask -_08090D1C: - ldr r1, _08090D5C @ =gPlayer - ldr r0, [r1, #0x10] - movs r2, #8 - ands r0, r2 - cmp r0, #0 - beq _08090D2E - ldr r0, [r1, #0x28] - cmp r0, sb - beq _08090D46 -_08090D2E: - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #2 - bne _08090D64 - ldr r1, _08090D60 @ =gPartner - ldr r0, [r1, #0x10] - ands r0, r2 - cmp r0, #0 - beq _08090D64 - ldr r0, [r1, #0x28] - cmp r0, sb - bne _08090D64 -_08090D46: - adds r0, r7, #0 - adds r0, #0x54 - ldrh r3, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r0, #0 - cmp r3, r1 - beq _08090D76 - adds r0, r3, #0 - adds r0, #0x10 - b _08090D74 - .align 2, 0 -_08090D5C: .4byte gPlayer -_08090D60: .4byte gPartner -_08090D64: - adds r0, r7, #0 - adds r0, #0x54 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - beq _08090D76 - adds r0, r1, #0 - subs r0, #0x10 -_08090D74: - strh r0, [r2] -_08090D76: - ldr r1, _08090DB0 @ =gSineTable - ldrh r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x1c - mov r2, sb - ldrh r2, [r2, #0x18] - adds r0, r0, r2 - mov r3, sb - strh r0, [r3, #0x18] - adds r1, r7, #0 - adds r1, #0x57 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08090DD4 - ldr r4, [sp, #0x20] - ldrb r0, [r4] - cmp r0, #0 - beq _08090DAA - cmp r0, #2 - bne _08090DB4 -_08090DAA: - movs r0, #0x30 - b _08090DB6 - .align 2, 0 -_08090DB0: .4byte gSineTable -_08090DB4: - movs r0, #0x10 -_08090DB6: - strb r0, [r1] - ldr r6, [sp, #0x20] - ldrb r0, [r6] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r6] - mov r1, sb - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - ldrb r1, [r6] - mov r0, sb - adds r0, #0x20 - strb r1, [r0] -_08090DD4: - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - bl DisplaySprite -_08090DE0_return: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc deleted file mode 100644 index c94a151ad1..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/spring_hiding__sub_8095224.inc +++ /dev/null @@ -1,329 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov sb, r1 @ sb = s - str r2, [sp] @ sp00 = worldX - str r3, [sp, #4]@ sp04 = worldY - movs r1, #0 - mov sl, r1 @ sl = result = FALSE - ldr r0, [r0] - str r0, [sp, #8]@ sp08 = me - movs r2, #0 - str r2, [sp, #0xc] - movs r5, #0 - ldr r7, _08095254 @ =gPartner - ldr r0, _08095258 @ =gPlayer - mov r8, r0 -_0809524A_loop: - cmp r5, #0 - beq _0809525C - ldr r0, [r7, #0x10] - b _08095260 - .align 2, 0 -_08095254: .4byte gPartner -_08095258: .4byte gPlayer -_0809525C: - mov r1, r8 - ldr r0, [r1, #0x10] -_08095260: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809526A - b _08095456_continue -_0809526A: - cmp r5, #0 - beq _08095272 - ldr r0, [r7, #0x10] - b _08095276 -_08095272: - mov r2, r8 - ldr r0, [r2, #0x10] -_08095276: - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08095282 - b _08095456_continue -_08095282: @ (!(PLAYER(i).moveState & MOVESTATE_IA_OVERRIDE)) - ldr r1, [sp] @ r1 = worldX - lsls r0, r1, #0x10 - asrs r6, r0, #0x10 - ldr r2, [sp, #4] @ r2 = worldY - lsls r0, r2, #0x10 - asrs r4, r0, #0x10 - ldr r3, _080952DC @ =gPlayer - cmp r5, #0 - beq _08095296 - ldr r3, _080952E0 @ =gPartner -_08095296: - mov r0, sb - adds r1, r6, #0 - adds r2, r4, #0 - bl Coll_Player_Entity_Intersection - cmp r0, #0 - bne _080952BE - ldr r3, _080952DC @ =gPlayer - cmp r5, #0 - beq _080952AC - ldr r3, _080952E0 @ =gPartner -_080952AC: - mov r0, sb - adds r1, r6, #0 - adds r2, r4, #0 - bl Coll_AmyHammer_Spring - str r0, [sp, #0xc] @ sp0C = Coll_AmyHammer_Spring() - cmp r0, #0 - bne _080952BE - b _08095456_continue -_080952BE: - ldr r0, _080952DC @ =gPlayer - cmp r5, #0 - beq _080952C6 - ldr r0, _080952E0 @ =gPartner -_080952C6: - bl sa2__sub_8021BE0 - cmp r5, #0 - beq _080952E4 - ldr r0, [r7, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r7, #0x10] - b _080952F2 - .align 2, 0 -_080952DC: .4byte gPlayer -_080952E0: .4byte gPartner -_080952E4: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - mov r2, r8 - str r0, [r2, #0x10] -_080952F2: - ldr r2, _08095304 @ =gPlayer - cmp r5, #0 - beq _08095308 - ldr r0, [r7, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r7, #0x10] - b _08095314 - .align 2, 0 -_08095304: .4byte gPlayer -_08095308: - mov r1, r8 - ldr r0, [r1, #0x10] - movs r1, #2 - orrs r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_08095314: - cmp r5, #0 - beq _08095328 - ldr r0, [r7, #0x10] - ldr r1, _08095324 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r7, #0x10] - b _08095334 - .align 2, 0 -_08095324: .4byte 0xFFFFFEFF -_08095328: - mov r1, r8 - ldr r0, [r1, #0x10] - ldr r1, _08095340 @ =0xFFFFFEFF - ands r0, r1 - mov r1, r8 - str r0, [r1, #0x10] -_08095334: - cmp r5, #0 - beq _08095348 - movs r0, #0 - ldr r1, _08095344 @ =gPartner + 0x3D - strb r0, [r1] - b _0809534E - .align 2, 0 -_08095340: .4byte 0xFFFFFEFF -_08095344: .4byte gPartner + 0x3D -_08095348: - adds r0, r2, #0 - adds r0, #0x3d - strb r5, [r0] -_0809534E: - ldr r1, [sp, #8] @ r1 = sp08 = me - ldrb r0, [r1, #4] - lsls r0, r0, #6 - rsbs r0, r0, #0 - cmp r5, #0 - beq _0809535E - strh r0, [r7, #0xa] - b _08095360 -_0809535E: - strh r0, [r2, #0xa] -_08095360: - ldr r0, [sp, #0xc] @ r0 = sp0C = - cmp r0, #0 - beq _08095390 - cmp r5, #0 - beq _08095370 - movs r1, #0xa - ldrsh r0, [r7, r1] - b _08095374 -_08095370: - movs r1, #0xa - ldrsh r0, [r2, r1] -_08095374: - lsls r0, r0, #0xf - lsrs r0, r0, #0x10 - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r5, #0 - beq _08095388 - ldrh r0, [r7, #0xa] - adds r0, r0, r1 - strh r0, [r7, #0xa] - b _08095390 -_08095388: - mov r2, r8 - ldrh r0, [r2, #0xa] - adds r0, r0, r1 - strh r0, [r2, #0xa] -_08095390: - ldr r0, [sp, #8] - ldrb r1, [r0, #3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080953D0 - ldr r0, _080953B4 @ =gPlayer - cmp r5, #0 - beq _080953A4 - ldr r0, _080953B8 @ =gPartner -_080953A4: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _080953C0 - movs r0, #0x15 - ldr r1, _080953BC @ =gPartner + 0x40 - strb r0, [r1] - b _080953C6 - .align 2, 0 -_080953B4: .4byte gPlayer -_080953B8: .4byte gPartner -_080953BC: .4byte gPartner + 0x40 -_080953C0: - movs r0, #0x15 - ldr r2, _080953CC @ =gPlayer + 0x40 - strb r0, [r2] -_080953C6: - cmp r5, #0 - bne _080953FE - b _08095410 - .align 2, 0 -_080953CC: .4byte gPlayer + 0x40 -_080953D0: - ldr r0, _080953E8 @ =gPlayer - cmp r5, #0 - beq _080953D8 - ldr r0, _080953EC @ =gPartner -_080953D8: - bl Player_TransitionCancelFlyingAndBoost - cmp r5, #0 - beq _080953F4 - movs r0, #0x11 - ldr r1, _080953F0 @ =gPartner + 0x40 - strb r0, [r1] - b _080953FA - .align 2, 0 -_080953E8: .4byte gPlayer -_080953EC: .4byte gPartner -_080953F0: .4byte gPartner + 0x40 -_080953F4: - movs r0, #0x11 - ldr r2, _08095408 @ =gPlayer + 0x40 - strb r0, [r2] -_080953FA: - cmp r5, #0 - beq _08095410 -_080953FE: - movs r0, #0xff - ldr r1, _0809540C @ =gPartnerBodyPSI+0xC+0x21 - strb r0, [r1] - b _08095416 - .align 2, 0 -_08095408: .4byte gPlayer + 0x40 -_0809540C: .4byte gPartnerBodyPSI+0xC+0x21 -_08095410: - movs r0, #0xff - ldr r2, _08095478 @ =gPlayerBodyPSI+0xC+0x21 - strb r0, [r2] -_08095416: - mov r0, sb - adds r0, #0x20 - movs r1, #1 - strb r1, [r0] - mov r1, sb - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - ldr r0, _0809547C @ =gPlayer - cmp r5, #0 - beq _0809542E - ldr r0, _08095480 @ =gPartner -_0809542E: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _0809547C @ =gPlayer - cmp r5, #0 - beq _0809543C - ldr r1, _08095480 @ =gPartner -_0809543C: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _0809547C @ =gPlayer - cmp r5, #0 - beq _08095448 - ldr r1, _08095480 @ =gPartner -_08095448: - movs r0, #0xe - strb r0, [r1, #0xf] - movs r0, #0xaa - bl m4aSongNumStart - movs r0, #1 - mov sl, r0 -_08095456_continue: - adds r5, #1 - ldr r0, _08095484 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bge _08095466 - b _0809524A_loop -_08095466: - mov r0, sl - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08095478: .4byte gPlayerBodyPSI+0xC+0x21 -_0809547C: .4byte gPlayer -_08095480: .4byte gPartner -_08095484: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc deleted file mode 100644 index 9f249945ca..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/stage_goal__Task_StageGoal.inc +++ /dev/null @@ -1,500 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _0801F360 @ =gGameMode - ldrb r1, [r0] - cmp r1, #1 - bls _0801F2C6 - ldr r1, _0801F364 @ =gMultiplayerPlayerTasks - ldr r0, _0801F368 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - mov sl, r1 @ sl = mpp -_0801F2C6: - ldr r4, _0801F36C @ =gCurTask - ldr r0, [r4] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r1 - mov sb, r0 @ sb = goal - ldr r0, _0801F370 @ =0x0300000C - adds r0, r0, r1 - mov r8, r0 @ r8 = s - mov r1, sb - ldr r1, [r1] - str r1, [sp, #4] @ sp04 = me - mov r2, sb - ldrb r1, [r2, #8] - lsls r1, r1, #3 - ldrh r0, [r2, #4] - lsls r0, r0, #8 - adds r1, r1, r0 - lsls r1, r1, #0x10 @ r1 = worldX << 16 - ldr r3, [sp, #4] - ldrb r2, [r3, #1] - lsls r2, r2, #3 - mov r5, sb - ldrh r0, [r5, #6] - lsls r0, r0, #8 - adds r2, r2, r0 @ r2 = worldY - ldr r3, _0801F374 @ =gCamera - ldrh r0, [r3] - lsrs r5, r1, #0x10 - str r5, [sp] @ sp00 = worldX - asrs r5, r1, #0x10 @ r5 = worldX - subs r0, r5, r0 - mov r1, r8 - strh r0, [r1, #0x16] - ldrh r0, [r3, #2] - lsls r2, r2, #0x10 - asrs r6, r2, #0x10 @ r6 = worldY - subs r0, r6, r0 - strh r0, [r1, #0x18] @ s->y = worldY - gCamera.y; - ldr r2, _0801F360 @ =gGameMode - ldrb r7, [r2] - cmp r7, #3 - beq _0801F324 - cmp r7, #5 - beq _0801F324 - b _0801F4D8 -_0801F324: - movs r3, #1 - str r3, [sp, #8] - ldr r1, _0801F378 @ =gPlayer - ldr r0, [r1] - asrs r3, r0, #8 @ r3 = playerWorldX - adds r4, r1, #0 @ r4 = r1 = gPlayer - cmp r3, r5 - bgt _0801F336 - b _0801F4B8 -_0801F336: - ldr r0, _0801F37C @ =gCurrentLevel - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #7 - bne _0801F34C - ldr r0, [r4, #4] - asrs r0, r0, #8 - adds r1, r6, #0 - subs r1, #0x50 @ r1 = worldY - 80 - cmp r0, r1 - bgt _0801F3D2 -_0801F34C: - cmp r7, #1 - bls _0801F380 - cmp r2, #0xa - bne _0801F3C4 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r0, r6 - blt _0801F3D2 - b _0801F3C4 - .align 2, 0 -_0801F360: .4byte gGameMode -_0801F364: .4byte gMultiplayerPlayerTasks -_0801F368: .4byte 0x04000128 -_0801F36C: .4byte gCurTask -_0801F370: .4byte 0x0300000C -_0801F374: .4byte gCamera -_0801F378: .4byte gPlayer -_0801F37C: .4byte gCurrentLevel -_0801F380: - cmp r2, #0xa - bne _0801F3C4 - ldr r1, [r4, #0x64] - adds r0, r1, #0 - adds r0, #0x38 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r3, r3, r2 - cmp r3, r5 - bgt _0801F3C4 - adds r0, #2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r3, r0 - cmp r0, r5 - blt _0801F3C4 - ldr r0, [r4, #4] - asrs r0, r0, #8 - movs r5, #0x39 - ldrsb r2, [r5, r1] - adds r3, r0, r2 - cmp r3, r6 - bgt _0801F3C4 - adds r0, r1, #0 - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r3, r0 - cmp r0, r6 - bge _0801F3D2 -_0801F3C4: - ldr r1, _0801F494 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #7 - beq _0801F4B8 - cmp r0, #0xa - beq _0801F4B8 -_0801F3D2: - mov r2, sl @ r2 = sl = mpp - ldr r0, [r2, #0x5c] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x5c] - ldr r3, [sp] @ r3 = *sp00 = worldX - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - adds r0, #0x78 - ldr r5, _0801F498 @ =gCamera - strh r0, [r5, #0x1a] - movs r4, #0 - ldr r1, _0801F49C @ =gMultiplayerPlayerTasks - ldr r0, [r1] - cmp r0, #0 - beq _0801F460 - ldr r6, _0801F4A0 @ =0x04000128 - adds r7, r1, #0 - movs r0, #0x10 - mov ip, r0 - ldr r1, _0801F4A4 @ =gMultiplayerConnections - mov sl, r1 @ sl = gMultiplayerConnections -_0801F3FE: - ldr r0, [r6] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r4, r0 - beq _0801F44C - lsls r0, r4, #2 - adds r0, r0, r7 - ldr r0, [r0] - ldrh r5, [r0, #6] - mov r2, sl @ r2 = sl = gMultiplayerConnections - ldrb r3, [r2] - mov r2, ip - lsls r2, r4 - ands r2, r3 - adds r0, r4, #4 - asrs r2, r0 - ldr r1, [r6] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - mov r0, ip - lsls r0, r1 - ands r3, r0 - ldr r0, [r6] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, #4 - asrs r3, r0 - cmp r2, r3 - bne _0801F44C - ldr r3, _0801F4A8 @ =0x03000054 - adds r0, r5, r3 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801F44C - movs r5, #0 - str r5, [sp, #8] -_0801F44C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bhi _0801F460 - lsls r0, r4, #2 - adds r0, r0, r7 - ldr r0, [r0] - cmp r0, #0 - bne _0801F3FE -_0801F460: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0801F468 - b _0801F620 -_0801F468: - ldr r1, _0801F4AC @ =gMultiplayerRanks - ldr r0, _0801F4A0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0801F482 - b _0801F5DA -_0801F482: - mov r1, r8 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - ldr r2, _0801F4B0 @ =gCurTask - ldr r1, [r2] - ldr r0, _0801F4B4 @ =Task_StageGoal3 - b _0801F606_callTaskMain - .align 2, 0 -_0801F494: .4byte gCurrentLevel -_0801F498: .4byte gCamera -_0801F49C: .4byte gMultiplayerPlayerTasks -_0801F4A0: .4byte 0x04000128 -_0801F4A4: .4byte gMultiplayerConnections -_0801F4A8: .4byte 0x03000054 -_0801F4AC: .4byte gMultiplayerRanks -_0801F4B0: .4byte gCurTask -_0801F4B4: .4byte Task_StageGoal3 -_0801F4B8: - ldr r0, _0801F4D0 @ =gRefCollision - ldr r0, [r0] - ldrh r0, [r0, #0x1c] - ldr r1, _0801F4D4 @ =gCamera - strh r0, [r1, #0x1a] - mov r2, sl @ r2 = sl = mpp - ldr r0, [r2, #0x5c] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x5c] - b _0801F620 - .align 2, 0 -_0801F4D0: .4byte gRefCollision -_0801F4D4: .4byte gCamera -_0801F4D8: - ldr r1, _0801F510 @ =gPlayer - ldr r0, [r1] - asrs r2, r0, #8 - adds r4, r1, #0 - cmp r2, r5 - bgt _0801F4E6 - b _0801F620 -_0801F4E6: - ldr r0, _0801F514 @ =gCurrentLevel - movs r3, #0 - ldrsb r3, [r0, r3] - cmp r3, #7 - bne _0801F4FC - ldr r0, [r4, #4] - asrs r0, r0, #8 - adds r1, r6, #0 - subs r1, #0x50 - cmp r0, r1 - bgt _0801F572 -_0801F4FC: - cmp r7, #1 - bls _0801F518 - cmp r3, #0xa - bne _0801F564 - ldr r0, [r4, #4] - asrs r0, r0, #8 - cmp r0, r6 - blt _0801F572 - b _0801F564 - .align 2, 0 -_0801F510: .4byte gPlayer -_0801F514: .4byte gCurrentLevel -_0801F518: - cmp r3, #0xa - bne _0801F564 - ldr r3, [r4, #0x64] - mov ip, r3 - mov r0, ip - adds r0, #0x38 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r3, r2, r1 - cmp r3, r5 - bgt _0801F564 - adds r0, #2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r1 - adds r0, r3, r0 - cmp r0, r5 - blt _0801F564 - ldr r0, [r4, #4] - asrs r0, r0, #8 - mov r3, ip - adds r3, #0x39 - ldrb r3, [r3] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r1, r0, r3 - cmp r1, r6 - bgt _0801F564 - mov r0, ip - adds r0, #0x3b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r6 - bge _0801F572 -_0801F564: - ldr r5, _0801F594 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #7 - beq _0801F620 - cmp r0, #0xa - beq _0801F620 -_0801F572: - ldr r1, _0801F598 @ =gGameMode - ldrb r0, [r1] - cmp r0, #1 - bls _0801F5A4 - ldr r1, _0801F59C @ =gMultiplayerRanks - ldr r0, _0801F5A0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0801F5B2 - b _0801F5DA - .align 2, 0 -_0801F594: .4byte gCurrentLevel -_0801F598: .4byte gGameMode -_0801F59C: .4byte gMultiplayerRanks -_0801F5A0: .4byte 0x04000128 -_0801F5A4: - ldr r0, _0801F5C4 @ =gMultiplayerRanks - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0801F5D0 -_0801F5B2: - mov r1, r8 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - ldr r2, _0801F5C8 @ =gCurTask - ldr r1, [r2] - ldr r0, _0801F5CC @ =Task_StageGoal3 - b _0801F606_callTaskMain - .align 2, 0 -_0801F5C4: .4byte gMultiplayerRanks -_0801F5C8: .4byte gCurTask -_0801F5CC: .4byte Task_StageGoal3 -_0801F5D0: - ldr r0, _0801F610 @ =gStageFlags - ldrh r1, [r0] - movs r2, #3 - orrs r1, r2 - strh r1, [r0] -_0801F5DA: - ldr r3, _0801F614 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0xa - beq _0801F5EA - movs r0, #0x87 - bl m4aSongNumStart -_0801F5EA: - movs r1, #0 - movs r0, #0 - mov r5, sb @ r5 = sb = goal - strh r0, [r5, #0x3c] - mov r0, sb - adds r0, #0x3e - strb r1, [r0] - mov r1, r8 - adds r1, #0x20 - movs r0, #1 - strb r0, [r1] - ldr r0, _0801F618 @ =gCurTask - ldr r1, [r0] - ldr r0, _0801F61C @ =Task_StageGoal2 -_0801F606_callTaskMain: - str r0, [r1, #8] - bl _call_via_r0 - b _0801F670 - .align 2, 0 -_0801F610: .4byte gStageFlags -_0801F614: .4byte gCurrentLevel -_0801F618: .4byte gCurTask -_0801F61C: .4byte Task_StageGoal2 -_0801F620: - mov r1, r8 - ldrh r0, [r1, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0801F648 - mov r2, r8 - movs r3, #0x18 - ldrsh r0, [r2, r3] - adds r0, #0x80 - cmp r0, #0 - blt _0801F648 - movs r5, #0x18 - ldrsh r1, [r2, r5] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0801F660 -_0801F648: - mov r1, sb - ldrb r0, [r1, #8] - ldr r2, [sp, #4] - strb r0, [r2] - ldr r3, _0801F65C @ =gCurTask - ldr r0, [r3] - bl TaskDestroy - b _0801F670 - .align 2, 0 -_0801F65C: .4byte gCurTask -_0801F660: - ldr r5, [sp, #4] - movs r0, #3 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _0801F670 - mov r0, r8 - bl DisplaySprite -_0801F670: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc deleted file mode 100644 index 8d5696a57c..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/swing_rope__Task_SwingRope.inc +++ /dev/null @@ -1,1087 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _08088878 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - mov sb, r1 @ sb = r1 = rope - ldr r0, [r1] @ r0 = me - str r0, [sp, #0xc] @ sp0C = r0 = me - ldrb r0, [r1, #8] - lsls r0, r0, #3 - ldrh r1, [r1, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] @ sp04 = worldX - ldr r1, [sp, #0xc] - ldrb r0, [r1, #1] - lsls r0, r0, #3 - mov r2, sb @ r2 = sb = rope - ldrh r1, [r2, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] @ sp08 = worldY - movs r7, #0 - ldr r5, _0808887C @ =gPartner - ldr r6, _08088880 @ =gPlayer - movs r3, #0 - mov sl, r3 -_08088870_loop: - cmp r7, #0 - beq _08088884 - ldr r0, [r5, #0x10] - b _08088886 - .align 2, 0 -_08088878: .4byte gCurTask -_0808887C: .4byte gPartner -_08088880: .4byte gPlayer -_08088884: - ldr r0, [r6, #0x10] -_08088886: - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08088890 - b _08088F1C_p_is_dead -_08088890: - mov r2, sb @ r2 = sb = rope - adds r2, #0x3c - ldrb r1, [r2] - asrs r1, r7 - movs r0, #1 - ands r1, r0 - str r2, [sp, #0x14] @ sp14 = rope->unk3C - cmp r1, #0 - bne _080888A4 - b _08088CF8 -_080888A4: - mov r0, sb @ r0 = sb = rope - adds r0, #0x40 - mov r2, sl @ r2 = sl = i*4 - adds r1, r0, r2 - ldr r2, [r1] - adds r4, r0, #0 @ r4 = &rope->unk40 - cmp r2, #0xe7 - bgt _080888BA - adds r0, r2, #0 - adds r0, #0x10 - str r0, [r1] -_080888BA: - ldr r0, [r1] - movs r2, #0x90 - lsls r2, r2, #4 - cmp r0, r2 - ble _080888C6 - str r2, [r1] -_080888C6: - mov r2, sb @ r2 = sb = rope - adds r2, #0x48 - add r2, sl @ r2 = sl = i*4 - ldr r0, [r2] - ldr r1, [r1] - adds r0, r0, r1 - str r0, [r2] - ldr r3, [sp, #8] @ r3 = sp08 = worldY - lsls r1, r3, #0x10 - asrs r0, r1, #8 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - str r1, [sp, #0x10] @ sp10 = worldY << 16 - cmp r7, #0 - beq _080888EA - str r0, [r5, #4] - b _080888EC -_080888EA: - str r0, [r6, #4] -_080888EC: - ldr r0, [sp, #4] @ r0 = sp04 = worldX - lsls r3, r0, #0x10 - asrs r2, r3, #0x10 - ldr r0, [sp, #0xc] @ r0 = sp0C = me - movs r1, #3 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r2, r2, r0 - mov r8, r3 - adds r3, r1, #0 - cmp r7, #0 - beq _0808890E - ldr r0, [r5] - asrs r0, r0, #8 - cmp r2, r0 - ble _08088916 - b _080889FE -_0808890E: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r2, r0 - bgt _080889FE -_08088916: - mov r2, r8 - asrs r1, r2, #0x10 - lsls r0, r3, #3 - adds r1, r1, r0 - ldr r3, [sp, #0xc] @ r3 = sp0C = me - ldrb r0, [r3, #5] - lsls r0, r0, #3 - adds r1, r1, r0 - cmp r7, #0 - beq _08088934 - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - bge _0808893C - b _080889FE -_08088934: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - blt _080889FE -_0808893C: - mov r1, sl @ r1 = sl = i*4 - adds r0, r4, r1 @ r0 = &rope->unk40[i] - ldr r1, [r0] - cmp r7, #0 - beq _0808894E - ldr r0, [r5] - adds r0, r0, r1 - str r0, [r5] - b _08088954 -_0808894E: - ldr r0, [r6] - adds r0, r0, r1 - str r0, [r6] -_08088954: - cmp r7, #0 - beq _08088964 - ldrh r0, [r5, #0x38] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0808896E - b _08088978 -_08088964: - ldrh r0, [r6, #0x38] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08088978 -_0808896E: - mov r2, sl @ r2 = sl = i*4 - adds r1, r4, r2 @ r1 = &rope->unk40[i] - ldr r0, [r1] - adds r0, #0x10 - b _0808899E -_08088978: - cmp r7, #0 - beq _08088988 - ldrh r0, [r5, #0x38] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08088992 - b _080889A0 -_08088988: - ldrh r0, [r6, #0x38] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080889A0 -_08088992: - mov r3, sl @ r3 = sl = i*4 - adds r1, r4, r3 @ r1 = &rope->unk40[i] - ldr r0, [r1] - cmp r0, #0xe8 - ble _080889A0 - subs r0, #0x10 -_0808899E: - str r0, [r1] -_080889A0: - cmp r7, #0 - beq _080889A8 - ldr r0, [r5] - b _080889AA -_080889A8: - ldr r0, [r6] -_080889AA: - asrs r0, r0, #8 - adds r3, r0, #0 - subs r3, #8 - cmp r7, #0 - beq _080889B8 - ldr r0, [r5, #4] - b _080889BA -_080889B8: - ldr r0, [r6, #4] -_080889BA: - asrs r1, r0, #8 - cmp r7, #0 - beq _080889C8 - ldr r0, _080889C4 @ =gPartner + 0x27 - b _080889CA - .align 2, 0 -_080889C4: .4byte gPartner + 0x27 -_080889C8: - ldr r0, _080889F0 @ =gPlayer + 0x27 -_080889CA: - ldrb r2, [r0] - ldr r0, _080889F4 @ =sa2__sub_801EB44 - str r0, [sp] - adds r0, r3, #0 - movs r3, #8 - rsbs r3, r3, #0 - bl sa2__sub_801F100 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _080889FE - lsls r1, r0, #8 - cmp r7, #0 - beq _080889F8 - ldr r0, [r5] - subs r0, r0, r1 - str r0, [r5] - b _080889FE - .align 2, 0 -_080889F0: .4byte gPlayer + 0x27 -_080889F4: .4byte sa2__sub_801EB44 -_080889F8: - ldr r0, [r6] - subs r0, r0, r1 - str r0, [r6] -_080889FE: - cmp r7, #0 - beq _08088A08 - movs r1, #0 - strh r1, [r5, #0xa] - b _08088A0A -_08088A08: - strh r7, [r6, #0xa] -_08088A0A: - ldr r0, _08088A1C @ =gPlayerControls - ldrh r1, [r0] - cmp r7, #0 - beq _08088A20 - ldrh r0, [r5, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _08088A2A - b _08088CD6 - .align 2, 0 -_08088A1C: .4byte gPlayerControls -_08088A20: - ldrh r0, [r6, #0x3a] - ands r0, r1 - cmp r0, #0 - bne _08088A2A - b _08088CD6 -_08088A2A: - mov r2, sl @ r2 = sl = i*4 - adds r0, r4, r2 @ r0 = &rope->unk40[i] - ldr r0, [r0] - cmp r0, #0 - bge _08088A5A - mov r3, r8 - asrs r1, r3, #0x10 - ldr r2, [sp, #0xc] @ r2 = sp0C = me - movs r0, #3 - ldrsb r0, [r2, r0] - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, #2 - lsls r1, r1, #8 - cmp r7, #0 - beq _08088A4E - str r1, [r5] - b _08088A50 -_08088A4E: - str r1, [r6] -_08088A50: - mov r3, sl @ r3 = sl = i*4 - adds r0, r4, r3 @ r0 = &rope->unk40[i] - movs r1, #0 - str r1, [r0] - b _08088FC6 -_08088A5A: - ldr r0, _08088A74 @ =gPlayer - cmp r7, #0 - beq _08088A62 - ldr r0, _08088A78 @ =gPartner -_08088A62: - bl Player_TransitionCancelFlyingAndBoost - cmp r7, #0 - beq _08088A80 - ldr r0, [r5, #0x10] - ldr r1, _08088A7C @ =0xFFDFFFFF - ands r0, r1 - str r0, [r5, #0x10] - b _08088A88 - .align 2, 0 -_08088A74: .4byte gPlayer -_08088A78: .4byte gPartner -_08088A7C: .4byte 0xFFDFFFFF -_08088A80: - ldr r0, [r6, #0x10] - ldr r1, _08088A9C @ =0xFFDFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08088A88: - ldr r0, _08088AA0 @ =gPlayerControls - ldrh r1, [r0] - ldrh r0, [r0, #2] - orrs r1, r0 - cmp r7, #0 - beq _08088AA4 - ldrh r0, [r5, #0x38] - orrs r1, r0 - strh r1, [r5, #0x38] - b _08088AAA - .align 2, 0 -_08088A9C: .4byte 0xFFDFFFFF -_08088AA0: .4byte gPlayerControls -_08088AA4: - ldrh r0, [r6, #0x38] - orrs r1, r0 - strh r1, [r6, #0x38] -_08088AAA: - cmp r7, #0 - beq _08088ABC - ldr r0, [r5, #0x10] - ldr r1, _08088AB8 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] - b _08088AC4 - .align 2, 0 -_08088AB8: .4byte 0xFFBFFFFF -_08088ABC: - ldr r0, [r6, #0x10] - ldr r1, _08088AD4 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08088AC4: - cmp r7, #0 - beq _08088AD8 - ldr r0, [r5, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r5, #0x10] - b _08088AE0 - .align 2, 0 -_08088AD4: .4byte 0xFFBFFFFF -_08088AD8: - ldr r0, [r6, #0x10] - movs r1, #4 - orrs r0, r1 - str r0, [r6, #0x10] -_08088AE0: - cmp r7, #0 - beq _08088AEE - ldr r0, [r5, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #0x10] - b _08088AF6 -_08088AEE: - ldr r0, [r6, #0x10] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] -_08088AF6: - cmp r7, #0 - beq _08088B06 - ldr r0, [r5, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _08088B10 -_08088B06: - ldr r0, [r6, #0x10] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08088B10: - cmp r7, #0 - beq _08088B24 - ldr r0, [r5, #0x10] - ldr r1, _08088B20 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] - b _08088B2C - .align 2, 0 -_08088B20: .4byte 0xFFFFFEFF -_08088B24: - ldr r0, [r6, #0x10] - ldr r1, _08088B3C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r6, #0x10] -_08088B2C: - cmp r7, #0 - beq _08088B44 - ldr r2, _08088B40 @ =gPartner + 0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - b _08088B4E - .align 2, 0 -_08088B3C: .4byte 0xFFFFFEFF -_08088B40: .4byte gPartner + 0x26 -_08088B44: - ldr r3, _08088B60 @ =gPlayer + 0x26 - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3] -_08088B4E: - cmp r7, #0 - beq _08088B64 - ldrh r0, [r5, #0x38] - movs r1, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08088B6E - b _08088BC4 - .align 2, 0 -_08088B60: .4byte gPlayer + 0x26 -_08088B64: - ldrh r0, [r6, #0x38] - movs r1, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _08088BC4 -_08088B6E: - cmp r7, #0 - beq _08088B84 - ldrh r1, [r5, #0x38] - movs r0, #0x40 - ands r1, r0 - ldr r3, _08088B80 @ =gPlayer - cmp r1, #0 - bne _08088B90 - b _08088BB0 - .align 2, 0 -_08088B80: .4byte gPlayer -_08088B84: - ldrh r1, [r6, #0x38] - movs r0, #0x40 - ands r1, r0 - ldr r3, _08088B9C @ =gPlayer - cmp r1, #0 - beq _08088BB0 -_08088B90: - cmp r7, #0 - beq _08088BA4 - ldr r0, _08088BA0 @ =0x0000F940 - strh r0, [r5, #0xa] - b _08088BFE - .align 2, 0 -_08088B9C: .4byte gPlayer -_08088BA0: .4byte 0x0000F940 -_08088BA4: - ldr r0, _08088BAC @ =0x0000F940 - strh r0, [r3, #0xa] - b _08088BFE - .align 2, 0 -_08088BAC: .4byte 0x0000F940 -_08088BB0: - cmp r7, #0 - beq _08088BBC - movs r0, #0xd8 - lsls r0, r0, #3 - strh r0, [r5, #0xa] - b _08088BFE -_08088BBC: - movs r0, #0xd8 - lsls r0, r0, #3 - strh r0, [r3, #0xa] - b _08088BFE -_08088BC4: - mov r0, sb @ r0 = sb = rope - adds r0, #0x50 - add r0, sl @ r0 += sl = i*4 - ldr r0, [r0] - movs r1, #0xf - bl Div - cmp r0, #0 - beq _08088BE8 - cmp r7, #0 - beq _08088BE2 - movs r0, #0xd8 - lsls r0, r0, #3 - strh r0, [r5, #0xa] - b _08088BFC -_08088BE2: - movs r0, #0xd8 - lsls r0, r0, #3 - b _08088BFA -_08088BE8: - cmp r7, #0 - beq _08088BF8 - ldr r0, _08088BF4 @ =0x0000F940 - strh r0, [r5, #0xa] - b _08088BFC - .align 2, 0 -_08088BF4: .4byte 0x0000F940 -_08088BF8: - ldr r0, _08088C08 @ =0x0000F940 -_08088BFA: - strh r0, [r6, #0xa] -_08088BFC: - ldr r3, _08088C0C @ =gPlayer -_08088BFE: - cmp r7, #0 - beq _08088C14 - movs r0, #5 - ldr r1, _08088C10 @ =gPartner + 0x40 - b _08088C1A - .align 2, 0 -_08088C08: .4byte 0x0000F940 -_08088C0C: .4byte gPlayer -_08088C10: .4byte gPartner + 0x40 -_08088C14: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #5 -_08088C1A: - strb r0, [r1] - ldr r0, _08088C58 @ =gPlayer - cmp r7, #0 - beq _08088C24 - ldr r0, _08088C5C @ =gPartner -_08088C24: - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - ldr r1, _08088C58 @ =gPlayer - cmp r7, #0 - beq _08088C32 - ldr r1, _08088C5C @ =gPartner -_08088C32: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r3, _08088C58 @ =gPlayer - adds r1, r3, #0 - cmp r7, #0 - beq _08088C40 - ldr r1, _08088C5C @ =gPartner -_08088C40: - movs r0, #9 - strb r0, [r1, #0xf] - ldr r2, [sp, #0x10] @ r2 = sp10 = worldY << 16 - asrs r0, r2, #8 - movs r1, #0x90 - lsls r1, r1, #4 - adds r0, r0, r1 - cmp r7, #0 - beq _08088C60 - str r0, [r5, #4] - b _08088C62 - .align 2, 0 -_08088C58: .4byte gPlayer -_08088C5C: .4byte gPartner -_08088C60: - str r0, [r3, #4] -_08088C62: - cmp r7, #0 - beq _08088C6C - movs r2, #0 - strh r2, [r5, #0xc] - b _08088C6E -_08088C6C: - strh r7, [r3, #0xc] -_08088C6E: - cmp r7, #0 - beq _08088C78 - movs r3, #0 - strh r3, [r5, #8] - b _08088C7A -_08088C78: - strh r7, [r3, #8] -_08088C7A: - movs r1, #1 - lsls r1, r7 - ldr r2, [sp, #0x14] @ r2 = sp14 = rope->unk3C - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - mov r0, sb @ r0 = sb = rope - adds r0, #0x50 - add r0, sl @ r0 += sl = i*4 - movs r3, #0 - str r3, [r0] - mov r0, sb @ r0 = sb = rope - adds r0, #0x3d - adds r0, r0, r7 - movs r1, #0x14 - strb r1, [r0] - ldr r3, _08088CEC @ =gPlayer + 0x64 - adds r0, r3, #0 - cmp r7, #0 - beq _08088CA4 - ldr r0, _08088CF0 @ =gPartner + 0x64 -_08088CA4: - ldr r2, [r0] - adds r0, r3, #0 - cmp r7, #0 - beq _08088CAE - ldr r0, _08088CF0 @ =gPartner + 0x64 -_08088CAE: - ldr r0, [r0] - ldr r0, [r0, #0x1c] - ldr r1, _08088CF4 @ =0xFFFFCFFF - ands r0, r1 - str r0, [r2, #0x1c] - adds r0, r3, #0 - cmp r7, #0 - beq _08088CC0 - ldr r0, _08088CF0 @ =gPartner + 0x64 -_08088CC0: - ldr r2, [r0] - adds r0, r3, #0 - cmp r7, #0 - beq _08088CCA - ldr r0, _08088CF0 @ =gPartner + 0x64 -_08088CCA: - ldr r0, [r0] - ldr r0, [r0, #0x1c] - movs r1, #0x80 - lsls r1, r1, #6 - orrs r0, r1 - str r0, [r2, #0x1c] -_08088CD6: - mov r4, sb @ r4 = sb = rope - adds r4, #0x50 - add r4, sl @ r4 += sl = i*4 - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - movs r1, #0x1e - bl Mod - str r0, [r4] - b _08088F54_continue - .align 2, 0 -_08088CEC: .4byte gPlayer + 0x64 -_08088CF0: .4byte gPartner + 0x64 -_08088CF4: .4byte 0xFFFFCFFF -_08088CF8: - mov r0, sb @ r0 = sb = rope - adds r0, #0x3d - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, #0 - beq _08088D0A - subs r0, #1 - strb r0, [r1] - b _08088F54_continue -_08088D0A: - ldr r0, [sp, #4] @ r0 = sp04 = worldX - lsls r3, r0, #0x10 - asrs r2, r3, #0x10 @ r2 = worldX - ldr r0, [sp, #0xc] @ r0 = sp0C = me - movs r1, #3 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r2, r2, r0 - mov r8, r3 @ r8 = r3 = worldX << 16 - adds r3, r1, #0 - cmp r7, #0 - beq _08088D2C - ldr r0, [r5] - asrs r0, r0, #8 - cmp r2, r0 - ble _08088D36 - b _08088F54_continue -_08088D2C: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r2, r0 - ble _08088D36 - b _08088F54_continue -_08088D36: - mov r2, r8 @ r2 = r8 = worldX << 16 - asrs r1, r2, #0x10 - lsls r0, r3, #3 - adds r1, r1, r0 - ldr r3, [sp, #0xc] @ r3 = sp0C = me - ldrb r0, [r3, #5] - lsls r0, r0, #3 - adds r1, r1, r0 - cmp r7, #0 - beq _08088D54 - ldr r0, [r5] - asrs r0, r0, #8 - cmp r1, r0 - bge _08088D5E - b _08088F54_continue -_08088D54: - ldr r0, [r6] - asrs r0, r0, #8 - cmp r1, r0 - bge _08088D5E - b _08088F54_continue -_08088D5E: - ldr r0, [sp, #8] @ r0 = sp08 = worldY - lsls r3, r0, #0x10 - asrs r2, r3, #0x10 - ldr r0, [sp, #0xc] @ r0 = sp0C = me - movs r1, #4 - ldrsb r1, [r0, r1] - lsls r0, r1, #3 - adds r2, r2, r0 - str r3, [sp, #0x10] @ sp10 = worldY << 16 - adds r3, r1, #0 - cmp r7, #0 - beq _08088D80 - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08088D8A - b _08088F54_continue -_08088D80: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r2, r0 - ble _08088D8A - b _08088F54_continue -_08088D8A: - ldr r2, [sp, #0x10] @ r2 = sp10 = worldY << 16 - asrs r1, r2, #0x10 - lsls r0, r3, #3 - adds r1, r1, r0 - ldr r3, [sp, #0xc] @ r3 = sp0C = me - ldrb r0, [r3, #6] - lsls r0, r0, #3 - adds r1, r1, r0 - cmp r7, #0 - beq _08088DA8 - ldr r0, [r5, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08088DB2 - b _08088F54_continue -_08088DA8: - ldr r0, [r6, #4] - asrs r0, r0, #8 - cmp r1, r0 - bge _08088DB2 - b _08088F54_continue -_08088DB2: - mov r0, sb @ r0 = sb = rope - adds r0, #0x40 - mov r2, sl @ r2 = sl = i*4 - adds r1, r0, r2 @ r1 = &rope->unk40[i] - adds r4, r0, #0 @ r4 = rope->unk40 - cmp r7, #0 - beq _08088DC6 - movs r3, #0xc - ldrsh r0, [r5, r3] - b _08088DCA -_08088DC6: - movs r2, #0xc - ldrsh r0, [r6, r2] -_08088DCA: - asrs r0, r0, #1 - str r0, [r1] - ldr r3, _08088DF0 @ r3 = gPlayer - mov r0, sl @ r0 = sl = i*4 - adds r1, r4, r0 - ldr r0, [r1] - cmp r0, #0 - bge _08088DDE - movs r2, #0 - str r2, [r1] -_08088DDE: - mov r0, r8 @ r0 = r8 = worldX << 16 - asrs r1, r0, #8 @ r1 = Q(worldX) - cmp r7, #0 - beq _08088DF4 - ldr r0, [r5] - cmp r0, r1 - bgt _08088DFA - b _08088E16 - .align 2, 0 -_08088DF0: .4byte gPlayer -_08088DF4: - ldr r0, [r3] - cmp r0, r1 - ble _08088E16 -_08088DFA: - mov r0, sb @ r0 = sb = rope - adds r0, #0x48 - mov r1, sl @ r1 = sl = i*4 - adds r2, r0, r1 @ r2 = &rope->unk48[i] - mov r0, r8 - asrs r1, r0, #8 - cmp r7, #0 - beq _08088E10 - ldr r0, [r5] - subs r0, r0, r1 - b _08088E2E -_08088E10: - ldr r0, [r3] - subs r0, r0, r1 - b _08088E2E -_08088E16: - mov r0, sb @ r0 = sb = rope - adds r0, #0x48 - mov r1, sl @ r1 = sl = i*4 - adds r2, r0, r1 - mov r0, r8 - asrs r1, r0, #8 - cmp r7, #0 - beq _08088E2A - ldr r0, [r5] - b _08088E2C -_08088E2A: - ldr r0, [r3] -_08088E2C: - subs r0, r1, r0 -_08088E2E: - str r0, [r2] - ldr r0, _08088E4C @ =gPlayer - cmp r7, #0 - beq _08088E38 - ldr r0, _08088E50 @ =gPartner -_08088E38: - bl Player_TransitionCancelFlyingAndBoost - cmp r7, #0 - beq _08088E54 - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r5, #0x10] - b _08088E5E - .align 2, 0 -_08088E4C: .4byte gPlayer -_08088E50: .4byte gPartner -_08088E54: - ldr r0, [r6, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r6, #0x10] -_08088E5E: - ldr r3, _08088E70 @ =gPlayer - cmp r7, #0 - beq _08088E74 - ldr r0, [r5, #0x10] - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - b _08088E7E - .align 2, 0 -_08088E70: .4byte gPlayer -_08088E74: - ldr r0, [r6, #0x10] - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x10] -_08088E7E: - cmp r7, #0 - beq _08088E90 - ldr r0, [r5, #0x10] - ldr r1, _08088E8C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] - b _08088E98 - .align 2, 0 -_08088E8C: .4byte 0xFFFFFEFF -_08088E90: - ldr r0, [r6, #0x10] - ldr r1, _08088EB0 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r6, #0x10] -_08088E98: - movs r0, #1 - lsls r0, r7 - ldr r2, [sp, #0x14] @ r2 = sp14 = rope->unk3C - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - cmp r7, #0 - beq _08088EB8 - movs r0, #0x22 - ldr r3, _08088EB4 @ =gPartner + 0x40 - strb r0, [r3] - b _08088EC0 - .align 2, 0 -_08088EB0: .4byte 0xFFFFFEFF -_08088EB4: .4byte gPartner + 0x40 -_08088EB8: - adds r1, r3, #0 - adds r1, #0x40 - movs r0, #0x22 - strb r0, [r1] -_08088EC0: - ldr r0, _08088F00 @ =gPlayer - cmp r7, #0 - beq _08088EC8 - ldr r0, _08088F04 @ =gPartner -_08088EC8: - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - ldr r1, _08088F00 @ =gPlayer - cmp r7, #0 - beq _08088ED6 - ldr r1, _08088F04 @ =gPartner -_08088ED6: - movs r0, #6 - strb r0, [r1, #0xe] - ldr r1, _08088F00 @ =gPlayer - cmp r7, #0 - beq _08088EE2 - ldr r1, _08088F04 @ =gPartner -_08088EE2: - movs r0, #0xe - strb r0, [r1, #0xf] - mov r0, sb @ r0 = sb = rope - adds r0, #0x50 - add r0, sl @ r0 += sl = i*4 - movs r1, #0 - str r1, [r0] - cmp r7, #0 - beq _08088F0C - ldr r2, _08088F08 @ =gPartner + 0x26 - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 - b _08088F52 - .align 2, 0 -_08088F00: .4byte gPlayer -_08088F04: .4byte gPartner -_08088F08: .4byte gPartner + 0x26 -_08088F0C: - ldr r3, _08088F18 @ =gPlayer + 0x26 - ldrb r0, [r3] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] - b _08088F54_continue - .align 2, 0 -_08088F18: .4byte gPlayer + 0x26 -_08088F1C_p_is_dead: - mov r2, sb @ r2 = sb = rope - adds r2, #0x3c - ldrb r1, [r2] - asrs r1, r7 - movs r0, #1 - ands r1, r0 - str r2, [sp, #0x14] @ sp14 = rope->unk3C - cmp r1, #0 - beq _08088F54_continue - cmp r7, #0 - beq _08088F40 - ldr r0, [r5, #0x10] - ldr r1, _08088F3C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r5, #0x10] - b _08088F48 - .align 2, 0 -_08088F3C: .4byte 0xFFBFFFFF -_08088F40: - ldr r0, [r6, #0x10] - ldr r1, _08088FD8 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] -_08088F48: - movs r1, #1 - lsls r1, r7 - ldr r2, [sp, #0x14] @ r2 = sp14 = rope->unk3C - ldrb r0, [r2] - bics r0, r1 -_08088F52: - strb r0, [r2] -_08088F54_continue: - movs r3, #4 - add sl, r3 @ sl += 4 - adds r7, #1 - ldr r0, _08088FDC @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r7, r0 - bge _08088F68 - b _08088870_loop -_08088F68: - ldr r0, [sp, #0x14] @ r0 = sp14 = rope->unk3C - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08088FC6 - ldr r2, _08088FE0 @ =gCamera - ldrh r0, [r2] - ldr r3, [sp, #4] @ r3 = sp04 = worldX - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 - ldrh r2, [r2, #2] - ldr r3, [sp, #8] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x10 - adds r1, r1, r0 - movs r0, #0xf8 - lsls r0, r0, #0x11 - cmp r1, r0 - bhi _08088FB6 - ldr r1, [sp, #8] - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08088FB6 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08088FC6 -_08088FB6: - mov r2, sb @ r2 = sb = rope - ldrb r0, [r2, #8] - ldr r3, [sp, #0xc] @ r3 = sp0C = me - strb r0, [r3] - ldr r0, _08088FE4 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy -_08088FC6: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08088FD8: .4byte 0xFFBFFFFF -_08088FDC: .4byte gNumSingleplayerCharacters -_08088FE0: .4byte gCamera -_08088FE4: .4byte gCurTask - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc deleted file mode 100644 index 3246cc338c..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/toggle_gravity__Task_ToggleGravity.inc +++ /dev/null @@ -1,254 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _0809552C @ =gCurTask - ldr r0, [r2] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r3, r0 @ r4 = ia - ldr r7, [r4] @ r7 = me - ldrb r0, [r4, #8] - lsls r0, r0, #3 - ldrh r1, [r4, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 @ r8 = worldX - ldrb r0, [r7, #1] - lsls r0, r0, #3 - ldrh r1, [r4, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 @ ip = worldY - ldr r1, _08095530 @ =gPlayer - ldr r0, [r1, #0x10] - movs r6, #0x80 - ands r0, r6 - mov sb, r2 - adds r5, r1, #0 @ r5 = r1 = gPlayer - cmp r0, #0 - beq _080954E4 - b _08095616 -_080954E4: - ldr r1, _08095534 @ =0x03000041 - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, #2 @ if(ia->unk41 > 2) - bls _0809558C - mov r3, r8 @ r3 = r8 = worldX - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - movs r1, #3 - ldrsb r1, [r7, r1] @ r1 = me->d.sData[0] - lsls r1, r1, #3 - adds r3, r0, r1 - ldr r0, [r5] - asrs r1, r0, #8 - cmp r3, r1 - bgt _08095582 @ (left <= I(p->qWorldX)) - ldrb r0, [r7, #5] - lsls r0, r0, #3 - adds r0, r3, r0 - cmp r0, r1 @ ((left + me->d.uData[2] * TILE_WIDTH) >= I(p->qWorldX)) - blt _08095582 - mov r1, ip @ r1 = ip = worldY - lsls r0, r1, #0x10 - asrs r1, r0, #8 - ldr r0, [r4, #0x3c] @ r0 = ia->qWorld - cmp r0, r1 - ble _08095538 - ldr r0, [r5, #4] - cmp r0, r1 - bge _08095582 - cmp r2, #3 - beq _08095546_case_3 - cmp r2, #4 - beq _08095564_case_4 - b _08095578 - .align 2, 0 -_0809552C: .4byte gCurTask -_08095530: .4byte gPlayer -_08095534: .4byte 0x03000041 -_08095538: - cmp r0, r1 - bge _08095582 - ldr r0, [r5, #4] - cmp r0, r1 - ble _08095582 - cmp r2, #3 - bne _08095560 -_08095546_case_3: - ldr r2, _0809555C @ =gStageFlags - ldrh r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08095568 - movs r0, #0x80 - orrs r0, r1 - strh r0, [r2] - b _08095582 - .align 2, 0 -_0809555C: .4byte gStageFlags -_08095560: - cmp r2, #4 - bne _08095578 -_08095564_case_4: - ldr r2, _08095570 @ =gStageFlags - ldrh r1, [r2] -_08095568: - ldr r0, _08095574 @ =0x0000FF7F - ands r0, r1 - strh r0, [r2] - b _08095582 - .align 2, 0 -_08095570: .4byte gStageFlags -_08095574: .4byte 0x0000FF7F -_08095578: - ldr r0, _08095588 @ =gStageFlags - ldrh r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strh r1, [r0] -_08095582: - ldr r0, [r5, #4] - b _08095614 - .align 2, 0 -_08095588: .4byte gStageFlags -_0809558C: - mov r3, ip @ r3 = ip = worldY - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - movs r1, #4 - ldrsb r1, [r7, r1] - lsls r1, r1, #3 - adds r3, r0, r1 @ top = worldY + me->d.sData[1] * TILE_WIDTH; - ldr r0, [r5, #4] - asrs r1, r0, #8 - cmp r3, r1 - bgt _08095612 - ldrb r0, [r7, #6] - lsls r0, r0, #3 - adds r0, r3, r0 - cmp r0, r1 - blt _08095612 - mov r1, r8 @ r2 = r8 = worldX - lsls r0, r1, #0x10 - asrs r1, r0, #8 - ldr r0, [r4, #0x3c] - cmp r0, r1 - ble _080955C8 - ldr r0, [r5] - cmp r0, r1 - bge _08095612 - cmp r2, #0 - beq _080955D6_case_0 - cmp r2, #1 - beq _080955F4_case_1 - b _08095608 -_080955C8: - cmp r0, r1 - bge _08095612 - ldr r0, [r5] - cmp r0, r1 - ble _08095612 - cmp r2, #0 - bne _080955F0 -_080955D6_case_0: - ldr r2, _080955EC @ =gStageFlags - ldrh r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _080955F8 - movs r0, #0x80 - orrs r0, r1 - strh r0, [r2] - b _08095612 - .align 2, 0 -_080955EC: .4byte gStageFlags -_080955F0: - cmp r2, #1 - bne _08095608 -_080955F4_case_1: - ldr r2, _08095600 @ =gStageFlags - ldrh r1, [r2] -_080955F8: - ldr r0, _08095604 @ =0x0000FF7F - ands r0, r1 - strh r0, [r2] - b _08095612 - .align 2, 0 -_08095600: .4byte gStageFlags -_08095604: .4byte 0x0000FF7F -_08095608: - ldr r0, _08095670 @ =gStageFlags - ldrh r1, [r0] - movs r2, #0x80 - orrs r1, r2 - strh r1, [r0] -_08095612: - ldr r0, [r5] -_08095614: - str r0, [r4, #0x3c] -_08095616: - ldr r2, _08095674 @ =gCamera - ldrh r0, [r2] - mov r3, r8 @ r3 = r8 = worldX - lsls r1, r3, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r0 @ r1 = screenX - ldrh r2, [r2, #2] - mov r3, ip @ r3 = ip = worldY - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 @ ip = screenY - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x10 - adds r1, r1, r0 - movs r0, #0xf8 - lsls r0, r0, #0x11 - cmp r1, r0 - bhi _08095658 - mov r1, ip - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r0, r1, #0 - adds r0, #0x80 - cmp r0, #0 - blt _08095658 - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _08095664 -_08095658: - ldrb r0, [r4, #8] - strb r0, [r7] - mov r3, sb - ldr r0, [r3] - bl TaskDestroy -_08095664: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08095670: .4byte gStageFlags -_08095674: .4byte gCamera - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc b/sa1/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc deleted file mode 100644 index c470745531..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/interactables/water_bridge__Task_WaterBridge.inc +++ /dev/null @@ -1,305 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0804DBFC @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = bridge - movs r0, #0 - mov sl, r0 @ sl = i = 0 -_0804DB92_loop: - ldr r5, _0804DC00 @ =gPlayer - mov r1, sl - cmp r1, #0 - beq _0804DB9C - ldr r5, _0804DC04 @ =gPartner -_0804DB9C: - ldr r0, [r5] - asrs r0, r0, #8 - mov sb, r0 @ sb = playerWorldX - ldr r0, [r5, #4] - asrs r0, r0, #8 - movs r1, #0xf - ldrsb r1, [r5, r1] - adds r7, r0, r1 @ r7 = playerWorldY - ldr r3, _0804DC08 @ =gCamera - movs r0, #0 - ldrsh r2, [r3, r0] - movs r1, #0xb8 - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r1, [r6, #4] - cmp r1, r0 - bgt _0804DBDE - adds r0, r2, #0 - subs r0, #0x80 - cmp r1, r0 - blt _0804DBDE - movs r0, #2 - ldrsh r2, [r3, r0] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r1, [r6, #8] - cmp r1, r0 - bgt _0804DBDE - adds r0, r2, #0 - subs r0, #0x80 - cmp r1, r0 - bge _0804DC10 -_0804DBDE: - ldr r1, [r6] - adds r0, r6, #0 - adds r0, #0x55 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [r5, #0x10] - ldr r1, _0804DC0C @ =0xFFFF7FFF - ands r0, r1 - str r0, [r5, #0x10] - ldr r0, _0804DBFC @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0804DDA6_return - .align 2, 0 -_0804DBFC: .4byte gCurTask -_0804DC00: .4byte gPlayer -_0804DC04: .4byte gPartner -_0804DC08: .4byte gCamera -_0804DC0C: .4byte 0xFFFF7FFF -_0804DC10: - ldr r2, [r6, #0xc] - cmp r2, sb - ble _0804DC18 - b _0804DD6C -_0804DC18: - ldr r0, [r6, #0x10] - cmp sb, r0 - blt _0804DC20 - b _0804DD6C -_0804DC20: - ldr r0, [r6, #0x14] - cmp r0, r7 - ble _0804DC28 - b _0804DD6C -_0804DC28: - ldr r4, [r6, #0x18] - cmp r7, r4 - ble _0804DC30 - b _0804DD6C -_0804DC30: - ldr r0, [r5, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804DC3C - b _0804DDA6_return -_0804DC3C: - mov r1, sb @ r1 = sb = playerWorldX - subs r0, r1, r2 - lsls r0, r0, #9 - ldr r1, [r6, #0x1c] - bl __divsi3 - adds r2, r0, #0 @ r2 = theta - cmp r2, #0 - blt _0804DC5C - ldr r1, _0804DC58 @ =0x000001FF - cmp r0, r1 - ble _0804DC5E - adds r0, r1, #0 - b _0804DC5E - .align 2, 0 -_0804DC58: .4byte 0x000001FF -_0804DC5C: - movs r0, #0 -_0804DC5E: - adds r2, r0, #0 @ r2 = theta - ldr r3, _0804DCBC @ =gSineTable - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - ldr r1, [r6, #0x20] - muls r1, r0, r1 - lsls r0, r4, #8 - subs r0, r0, r1 - asrs r0, r0, #8 @ r0 = x = (Q(bridge->bottom) - ((SIN_24_8(theta) * bridge->height))) >> 8; - cmp r7, r0 - blt _0804DD6C - adds r0, #0x20 - cmp r7, r0 - bgt _0804DD6C - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r2, r1 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - mov r8, r0 @ r8 = r8 - ldr r0, [r5, #0x10] - movs r4, #0x80 - lsls r4, r4, #8 - ands r0, r4 - cmp r0, #0 - bne _0804DCAA - movs r0, #0xb1 - bl m4aSongNumStartOrChange - ldr r0, [r5, #0x10] - orrs r0, r4 - str r0, [r5, #0x10] -_0804DCAA: - ldr r0, [r5, #0x10] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0804DCC0 - movs r2, #8 - ldrsh r1, [r5, r2] - b _0804DCC4 - .align 2, 0 -_0804DCBC: .4byte gSineTable -_0804DCC0: - movs r0, #0xc - ldrsh r1, [r5, r0] -_0804DCC4: - adds r1, #0x40 - ldr r0, _0804DD00 @ =0xFFFFF800 - cmp r1, r0 - blt _0804DCD8 - adds r0, r1, #0 - movs r1, #0x80 - lsls r1, r1, #4 - cmp r0, r1 - ble _0804DCD8 - adds r0, r1, #0 -_0804DCD8: - adds r1, r0, #0 - strh r1, [r5, #0xc] - strh r1, [r5, #8] - ldr r0, [r6, #0x20] - rsbs r0, r0, #0 - mov r2, r8 - muls r2, r0, r2 - adds r0, r2, #0 - muls r0, r1, r0 - asrs r0, r0, #0x10 - subs r0, #0x2a - ldr r1, _0804DD00 @ =0xFFFFF800 - cmp r0, r1 - blt _0804DD04 - movs r1, #0x80 - lsls r1, r1, #4 - cmp r0, r1 - ble _0804DD06 - adds r0, r1, #0 - b _0804DD06 - .align 2, 0 -_0804DD00: .4byte 0xFFFFF800 -_0804DD04: - adds r0, r1, #0 -_0804DD06: - strh r0, [r5, #0xa] - adds r0, r5, #0 - bl Player_TransitionCancelFlyingAndBoost - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xf - strb r0, [r1] - ldr r0, [r5, #0x10] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x10] - adds r0, r5, #0 - movs r1, #9 - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #9 - strb r0, [r5, #0xf] - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r5, #0x10] - movs r0, #0 - strh r0, [r5, #0x3a] - strh r0, [r5, #0x38] - adds r4, r6, #0 @ r4 = r6 = bridge - adds r4, #0x24 - ldr r1, _0804DD68 @ =gCamera - ldrh r0, [r1] - mov r2, sb - subs r0, r2, r0 - strh r0, [r4, #0x16] - movs r0, #0xe - ldrsb r0, [r5, r0] - subs r0, r7, r0 - ldrh r1, [r1, #2] - subs r0, r0, r1 - strh r0, [r4, #0x18] - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - b _0804DD94_continue - .align 2, 0 -_0804DD68: .4byte gCamera -_0804DD6C: - ldr r1, [r5, #0x10] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r0, r1 - cmp r0, #0 - beq _0804DD8C - ldr r0, _0804DDB4 @ =0xFFDFFFFF - ands r1, r0 - str r1, [r5, #0x10] - ldr r0, _0804DDB8 @ =gPlayerControls - ldrh r1, [r0] - ldrh r0, [r0, #2] - orrs r1, r0 - ldrh r0, [r5, #0x38] - orrs r1, r0 - strh r1, [r5, #0x38] -_0804DD8C: - ldr r0, [r5, #0x10] - ldr r1, _0804DDBC @ =0xFFFF7FFF - ands r0, r1 - str r0, [r5, #0x10] -_0804DD94_continue: - movs r0, #1 - add sl, r0 - ldr r0, _0804DDC0 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp sl, r0 - bge _0804DDA6_return - b _0804DB92_loop -_0804DDA6_return: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0804DDB4: .4byte 0xFFDFFFFF -_0804DDB8: .4byte gPlayerControls -_0804DDBC: .4byte 0xFFFF7FFF -_0804DDC0: .4byte gNumSingleplayerCharacters - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc b/sa1/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc deleted file mode 100644 index d46957c1f5..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/intro__LoadStageIntroGraphics.inc +++ /dev/null @@ -1,793 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - str r0, [sp, #0x30] @ sp30 = param0 - ldr r1, _08054E10 @ =gCurrentLevel - ldrb r0, [r1] - movs r2, #1 - ands r2, r0 - str r2, [sp, #0x34] @ sp34 = act = (gCurrentLevel % 2u) - ldr r1, _08054E14 @ =gSelectedCharacter - ldrb r0, [r1] - adds r0, #6 - add r4, sp, #0x2c - strb r0, [r4] - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x38] @ sp38 = &sp00.unk2B - movs r0, #6 - strb r0, [r2] @ sp00.unk2B = 6; - ldr r7, _08054E18 @ =gUiGraphics - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - str r0, [sp, #0x14] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08054E1C @ =gUiGraphics + 0x4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #3 - str r0, [sp, #0x18] - movs r2, #0x20 - str r2, [sp, #0x24] - mov r0, sp - adds r0, #0x28 - str r0, [sp, #0x3c] @ sp3C = &sp00.unk28 - movs r1, #0xf - strb r1, [r0] - ldr r2, [sp, #0x30] @ r2 = sp30 = param0 - ldr r0, [r2, #4] - str r0, [sp, #0xc] - mov r0, sp - adds r0, #0x2a - str r0, [sp, #0x40] @ sp40 = &sp00.unk2A - movs r1, #0xd - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _08054E20 @ =gUiGraphics + 0x8 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp, #4] - mov r2, sp - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08054E24 @ =gUiGraphics + 0xC - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08054E28 @ =gUiGraphics + 0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08054E2C @ =gUiGraphics + 0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r4] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08054E30 @ =gUiGraphics + 0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - mov r0, sp - bl sub_80528AC - movs r0, #0xa - strb r0, [r4] - movs r0, #7 - ldr r2, [sp, #0x38] @ r2 = sp38 = &sp00.unk2B - strb r0, [r2] - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r2, _08054E14 @ =gSelectedCharacter - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r1, r1, #0xb - ldr r0, [r0] - adds r0, r0, r1 - str r0, [sp, #0x14] - movs r1, #0x8e - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #4 - str r0, [sp, #0x18] - movs r2, #0x20 - str r2, [sp, #0x24] - movs r1, #0xf - ldr r0, [sp, #0x3c] - strb r1, [r0] - ldr r0, _08054E34 @ =0x06010800 - str r0, [sp, #0xc] - movs r0, #0xd - ldr r2, [sp, #0x40] - strb r0, [r2] - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r1, sp - movs r2, #0x92 - lsls r2, r2, #1 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #8] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #9] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #0xa] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r0, #0x10 - strb r0, [r4] - movs r0, #8 - ldr r1, [sp, #0x38] @ r1 = sp38 = &sp00.unk2B - strb r0, [r1] - movs r2, #0xe0 - lsls r2, r2, #1 - adds r0, r7, r2 - ldr r0, [r0] - str r0, [sp, #0x14] - movs r1, #0xe2 - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - adds r2, #0x40 - mov sb, r2 - str r2, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r2, #6 - ldr r1, [sp, #0x3c] - strb r2, [r1] - ldr r1, [sp, #0x30] @ r1 = sp30 = param0 - ldr r0, [r1] - str r0, [sp, #0xc] - movs r0, #0xd - ldr r2, [sp, #0x40] - strb r0, [r2] - movs r1, #0xe4 - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r1, sp - movs r2, #0xe6 - lsls r2, r2, #1 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #8] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #9] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #0xa] - adds r2, #4 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - ldr r1, _08054E10 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r1, r0] - mov sl, r4 - cmp r0, #0xd - ble _08054C3A - b _08054E5C -_08054C3A: - movs r2, #0x11 - strb r2, [r4] - movs r0, #9 - movs r1, #0x2b - add r1, sp - strb r0, [r1] - ldr r2, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) - ldr r0, [r2] - movs r1, #0x92 - lsls r1, r1, #4 - adds r0, r0, r1 - str r0, [sp, #0x14] - ldr r2, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) - ldr r0, [r2] - str r0, [sp, #0x20] - ldr r1, _08054E10 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r1, r0] - ldr r2, _08054E40 @ =gUnknown_08688378 - adds r0, r0, r2 - ldrb r0, [r0] - movs r4, #0xc - subs r0, r4, r0 - lsls r0, r0, #5 - str r0, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r1, #6 - add r2, sp, #0x28 - strb r1, [r2] - ldr r1, [sp, #0x30] @ r1 = sp30 = param0 - ldr r0, [r1, #8] - str r0, [sp, #0xc] - movs r2, #0xd - movs r0, #0x2a - add r0, sp - strb r2, [r0] - ldr r1, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #0x11 - mov r0, sl - strb r1, [r0] - movs r2, #9 - movs r0, #0x2b - add r0, sp - strb r2, [r0] - ldr r1, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) - ldr r0, [r1] - movs r7, #0x80 - lsls r7, r7, #1 - adds r0, r0, r7 - str r0, [sp, #0x14] - ldr r2, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) - ldr r0, [r2] - str r0, [sp, #0x20] - movs r0, #0x80 - str r0, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r1, #6 - add r2, sp, #0x28 - strb r1, [r2] - ldr r1, [sp, #0x30] @ r1 = sp30 = param0 - ldr r0, [r1, #8] - movs r2, #0xc0 - lsls r2, r2, #1 - adds r0, r0, r2 - str r0, [sp, #0xc] - movs r0, #0xd - movs r1, #0x2a - add r1, sp - strb r0, [r1] - ldr r2, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) - ldr r0, [r2] - str r0, [sp, #4] - mov r1, sp - ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #0x11 - mov r0, sl - strb r1, [r0] - movs r2, #9 - movs r0, #0x2b - add r0, sp - strb r2, [r0] - ldr r1, _08054E58 @ =gUnknown_08688386 - ldr r2, _08054E10 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #5 - ldr r2, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) - ldr r0, [r2] - adds r0, r0, r1 - str r0, [sp, #0x14] - ldr r1, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) - ldr r0, [r1] - str r0, [sp, #0x20] - ldr r2, _08054E10 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r2, r0] - ldr r1, _08054E40 @ =gUnknown_08688378 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #5 - str r0, [sp, #0x18] - movs r2, #0x20 - str r2, [sp, #0x24] - movs r0, #6 - add r1, sp, #0x28 - strb r0, [r1] - ldr r2, _08054E10 @ =gCurrentLevel - movs r0, #0 - ldrsb r0, [r2, r0] - ldr r1, _08054E40 @ =gUnknown_08688378 - adds r0, r0, r1 - ldrb r0, [r0] - subs r4, r4, r0 - lsls r4, r4, #5 - ldr r2, [sp, #0x30] @ r2 = sp30 = param0 - ldr r0, [r2, #8] - adds r0, r0, r4 - str r0, [sp, #0xc] - movs r0, #0xd - movs r1, #0x2a - add r1, sp - strb r0, [r1] - ldr r2, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) - ldr r0, [r2] - str r0, [sp, #4] - mov r1, sp - ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #0x11 - mov r0, sl - strb r1, [r0] - movs r2, #9 - movs r0, #0x2b - add r0, sp - strb r2, [r0] - ldr r1, _08054E38 @ =gUiGraphics + ((17 * 0x1C) + 0) - ldr r0, [r1] - adds r0, r0, r7 - str r0, [sp, #0x14] - ldr r2, _08054E3C @ =gUiGraphics + ((17 * 0x1C) + 0x4) - ldr r0, [r2] - str r0, [sp, #0x20] - movs r0, #0x20 - str r0, [sp, #0x18] - str r0, [sp, #0x24] - movs r1, #6 - add r2, sp, #0x28 - strb r1, [r2] - ldr r1, [sp, #0x30] @ r1 = sp30 = param0 - ldr r0, [r1, #8] - str r0, [sp, #0xc] - movs r2, #0xd - movs r0, #0x2a - add r0, sp - strb r2, [r0] - ldr r1, _08054E44 @ =gUiGraphics + ((17 * 0x1C) + 0x8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _08054E48 @ =gUiGraphics + ((17 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r2, _08054E4C @ =gUiGraphics + ((17 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r2, _08054E50 @ =gUiGraphics + ((17 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r2, _08054E54 @ =gUiGraphics + ((17 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #4 - str r1, [sp, #4] - mov r0, sp - movs r2, #1 - strb r2, [r0, #8] - strb r2, [r0, #9] - strb r1, [r0, #0xa] - strb r2, [r0, #0xb] - movs r1, #9 - bl sub_80535C8 - b _08054F14 - .align 2, 0 -_08054E10: .4byte gCurrentLevel -_08054E14: .4byte gSelectedCharacter -_08054E18: .4byte gUiGraphics -_08054E1C: .4byte gUiGraphics + 0x4 -_08054E20: .4byte gUiGraphics + 0x8 -_08054E24: .4byte gUiGraphics + 0xC -_08054E28: .4byte gUiGraphics + 0x10 -_08054E2C: .4byte gUiGraphics + 0x14 -_08054E30: .4byte gUiGraphics + 0x18 -_08054E34: .4byte 0x06010800 -_08054E38: .4byte gUiGraphics + ((17 * 0x1C) + 0) -_08054E3C: .4byte gUiGraphics + ((17 * 0x1C) + 0x4) -_08054E40: .4byte gUnknown_08688378 -_08054E44: .4byte gUiGraphics + ((17 * 0x1C) + 0x8) -_08054E48: .4byte gUiGraphics + ((17 * 0x1C) + 0xC) -_08054E4C: .4byte gUiGraphics + ((17 * 0x1C) + 0x10) -_08054E50: .4byte gUiGraphics + ((17 * 0x1C) + 0x14) -_08054E54: .4byte gUiGraphics + ((17 * 0x1C) + 0x18) -_08054E58: .4byte gUnknown_08688386 -_08054E5C: - movs r0, #0x12 - mov r1, sl - strb r0, [r1] - movs r0, #9 - movs r2, #0x2b - add r2, sp - strb r0, [r2] - ldrb r1, [r1] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r2, _080550C4 @ =gCurrentLevel - movs r1, #0 - ldrsb r1, [r2, r1] - subs r1, #0xe - lsls r1, r1, #9 - ldr r0, [r0] - adds r0, r0, r1 - str r0, [sp, #0x14] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080550C8 @ =gUiGraphics + 0x4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - mov r2, sb - str r2, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r1, #6 - add r2, sp, #0x28 - strb r1, [r2] - ldr r1, [sp, #0x30] @ r1 = sp30 = param0 - ldr r0, [r1, #8] - str r0, [sp, #0xc] - movs r2, #0xd - movs r0, #0x2a - add r0, sp - strb r2, [r0] - mov r2, sl - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080550CC @ =gUiGraphics + 0x8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r2, sp - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080550D0 @ =gUiGraphics + 0xC - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080550D4 @ =gUiGraphics + 0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080550D8 @ =gUiGraphics + 0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080550DC @ =gUiGraphics + 0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - mov r0, sp - bl sub_80528AC -_08054F14: - movs r0, #0xf - mov r2, sl - strb r0, [r2] - movs r1, #0xa - movs r2, #0x2b - add r2, sp - strb r1, [r2] - ldr r7, _080550E0 @ =gUiGraphics - movs r0, #0xd2 - lsls r0, r0, #1 - adds r6, r7, r0 - ldr r0, [r6] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r0, r4 - ldr r2, [sp, #0x34] - lsls r1, r2, #7 - adds r0, r0, r1 - str r0, [sp, #0x14] - movs r0, #0x80 - str r0, [sp, #0x18] - ldr r1, [sp, #0x30] @ r1 = sp30 = param0 - ldr r0, [r1, #0x10] - adds r0, r0, r4 - str r0, [sp, #0xc] - movs r0, #9 - movs r2, #0x2a - add r2, sp - strb r0, [r2] - movs r0, #0xd6 - lsls r0, r0, #1 - adds r5, r7, r0 - ldr r0, [r5] - str r0, [sp, #4] - mov r1, sp - ldr r2, _080550E4 @ =gUiGraphics + ((15 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r2, _080550E8 @ =gUiGraphics + ((15 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r2, _080550EC @ =gUiGraphics + ((15 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r2, _080550F0 @ =gUiGraphics + ((15 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #0xf - mov r0, sl - strb r1, [r0] - movs r2, #0xa - movs r0, #0x2b - add r0, sp - strb r2, [r0] - ldr r0, [r6] - str r0, [sp, #0x14] - movs r1, #0xd4 - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - str r4, [sp, #0x18] - ldr r2, [sp, #0x30] @ r2 = sp30 = param0 - ldr r0, [r2, #0x10] - str r0, [sp, #0xc] - movs r0, #0x20 - mov r8, r0 - str r0, [sp, #0x24] - movs r1, #6 - mov sb, r1 - mov r2, sb - add r0, sp, #0x28 - strb r2, [r0] - movs r1, #0xd - movs r2, #0x2a - add r2, sp - strb r1, [r2] - ldr r0, [r5] - str r0, [sp, #4] - mov r1, sp - ldr r2, _080550E4 @ =gUiGraphics + ((15 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r2, _080550E8 @ =gUiGraphics + ((15 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r2, _080550EC @ =gUiGraphics + ((15 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r2, _080550F0 @ =gUiGraphics + ((15 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - ldr r1, _080550F4 @ =gUnknown_08688398 - ldr r0, _080550C4 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, #0x13 - mov r1, sl - strb r0, [r1] - movs r4, #2 - movs r2, #0x2b - add r2, sp - strb r4, [r2] - ldrb r1, [r1] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - str r0, [sp, #0x14] - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0xe0 - lsls r0, r0, #3 - str r0, [sp, #0x18] - mov r2, r8 - str r2, [sp, #0x24] - mov r0, sb - add r1, sp, #0x28 - strb r0, [r1] - ldr r2, [sp, #0x30] @ r2 = sp30 = param0 - ldr r0, [r2, #0xc] - str r0, [sp, #0xc] - movs r0, #0xd - movs r1, #0x2a - add r1, sp - strb r0, [r1] - mov r2, sl - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r2, sp - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - mov r0, sl - ldrb r1, [r0] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - mov r0, sp - bl sub_80528AC - movs r0, #8 - str r0, [sp, #4] - mov r0, sp - strb r4, [r0, #8] - mov r1, sp - movs r0, #1 - strb r0, [r1, #9] - movs r0, #4 - strb r0, [r1, #0xa] - mov r0, sp - strb r4, [r0, #0xb] - movs r1, #2 - bl sub_80535C8 - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080550C4: .4byte gCurrentLevel -_080550C8: .4byte gUiGraphics + 0x4 -_080550CC: .4byte gUiGraphics + 0x8 -_080550D0: .4byte gUiGraphics + 0xC -_080550D4: .4byte gUiGraphics + 0x10 -_080550D8: .4byte gUiGraphics + 0x14 -_080550DC: .4byte gUiGraphics + 0x18 -_080550E0: .4byte gUiGraphics -_080550E4: .4byte gUiGraphics + ((15 * 0x1C) + 0xC) -_080550E8: .4byte gUiGraphics + ((15 * 0x1C) + 0x10) -_080550EC: .4byte gUiGraphics + ((15 * 0x1C) + 0x14) -_080550F0: .4byte gUiGraphics + ((15 * 0x1C) + 0x18) -_080550F4: .4byte gUnknown_08688398 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc b/sa1/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc deleted file mode 100644 index b403aa05b4..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/results_2__Task_ChaoHuntHUD.inc +++ /dev/null @@ -1,460 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified - -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _0801B8A0 @ =gCurTask - ldr r0, [r0] - ldrh r3, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r3, r0 - str r0, [sp] - ldr r0, _0801B8A4 @ =gCourseTime - ldr r2, [r0] - ldr r1, _0801B8A8 @ =0x00000E0F - ldr r4, _0801B8AC @ =0x03000030 - adds r4, r4, r3 - mov sl, r4 - adds r4, r0, #0 - cmp r2, r1 - bhi _0801B72E - movs r0, #2 - ands r2, r0 - cmp r2, #0 - beq _0801B72E - ldr r0, _0801B8B0 @ =0x03000240 - adds r0, r0, r3 - mov sl, r0 -_0801B72E: - ldr r0, _0801B8B4 @ =gStageFlags - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801B754 - ldr r1, [r4] - ldr r0, _0801B8B8 @ =0x000004AF - cmp r1, r0 - bhi _0801B754 - adds r0, r1, #0 - movs r1, #0x3c - bl Mod - cmp r0, #0 - bne _0801B754 - movs r0, #0x8b @ SE_TIMER - bl m4aSongNumStart -_0801B754: - movs r7, #0xf0 - lsls r7, r7, #1 - add r7, sl - movs r1, #0x20 - mov r8, r1 - mov r4, r8 - strh r4, [r7, #0x18] - movs r0, #0x18 - strh r0, [r7, #0x16] - adds r0, r7, #0 - bl DisplaySprite - movs r0, #0x30 - strh r0, [r7, #0x16] - adds r0, r7, #0 - bl DisplaySprite - ldr r4, _0801B8A4 @ =gCourseTime - ldr r0, [r4] - movs r1, #0x3c - bl Div - adds r5, r0, #0 - ldr r1, [r4] - lsls r0, r5, #4 - subs r0, r0, r5 - lsls r0, r0, #2 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - ldr r0, _0801B8BC @ =sa2__gUnknown_080E0234 - adds r0, r1, r0 - ldrb r4, [r0] - movs r0, #0xf - mov sb, r0 - lsrs r1, r4, #4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - movs r0, #0x38 - strh r0, [r7, #0x16] - mov r0, r8 - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - movs r6, #0xf - adds r1, r6, #0 - ands r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - movs r0, #0x40 - strh r0, [r7, #0x16] - mov r4, r8 - strh r4, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - adds r0, r5, #0 - movs r1, #0x3c - bl Div - adds r4, r0, #0 - lsls r0, r4, #4 - subs r0, r0, r4 - lsls r0, r0, #2 - subs r5, r5, r0 - lsls r5, r5, #0x10 - lsrs r1, r5, #0x10 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r0, r1, #0 - bl Base10DigitsToHexNibbles - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - lsrs r0, r0, #0x14 - mov r1, sb - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #4 - mov r0, sl - adds r7, r0, r1 - mov r1, r8 - strh r1, [r7, #0x16] - strh r1, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - adds r1, r6, #0 - ands r1, r5 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - movs r0, #0x28 - strh r0, [r7, #0x16] - mov r0, r8 - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - adds r0, r4, #0 - movs r1, #0x3c - bl Div - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - subs r4, r4, r1 - lsls r4, r4, #0x10 - lsrs r1, r4, #0x10 - adds r0, r1, #0 - bl Base10DigitsToHexNibbles - ands r6, r0 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - movs r0, #0x10 - strh r0, [r7, #0x16] - mov r4, r8 - strh r4, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - movs r5, #0 - ldr r0, _0801B8C0 @ =gMultiplayerConnections - ldrb r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0801B876 - b _0801BA86 -_0801B876: - ldr r2, _0801B8C4 @ =gGameMode - ldr r0, [sp] - adds r0, #0x30 - mov sl, r0 -_0801B87E: - ldr r7, [sp] - lsls r0, r5, #2 - adds r0, r0, r5 - lsls r0, r0, #2 - adds r0, #8 - strh r0, [r7, #0x16] - movs r0, #8 - strh r0, [r7, #0x18] - ldrb r0, [r2] - cmp r0, #6 - bne _0801B8C8 - adds r0, r7, #0 - adds r0, #0x25 - strb r5, [r0] - adds r1, r5, #1 - mov sb, r1 - b _0801B920 - .align 2, 0 -_0801B8A0: .4byte gCurTask -_0801B8A4: .4byte gCourseTime -_0801B8A8: .4byte 0x00000E0F -_0801B8AC: .4byte 0x03000030 -_0801B8B0: .4byte 0x03000240 -_0801B8B4: .4byte gStageFlags -_0801B8B8: .4byte 0x000004AF -_0801B8BC: .4byte sa2__gUnknown_080E0234 -_0801B8C0: .4byte gMultiplayerConnections -_0801B8C4: .4byte gGameMode -_0801B8C8: - cmp r0, #4 - bne _0801B8E4 - ldr r0, _0801B8E0 @ =gMultiplayerCharacters - adds r0, r5, r0 - ldrb r0, [r0] - adds r1, r7, #0 - adds r1, #0x25 - strb r0, [r1] - adds r4, r5, #1 - mov sb, r4 - b _0801B920 - .align 2, 0 -_0801B8E0: .4byte gMultiplayerCharacters -_0801B8E4: - movs r2, #0 - ldr r3, _0801B974 @ =gMultiplayerConnections - ldrb r1, [r3] - movs r0, #0x10 - ands r1, r0 - asrs r1, r1, #4 - ldr r0, _0801B978 @ =gMultiplayerCharacters - mov r8, r0 - adds r4, r7, #0 - adds r4, #0x25 - adds r0, r5, #1 - mov sb, r0 - cmp r5, r1 - beq _0801B918 - movs r6, #0x10 -_0801B902: - adds r2, #1 - cmp r2, #3 - bhi _0801B918 - ldrb r0, [r3] - adds r1, r6, #0 - lsls r1, r2 - ands r0, r1 - adds r1, r2, #4 - asrs r0, r1 - cmp r5, r0 - bne _0801B902 -_0801B918: - mov r1, r8 - adds r0, r2, r1 - ldrb r0, [r0] - strb r0, [r4] -_0801B920: - adds r0, r7, #0 - bl DisplaySprite - ldr r0, _0801B97C @ =gGameMode - ldrb r0, [r0] - cmp r0, #5 - bne _0801B988 - movs r4, #0 - movs r2, #0 - ldr r1, _0801B980 @ =gMultiplayerPlayerTasks - ldr r0, [r1] - cmp r0, #0 - beq _0801B970 - ldr r0, _0801B974 @ =gMultiplayerConnections - ldrb r3, [r0] - mov r8, r1 - ldr r7, _0801B984 @ =gMultiplayerCharRings - movs r6, #0x10 -_0801B944: - adds r0, r6, #0 - lsls r0, r2 - ands r0, r3 - adds r1, r2, #4 - asrs r0, r1 - cmp r5, r0 - bne _0801B95C - adds r0, r2, r7 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_0801B95C: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bhi _0801B970 - lsls r0, r2, #2 - add r0, r8 - ldr r0, [r0] - cmp r0, #0 - bne _0801B944 -_0801B970: - adds r0, r4, #0 - b _0801B98E - .align 2, 0 -_0801B974: .4byte gMultiplayerConnections -_0801B978: .4byte gMultiplayerCharacters -_0801B97C: .4byte gGameMode -_0801B980: .4byte gMultiplayerPlayerTasks -_0801B984: .4byte gMultiplayerCharRings -_0801B988: - ldr r0, _0801B9F4 @ =gMultiplayerCharRings - adds r0, r5, r0 - ldrb r0, [r0] -_0801B98E: - bl Base10DigitsToHexNibbles - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xff - bls _0801B9F8 - lsrs r1, r4, #8 - movs r0, #0xf - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - ldr r1, [sp] - ldrh r0, [r1, #0x16] - adds r0, #3 - strh r0, [r7, #0x16] - movs r0, #0xe - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - lsrs r1, r4, #4 - movs r0, #0xf - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - ldr r1, [sp] - ldrh r0, [r1, #0x16] - adds r0, #0xb - strh r0, [r7, #0x16] - movs r0, #0xe - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - movs r1, #0xf - ands r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - ldr r4, [sp] - ldrh r0, [r4, #0x16] - adds r0, #0x13 - b _0801BA32 - .align 2, 0 -_0801B9F4: .4byte gMultiplayerCharRings -_0801B9F8: - cmp r4, #0xf - bls _0801BA40 - lsrs r1, r4, #4 - movs r0, #0xf - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - ldr r1, [sp] - ldrh r0, [r1, #0x16] - adds r0, #7 - strh r0, [r7, #0x16] - movs r0, #0xe - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - movs r1, #0xf - ands r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - mov r1, sl - adds r7, r1, r0 - ldr r4, [sp] - ldrh r0, [r4, #0x16] - adds r0, #0xf -_0801BA32: - strh r0, [r7, #0x16] - movs r0, #0xe - strh r0, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite - b _0801BA60 -_0801BA40: - movs r0, #0xf - ands r0, r4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #4 - mov r4, sl - adds r7, r4, r1 - ldr r1, [sp] - ldrh r0, [r1, #0x16] - adds r0, #0xb - strh r0, [r7, #0x16] - movs r4, #0xe - strh r4, [r7, #0x18] - adds r0, r7, #0 - bl DisplaySprite -_0801BA60: - mov r5, sb - cmp r5, #3 - bhi _0801BA86 - ldr r0, _0801BA98 @ =gMultiplayerConnections - ldrb r0, [r0] - asrs r0, r5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0801BA86 - ldr r0, _0801BA9C @ =gGameMode - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #5 - beq _0801BA80 - b _0801B87E -_0801BA80: - cmp r5, #2 - beq _0801BA86 - b _0801B87E -_0801BA86: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801BA98: .4byte gMultiplayerConnections -_0801BA9C: .4byte gGameMode - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc b/sa1/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc deleted file mode 100644 index 15d87da3cb..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/results_2__sub_800FD9C.inc +++ /dev/null @@ -1,150 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified - -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov sb, r0 @ sb = data - movs r0, #0 - mov ip, r0 - ldr r1, _0800FDD4 @ =gLoadedSaveGame + 0x380 - mov sl, r1 @ sl = LOADED_SAVE->multiplayerScores - mov r5, sb - adds r5, #4 - str r5, [sp, #0x10] @ sp10 = - mov r7, sl - mov r8, r0 @ r8 = r0 = i -_0800FDBC_loop: - ldr r4, _0800FDD4 @ =gLoadedSaveGame + 0x380 - add r4, r8 @ r4 = score - movs r6, #1 - movs r3, #0 - mov r2, sb @ r2 = sb = data - ldrb r1, [r2, #4] - ldrb r0, [r4] - cmp r1, r0 - beq _0800FDD8 - movs r6, #0 - b _0800FE38_continue - .align 2, 0 -_0800FDD4: .4byte gLoadedSaveGame + 0x380 -_0800FDD8: - adds r3, #1 - cmp r3, #0xb - bhi _0800FDEC - adds r0, r5, r3 - adds r1, r4, r3 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - beq _0800FDD8 - movs r6, #0 -_0800FDEC: - cmp r6, #0 - beq _0800FE38_continue - mov r0, sp - adds r1, r7, #0 - ldm r1!, {r3, r4, r5} - stm r0!, {r3, r4, r5} - ldr r1, [r1] - str r1, [r0] - mov r2, ip - cmp r2, #0 - beq _0800FE22 - ldr r4, _0800FE30 @ =gLoadedSaveGame - movs r3, #0xe0 - lsls r3, r3, #2 @ 0x380 -_0800FE08: - lsls r1, r2, #4 - adds r1, r1, r4 - subs r2, #1 - lsls r0, r2, #4 - adds r0, r0, r4 - adds r1, r1, r3 - adds r0, r0, r3 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldr r0, [r0] - str r0, [r1] @ LOADED_SAVE->multiplayerScores = - cmp r2, #0 - bne _0800FE08 -_0800FE22: - ldr r0, _0800FE34 @ =gLoadedSaveGame + 0x380 - mov r1, sp - ldm r1!, {r2, r6, r7} - stm r0!, {r2, r6, r7} - ldr r1, [r1] - str r1, [r0] - b _0800FE94 - .align 2, 0 -_0800FE30: .4byte gLoadedSaveGame -_0800FE34: .4byte gLoadedSaveGame + 0x380 -_0800FE38_continue: - adds r7, #0x10 - movs r3, #0x10 - add r8, r3 - movs r4, #1 - add ip, r4 - mov r6, ip - cmp r6, #9 - bls _0800FDBC_loop - movs r2, #9 - ldr r4, _0800FEA4 @ =gLoadedSaveGame - movs r3, #0xe0 - lsls r3, r3, #2 -_0800FE50: - lsls r1, r2, #4 - adds r1, r1, r4 - subs r2, #1 - lsls r0, r2, #4 - adds r0, r0, r4 - adds r1, r1, r3 - adds r0, r0, r3 - ldm r0!, {r5, r6, r7} - stm r1!, {r5, r6, r7} - ldr r0, [r0] - str r0, [r1] - cmp r2, #0 - bne _0800FE50 - ldr r5, [sp, #0x10] - mov r4, sl @ r4 = sl = LOADED_SAVE->multiplayerScores -_0800FE6E: - ldrb r0, [r5] - strb r0, [r4] - adds r5, #1 - adds r4, #1 - adds r2, #1 - cmp r2, #0xb - bls _0800FE6E - ldr r7, _0800FEA4 @ =gLoadedSaveGame - movs r1, #0xe3 - lsls r1, r1, #2 - adds r0, r7, r1 - movs r1, #0 - strb r1, [r0] - ldr r2, _0800FEA8 @ =0x0000038D - adds r0, r7, r2 - strb r1, [r0] - ldr r3, _0800FEAC @ =0x0000038E - adds r0, r7, r3 - strb r1, [r0] -_0800FE94: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800FEA4: .4byte gLoadedSaveGame -_0800FEA8: .4byte 0x0000038D -_0800FEAC: .4byte 0x0000038E - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/results__Task_801874C.inc b/sa1/asm/non_matching/game/sa1/stage/results__Task_801874C.inc deleted file mode 100644 index 3ecbb24347..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/results__Task_801874C.inc +++ /dev/null @@ -1,439 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080187BC @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 - ldr r0, _080187C0 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _080187FE - movs r3, #0 - ldr r0, _080187C4 @ =gMultiplayerConnections - ldrb r1, [r0] - movs r2, #1 - ands r1, r2 - adds r7, r0, #0 - cmp r1, #0 - beq _080187FE - movs r5, #1 - ldr r2, _080187C8 @ =gMultiplayerMissingHeartbeats -_0801877E: - ldr r1, _080187CC @ =gMultiSioStatusFlags - adds r0, r5, #0 - lsls r0, r3 - ldr r4, [r1] - ands r4, r0 - cmp r4, #0 - bne _080187E8 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _080187EC - movs r0, #0 - ldr r1, _080187D0 @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _080187D4 @ =gBackgroundsCopyQueueCursor - ldr r0, _080187D8 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080187DC @ =gBgSpritesCount - strb r4, [r0] - ldr r1, _080187E0 @ =gVramGraphicsCopyCursor - ldr r0, _080187E4 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _08018AC2 - .align 2, 0 -_080187BC: .4byte gCurTask -_080187C0: .4byte gGameMode -_080187C4: .4byte gMultiplayerConnections -_080187C8: .4byte gMultiplayerMissingHeartbeats -_080187CC: .4byte gMultiSioStatusFlags -_080187D0: .4byte 0x0000FFFF -_080187D4: .4byte gBackgroundsCopyQueueCursor -_080187D8: .4byte gBackgroundsCopyQueueIndex -_080187DC: .4byte gBgSpritesCount -_080187E0: .4byte gVramGraphicsCopyCursor -_080187E4: .4byte gVramGraphicsCopyQueueIndex -_080187E8: - movs r0, #0 - strb r0, [r2] -_080187EC: - adds r2, #1 - adds r3, #1 - cmp r3, #3 - bhi _080187FE - ldrb r0, [r7] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - bne _0801877E -_080187FE: - ldr r5, _0801882C @ =gMultiSioRecv - ldrh r0, [r5] - cmp r0, #0x30 - bne _08018838 - ldr r0, _08018830 @ =0x00000203 - adds r4, r6, r0 - ldrb r0, [r4] - ldrb r1, [r5, #2] - cmp r0, r1 - beq _080188DC - movs r0, #0x6c - bl m4aSongNumStart - ldr r0, _08018834 @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080188EA - ldrb r0, [r5, #2] - strb r0, [r4] - b _080188DC - .align 2, 0 -_0801882C: .4byte gMultiSioRecv -_08018830: .4byte 0x00000203 -_08018834: .4byte gMultiSioStatusFlags -_08018838: - cmp r0, #0x31 - bne _080188DC - ldr r3, _0801887C @ =0x00000203 - adds r4, r6, r3 - ldrb r0, [r4] - ldrb r1, [r5, #2] - cmp r0, r1 - beq _08018852 - movs r0, #0x6c - bl m4aSongNumStart - ldrb r0, [r5, #2] - strb r0, [r4] -_08018852: - movs r0, #0x6a - bl m4aSongNumStart - ldrb r0, [r4] - cmp r0, #0 - bne _08018894 - ldr r1, _08018880 @ =gGameMode - movs r0, #2 - strb r0, [r1] - ldr r0, _08018884 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r2, _08018888 @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _0801888C @ =0x00196225 - muls r0, r1, r0 - ldr r3, _08018890 @ =0x3C6EF35F - adds r0, r0, r3 - b _080188AE - .align 2, 0 -_0801887C: .4byte 0x00000203 -_08018880: .4byte gGameMode -_08018884: .4byte gCurTask -_08018888: .4byte gPseudoRandom -_0801888C: .4byte 0x00196225 -_08018890: .4byte 0x3C6EF35F -_08018894: - ldr r1, _080188C4 @ =gGameMode - movs r0, #4 - strb r0, [r1] - ldr r0, _080188C8 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r2, _080188CC @ =gPseudoRandom - ldr r1, [r2] - ldr r0, _080188D0 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _080188D4 @ =0x3C6EF35F - adds r0, r0, r1 -_080188AE: - str r0, [r2] - ldr r1, _080188D8 @ =0x04000128 - ldr r1, [r1] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - adds r0, r0, r1 - movs r1, #3 - ands r0, r1 - bl CreateCharacterSelectionScreen - b _08018AC2 - .align 2, 0 -_080188C4: .4byte gGameMode -_080188C8: .4byte gCurTask -_080188CC: .4byte gPseudoRandom -_080188D0: .4byte 0x00196225 -_080188D4: .4byte 0x3C6EF35F -_080188D8: .4byte 0x04000128 -_080188DC: - ldr r0, _08018934 @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080188EA - b _08018A08 -_080188EA: - movs r3, #1 - mov r8, r3 - movs r0, #0x30 - ldr r1, _08018938 @ =gMultiSioSend - strh r0, [r1] - ldr r3, _0801893C @ =0x00000213 - adds r0, r6, r3 - ldrb r5, [r0] - cmp r5, #0 - bne _08018974 - ldr r0, _08018940 @ =gRepeatedKeys - ldrh r1, [r0] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _08018948 - movs r0, #0x6c - bl m4aSongNumStart - ldr r0, _08018944 @ =0x00000203 - adds r1, r6, r0 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0801892A - mov r3, r8 - strb r3, [r1] -_0801892A: - movs r1, #0xfe - lsls r1, r1, #1 - adds r0, r6, r1 - str r5, [r0] - b _08018974 - .align 2, 0 -_08018934: .4byte gMultiSioStatusFlags -_08018938: .4byte gMultiSioSend -_0801893C: .4byte 0x00000213 -_08018940: .4byte gRepeatedKeys -_08018944: .4byte 0x00000203 -_08018948: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08018974 - movs r0, #0x6c - bl m4aSongNumStart - ldr r3, _080189F0 @ =0x00000203 - adds r1, r6, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0801896C - movs r0, #0 - strb r0, [r1] -_0801896C: - movs r1, #0xfe - lsls r1, r1, #1 - adds r0, r6, r1 - str r4, [r0] -_08018974: - ldr r3, _080189F0 @ =0x00000203 - adds r0, r6, r3 - ldrb r0, [r0] - ldr r1, _080189F4 @ =gMultiSioSend - strb r0, [r1, #2] - movs r4, #1 - ldr r1, _080189F8 @ =gMultiplayerConnections - ldrb r0, [r1] - asrs r0, r0, #1 - ands r0, r4 - adds r7, r1, #0 - adds r5, r6, #0 - adds r5, #0x40 - movs r3, #0x60 - adds r3, r3, r6 - mov sb, r3 - movs r1, #0x70 - adds r1, r1, r6 - mov sl, r1 - cmp r0, #0 - beq _080189C4 - ldr r0, _080189FC @ =gMultiSioRecv - adds r1, r7, #0 - adds r2, r0, #0 - adds r2, #0x14 - movs r3, #1 -_080189A8: - ldrh r0, [r2] - cmp r0, #0x30 - beq _080189B2 - movs r0, #0 - mov r8, r0 -_080189B2: - adds r2, #0x14 - adds r4, #1 - cmp r4, #3 - bhi _080189C4 - ldrb r0, [r1] - asrs r0, r4 - ands r0, r3 - cmp r0, #0 - bne _080189A8 -_080189C4: - mov r1, r8 - cmp r1, #0 - beq _080189D6 - ldr r0, _08018A00 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080189E0 -_080189D6: - ldr r3, _08018A04 @ =0x00000213 - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _08018A30 -_080189E0: - ldr r1, _08018A04 @ =0x00000213 - adds r0, r6, r1 - movs r1, #1 - strb r1, [r0] - movs r0, #0x31 - ldr r3, _080189F4 @ =gMultiSioSend - strh r0, [r3] - b _08018A30 - .align 2, 0 -_080189F0: .4byte 0x00000203 -_080189F4: .4byte gMultiSioSend -_080189F8: .4byte gMultiplayerConnections -_080189FC: .4byte gMultiSioRecv -_08018A00: .4byte gPressedKeys -_08018A04: .4byte 0x00000213 -_08018A08: - movs r0, #0x30 - ldr r1, _08018AD0 @ =gMultiSioSend - strh r0, [r1] - movs r3, #0xe0 - lsls r3, r3, #1 - adds r5, r6, r3 - adds r0, r5, #0 - bl UpdateSpriteAnimation - adds r0, r5, #0 - bl DisplaySprite - adds r5, r6, #0 - adds r5, #0x40 - movs r0, #0x60 - adds r0, r0, r6 - mov sb, r0 - movs r1, #0x70 - adds r1, r1, r6 - mov sl, r1 -_08018A30: - ldr r1, _08018AD4 @ =gUnknown_080BB48C - ldr r3, _08018AD8 @ =0x00000203 - adds r2, r6, r3 - ldr r0, _08018ADC @ =gLoadedSaveGame - ldrb r0, [r0, #0x19] - lsls r0, r0, #1 - ldrb r3, [r2] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0xfe - lsls r0, r0, #1 - adds r4, r6, r0 - ldr r0, [r4] - adds r0, #0x80 - str r0, [r4] - lsls r1, r7, #8 - cmp r0, r1 - ble _08018A5A - subs r0, r0, r1 - str r0, [r4] -_08018A5A: - ldrb r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, #0x40 - strh r0, [r5, #0x18] - ldrb r0, [r2] - mov r1, sb - strb r0, [r1] - adds r0, r5, #0 - bl UpdateSpriteAnimation - ldr r0, [r4] - asrs r0, r0, #8 - subs r4, r0, r7 - movs r0, #0xe8 - subs r0, r0, r4 - cmp r0, #0 - ble _08018A9E - movs r3, #0xe8 - mov sb, r3 - movs r0, #0xe8 - mov r8, r0 -_08018A88: - mov r1, sb - subs r0, r1, r4 - strh r0, [r5, #0x16] - adds r0, r5, #0 - bl DisplaySprite - adds r4, r4, r7 - mov r3, r8 - subs r0, r3, r4 - cmp r0, #0 - bgt _08018A88 -_08018A9E: - mov r5, sl - ldr r1, _08018AD8 @ =0x00000203 - adds r0, r6, r1 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, #0x36 - strh r0, [r5, #0x18] - movs r4, #0 -_08018AB2: - lsls r0, r4, #5 - strh r0, [r5, #0x16] - adds r0, r5, #0 - bl DisplaySprite - adds r4, #1 - cmp r4, #7 - bls _08018AB2 -_08018AC2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08018AD0: .4byte gMultiSioSend -_08018AD4: .4byte gUnknown_080BB48C -_08018AD8: .4byte 0x00000203 -_08018ADC: .4byte gLoadedSaveGame - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc b/sa1/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc deleted file mode 100644 index 33d6e07499..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/results_b__Task_8018ECC.inc +++ /dev/null @@ -1,561 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08018F3C @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - ldr r0, _08018F40 @ =0x03000234 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, _08018F44 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _08018F7C - movs r3, #0 - ldr r0, _08018F48 @ =gMultiplayerConnections - ldrb r1, [r0] - movs r2, #1 - ands r1, r2 - mov ip, r0 - cmp r1, #0 - beq _08018F7C - movs r5, #1 - ldr r2, _08018F4C @ =gMultiplayerMissingHeartbeats -_08018F08: - ldr r1, _08018F50 @ =gMultiSioStatusFlags - adds r0, r5, #0 - lsls r0, r3 - ldr r4, [r1] - ands r4, r0 - cmp r4, #0 - bne _08018F64 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _08018F68 - movs r0, #0 - ldr r1, _08018F54 @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _08018F58 @ =gBackgroundsCopyQueueCursor - ldr r0, _08018F5C @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08018F60 @ =gBgSpritesCount - strb r4, [r0] - b _080190AC - .align 2, 0 -_08018F3C: .4byte gCurTask -_08018F40: .4byte 0x03000234 -_08018F44: .4byte gGameMode -_08018F48: .4byte gMultiplayerConnections -_08018F4C: .4byte gMultiplayerMissingHeartbeats -_08018F50: .4byte gMultiSioStatusFlags -_08018F54: .4byte 0x0000FFFF -_08018F58: .4byte gBackgroundsCopyQueueCursor -_08018F5C: .4byte gBackgroundsCopyQueueIndex -_08018F60: .4byte gBgSpritesCount -_08018F64: - movs r0, #0 - strb r0, [r2] -_08018F68: - adds r2, #1 - adds r3, #1 - cmp r3, #3 - bhi _08018F7C - mov r1, ip - ldrb r0, [r1] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - bne _08018F08 -_08018F7C: - ldr r6, _08018FAC @ =gMultiSioRecv - ldrh r2, [r6] - cmp r2, #0x34 - bne _08018FB8 - ldr r2, _08018FB0 @ =0x00000246 - adds r4, r7, r2 - ldrb r0, [r4] - ldrb r3, [r6, #2] - cmp r0, r3 - bne _08018F92 - b _080190D4 -_08018F92: - movs r0, #0x6c - bl m4aSongNumStart - ldr r0, _08018FB4 @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08018FA6 - b _080190E0 -_08018FA6: - ldrb r0, [r6, #2] - strb r0, [r4] - b _080190D4 - .align 2, 0 -_08018FAC: .4byte gMultiSioRecv -_08018FB0: .4byte 0x00000246 -_08018FB4: .4byte gMultiSioStatusFlags -_08018FB8: - cmp r2, #0x35 - bne _08019092 - movs r3, #1 - ldr r0, _08018FFC @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08019004 - movs r5, #1 - ldr r1, _08019000 @ =gMultiplayerConnections - ldrb r0, [r1] - asrs r0, r0, #1 - ands r0, r5 - cmp r0, #0 - beq _08019008 - adds r2, r6, #0 - adds r2, #0x14 - movs r4, #1 -_08018FDE: - ldrh r0, [r2] - cmp r0, #0x34 - bhi _08018FE6 - movs r3, #0 -_08018FE6: - adds r2, #0x14 - adds r5, #1 - cmp r5, #3 - bgt _08019008 - ldrb r0, [r1] - asrs r0, r5 - ands r0, r4 - cmp r0, #0 - bne _08018FDE - b _08019008 - .align 2, 0 -_08018FFC: .4byte gMultiSioStatusFlags -_08019000: .4byte gMultiplayerConnections -_08019004: - ldr r4, _0801903C @ =gMultiSioSend - strh r2, [r4] -_08019008: - cmp r3, #0 - beq _080190D4 - ldr r0, _08019040 @ =0x00000246 - adds r4, r7, r0 - ldrb r0, [r4] - ldrb r1, [r6, #2] - cmp r0, r1 - beq _08019022 - movs r0, #0x6c - bl m4aSongNumStart - ldrb r0, [r6, #2] - strb r0, [r4] -_08019022: - movs r0, #0x6a - bl m4aSongNumStart - ldrb r0, [r4] - cmp r0, #0 - bne _08019060 - ldr r1, _08019044 @ =gGameMode - ldrb r0, [r1] - cmp r0, #2 - bne _08019048 - movs r0, #3 - b _0801904A - .align 2, 0 -_0801903C: .4byte gMultiSioSend -_08019040: .4byte 0x00000246 -_08019044: .4byte gGameMode -_08019048: - movs r0, #5 -_0801904A: - strb r0, [r1] - ldr r0, _08019058 @ =gCurTask - ldr r1, [r0] - ldr r0, _0801905C @ =Task_8019348 - str r0, [r1, #8] - b _0801933A - .align 2, 0 -_08019058: .4byte gCurTask -_0801905C: .4byte Task_8019348 -_08019060: - ldr r1, _08019084 @ =gGameMode - ldrb r0, [r1] - cmp r0, #2 - beq _0801906A - movs r0, #4 -_0801906A: - strb r0, [r1] - ldr r0, _08019088 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r0, _08019084 @ =gGameMode - ldrb r0, [r0] - cmp r0, #2 - bne _0801908C - movs r0, #0 - bl CreateCourseSelect - b _0801933A - .align 2, 0 -_08019084: .4byte gGameMode -_08019088: .4byte gCurTask -_0801908C: - bl sub_8062F90 - b _0801933A -_08019092: - cmp r2, #0x35 - bls _080190D4 - ldr r1, _080190BC @ =0x0000FFFF - movs r0, #0 - bl TasksDestroyInPriorityRange - ldr r1, _080190C0 @ =gBackgroundsCopyQueueCursor - ldr r0, _080190C4 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _080190C8 @ =gBgSpritesCount - movs r0, #0 - strb r0, [r1] -_080190AC: - ldr r1, _080190CC @ =gVramGraphicsCopyCursor - ldr r0, _080190D0 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _0801933A - .align 2, 0 -_080190BC: .4byte 0x0000FFFF -_080190C0: .4byte gBackgroundsCopyQueueCursor -_080190C4: .4byte gBackgroundsCopyQueueIndex -_080190C8: .4byte gBgSpritesCount -_080190CC: .4byte gVramGraphicsCopyCursor -_080190D0: .4byte gVramGraphicsCopyQueueIndex -_080190D4: - ldr r0, _08019108 @ =gMultiSioStatusFlags - ldr r0, [r0] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080191B8 -_080190E0: - movs r4, #1 - ldr r2, _0801910C @ =gMultiSioSend - mov r8, r2 - movs r0, #0x34 - strh r0, [r2] - ldr r3, _08019110 @ =0x00000247 - adds r0, r7, r3 - ldrb r0, [r0] - cmp r0, #0 - bne _0801912C - ldr r0, _08019114 @ =gInput - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0801911C - ldr r1, _08019118 @ =0x00000246 - adds r0, r7, r1 - strb r4, [r0] - b _0801912C - .align 2, 0 -_08019108: .4byte gMultiSioStatusFlags -_0801910C: .4byte gMultiSioSend -_08019110: .4byte 0x00000247 -_08019114: .4byte gInput -_08019118: .4byte 0x00000246 -_0801911C: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0801912C - ldr r2, _080191A4 @ =0x00000246 - adds r1, r7, r2 - movs r0, #0 - strb r0, [r1] -_0801912C: - ldr r3, _080191A4 @ =0x00000246 - adds r0, r7, r3 - ldrb r0, [r0] - mov r1, r8 - strb r0, [r1, #2] - movs r5, #1 - ldr r1, _080191A8 @ =gMultiplayerConnections - ldrb r0, [r1] - asrs r0, r0, #1 - ands r0, r5 - movs r2, #0x80 - adds r2, r2, r7 - mov sb, r2 - movs r3, #0xb0 - adds r3, r3, r7 - mov sl, r3 - cmp r0, #0 - beq _08019172 - ldr r0, _080191AC @ =gMultiSioRecv - adds r2, r0, #0 - adds r2, #0x14 - movs r3, #1 -_08019158: - ldrh r0, [r2] - cmp r0, #0x33 - bhi _08019160 - movs r4, #0 -_08019160: - adds r2, #0x14 - adds r5, #1 - cmp r5, #3 - bgt _08019172 - ldrb r0, [r1] - asrs r0, r5 - ands r0, r3 - cmp r0, #0 - bne _08019158 -_08019172: - cmp r4, #0 - beq _08019182 - ldr r0, _080191B0 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801918C -_08019182: - ldr r4, _080191B4 @ =0x00000247 - adds r0, r7, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _080191DC -_0801918C: - movs r0, #0x35 - mov r1, r8 - strh r0, [r1] - ldr r2, _080191A4 @ =0x00000246 - adds r0, r7, r2 - ldrb r0, [r0] - strb r0, [r1, #2] - ldr r3, _080191B4 @ =0x00000247 - adds r1, r7, r3 - movs r0, #1 - strb r0, [r1] - b _080191DC - .align 2, 0 -_080191A4: .4byte 0x00000246 -_080191A8: .4byte gMultiplayerConnections -_080191AC: .4byte gMultiSioRecv -_080191B0: .4byte gPressedKeys -_080191B4: .4byte 0x00000247 -_080191B8: - ldr r4, _08019220 @ =gMultiSioSend - movs r0, #0x34 - strh r0, [r4] - movs r0, #0x80 - lsls r0, r0, #2 - adds r6, r7, r0 - adds r0, r6, #0 - bl UpdateSpriteAnimation - adds r0, r6, #0 - bl DisplaySprite - movs r1, #0x80 - adds r1, r1, r7 - mov sb, r1 - movs r2, #0xb0 - adds r2, r2, r7 - mov sl, r2 -_080191DC: - movs r3, #0xa0 - lsls r3, r3, #1 - adds r6, r7, r3 - ldr r4, _08019224 @ =0x00000246 - adds r3, r7, r4 - ldrb r0, [r3] - lsls r1, r0, #5 - adds r1, r1, r0 - lsls r1, r1, #2 - subs r1, r1, r0 - adds r1, #0x19 - strh r1, [r6, #0x16] - ldr r0, _08019228 @ =0x00000236 - adds r1, r7, r0 - ldrh r0, [r1] - adds r0, #0x10 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #3 - cmp r0, r2 - ble _0801920C - strh r2, [r1] -_0801920C: - ldrb r0, [r3] - cmp r0, #0 - bne _0801922C - movs r1, #0x8e - lsls r1, r1, #2 - adds r0, r7, r1 - ldrh r1, [r0] - adds r1, #1 - b _08019236 - .align 2, 0 -_08019220: .4byte gMultiSioSend -_08019224: .4byte 0x00000246 -_08019228: .4byte 0x00000236 -_0801922C: - movs r4, #0x8e - lsls r4, r4, #2 - adds r0, r7, r4 - ldrh r1, [r0] - subs r1, #1 -_08019236: - ldr r3, _080192D8 @ =0x000003FF - adds r2, r3, #0 - ands r1, r2 - strh r1, [r0] - ldr r4, _080192DC @ =0x00000236 - adds r1, r7, r4 - movs r0, #0 - ldrsh r3, [r1, r0] - ldr r5, _080192E0 @ =gSineTable - adds r4, #2 - adds r2, r7, r4 - ldrh r0, [r2] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r3, r0 - asrs r0, r0, #8 - ldr r3, _080192E4 @ =0x0000023A - adds r4, r7, r3 - strh r0, [r4] - movs r0, #0 - ldrsh r1, [r1, r0] - ldrh r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r1, r0 - asrs r0, r0, #8 - movs r1, #0x8f - lsls r1, r1, #2 - adds r3, r7, r1 - strh r0, [r3] - ldr r2, _080192E8 @ =0x0000023E - adds r1, r7, r2 - ldrh r0, [r4] - ldrh r4, [r1] - adds r0, r0, r4 - strh r0, [r1] - movs r0, #0x90 - lsls r0, r0, #2 - adds r2, r7, r0 - ldrh r0, [r3] - ldrh r3, [r2] - adds r0, r0, r3 - strh r0, [r2] - ldr r3, _080192EC @ =gBgScrollRegs - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r3, #4] - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r3, #6] - movs r4, #0x8c - lsls r4, r4, #2 - adds r2, r7, r4 - ldr r3, [r2] - adds r1, r3, #0 - adds r1, #0x80 - str r1, [r2] - movs r0, #0x88 - lsls r0, r0, #8 - cmp r1, r0 - ble _080192CC - ldr r1, _080192F0 @ =0xFFFF7880 - adds r0, r3, r1 - str r0, [r2] -_080192CC: - mov r6, sb - ldr r0, [r2] - rsbs r0, r0, #0 - lsls r0, r0, #8 - lsrs r4, r0, #0x10 - b _08019304 - .align 2, 0 -_080192D8: .4byte 0x000003FF -_080192DC: .4byte 0x00000236 -_080192E0: .4byte gSineTable -_080192E4: .4byte 0x0000023A -_080192E8: .4byte 0x0000023E -_080192EC: .4byte gBgScrollRegs -_080192F0: .4byte 0xFFFF7880 -_080192F4: - strh r4, [r6, #0x16] - movs r2, #0x88 - lsls r2, r2, #0x10 - adds r0, r1, r2 - lsrs r4, r0, #0x10 - adds r0, r6, #0 - bl DisplaySprite -_08019304: - lsls r1, r4, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0xef - ble _080192F4 - adds r4, r7, #0 - adds r4, #0xe0 - movs r5, #2 -_08019312: - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - adds r4, #0x30 - subs r5, #1 - cmp r5, #0 - bge _08019312 - mov r6, sl - movs r5, #0 -_0801932A: - lsls r0, r5, #5 - strh r0, [r6, #0x16] - adds r0, r6, #0 - bl DisplaySprite - adds r5, #1 - cmp r5, #7 - ble _0801932A -_0801933A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc b/sa1/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc deleted file mode 100644 index 2a22538448..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc +++ /dev/null @@ -1,636 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified - -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r0, #1 - str r0, [sp, #0xc] - add r0, sp, #8 - movs r1, #0 - movs r2, #2 - bl memset - ldr r0, _08019758 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r1 - mov r8, r0 - ldr r2, _0801975C @ =0x03000247 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _08019782 - ldr r0, _08019760 @ =gRepeatedKeys - ldrh r2, [r0] - movs r0, #0x10 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - cmp r5, #0 - beq _08019768 - ldr r3, _08019764 @ =0x03000246 - adds r4, r1, r3 - ldrb r0, [r4] - cmp r0, #0 - bne _0801974E - movs r0, #0x6c - bl m4aSongNumStart -_0801974E: - mov r0, sp - ldrb r0, [r0, #0xc] - strb r0, [r4] - b _08019782 - .align 2, 0 -_08019758: .4byte gCurTask -_0801975C: .4byte 0x03000247 -_08019760: .4byte gRepeatedKeys -_08019764: .4byte 0x03000246 -_08019768: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08019782 - ldr r2, _080197D0 @ =0x03000246 - adds r4, r1, r2 - ldrb r0, [r4] - cmp r0, #1 - bne _08019780 - movs r0, #0x6c - bl m4aSongNumStart -_08019780: - strb r5, [r4] -_08019782: - ldr r0, _080197D4 @ =gGameMode - ldrb r0, [r0] - ldr r7, _080197D8 @ =gMultiplayerConnections - cmp r0, #1 - bls _0801980A - movs r3, #0 - ldrb r0, [r7] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0801980A - movs r5, #1 - ldr r2, _080197DC @ =gMultiplayerMissingHeartbeats -_0801979C: - ldr r1, _080197E0 @ =gMultiSioStatusFlags - adds r0, r5, #0 - lsls r0, r3 - ldr r4, [r1] - ands r4, r0 - cmp r4, #0 - bne _080197F4 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _080197F8 - movs r0, #0 - ldr r1, _080197E4 @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _080197E8 @ =gBackgroundsCopyQueueCursor - ldr r0, _080197EC @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080197F0 @ =gBgSpritesCount - strb r4, [r0] - b _08019B0E - .align 2, 0 -_080197D0: .4byte 0x03000246 -_080197D4: .4byte gGameMode -_080197D8: .4byte gMultiplayerConnections -_080197DC: .4byte gMultiplayerMissingHeartbeats -_080197E0: .4byte gMultiSioStatusFlags -_080197E4: .4byte 0x0000FFFF -_080197E8: .4byte gBackgroundsCopyQueueCursor -_080197EC: .4byte gBackgroundsCopyQueueIndex -_080197F0: .4byte gBgSpritesCount -_080197F4: - movs r0, #0 - strb r0, [r2] -_080197F8: - adds r2, #1 - adds r3, #1 - cmp r3, #3 - bhi _0801980A - ldrb r0, [r7] - asrs r0, r3 - ands r0, r5 - cmp r0, #0 - bne _0801979C -_0801980A: - movs r6, #0 - ldrb r0, [r7] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080198F2 - mov sb, r7 - add r7, sp, #8 - movs r3, #0xe0 - mov sl, r3 - movs r0, #0 - str r0, [sp, #0x10] -_08019822: - ldr r0, _08019880 @ =gMultiSioRecv - ldr r1, [sp, #0x10] - adds r5, r1, r0 - ldrh r1, [r5] - adds r0, r1, #0 - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _080198D0 - cmp r1, #0x41 - beq _080198AE - mov r4, r8 - add r4, sl - ldrb r0, [r5, #2] - lsls r0, r0, #7 - adds r0, #0x2b - strh r0, [r4, #0x16] - adds r0, r4, #0 - bl DisplaySprite - movs r4, #0xd0 - lsls r4, r4, #1 - add r4, r8 - ldr r0, _08019884 @ =gUnknown_080BB484 - adds r0, r6, r0 - ldrb r0, [r0] - strh r0, [r4, #0x18] - ldrb r1, [r5, #2] - movs r0, #0x5e - muls r0, r1, r0 - adds r0, #0x4b - strh r0, [r4, #0x16] - ldrb r0, [r5, #2] - cmp r0, #0 - bne _0801988C - ldr r0, [r4, #0x10] - ldr r1, _08019888 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r4, #0x10] - movs r1, #0x10 - lsls r1, r6 - mov r2, sb - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - b _080198A2 - .align 2, 0 -_08019880: .4byte gMultiSioRecv -_08019884: .4byte gUnknown_080BB484 -_08019888: .4byte 0xFFFFFBFF -_0801988C: - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r4, #0x10] - movs r0, #0x10 - lsls r0, r6 - mov r3, sb - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] -_080198A2: - adds r0, r4, #0 - bl DisplaySprite - movs r0, #0 - str r0, [sp, #0xc] - b _080198D4 -_080198AE: - mov r4, r8 - add r4, sl - adds r0, r4, #0 - bl DisplaySprite - movs r1, #0x16 - ldrsh r0, [r4, r1] - cmp r0, #0x2b - bne _080198C8 - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _080198D4 -_080198C8: - ldrb r0, [r7, #1] - adds r0, #1 - strb r0, [r7, #1] - b _080198D4 -_080198D0: - movs r2, #0 - str r2, [sp, #0xc] -_080198D4: - movs r3, #0x30 - add sl, r3 - ldr r0, [sp, #0x10] - adds r0, #0x14 - str r0, [sp, #0x10] - adds r6, #1 - cmp r6, #3 - bgt _080198F2 - mov r1, sb - ldrb r0, [r1] - asrs r0, r6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08019822 -_080198F2: - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - ldr r2, [sp, #0xc] - cmp r2, #0 - beq _08019952 - add r0, sp, #8 - ldrb r0, [r0] - cmp r0, #0 - beq _0801990E - add r0, sp, #8 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0801991C -_0801990E: - ldr r1, _08019918 @ =0x00000247 - add r1, r8 - movs r0, #0 - strb r0, [r1] - b _08019952 - .align 2, 0 -_08019918: .4byte 0x00000247 -_0801991C: - ldr r0, _08019940 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r2, _08019944 @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldr r0, _08019948 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - bne _0801994C - movs r0, #0 - bl CreateCourseSelect - b _08019BEA - .align 2, 0 -_08019940: .4byte gCurTask -_08019944: .4byte gFlags -_08019948: .4byte gGameMode -_0801994C: - bl sub_8062F90 - b _08019BEA -_08019952: - movs r0, #8 - str r0, [sp] - movs r4, #0xf0 - str r4, [sp, #4] - movs r0, #0 - movs r1, #0x74 - movs r2, #0 - movs r3, #0x7c - bl sa2__sub_80064A8 - movs r0, #0x10 - str r0, [sp] - str r4, [sp, #4] - movs r0, #0 - movs r1, #0x7c - movs r2, #8 - movs r3, #0x74 - bl sa2__sub_80064A8 - ldr r2, _08019AC0 @ =0x040000D4 - ldr r0, _08019AC4 @ =gBgOffsetsHBlankPrimary - ldr r4, [r0] - ldr r0, _08019AC8 @ =gHBlankCopySize - ldrb r3, [r0] - lsls r0, r3, #4 - adds r1, r0, r4 - movs r7, #0x84 - lsls r7, r7, #0x18 - adds r5, r0, #0 - movs r6, #0x80 -_0801998E: - str r4, [r2] - str r1, [r2, #4] - lsls r0, r3, #4 - asrs r0, r0, #2 - orrs r0, r7 - str r0, [r2, #8] - ldr r0, [r2, #8] - adds r1, r1, r5 - subs r6, #0x10 - cmp r6, #0 - bge _0801998E - movs r2, #0x8e - lsls r2, r2, #2 - add r2, r8 - ldrh r0, [r2] - adds r0, #1 - ldr r3, _08019ACC @ =0x000003FF - adds r1, r3, #0 - ands r0, r1 - strh r0, [r2] - ldr r0, _08019AD0 @ =0x00000236 - add r0, r8 - movs r1, #0 - ldrsh r4, [r0, r1] - ldr r3, _08019AD4 @ =gSineTable - ldrh r1, [r2] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r4, #0 - muls r2, r0, r2 - lsls r2, r2, #8 - asrs r2, r2, #0x10 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r1, r4, #0 - muls r1, r0, r1 - lsls r1, r1, #8 - asrs r1, r1, #0x10 - ldr r3, _08019AD8 @ =0x0000023E - add r3, r8 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - movs r4, #0x90 - lsls r4, r4, #2 - add r4, r8 - ldrh r0, [r4] - adds r0, r0, r1 - strh r0, [r4] - ldr r5, _08019ADC @ =0x00000242 - add r5, r8 - ldrh r0, [r5] - subs r0, r0, r2 - strh r0, [r5] - movs r2, #0x91 - lsls r2, r2, #2 - add r2, r8 - ldrh r0, [r2] - subs r0, r0, r1 - strh r0, [r2] - ldr r1, _08019AE0 @ =gBgScrollRegs - ldrh r0, [r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #4] - ldrh r0, [r4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #6] - ldrh r0, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #8] - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - strh r0, [r1, #0xa] - ldr r4, _08019AE4 @ =gPressedKeys - ldrh r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08019A54 - movs r0, #0x6b - bl m4aSongNumStart - ldr r1, _08019AE8 @ =0x00000247 - add r1, r8 - movs r0, #0 - strb r0, [r1] -_08019A54: - ldr r0, _08019AEC @ =gInput - ldrh r1, [r0] - movs r0, #0x30 - ands r0, r1 - cmp r0, #0 - bne _08019A90 - ldrh r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08019A90 - ldr r0, _08019AF0 @ =0x00000246 - add r0, r8 - ldrb r2, [r0] - cmp r2, #0 - bne _08019A80 - mov r1, sb - subs r1, #1 - add r0, sp, #8 - ldrb r0, [r0] - cmp r1, r0 - bne _08019A9A -_08019A80: - cmp r2, #1 - bne _08019A90 - mov r0, sb - subs r0, #1 - add r1, sp, #8 - ldrb r1, [r1, #1] - cmp r0, r1 - bne _08019A9A -_08019A90: - ldr r0, _08019AE8 @ =0x00000247 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0 - beq _08019B34 -_08019A9A: - ldr r4, _08019AE8 @ =0x00000247 - add r4, r8 - ldrb r0, [r4] - cmp r0, #0 - bne _08019AAA - movs r0, #0x6a - bl m4aSongNumStart -_08019AAA: - ldr r5, _08019AF4 @ =gMultiSioSend - movs r0, #0x41 - strh r0, [r5] - ldr r0, _08019AF0 @ =0x00000246 - add r0, r8 - ldrb r0, [r0] - strb r0, [r5, #2] - movs r0, #1 - strb r0, [r4] - b _08019B42 - .align 2, 0 -_08019AC0: .4byte 0x040000D4 -_08019AC4: .4byte gBgOffsetsHBlankPrimary -_08019AC8: .4byte gHBlankCopySize -_08019ACC: .4byte 0x000003FF -_08019AD0: .4byte 0x00000236 -_08019AD4: .4byte gSineTable -_08019AD8: .4byte 0x0000023E -_08019ADC: .4byte 0x00000242 -_08019AE0: .4byte gBgScrollRegs -_08019AE4: .4byte gPressedKeys -_08019AE8: .4byte 0x00000247 -_08019AEC: .4byte gInput -_08019AF0: .4byte 0x00000246 -_08019AF4: .4byte gMultiSioSend -_08019AF8: - ldr r1, _08019B1C @ =0x0000FFFF - movs r0, #0 - bl TasksDestroyInPriorityRange - ldr r1, _08019B20 @ =gBackgroundsCopyQueueCursor - ldr r0, _08019B24 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08019B28 @ =gBgSpritesCount - movs r0, #0 - strb r0, [r1] -_08019B0E: - ldr r1, _08019B2C @ =gVramGraphicsCopyCursor - ldr r0, _08019B30 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _08019BEA - .align 2, 0 -_08019B1C: .4byte 0x0000FFFF -_08019B20: .4byte gBackgroundsCopyQueueCursor -_08019B24: .4byte gBackgroundsCopyQueueIndex -_08019B28: .4byte gBgSpritesCount -_08019B2C: .4byte gVramGraphicsCopyCursor -_08019B30: .4byte gVramGraphicsCopyQueueIndex -_08019B34: - ldr r5, _08019BFC @ =gMultiSioSend - movs r0, #0x40 - strh r0, [r5] - ldr r0, _08019C00 @ =0x00000246 - add r0, r8 - ldrb r0, [r0] - strb r0, [r5, #2] -_08019B42: - movs r6, #0 - ldr r0, _08019C04 @ =gMultiplayerConnections - ldrb r1, [r0] - movs r2, #1 - ands r1, r2 - adds r7, r0, #0 - cmp r1, #0 - beq _08019B7E - movs r2, #0 -_08019B54: - ldr r0, _08019C08 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r0, r6 - beq _08019B6A - ldr r0, _08019C0C @ =gMultiSioRecv - adds r5, r2, r0 - ldrh r0, [r5] - cmp r0, #0x41 - bhi _08019AF8 -_08019B6A: - adds r2, #0x14 - adds r6, #1 - cmp r6, #3 - bgt _08019B7E - ldrb r0, [r7] - asrs r0, r6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08019B54 -_08019B7E: - mov r4, r8 - adds r4, #0x80 - movs r2, #0x8c - lsls r2, r2, #2 - add r2, r8 - ldr r3, [r2] - adds r1, r3, #0 - adds r1, #0x80 - str r1, [r2] - movs r0, #0xa4 - lsls r0, r0, #8 - cmp r1, r0 - ble _08019B9E - ldr r1, _08019C10 @ =0xFFFF5C80 - adds r0, r3, r1 - str r0, [r2] -_08019B9E: - ldr r0, [r2] - rsbs r0, r0, #0 - lsls r0, r0, #8 - lsrs r5, r0, #0x10 - lsls r1, r5, #0x10 - asrs r0, r1, #0x10 - mov r6, r8 - adds r6, #0xb0 - cmp r0, #0xef - bgt _08019BCA -_08019BB2: - strh r5, [r4, #0x16] - movs r2, #0xa4 - lsls r2, r2, #0x10 - adds r0, r1, r2 - lsrs r5, r0, #0x10 - adds r0, r4, #0 - bl DisplaySprite - lsls r1, r5, #0x10 - asrs r0, r1, #0x10 - cmp r0, #0xef - ble _08019BB2 -_08019BCA: - movs r4, #0xe8 - lsls r4, r4, #1 - add r4, r8 - adds r0, r4, #0 - bl DisplaySprite - adds r4, r6, #0 - movs r6, #0 -_08019BDA: - lsls r0, r6, #5 - strh r0, [r4, #0x16] - adds r0, r4, #0 - bl DisplaySprite - adds r6, #1 - cmp r6, #7 - ble _08019BDA -_08019BEA: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08019BFC: .4byte gMultiSioSend -_08019C00: .4byte 0x00000246 -_08019C04: .4byte gMultiplayerConnections -_08019C08: .4byte 0x04000128 -_08019C0C: .4byte gMultiSioRecv -_08019C10: .4byte 0xFFFF5C80 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc b/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc deleted file mode 100644 index 95096aa10b..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_FlippedGravity.inc +++ /dev/null @@ -1,641 +0,0 @@ -.include "constants/gba_constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r0, _08041644 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 - str r0, [sp, #4] - ldr r0, _08041648 @ =0x03000030 - adds r5, r1, r0 - ldr r2, [sp, #4] - mov sl, r2 - ldr r3, _0804164C @ =0x03000330 - adds r0, r1, r3 - ldr r0, [r0] - str r0, [sp, #8] - ldr r4, _08041650 @ =0x03000334 - adds r1, r1, r4 - ldrh r1, [r1] - str r1, [sp, #0xc] - movs r0, #0 - str r0, [sp, #0x10] - mov r0, sl - bl UpdateSpriteAnimation - movs r1, #0 - str r1, [sp, #0x14] -_08041634: - ldrh r0, [r5, #0xc] - cmp r0, #0 - bne _08041654 - adds r5, #0x10 - ldr r2, [sp, #0x14] - adds r2, #1 - mov sb, r2 - b _08041AAE - .align 2, 0 -_08041644: .4byte gCurTask -_08041648: .4byte 0x03000030 -_0804164C: .4byte 0x03000330 -_08041650: .4byte 0x03000334 -_08041654: - movs r3, #8 - ldrsh r0, [r5, r3] - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - movs r4, #0xa - ldrsh r2, [r5, r4] - ldr r0, [r5, #4] - adds r0, r0, r2 - str r0, [r5, #4] - asrs r7, r1, #8 - asrs r0, r0, #8 - mov r8, r0 - ldr r1, _08041814 @ =gCamera - movs r2, #0 - ldrsh r0, [r1, r2] - subs r0, r7, r0 - str r0, [sp, #0x18] - movs r3, #2 - ldrsh r0, [r1, r3] - mov r4, r8 - subs r4, r4, r0 - str r4, [sp, #0x1c] - ldr r6, _08041818 @ =gPlayer - ldr r2, [r6, #0x64] - ldrh r0, [r5, #0xc] - mov ip, r0 - ldr r1, [sp, #0xc] - cmp ip, r1 - bgt _08041706 - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _080416A4 - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - bne _08041706 -_080416A4: - cmp r1, #0x28 - beq _08041706 - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08041706 - adds r4, r2, #0 - adds r4, #0x38 - adds r2, r7, #0 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _080416D4 - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _080416E0 - cmp r2, r1 - blt _08041706 -_080416D4: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041706 -_080416E0: - mov r2, r8 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _080416FA - cmp r8, r1 - bge _080417A4 - cmp r2, r1 - blt _08041706 -_080416FA: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - bge _080417A4 -_08041706: - ldr r0, _0804181C @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _08041714 - b _08041838 -_08041714: - ldr r6, _08041820 @ =gPartner - ldr r2, [r6, #0x64] - adds r1, r5, #0 - adds r1, #0x10 - str r1, [sp, #0x20] - ldr r3, [sp, #0x14] - adds r3, #1 - mov sb, r3 - ldr r4, [sp, #0xc] - cmp ip, r4 - ble _0804172C - b _08041958 -_0804172C: - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _08041742 - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - beq _08041742 - b _08041838 -_08041742: - cmp r1, #0x28 - beq _08041838 - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08041838 - adds r4, r2, #0 - adds r4, #0x38 - adds r2, r7, #0 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08041772 - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _0804177E - cmp r2, r1 - blt _08041838 -_08041772: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041838 -_0804177E: - mov r2, r8 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08041798 - cmp r8, r1 - bge _080417A4 - cmp r2, r1 - blt _08041838 -_08041798: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041838 -_080417A4: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - mov r4, r8 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - ldr r1, _08041824 @ =gRingCount - ldrh r6, [r1] - adds r0, r6, #1 - strh r0, [r1] - ldr r0, _08041828 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - beq _080417F2 - ldrh r0, [r1] - movs r1, #0x64 - bl Div - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #0x64 - bl Div - cmp r4, r0 - beq _080417F2 - ldr r0, _0804182C @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _080417F2 - ldr r1, _08041830 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08041834 @ =gMusicManagerState - movs r0, #0x10 - strb r0, [r1, #3] -_080417F2: - ldr r0, _0804182C @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _08041806 - ldr r1, _08041824 @ =gRingCount - ldrh r0, [r1] - cmp r0, #0xff - bls _08041806 - movs r0, #0xff - strh r0, [r1] -_08041806: - movs r0, #0 - strh r0, [r5, #0xc] - adds r5, #0x10 - ldr r0, [sp, #0x14] - adds r0, #1 - mov sb, r0 - b _08041AAE - .align 2, 0 -_08041814: .4byte gCamera -_08041818: .4byte gPlayer -_0804181C: .4byte gNumSingleplayerCharacters -_08041820: .4byte gPartner -_08041824: .4byte gRingCount -_08041828: .4byte gCurrentLevel -_0804182C: .4byte gGameMode -_08041830: .4byte gNumLives -_08041834: .4byte gMusicManagerState -_08041838: - adds r1, r5, #0 - adds r1, #0x10 - str r1, [sp, #0x20] - ldr r2, [sp, #0x14] - adds r2, #1 - mov sb, r2 - ldr r3, [sp, #0xc] - cmp ip, r3 - ble _0804184C - b _08041958 -_0804184C: - movs r6, #0 -_0804184E: - ldr r0, _08041880 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r6, r0 - beq _0804194C - ldr r1, _08041884 @ =gMultiplayerPlayerTasks - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0804194C - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r4 - mov ip, r0 - ldr r0, _08041888 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _0804188C - mov r1, ip - ldrb r0, [r1, #0xa] - b _080418AE - .align 2, 0 -_08041880: .4byte 0x04000128 -_08041884: .4byte gMultiplayerPlayerTasks -_08041888: .4byte gGameMode -_0804188C: - mov r2, ip - ldrb r1, [r2, #0xa] - ldr r2, _08041940 @ =gMultiplayerCharacters - ldr r3, _08041944 @ =0x03000056 - adds r0, r4, r3 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldr r4, _08041948 @ =gPlayerCharacterIdleAnims - adds r0, r0, r4 - ldrb r0, [r0] - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 -_080418AE: - cmp r0, #0x13 - beq _080418B6 - cmp r0, #0x15 - bne _080418C4 -_080418B6: - mov r0, ip - adds r0, #0x54 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0804194C -_080418C4: - adds r3, r7, #0 - subs r3, #8 - mov r0, ip - adds r0, #0x50 - movs r2, #0 - ldrsh r1, [r0, r2] - subs r0, #0x24 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r1, r1, r2 - cmp r3, r1 - bgt _080418E8 - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _080418FA - cmp r3, r1 - blt _0804194C -_080418E8: - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r1, r0 - cmp r0, r3 - blt _0804194C -_080418FA: - mov r3, r8 - subs r3, #0x10 - mov r0, ip - adds r0, #0x52 - movs r4, #0 - ldrsh r0, [r0, r4] - mov r1, ip - adds r1, #0x2d - movs r2, #0 - ldrsb r2, [r1, r2] - adds r1, r0, r2 - cmp r3, r1 - bgt _0804191C - cmp r8, r1 - bge _0804192E - cmp r3, r1 - blt _0804194C -_0804191C: - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r1, r0 - cmp r0, r3 - blt _0804194C -_0804192E: - lsls r0, r7, #0x10 - mov r2, r8 - lsls r1, r2, #0x10 - asrs r0, r0, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - movs r0, #0 - b _08041AAA - .align 2, 0 -_08041940: .4byte gMultiplayerCharacters -_08041944: .4byte 0x03000056 -_08041948: .4byte gPlayerCharacterIdleAnims -_0804194C: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bhi _08041958 - b _0804184E -_08041958: - movs r3, #0xa - ldrsh r0, [r5, r3] - cmp r0, #0 - bge _0804198C - mov r0, r8 - subs r0, #0x10 - movs r4, #0xe - ldrsh r2, [r5, r4] - ldr r1, _08041A2C @ =sa2__sub_801EC3C - str r1, [sp] - adds r1, r7, #0 - movs r3, #8 - rsbs r3, r3, #0 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _0804198C - lsls r1, r0, #8 - ldr r0, [r5, #4] - subs r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_0804198C: - ldr r1, [sp, #4] - ldr r2, _08041A30 @ =0x00000336 - adds r0, r1, r2 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080419CC - movs r3, #0xa - ldrsh r0, [r5, r3] - cmp r0, #0 - ble _080419CC - movs r4, #0xe - ldrsh r2, [r5, r4] - ldr r0, _08041A2C @ =sa2__sub_801EC3C - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - movs r3, #8 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _080419CC - lsls r1, r0, #8 - ldr r0, [r5, #4] - adds r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_080419CC: - ldrh r0, [r5, #0xa] - ldr r1, [sp, #8] - subs r0, r0, r1 - strh r0, [r5, #0xa] - ldr r0, [sp, #0x18] - adds r0, #7 - cmp r0, #0xfe - bhi _08041AA6 - movs r0, #8 - rsbs r0, r0, #0 - ldr r2, [sp, #0x1c] - cmp r2, r0 - ble _08041AA6 - cmp r2, #0xa7 - bgt _08041AA6 - ldrh r0, [r5, #0xc] - cmp r0, #0x1f - bhi _080419FC - ldr r0, _08041A34 @ =gStageTime - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08041AA6 -_080419FC: - mov r2, sl - adds r2, #0x23 - ldr r3, [sp, #0x10] - cmp r3, #0 - beq _08041A0E - adds r1, r2, #0 - ldrb r0, [r1] - cmp r0, #0xff - bne _08041A38 -_08041A0E: - movs r0, #0xff - strb r0, [r2] - mov r4, sp - ldrh r0, [r4, #0x18] - mov r4, sl - strh r0, [r4, #0x16] - mov r1, sp - ldrh r1, [r1, #0x1c] - strh r1, [r4, #0x18] - mov r0, sl - bl DisplaySprite - movs r2, #1 - str r2, [sp, #0x10] - b _08041AA6 - .align 2, 0 -_08041A2C: .4byte sa2__sub_801EC3C -_08041A30: .4byte 0x00000336 -_08041A34: .4byte gStageTime -_08041A38: - ldrb r0, [r1] - lsls r0, r0, #3 - ldr r1, _08041AC8 @ =gOamMallocBuffer - adds r4, r0, r1 - mov r3, sl - ldrh r0, [r3, #0x1a] - movs r2, #0xf8 - lsls r2, r2, #3 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #6 - bl OamMalloc - adds r3, r0, #0 - ldr r0, _08041ACC @ =iwram_end - ldr r0, [r0] - cmp r0, r3 - beq _08041AA6 - ldr r1, _08041AD0 @ =0x040000D4 - str r4, [r1] - str r3, [r1, #4] - ldr r0, _08041AD4 @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldrh r2, [r3] - movs r4, #0xff - lsls r4, r4, #8 - adds r0, r4, #0 - ands r2, r0 - strh r2, [r3] - mov r1, sl - ldr r0, [r1, #0xc] - ldrh r0, [r0, #0xa] - ldr r4, [sp, #0x1c] - subs r0, r4, r0 - movs r1, #0xff - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3] - ldrh r2, [r3, #2] - movs r1, #0xfe - lsls r1, r1, #8 - adds r0, r1, #0 - ands r2, r0 - strh r2, [r3, #2] - mov r4, sl - ldr r0, [r4, #0xc] - ldrh r0, [r0, #8] - ldr r1, [sp, #0x18] - subs r0, r1, r0 - ldr r4, _08041AD8 @ =0x000001FF - adds r1, r4, #0 - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3, #2] -_08041AA6: - ldrh r0, [r5, #0xc] - subs r0, #1 -_08041AAA: - strh r0, [r5, #0xc] - ldr r5, [sp, #0x20] -_08041AAE: - mov r0, sb - str r0, [sp, #0x14] - cmp r0, #0x2f - bgt _08041AB8 - b _08041634 -_08041AB8: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08041AC8: .4byte gOamMallocBuffer -_08041ACC: .4byte iwram_end -_08041AD0: .4byte 0x040000D4 -_08041AD4: .4byte 0x80000003 -_08041AD8: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc b/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc deleted file mode 100644 index 89d15e24b7..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterMultipak_NormalGravity.inc +++ /dev/null @@ -1,642 +0,0 @@ -.include "constants/gba_constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - ldr r0, _08041B2C @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 - str r0, [sp, #4] - ldr r0, _08041B30 @ =0x03000030 - adds r5, r1, r0 - ldr r2, [sp, #4] - str r2, [sp, #8] - ldr r3, _08041B34 @ =0x03000330 - adds r0, r1, r3 - ldr r0, [r0] - str r0, [sp, #0xc] - ldr r4, _08041B38 @ =0x03000334 - adds r1, r1, r4 - ldrh r1, [r1] - str r1, [sp, #0x10] - movs r0, #0 - str r0, [sp, #0x14] - adds r0, r2, #0 - bl UpdateSpriteAnimation - movs r1, #0 - str r1, [sp, #0x18] -_08041B1C: - ldrh r0, [r5, #0xc] - cmp r0, #0 - bne _08041B3C - adds r5, #0x10 - ldr r2, [sp, #0x18] - adds r2, #1 - mov sl, r2 - b _08041F9A - .align 2, 0 -_08041B2C: .4byte gCurTask -_08041B30: .4byte 0x03000030 -_08041B34: .4byte 0x03000330 -_08041B38: .4byte 0x03000334 -_08041B3C: - movs r3, #8 - ldrsh r0, [r5, r3] - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - movs r4, #0xa - ldrsh r2, [r5, r4] - ldr r0, [r5, #4] - adds r0, r0, r2 - str r0, [r5, #4] - asrs r1, r1, #8 - mov sb, r1 - mov r8, sb - asrs r7, r0, #8 - ldr r1, _08041D00 @ =gCamera - movs r2, #0 - ldrsh r0, [r1, r2] - mov r3, sb - subs r3, r3, r0 - str r3, [sp, #0x1c] - movs r4, #2 - ldrsh r0, [r1, r4] - subs r0, r7, r0 - str r0, [sp, #0x20] - ldr r6, _08041D04 @ =gPlayer - ldr r2, [r6, #0x64] - ldrh r0, [r5, #0xc] - mov ip, r0 - ldr r1, [sp, #0x10] - cmp ip, r1 - bgt _08041BF0 - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _08041B8E - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - bne _08041BF0 -_08041B8E: - cmp r1, #0x28 - beq _08041BF0 - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08041BF0 - adds r4, r2, #0 - adds r4, #0x38 - mov r2, sb - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08041BBE - mov r0, sb - adds r0, #8 - cmp r0, r1 - bge _08041BCA - cmp r2, r1 - blt _08041BF0 -_08041BBE: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041BF0 -_08041BCA: - adds r2, r7, #0 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08041BE4 - cmp r7, r1 - bge _08041C8E - cmp r2, r1 - blt _08041BF0 -_08041BE4: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - bge _08041C8E -_08041BF0: - ldr r0, _08041D08 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _08041BFE - b _08041D24 -_08041BFE: - ldr r6, _08041D0C @ =gPartner - ldr r2, [r6, #0x64] - adds r1, r5, #0 - adds r1, #0x10 - str r1, [sp, #0x24] - ldr r3, [sp, #0x18] - adds r3, #1 - mov sl, r3 - ldr r4, [sp, #0x10] - cmp ip, r4 - ble _08041C16 - b _08041E44 -_08041C16: - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _08041C2C - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - beq _08041C2C - b _08041D24 -_08041C2C: - cmp r1, #0x28 - beq _08041D24 - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08041D24 - adds r4, r2, #0 - adds r4, #0x38 - mov r2, r8 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08041C5C - mov r0, r8 - adds r0, #8 - cmp r0, r1 - bge _08041C68 - cmp r2, r1 - blt _08041D24 -_08041C5C: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041D24 -_08041C68: - adds r2, r7, #0 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08041C82 - cmp r7, r1 - bge _08041C8E - cmp r2, r1 - blt _08041D24 -_08041C82: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041D24 -_08041C8E: - mov r4, r8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - ldr r1, _08041D10 @ =gRingCount - ldrh r6, [r1] - adds r0, r6, #1 - strh r0, [r1] - ldr r0, _08041D14 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - beq _08041CDC - ldrh r0, [r1] - movs r1, #0x64 - bl Div - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #0x64 - bl Div - cmp r4, r0 - beq _08041CDC - ldr r0, _08041D18 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08041CDC - ldr r1, _08041D1C @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08041D20 @ =gMusicManagerState - movs r0, #0x10 - strb r0, [r1, #3] -_08041CDC: - ldr r0, _08041D18 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _08041CF0 - ldr r1, _08041D10 @ =gRingCount - ldrh r0, [r1] - cmp r0, #0xff - bls _08041CF0 - movs r0, #0xff - strh r0, [r1] -_08041CF0: - movs r0, #0 - strh r0, [r5, #0xc] - adds r5, #0x10 - ldr r0, [sp, #0x18] - adds r0, #1 - mov sl, r0 - b _08041F9A - .align 2, 0 -_08041D00: .4byte gCamera -_08041D04: .4byte gPlayer -_08041D08: .4byte gNumSingleplayerCharacters -_08041D0C: .4byte gPartner -_08041D10: .4byte gRingCount -_08041D14: .4byte gCurrentLevel -_08041D18: .4byte gGameMode -_08041D1C: .4byte gNumLives -_08041D20: .4byte gMusicManagerState -_08041D24: - adds r1, r5, #0 - adds r1, #0x10 - str r1, [sp, #0x24] - ldr r2, [sp, #0x18] - adds r2, #1 - mov sl, r2 - ldr r3, [sp, #0x10] - cmp ip, r3 - ble _08041D38 - b _08041E44 -_08041D38: - movs r6, #0 -_08041D3A: - ldr r0, _08041D6C @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r6, r0 - beq _08041E38 - ldr r1, _08041D70 @ =gMultiplayerPlayerTasks - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _08041E38 - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r0, r4 - mov ip, r0 - ldr r0, _08041D74 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _08041D78 - mov r1, ip - ldrb r0, [r1, #0xa] - b _08041D9A - .align 2, 0 -_08041D6C: .4byte 0x04000128 -_08041D70: .4byte gMultiplayerPlayerTasks -_08041D74: .4byte gGameMode -_08041D78: - mov r2, ip - ldrb r1, [r2, #0xa] - ldr r2, _08041E2C @ =gMultiplayerCharacters - ldr r3, _08041E30 @ =0x03000056 - adds r0, r4, r3 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldr r4, _08041E34 @ =gPlayerCharacterIdleAnims - adds r0, r0, r4 - ldrb r0, [r0] - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r0, r1, #0x18 -_08041D9A: - cmp r0, #0x13 - beq _08041DA2 - cmp r0, #0x15 - bne _08041DB0 -_08041DA2: - mov r0, ip - adds r0, #0x54 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08041E38 -_08041DB0: - mov r3, r8 - subs r3, #8 - mov r0, ip - adds r0, #0x50 - movs r2, #0 - ldrsh r1, [r0, r2] - subs r0, #0x24 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r1, r1, r2 - cmp r3, r1 - bgt _08041DD4 - mov r0, r8 - adds r0, #8 - cmp r0, r1 - bge _08041DE6 - cmp r3, r1 - blt _08041E38 -_08041DD4: - mov r0, ip - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r1, r0 - cmp r0, r3 - blt _08041E38 -_08041DE6: - adds r3, r7, #0 - subs r3, #0x10 - mov r0, ip - adds r0, #0x52 - movs r4, #0 - ldrsh r0, [r0, r4] - mov r1, ip - adds r1, #0x2d - movs r2, #0 - ldrsb r2, [r1, r2] - adds r1, r0, r2 - cmp r3, r1 - bgt _08041E08 - cmp r7, r1 - bge _08041E1A - cmp r3, r1 - blt _08041E38 -_08041E08: - mov r0, ip - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r2 - adds r0, r1, r0 - cmp r0, r3 - blt _08041E38 -_08041E1A: - mov r1, r8 - lsls r0, r1, #0x10 - lsls r1, r7, #0x10 - asrs r0, r0, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - movs r0, #0 - b _08041F96 - .align 2, 0 -_08041E2C: .4byte gMultiplayerCharacters -_08041E30: .4byte 0x03000056 -_08041E34: .4byte gPlayerCharacterIdleAnims -_08041E38: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bhi _08041E44 - b _08041D3A -_08041E44: - movs r2, #0xa - ldrsh r0, [r5, r2] - cmp r0, #0 - ble _08041E74 - movs r3, #0xe - ldrsh r2, [r5, r3] - ldr r0, _08041F18 @ =sa2__sub_801EC3C - str r0, [sp] - adds r0, r7, #0 - mov r1, sb - movs r3, #8 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _08041E74 - lsls r1, r0, #8 - ldr r0, [r5, #4] - adds r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_08041E74: - ldr r4, [sp, #4] - ldr r1, _08041F1C @ =0x00000336 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08041EB8 - movs r2, #0xa - ldrsh r0, [r5, r2] - cmp r0, #0 - bge _08041EB8 - adds r0, r7, #0 - subs r0, #0x10 - movs r3, #0xe - ldrsh r2, [r5, r3] - ldr r1, _08041F18 @ =sa2__sub_801EC3C - str r1, [sp] - mov r1, sb - movs r3, #8 - rsbs r3, r3, #0 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _08041EB8 - lsls r1, r0, #8 - ldr r0, [r5, #4] - subs r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_08041EB8: - ldrh r0, [r5, #0xa] - ldr r4, [sp, #0xc] - adds r0, r0, r4 - strh r0, [r5, #0xa] - ldr r0, [sp, #0x1c] - adds r0, #7 - cmp r0, #0xfe - bhi _08041F92 - movs r0, #8 - rsbs r0, r0, #0 - ldr r1, [sp, #0x20] - cmp r1, r0 - ble _08041F92 - cmp r1, #0xa7 - bgt _08041F92 - ldrh r0, [r5, #0xc] - cmp r0, #0x1f - bhi _08041EE8 - ldr r0, _08041F20 @ =gStageTime - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08041F92 -_08041EE8: - ldr r2, [sp, #8] - adds r2, #0x23 - ldr r3, [sp, #0x14] - cmp r3, #0 - beq _08041EFA - adds r1, r2, #0 - ldrb r0, [r1] - cmp r0, #0xff - bne _08041F24 -_08041EFA: - movs r0, #0xff - strb r0, [r2] - mov r4, sp - ldrh r0, [r4, #0x1c] - ldr r4, [sp, #8] - strh r0, [r4, #0x16] - mov r1, sp - ldrh r1, [r1, #0x20] - strh r1, [r4, #0x18] - ldr r0, [sp, #8] - bl DisplaySprite - movs r2, #1 - str r2, [sp, #0x14] - b _08041F92 - .align 2, 0 -_08041F18: .4byte sa2__sub_801EC3C -_08041F1C: .4byte 0x00000336 -_08041F20: .4byte gStageTime -_08041F24: - ldrb r0, [r1] - lsls r0, r0, #3 - ldr r1, _08041FB4 @ =gOamMallocBuffer - adds r4, r0, r1 - ldr r3, [sp, #8] - ldrh r0, [r3, #0x1a] - movs r2, #0xf8 - lsls r2, r2, #3 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #6 - bl OamMalloc - adds r3, r0, #0 - ldr r0, _08041FB8 @ =iwram_end - ldr r0, [r0] - cmp r0, r3 - beq _08041F92 - ldr r1, _08041FBC @ =0x040000D4 - str r4, [r1] - str r3, [r1, #4] - ldr r0, _08041FC0 @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldrh r2, [r3] - movs r4, #0xff - lsls r4, r4, #8 - adds r0, r4, #0 - ands r2, r0 - strh r2, [r3] - ldr r1, [sp, #8] - ldr r0, [r1, #0xc] - ldrh r0, [r0, #0xa] - ldr r4, [sp, #0x20] - subs r0, r4, r0 - movs r1, #0xff - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3] - ldrh r2, [r3, #2] - movs r1, #0xfe - lsls r1, r1, #8 - adds r0, r1, #0 - ands r2, r0 - strh r2, [r3, #2] - ldr r4, [sp, #8] - ldr r0, [r4, #0xc] - ldrh r0, [r0, #8] - ldr r1, [sp, #0x1c] - subs r0, r1, r0 - ldr r4, _08041FC4 @ =0x000001FF - adds r1, r4, #0 - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3, #2] -_08041F92: - ldrh r0, [r5, #0xc] - subs r0, #1 -_08041F96: - strh r0, [r5, #0xc] - ldr r5, [sp, #0x24] -_08041F9A: - mov r0, sl - str r0, [sp, #0x18] - cmp r0, #0x2f - bgt _08041FA4 - b _08041B1C -_08041FA4: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08041FB4: .4byte gOamMallocBuffer -_08041FB8: .4byte iwram_end -_08041FBC: .4byte 0x040000D4 -_08041FC0: .4byte 0x80000003 -_08041FC4: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc b/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc deleted file mode 100644 index 298263658a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_FlippedGravity.inc +++ /dev/null @@ -1,533 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _08040EC0 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 - str r0, [sp, #4] - ldr r0, _08040EC4 @ =0x03000030 - adds r5, r1, r0 - ldr r2, [sp, #4] - mov sb, r2 - ldr r3, _08040EC8 @ =0x03000330 - adds r0, r1, r3 - ldr r0, [r0] - str r0, [sp, #8] - ldr r4, _08040ECC @ =0x03000334 - adds r1, r1, r4 - ldrh r1, [r1] - str r1, [sp, #0xc] - movs r0, #0 - str r0, [sp, #0x10] - mov r0, sb - bl UpdateSpriteAnimation - movs r1, #0x2f - str r1, [sp, #0x14] -_08040D9C: - ldrh r0, [r5, #0xc] - cmp r0, #0 - bne _08040DA4 - b _08041154 -_08040DA4: - movs r2, #8 - ldrsh r0, [r5, r2] - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - movs r3, #0xa - ldrsh r2, [r5, r3] - ldr r0, [r5, #4] - adds r0, r0, r2 - str r0, [r5, #4] - asrs r7, r1, #8 - asrs r0, r0, #8 - mov r8, r0 - ldr r4, _08040ED0 @ =gCamera - movs r1, #0 - ldrsh r0, [r4, r1] - subs r0, r7, r0 - str r0, [sp, #0x18] - movs r2, #2 - ldrsh r0, [r4, r2] - mov r3, r8 - subs r3, r3, r0 - mov sl, r3 - ldr r6, _08040ED4 @ =gPlayer - ldr r2, [r6, #0x64] - ldrh r4, [r5, #0xc] - mov ip, r4 - ldr r0, [sp, #0xc] - cmp ip, r0 - ble _08040DE2 - b _08040EEC -_08040DE2: - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _08040DF8 - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - beq _08040DF8 - b _08040EEC -_08040DF8: - cmp r1, #0x28 - beq _08040EEC - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08040EEC - adds r4, r2, #0 - adds r4, #0x38 - adds r2, r7, #0 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08040E28 - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _08040E34 - cmp r2, r1 - blt _08040EEC -_08040E28: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08040EEC -_08040E34: - mov r2, r8 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08040E4E - cmp r8, r1 - bge _08040E5A - cmp r2, r1 - blt _08040EEC -_08040E4E: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08040EEC -_08040E5A: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - mov r4, r8 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - ldr r1, _08040ED8 @ =gRingCount - ldrh r6, [r1] - adds r0, r6, #1 - strh r0, [r1] - ldr r0, _08040EDC @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - beq _08040EA8 - ldrh r0, [r1] - movs r1, #0x64 - bl Div - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #0x64 - bl Div - cmp r4, r0 - beq _08040EA8 - ldr r0, _08040EE0 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08040EA8 - ldr r1, _08040EE4 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08040EE8 @ =gMusicManagerState - movs r0, #0x10 - strb r0, [r1, #3] -_08040EA8: - ldr r0, _08040EE0 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _08040EBC - ldr r1, _08040ED8 @ =gRingCount - ldrh r0, [r1] - cmp r0, #0xff - bls _08040EBC - movs r0, #0xff - strh r0, [r1] -_08040EBC: - movs r0, #0 - b _08041152 - .align 2, 0 -_08040EC0: .4byte gCurTask -_08040EC4: .4byte 0x03000030 -_08040EC8: .4byte 0x03000330 -_08040ECC: .4byte 0x03000334 -_08040ED0: .4byte gCamera -_08040ED4: .4byte gPlayer -_08040ED8: .4byte gRingCount -_08040EDC: .4byte gCurrentLevel -_08040EE0: .4byte gGameMode -_08040EE4: .4byte gNumLives -_08040EE8: .4byte gMusicManagerState -_08040EEC: - ldr r0, _08040FE4 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _08040EFA - b _08041000 -_08040EFA: - ldr r6, _08040FE8 @ =gPartner - ldr r2, [r6, #0x64] - ldr r0, [sp, #0xc] - cmp ip, r0 - ble _08040F06 - b _08041000 -_08040F06: - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _08040F1A - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - bne _08041000 -_08040F1A: - cmp r1, #0x28 - beq _08041000 - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08041000 - adds r4, r2, #0 - adds r4, #0x38 - adds r2, r7, #0 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08040F4A - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _08040F56 - cmp r2, r1 - blt _08041000 -_08040F4A: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041000 -_08040F56: - mov r2, r8 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _08040F70 - cmp r8, r1 - bge _08040F7C - cmp r2, r1 - blt _08041000 -_08040F70: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041000 -_08040F7C: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - mov r4, r8 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - ldr r1, _08040FEC @ =gRingCount - ldrh r6, [r1] - adds r0, r6, #1 - strh r0, [r1] - ldr r0, _08040FF0 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - beq _08040FCA - ldrh r0, [r1] - movs r1, #0x64 - bl Div - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #0x64 - bl Div - cmp r4, r0 - beq _08040FCA - ldr r0, _08040FF4 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08040FCA - ldr r1, _08040FF8 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08040FFC @ =gMusicManagerState - movs r0, #0x10 - strb r0, [r1, #3] -_08040FCA: - ldr r0, _08040FF4 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _08040FDE - ldr r1, _08040FEC @ =gRingCount - ldrh r0, [r1] - cmp r0, #0xff - bls _08040FDE - movs r0, #0xff - strh r0, [r1] -_08040FDE: - movs r0, #0 - b _08041152 - .align 2, 0 -_08040FE4: .4byte gNumSingleplayerCharacters -_08040FE8: .4byte gPartner -_08040FEC: .4byte gRingCount -_08040FF0: .4byte gCurrentLevel -_08040FF4: .4byte gGameMode -_08040FF8: .4byte gNumLives -_08040FFC: .4byte gMusicManagerState -_08041000: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _08041034 - mov r0, r8 - subs r0, #0x10 - movs r3, #0xe - ldrsh r2, [r5, r3] - ldr r1, _080410D4 @ =sa2__sub_801EC3C - str r1, [sp] - adds r1, r7, #0 - movs r3, #8 - rsbs r3, r3, #0 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _08041034 - lsls r1, r0, #8 - ldr r0, [r5, #4] - subs r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_08041034: - ldr r4, [sp, #4] - ldr r1, _080410D8 @ =0x00000336 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08041074 - movs r2, #0xa - ldrsh r0, [r5, r2] - cmp r0, #0 - ble _08041074 - movs r3, #0xe - ldrsh r2, [r5, r3] - ldr r0, _080410D4 @ =sa2__sub_801EC3C - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - movs r3, #8 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _08041074 - lsls r1, r0, #8 - ldr r0, [r5, #4] - adds r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_08041074: - ldrh r0, [r5, #0xa] - ldr r4, [sp, #8] - subs r0, r0, r4 - strh r0, [r5, #0xa] - ldr r0, [sp, #0x18] - adds r0, #7 - cmp r0, #0xfe - bhi _0804114E - movs r0, #8 - rsbs r0, r0, #0 - cmp sl, r0 - ble _0804114E - mov r0, sl - cmp r0, #0xa7 - bgt _0804114E - ldrh r0, [r5, #0xc] - cmp r0, #0x1f - bhi _080410A4 - ldr r0, _080410DC @ =gStageTime - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0804114E -_080410A4: - mov r2, sb - adds r2, #0x23 - ldr r1, [sp, #0x10] - cmp r1, #0 - beq _080410B6 - adds r1, r2, #0 - ldrb r0, [r1] - cmp r0, #0xff - bne _080410E0 -_080410B6: - movs r0, #0xff - strb r0, [r2] - mov r2, sp - ldrh r3, [r2, #0x18] - mov r2, sb - strh r3, [r2, #0x16] - mov r4, sl - strh r4, [r2, #0x18] - mov r0, sb - bl DisplaySprite - movs r0, #1 - str r0, [sp, #0x10] - b _0804114E - .align 2, 0 -_080410D4: .4byte sa2__sub_801EC3C -_080410D8: .4byte 0x00000336 -_080410DC: .4byte gStageTime -_080410E0: - ldrb r0, [r1] - lsls r0, r0, #3 - ldr r1, _08041174 @ =gOamMallocBuffer - adds r4, r0, r1 - mov r1, sb - ldrh r0, [r1, #0x1a] - movs r2, #0xf8 - lsls r2, r2, #3 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #6 - bl OamMalloc - adds r3, r0, #0 - ldr r0, _08041178 @ =iwram_end - ldr r0, [r0] - cmp r0, r3 - beq _0804114E - ldr r1, _0804117C @ =0x040000D4 - str r4, [r1] - str r3, [r1, #4] - ldr r0, _08041180 @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldrh r2, [r3] - movs r4, #0xff - lsls r4, r4, #8 - adds r0, r4, #0 - ands r2, r0 - strh r2, [r3] - mov r1, sb - ldr r0, [r1, #0xc] - ldrh r0, [r0, #0xa] - mov r4, sl - subs r0, r4, r0 - movs r1, #0xff - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3] - ldrh r2, [r3, #2] - movs r1, #0xfe - lsls r1, r1, #8 - adds r0, r1, #0 - ands r2, r0 - strh r2, [r3, #2] - mov r4, sb - ldr r0, [r4, #0xc] - ldrh r0, [r0, #8] - ldr r1, [sp, #0x18] - subs r0, r1, r0 - ldr r4, _08041184 @ =0x000001FF - adds r1, r4, #0 - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3, #2] -_0804114E: - ldrh r0, [r5, #0xc] - subs r0, #1 -_08041152: - strh r0, [r5, #0xc] -_08041154: - adds r5, #0x10 - ldr r0, [sp, #0x14] - subs r0, #1 - str r0, [sp, #0x14] - cmp r0, #0 - blt _08041162 - b _08040D9C -_08041162: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08041174: .4byte gOamMallocBuffer -_08041178: .4byte iwram_end -_0804117C: .4byte 0x040000D4 -_08041180: .4byte 0x80000003 -_08041184: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc b/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc deleted file mode 100644 index cf883fc906..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/rings_scatter/RingsScatterSingleplayer_NormalGravity.inc +++ /dev/null @@ -1,566 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - ldr r0, _08041324 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 - str r0, [sp, #4] - ldr r0, _08041328 @ =0x03000030 - adds r5, r1, r0 - ldr r2, [sp, #4] - mov sl, r2 - ldr r3, _0804132C @ =0x03000330 - adds r0, r1, r3 - ldr r0, [r0] - str r0, [sp, #8] - ldr r4, _08041330 @ =0x03000334 - adds r1, r1, r4 - ldrh r1, [r1] - str r1, [sp, #0xc] - movs r0, #0 - str r0, [sp, #0x10] - mov r0, sl - bl UpdateSpriteAnimation - movs r1, #0x2f - str r1, [sp, #0x14] -_080411C8: - ldrh r0, [r5, #0xc] - cmp r0, #0 - bne _080411D0 - b _080415C0 -_080411D0: - movs r2, #8 - ldrsh r0, [r5, r2] - ldr r1, [r5] - adds r1, r1, r0 - str r1, [r5] - movs r3, #0xa - ldrsh r2, [r5, r3] - ldr r0, [r5, #4] - adds r0, r0, r2 - str r0, [r5, #4] - asrs r1, r1, #8 - mov sb, r1 - mov r7, sb - asrs r0, r0, #8 - mov r8, r0 - ldr r0, _08041334 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - bne _08041220 - ldr r0, _08041338 @ =gStageTime - ldr r0, [r0] - lsls r0, r0, #3 - mov r4, sb - adds r1, r4, r0 - adds r2, r1, #0 - subs r2, #0x48 - ldr r0, _0804133C @ =0x00000A7F - cmp r2, r0 - ble _0804121E - adds r1, r2, #0 - adds r0, r1, #0 - movs r1, #0xa8 - lsls r1, r1, #4 - bl Mod - adds r1, r0, #0 - adds r1, #0x48 -_0804121E: - mov sb, r1 -_08041220: - ldr r1, _08041340 @ =gCamera - movs r2, #0 - ldrsh r0, [r1, r2] - subs r0, r7, r0 - str r0, [sp, #0x18] - movs r3, #2 - ldrsh r0, [r1, r3] - mov r4, r8 - subs r4, r4, r0 - str r4, [sp, #0x1c] - ldr r6, _08041344 @ =gPlayer - ldr r2, [r6, #0x64] - ldrh r0, [r5, #0xc] - mov ip, r0 - ldr r1, [sp, #0xc] - cmp ip, r1 - ble _08041244 - b _08041358 -_08041244: - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _0804125A - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - beq _0804125A - b _08041358 -_0804125A: - cmp r1, #0x28 - bne _08041260 - b _08041358 -_08041260: - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08041358 - adds r4, r2, #0 - adds r4, #0x38 - adds r2, r7, #0 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _0804128C - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _08041298 - cmp r2, r1 - blt _08041358 -_0804128C: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041358 -_08041298: - mov r2, r8 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _080412B2 - cmp r8, r1 - bge _080412BE - cmp r2, r1 - blt _08041358 -_080412B2: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _08041358 -_080412BE: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - mov r4, r8 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - ldr r1, _08041348 @ =gRingCount - ldrh r6, [r1] - adds r0, r6, #1 - strh r0, [r1] - ldr r0, _08041334 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - beq _0804130C - ldrh r0, [r1] - movs r1, #0x64 - bl Div - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #0x64 - bl Div - cmp r4, r0 - beq _0804130C - ldr r0, _0804134C @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _0804130C - ldr r1, _08041350 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08041354 @ =gMusicManagerState - movs r0, #0x10 - strb r0, [r1, #3] -_0804130C: - ldr r0, _0804134C @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _08041320 - ldr r1, _08041348 @ =gRingCount - ldrh r0, [r1] - cmp r0, #0xff - bls _08041320 - movs r0, #0xff - strh r0, [r1] -_08041320: - movs r0, #0 - b _080415BE - .align 2, 0 -_08041324: .4byte gCurTask -_08041328: .4byte 0x03000030 -_0804132C: .4byte 0x03000330 -_08041330: .4byte 0x03000334 -_08041334: .4byte gCurrentLevel -_08041338: .4byte gStageTime -_0804133C: .4byte 0x00000A7F -_08041340: .4byte gCamera -_08041344: .4byte gPlayer -_08041348: .4byte gRingCount -_0804134C: .4byte gGameMode -_08041350: .4byte gNumLives -_08041354: .4byte gMusicManagerState -_08041358: - ldr r0, _08041450 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - beq _08041366 - b _0804146C -_08041366: - ldr r6, _08041454 @ =gPartner - ldr r2, [r6, #0x64] - ldr r0, [sp, #0xc] - cmp ip, r0 - ble _08041372 - b _0804146C -_08041372: - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0xf - bne _08041386 - movs r3, #0x1c - ldrsh r0, [r6, r3] - cmp r0, #0 - bne _0804146C -_08041386: - cmp r1, #0x28 - beq _0804146C - ldr r0, [r6, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804146C - adds r4, r2, #0 - adds r4, #0x38 - adds r2, r7, #0 - subs r2, #8 - ldr r0, [r6] - asrs r0, r0, #8 - movs r3, #0 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _080413B6 - adds r0, r7, #0 - adds r0, #8 - cmp r0, r1 - bge _080413C2 - cmp r2, r1 - blt _0804146C -_080413B6: - movs r0, #2 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _0804146C -_080413C2: - mov r2, r8 - subs r2, #0x10 - ldr r0, [r6, #4] - asrs r0, r0, #8 - movs r3, #1 - ldrsb r3, [r4, r3] - adds r1, r0, r3 - cmp r2, r1 - bgt _080413DC - cmp r8, r1 - bge _080413E8 - cmp r2, r1 - blt _0804146C -_080413DC: - movs r0, #3 - ldrsb r0, [r4, r0] - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _0804146C -_080413E8: - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - mov r4, r8 - lsls r1, r4, #0x10 - asrs r1, r1, #0x10 - bl CreateCollectRingEffect - ldr r1, _08041458 @ =gRingCount - ldrh r6, [r1] - adds r0, r6, #1 - strh r0, [r1] - ldr r0, _0804145C @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - beq _08041436 - ldrh r0, [r1] - movs r1, #0x64 - bl Div - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #0x64 - bl Div - cmp r4, r0 - beq _08041436 - ldr r0, _08041460 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08041436 - ldr r1, _08041464 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _08041468 @ =gMusicManagerState - movs r0, #0x10 - strb r0, [r1, #3] -_08041436: - ldr r0, _08041460 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _0804144A - ldr r1, _08041458 @ =gRingCount - ldrh r0, [r1] - cmp r0, #0xff - bls _0804144A - movs r0, #0xff - strh r0, [r1] -_0804144A: - movs r0, #0 - b _080415BE - .align 2, 0 -_08041450: .4byte gNumSingleplayerCharacters -_08041454: .4byte gPartner -_08041458: .4byte gRingCount -_0804145C: .4byte gCurrentLevel -_08041460: .4byte gGameMode -_08041464: .4byte gNumLives -_08041468: .4byte gMusicManagerState -_0804146C: - movs r1, #0xa - ldrsh r0, [r5, r1] - cmp r0, #0 - ble _0804149C - movs r3, #0xe - ldrsh r2, [r5, r3] - ldr r0, _08041540 @ =sa2__sub_801EC3C - str r0, [sp] - mov r0, r8 - mov r1, sb - movs r3, #8 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _0804149C - lsls r1, r0, #8 - ldr r0, [r5, #4] - adds r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_0804149C: - ldr r4, [sp, #4] - ldr r1, _08041544 @ =0x00000336 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080414E0 - movs r2, #0xa - ldrsh r0, [r5, r2] - cmp r0, #0 - bge _080414E0 - mov r0, r8 - subs r0, #0x10 - movs r3, #0xe - ldrsh r2, [r5, r3] - ldr r1, _08041540 @ =sa2__sub_801EC3C - str r1, [sp] - mov r1, sb - movs r3, #8 - rsbs r3, r3, #0 - bl sa2__sub_801F100 - cmp r0, #0 - bgt _080414E0 - lsls r1, r0, #8 - ldr r0, [r5, #4] - subs r0, r0, r1 - str r0, [r5, #4] - ldrh r1, [r5, #0xa] - lsls r0, r1, #0x10 - asrs r0, r0, #0x12 - subs r0, r0, r1 - strh r0, [r5, #0xa] -_080414E0: - ldrh r0, [r5, #0xa] - ldr r4, [sp, #8] - adds r0, r0, r4 - strh r0, [r5, #0xa] - ldr r0, [sp, #0x18] - adds r0, #7 - cmp r0, #0xfe - bhi _080415BA - movs r0, #8 - rsbs r0, r0, #0 - ldr r1, [sp, #0x1c] - cmp r1, r0 - ble _080415BA - cmp r1, #0xa7 - bgt _080415BA - ldrh r0, [r5, #0xc] - cmp r0, #0x1f - bhi _08041510 - ldr r0, _08041548 @ =gStageTime - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _080415BA -_08041510: - mov r2, sl - adds r2, #0x23 - ldr r3, [sp, #0x10] - cmp r3, #0 - beq _08041522 - adds r1, r2, #0 - ldrb r0, [r1] - cmp r0, #0xff - bne _0804154C -_08041522: - movs r0, #0xff - strb r0, [r2] - mov r4, sp - ldrh r0, [r4, #0x18] - mov r4, sl - strh r0, [r4, #0x16] - mov r1, sp - ldrh r1, [r1, #0x1c] - strh r1, [r4, #0x18] - mov r0, sl - bl DisplaySprite - movs r2, #1 - str r2, [sp, #0x10] - b _080415BA - .align 2, 0 -_08041540: .4byte sa2__sub_801EC3C -_08041544: .4byte 0x00000336 -_08041548: .4byte gStageTime -_0804154C: - ldrb r0, [r1] - lsls r0, r0, #3 - ldr r1, _080415E0 @ =gOamMallocBuffer - adds r4, r0, r1 - mov r3, sl - ldrh r0, [r3, #0x1a] - movs r2, #0xf8 - lsls r2, r2, #3 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #6 - bl OamMalloc - adds r3, r0, #0 - ldr r0, _080415E4 @ =iwram_end - ldr r0, [r0] - cmp r0, r3 - beq _080415BA - ldr r1, _080415E8 @ =0x040000D4 - str r4, [r1] - str r3, [r1, #4] - ldr r0, _080415EC @ =0x80000003 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldrh r2, [r3] - movs r4, #0xff - lsls r4, r4, #8 - adds r0, r4, #0 - ands r2, r0 - strh r2, [r3] - mov r1, sl - ldr r0, [r1, #0xc] - ldrh r0, [r0, #0xa] - ldr r4, [sp, #0x1c] - subs r0, r4, r0 - movs r1, #0xff - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3] - ldrh r2, [r3, #2] - movs r1, #0xfe - lsls r1, r1, #8 - adds r0, r1, #0 - ands r2, r0 - strh r2, [r3, #2] - mov r4, sl - ldr r0, [r4, #0xc] - ldrh r0, [r0, #8] - ldr r1, [sp, #0x18] - subs r0, r1, r0 - ldr r4, _080415F0 @ =0x000001FF - adds r1, r4, #0 - ands r0, r1 - adds r2, r2, r0 - strh r2, [r3, #2] -_080415BA: - ldrh r0, [r5, #0xc] - subs r0, #1 -_080415BE: - strh r0, [r5, #0xc] -_080415C0: - adds r5, #0x10 - ldr r0, [sp, #0x14] - subs r0, #1 - str r0, [sp, #0x14] - cmp r0, #0 - blt _080415CE - b _080411C8 -_080415CE: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080415E0: .4byte gOamMallocBuffer -_080415E4: .4byte iwram_end -_080415E8: .4byte 0x040000D4 -_080415EC: .4byte 0x80000003 -_080415F0: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc b/sa1/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc deleted file mode 100644 index 5eb2127084..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/some_task_manager__sub_804D060.inc +++ /dev/null @@ -1,93 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r1, _0804D0AC @ =gUnknown_03006170 = data0 - ldr r4, _0804D0B0 @ =gUnknown_030060F0 = data1 - ldrh r0, [r1] - movs r2, #0x30 - ands r2, r0 - adds r1, #2 - cmp r2, #0x20 - bne _0804D0BE - movs r3, #0 - cmp r3, r6 - bge _0804D0F6 - movs r0, #0xd0 - mov ip, r0 @ ip = 0xD0 - movs r7, #0x20 - adds r5, r1, #0 @ r5 = r1 = data0 -_0804D082_loop: - ldrh r0, [r4] - mov r1, ip - ands r1, r0 - cmp r1, #0 - bne _0804D0F6 - ldrh r1, [r5] - adds r0, r7, #0 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r3, #3 - ble _0804D09E - cmp r2, #0 - bne _0804D0B4_return_neg1 -_0804D09E: - adds r5, #2 - adds r4, #2 - adds r3, #1 - cmp r3, r6 - blt _0804D082_loop - b _0804D0F6 - .align 2, 0 -_0804D0AC: .4byte gUnknown_03006170 -_0804D0B0: .4byte gUnknown_030060F0 -_0804D0B4_return_neg1: - movs r0, #1 - rsbs r0, r0, #0 - b _0804D0F8 -_0804D0BA_return_1: - movs r0, #1 - b _0804D0F8 -_0804D0BE: - cmp r2, #0x10 - bne _0804D0F6 - movs r3, #0 - cmp r3, r6 - bge _0804D0F6 - movs r0, #0xe0 - mov ip, r0 - movs r7, #0x10 - adds r5, r1, #0 -_0804D0D0_loop: - ldrh r0, [r4] - mov r1, ip - ands r1, r0 - cmp r1, #0 - bne _0804D0F6 - ldrh r1, [r5] - adds r0, r7, #0 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r3, #3 - ble _0804D0EC - cmp r2, #0 - bne _0804D0BA_return_1 -_0804D0EC: - adds r5, #2 - adds r4, #2 - adds r3, #1 - cmp r3, r6 - blt _0804D0D0_loop -_0804D0F6: - movs r0, #0 -_0804D0F8: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc b/sa1/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc deleted file mode 100644 index 84a40fc777..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_results__CreateStageResults.inc +++ /dev/null @@ -1,589 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - adds r4, r1, #0 - movs r1, #0x64 - adds r2, r0, #0 - muls r2, r1, r2 - mov sl, r2 - ldr r3, _08057434 @ =gLoadedSaveGame - movs r6, #0x85 - lsls r6, r6, #3 - adds r2, r3, r6 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r1, [r2] - adds r1, r1, r0 - str r1, [r2] - ldr r2, _08057438 @ =gStageFlags - ldrh r0, [r2] - movs r1, #0x20 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0805743C @ =gCurrentLevel - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0xa - bne _08057420 - ldr r2, _08057440 @ =gCamera - ldrh r1, [r2, #0x26] - movs r6, #0x80 - lsls r6, r6, #6 - adds r0, r6, #0 - orrs r0, r1 - strh r0, [r2, #0x26] -_08057420: - ldr r0, _08057444 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bne _08057448 - adds r0, r4, #0 - bl CreateTimeAttackResult - movs r0, #0 - b _08057844 - .align 2, 0 -_08057434: .4byte gLoadedSaveGame -_08057438: .4byte gStageFlags -_0805743C: .4byte gCurrentLevel -_08057440: .4byte gCamera -_08057444: .4byte gGameMode -_08057448: - movs r2, #0 - ldr r0, _080574E0 @ =gSelectedCharacter - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0805748E - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0xb - ble _0805748E - ldrb r0, [r3, #0x1d] - cmp r0, #0x7f - bne _0805748E - ldrh r1, [r3, #8] - cmp r1, #0xc - bls _0805748E - ldrh r0, [r3, #0xa] - cmp r0, #0xc - bls _0805748E - ldrh r0, [r3, #0xc] - cmp r0, #0xc - bls _0805748E - ldrh r0, [r3, #0xe] - cmp r0, #0xc - bls _0805748E - cmp r1, #0xf - bne _0805748C - ldr r0, _080574E4 @ =gMultiplayerCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xc - beq _0805748E -_0805748C: - movs r2, #1 -_0805748E: - str r2, [sp, #0x1c] - cmp r2, #0 - bne _080574B6 - ldr r0, _080574E8 @ =gPlayer - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - adds r1, r3, #0 - adds r1, #8 - adds r1, r0, r1 - ldrh r2, [r1] - movs r0, #0 - ldrsb r0, [r5, r0] - adds r0, #1 - cmp r0, r2 - bge _080574B4 - adds r0, r2, #0 -_080574B4: - strh r0, [r1] -_080574B6: - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0xa - bne _080574CE - ldr r0, _080574EC @ =gCheckpointTime - ldr r0, [r0] - ldr r1, _080574F0 @ =0x00002A30 - ldr r2, _080574F4 @ =0xFFFFD5D0 - adds r4, r0, r2 - cmp r0, r1 - bhi _080574CE - movs r4, #1 -_080574CE: - ldrb r1, [r5] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0xd - bne _080574F8 - movs r0, #0x24 @ MUS_EXTRA_CLEAR - bl m4aSongNumStart - b _0805751A - .align 2, 0 -_080574E0: .4byte gSelectedCharacter -_080574E4: .4byte gMultiplayerCurrentLevel -_080574E8: .4byte gPlayer -_080574EC: .4byte gCheckpointTime -_080574F0: .4byte 0x00002A30 -_080574F4: .4byte 0xFFFFD5D0 -_080574F8: - cmp r0, #0xc - bne _08057504 - movs r0, #0x23 @ MUS_FINAL_CLEAR - bl m4aSongNumStart - b _0805751A -_08057504: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08057514 - movs r0, #0x22 @ MUS_BOSS_CLEAR - bl m4aSongNumStart - b _0805751A -_08057514: - movs r0, #0x21 @ MUS_ACT_CLEAR - bl m4aSongNumStart -_0805751A: - ldr r0, _0805752C @ =gMusicManagerState - movs r1, #0xff - strb r1, [r0] - ldr r0, _08057530 @ =0x0000545F - cmp r4, r0 - bls _08057534 - movs r6, #0 - b _080575BA - .align 2, 0 -_0805752C: .4byte gMusicManagerState -_08057530: .4byte 0x0000545F -_08057534: - ldr r0, _08057540 @ =0x0000464F - cmp r4, r0 - bls _08057544 - movs r6, #0xfa - lsls r6, r6, #1 - b _080575BA - .align 2, 0 -_08057540: .4byte 0x0000464F -_08057544: - ldr r0, _08057550 @ =0x0000383F - cmp r4, r0 - bls _08057554 - movs r6, #0xfa - lsls r6, r6, #2 - b _080575BA - .align 2, 0 -_08057550: .4byte 0x0000383F -_08057554: - ldr r0, _08057560 @ =0x00002A2F - cmp r4, r0 - bls _08057564 - movs r6, #0xfa - lsls r6, r6, #3 - b _080575BA - .align 2, 0 -_08057560: .4byte 0x00002A2F -_08057564: - ldr r0, _08057570 @ =0x00001C1F - cmp r4, r0 - bls _08057578 - ldr r6, _08057574 @ =0x00000BB8 - b _080575BA - .align 2, 0 -_08057570: .4byte 0x00001C1F -_08057574: .4byte 0x00000BB8 -_08057578: - ldr r0, _08057584 @ =0x00001517 - cmp r4, r0 - bls _08057588 - movs r6, #0xfa - lsls r6, r6, #4 - b _080575BA - .align 2, 0 -_08057584: .4byte 0x00001517 -_08057588: - ldr r0, _08057594 @ =0x00000E0F - cmp r4, r0 - bls _0805759C - ldr r6, _08057598 @ =0x00001388 - b _080575BA - .align 2, 0 -_08057594: .4byte 0x00000E0F -_08057598: .4byte 0x00001388 -_0805759C: - ldr r0, _080575A8 @ =0x00000BB7 - cmp r4, r0 - bls _080575B0 - ldr r6, _080575AC @ =0x00002710 - b _080575BA - .align 2, 0 -_080575A8: .4byte 0x00000BB7 -_080575AC: .4byte 0x00002710 -_080575B0: - ldr r0, _080575C4 @ =0x00000707 - ldr r6, _080575C8 @ =0x00013880 - cmp r4, r0 - bls _080575BA - ldr r6, _080575CC @ =0x0000C350 -_080575BA: - cmp sl, r6 - bls _080575D0 - mov r0, sl - b _080575D2 - .align 2, 0 -_080575C4: .4byte 0x00000707 -_080575C8: .4byte 0x00013880 -_080575CC: .4byte 0x0000C350 -_080575D0: - adds r0, r6, #0 -_080575D2: - movs r1, #0x64 - bl Div - adds r0, #0x4b - str r0, [sp, #0x10] - mov r0, sl - str r0, [sp, #0x18] - str r6, [sp, #0x14] - bl UiGfxStackInit - ldr r0, _08057854 @ =Task_8057B74 - ldr r1, _08057858 @ =0x00002120 - mov r8, r1 - movs r4, #0 - str r4, [sp] - movs r1, #0x34 - mov r2, r8 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0xc] - ldrh r0, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r7, r0, r2 - strh r4, [r7, #0x1c] - ldr r0, [sp, #0x10] - str r0, [r7, #0x30] - strh r4, [r7, #0x1e] - movs r0, #0xf0 - strh r0, [r7, #0xa] - movs r0, #0x7e - strh r0, [r7, #0xc] - movs r0, #8 - strh r0, [r7, #0xe] - strh r0, [r7, #0x10] - movs r1, #6 - strh r1, [r7, #0x12] - movs r5, #1 - strb r5, [r7, #0x16] - movs r0, #0xa - strh r0, [r7, #8] - ldr r0, _0805785C @ =Task_8057C3C - str r4, [sp] - movs r1, #0x34 - mov r2, r8 - movs r3, #0 - bl TaskCreate - str r0, [sp, #4] - ldrh r0, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r7, r0, r2 - strh r4, [r7, #0x1c] - ldr r0, [sp, #0x10] - str r0, [r7, #0x30] - strh r4, [r7, #0x1e] - movs r1, #0x80 - lsls r1, r1, #1 - mov sb, r1 - mov r2, sb - strh r2, [r7, #0xa] - movs r0, #0x80 - strh r0, [r7, #0xc] - movs r0, #9 - strh r0, [r7, #0xe] - movs r0, #2 - strh r0, [r7, #0x10] - movs r0, #0xc - strh r0, [r7, #0x12] - strb r5, [r7, #0x16] - strh r4, [r7, #8] - ldr r0, _08057860 @ =Task_8057D30 - str r4, [sp] - movs r1, #0x34 - mov r2, r8 - movs r3, #0 - bl TaskCreate - str r0, [sp, #8] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - ldr r2, [sp, #0x18] - str r2, [r7, #0x18] - strh r4, [r7, #0x1c] - ldr r0, [sp, #0x10] - str r0, [r7, #0x30] - strh r4, [r7, #0x1e] - mov r2, sb - strh r2, [r7, #0xa] - movs r0, #0x66 - strh r0, [r7, #0xc] - movs r0, #0x10 - strh r0, [r7, #0xe] - movs r0, #4 - strh r0, [r7, #0x10] - movs r0, #6 - strh r0, [r7, #0x12] - strb r5, [r7, #0x16] - strh r4, [r7, #8] - movs r5, #0xf - ldr r2, _08057864 @ =0x03000020 - adds r2, r2, r1 - mov r8, r2 -_080576A8: - mov r0, sl - movs r1, #0xa - bl Div - adds r4, r0, #0 - lsls r2, r5, #0x10 - asrs r2, r2, #0x10 - adds r3, r7, #0 - adds r3, #0x20 - adds r3, r3, r2 - lsls r0, r4, #3 - lsls r1, r4, #1 - adds r0, r0, r1 - mov r1, sl - subs r0, r1, r0 - adds r0, #0x20 - strb r0, [r3] - mov sl, r4 - subs r2, #1 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - cmp r2, #0 - bge _080576A8 - movs r5, #0xb - ldr r7, _08057868 @ =Task_805803C - mov r3, r8 - movs r4, #0x2b -_080576DE: - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, #0x20 - bne _080576F8 - strb r4, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - ble _080576DE -_080576F8: - movs r5, #0 - mov r3, r8 - ldr r4, _0805786C @ =gUnknown_08688404 -_080576FE: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r2, r3, r0 - adds r1, r0, r4 - ldrb r1, [r1] - strb r1, [r2] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _080576FE - ldr r2, _08057858 @ =0x00002120 - movs r4, #0 - str r4, [sp] - adds r0, r7, #0 - movs r1, #0x34 - movs r3, #0 - bl TaskCreate - mov sb, r0 - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - str r6, [r7, #0x18] - strh r4, [r7, #0x1c] - ldr r2, [sp, #0x10] - str r2, [r7, #0x30] - strh r4, [r7, #0x1e] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r7, #0xa] - movs r0, #0x50 - strh r0, [r7, #0xc] - movs r0, #0x10 - strh r0, [r7, #0xe] - movs r0, #4 - strh r0, [r7, #0x10] - movs r0, #6 - strh r0, [r7, #0x12] - movs r0, #1 - strb r0, [r7, #0x16] - strh r4, [r7, #8] - movs r5, #0xf - ldr r0, _08057864 @ =0x03000020 - adds r0, r0, r1 - mov r8, r0 -_0805775E: - adds r0, r6, #0 - movs r1, #0xa - bl Div - adds r4, r0, #0 - lsls r2, r5, #0x10 - asrs r2, r2, #0x10 - adds r3, r7, #0 - adds r3, #0x20 - adds r3, r3, r2 - lsls r0, r4, #3 - lsls r1, r4, #1 - adds r0, r0, r1 - subs r0, r6, r0 - adds r0, #0x20 - strb r0, [r3] - adds r6, r4, #0 - subs r2, #1 - lsls r2, r2, #0x10 - lsrs r5, r2, #0x10 - cmp r2, #0 - bge _0805775E - movs r5, #0xb - ldr r7, _08057870 @ =Task_8057888 - ldr r6, _08057874 @ =TaskDestructor_8058344 - mov r3, r8 - movs r4, #0x2b -_08057794: - lsls r0, r5, #0x10 - asrs r2, r0, #0x10 - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, #0x20 - bne _080577AE - strb r4, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - ble _08057794 -_080577AE: - movs r5, #0 - mov r3, r8 - ldr r4, _08057878 @ =gUnknown_0868840F -_080577B4: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - adds r2, r3, r0 - adds r1, r0, r4 - ldrb r1, [r1] - strb r1, [r2] - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xa - ble _080577B4 - movs r2, #0x84 - lsls r2, r2, #6 - str r6, [sp] - adds r0, r7, #0 - movs r1, #0x38 - movs r3, #0 - bl TaskCreate - ldrh r5, [r0, #6] - movs r4, #0xc0 - lsls r4, r4, #0x12 - adds r4, r5, r4 - movs r1, #0 - strh r1, [r4, #0x24] - ldr r2, [sp, #0x18] - str r2, [r4, #0x2c] - ldr r6, [sp, #0x14] - str r6, [r4, #0x30] - movs r0, #0x2d - strh r0, [r4, #0x34] - ldr r0, [sp, #0x10] - str r0, [r4, #0x28] - ldr r2, [sp, #0xc] - str r2, [r4, #0x14] - mov r6, sb - str r6, [r4, #0x18] - ldr r0, [sp, #4] - str r0, [r4, #0x10] - ldr r2, [sp, #8] - str r2, [r4, #0xc] - strh r1, [r4] - strh r1, [r4, #2] - movs r2, #1 - movs r0, #1 - strh r0, [r4, #4] - strh r1, [r4, #6] - adds r0, #0xff - strh r0, [r4, #8] - strb r2, [r4, #0xa] - ldr r6, _0805787C @ =0x03000036 - adds r0, r5, r6 - mov r1, sp - ldrb r1, [r1, #0x1c] - strb r1, [r0] - movs r0, #0x80 - bl VramMalloc - str r0, [r4, #0x1c] - movs r0, #0x1e - bl VramMalloc - str r0, [r4, #0x20] - ldr r2, _08057880 @ =0x0300001C - adds r5, r5, r2 - adds r0, r5, #0 - bl sub_8056FE4 - ldr r6, [sp, #0x10] - ldr r1, _08057884 @ =0x0000011D - adds r0, r6, r1 -_08057844: - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08057854: .4byte Task_8057B74 -_08057858: .4byte 0x00002120 -_0805785C: .4byte Task_8057C3C -_08057860: .4byte Task_8057D30 -_08057864: .4byte 0x03000020 -_08057868: .4byte Task_805803C -_0805786C: .4byte gUnknown_08688404 -_08057870: .4byte Task_8057888 -_08057874: .4byte TaskDestructor_8058344 -_08057878: .4byte gUnknown_0868840F -_0805787C: .4byte 0x03000036 -_08057880: .4byte 0x0300001C -_08057884: .4byte 0x0000011D - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc deleted file mode 100644 index df3b48e210..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__CreateSpecialStageUI.inc +++ /dev/null @@ -1,36 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, lr} - sub sp, #4 - movs r1, #0 - ldr r0, _0805422C @ =Task_SpecialStageUIMain - movs r2, #0x8c - lsls r2, r2, #5 - movs r4, #0 - str r1, [sp] - movs r1, #0x50 - movs r3, #0 - bl TaskCreate - adds r1, r0, #0 - ldrh r0, [r1, #6] - ldr r2, _08054230 @ =0x03000040 - adds r0, r0, r2 - strh r4, [r0] - ldrh r0, [r1, #6] - ldr r1, _08054234 @ =0x0300004C - adds r0, r0, r1 - strh r4, [r0] - bl UiGfxStackInit - bl sub_8054068 - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805422C: .4byte Task_SpecialStageUIMain -_08054230: .4byte 0x03000040 -_08054234: .4byte 0x0300004C - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc deleted file mode 100644 index 8c13112c7b..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055458.inc +++ /dev/null @@ -1,348 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r0, _08055594 @ =gCurTask - ldr r0, [r0] - ldrh r5, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r4, r5, r1 @ r4 = strcMain - ldr r0, [r4, #0xc] - ldrh r0, [r0, #6] - adds r6, r0, r1 @ r6 = strc1 - ldr r0, [r4, #0x10] - ldrh r0, [r0, #6] - adds r7, r0, r1 @ r7 = strc2 - ldr r0, [r4, #0x14] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov r8, r0 @ r8 = strc3 - ldr r0, [r4, #0x18] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sb, r0 @ sb = strc4 - ldr r0, [r4, #0x1c] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sl, r0 @ sl = strc5 - ldr r0, [r4, #0x20] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp] @ sp00 = strc6 - ldr r0, _08055598 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #0xf3 - ands r0, r1 - cmp r0, #0 - beq _080554E8 - ldr r0, _0805559C @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bhi _080554E8 - ldrh r0, [r4, #0x24] - subs r0, #0x24 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb2 - bhi _080554E8 - movs r0, #0xd7 - strh r0, [r4, #0x24] - movs r0, #6 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #6 - subs r0, r0, r1 - movs r1, #0xa - bl Div - strh r0, [r4, #8] - ldr r1, _080555A0 @ =0x03000027 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _080554E8 - adds r0, r4, #0 - bl sub_805423C - ldr r2, _080555A4 @ =0x03000026 - adds r1, r5, r2 - strb r0, [r1] -_080554E8: - ldrh r0, [r4, #0x24] - strh r0, [r6, #0x18] - ldrh r0, [r4, #0x24] - strh r0, [r7, #0x18] - ldrh r0, [r4, #0x24] - mov r1, r8 - strh r0, [r1, #0x18] - ldrh r0, [r4, #0x24] - mov r2, sb - strh r0, [r2, #0x18] - ldrh r0, [r4, #0x24] - mov r1, sl - strh r0, [r1, #0x18] - ldrh r0, [r4, #0x24] - ldr r2, [sp] - strh r0, [r2, #0x18] - adds r5, r4, #0 - adds r5, #0x26 - ldrb r1, [r5] - adds r0, r6, #0 - adds r0, #0x20 - strb r1, [r0] @ strc1->unk20 = strcMain->unk26; - ldrb r1, [r5] - adds r0, r7, #0 - adds r0, #0x20 - strb r1, [r0] - ldrb r1, [r5] - mov r0, r8 - adds r0, #0x20 - strb r1, [r0] - ldrb r1, [r5] - mov r0, sb - adds r0, #0x20 - strb r1, [r0] - ldrb r1, [r5] - mov r0, sl - adds r0, #0x20 - strb r1, [r0] - ldrb r1, [r5] - adds r0, r2, #0 - adds r0, #0x20 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x27 - ldrb r2, [r1] - adds r0, r6, #0 - adds r0, #0x21 - strb r2, [r0] - ldrb r2, [r1] - adds r0, r7, #0 - adds r0, #0x21 - strb r2, [r0] - ldrb r2, [r1] - mov r0, r8 - adds r0, #0x21 - strb r2, [r0] - ldrb r2, [r1] - mov r0, sb - adds r0, #0x21 - strb r2, [r0] - ldrb r2, [r1] - mov r0, sl - adds r0, #0x21 - strb r2, [r0] - ldrb r2, [r1] - ldr r0, [sp] - adds r0, #0x21 - strb r2, [r0] - ldrb r0, [r1] - adds r6, r1, #0 - cmp r0, #0 - bne _080555AE - movs r0, #0x24 - ldrsh r1, [r4, r0] - cmp r1, #0x69 - ble _08055586 - ldrb r0, [r5] - cmp r0, #0 - bne _080555AE -_08055586: - cmp r1, #0x14 - ble _080555A8 - adds r0, r4, #0 - bl sub_805423C - strb r0, [r5] - b _080555AE - .align 2, 0 -_08055594: .4byte gCurTask -_08055598: .4byte gPressedKeys -_0805559C: .4byte gGameMode -_080555A0: .4byte 0x03000027 -_080555A4: .4byte 0x03000026 -_080555A8: - adds r0, r4, #0 - bl sub_80543A4 -_080555AE: - ldrh r0, [r4, #0x24] - adds r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe1 - bgt _080555BE - b _08055708 -_080555BE: - ldrb r3, [r6] - cmp r3, #0 - bne _080555D4 - ldr r2, _080556AC @ =gDispCnt - ldrh r1, [r2] - ldr r0, _080556B0 @ =0x00001FFF - ands r0, r1 - strh r0, [r2] - ldr r0, _080556B4 @ =gBldRegs - strh r3, [r0] - strh r3, [r0, #4] -_080555D4: - ldr r0, _080556B8 @ =gGameMode - ldrb r0, [r0] - ldr r1, _080556BC @ =gPlayer - mov r8, r1 - ldr r2, _080556C0 @ =gStageFlags - mov sb, r2 - ldr r1, _080556C4 @ =gPartner - mov sl, r1 - ldr r2, _080556C8 @ =gFinalBossActive - mov ip, r2 - cmp r0, #1 @ IS_MULTI_PLAYER - bls _08055622 - ldr r1, _080556CC @ =gMultiplayerPlayerTasks - ldr r0, [r1] - cmp r0, #0 - beq _0805561C - movs r7, #0xc0 - lsls r7, r7, #0x12 - movs r6, #3 - rsbs r6, r6, #0 - adds r3, r1, #0 - adds r5, r3, #0 - adds r2, r3, #0 - adds r2, #0xc -_08055604_loop: - ldm r5!, {r0} - ldrh r1, [r0, #6] - adds r1, r1, r7 - ldr r0, [r1, #0x5c] - ands r0, r6 - str r0, [r1, #0x5c] - adds r3, #4 - cmp r5, r2 - bhi _0805561C - ldr r0, [r3] - cmp r0, #0 - bne _08055604_loop -_0805561C: - movs r0, #0x78 - mov r1, r8 - strh r0, [r1, #0x1c] -_08055622: - mov r2, sb @ r2 = sb = gStageFlags - ldrh r1, [r2] - ldr r0, _080556D0 @ =0x0000FFFE - ands r0, r1 - strh r0, [r2] - mov r1, r8 - ldr r0, [r1, #0x10] - ldr r1, _080556D4 @ =0xFFDFFFFF - ands r0, r1 - mov r2, r8 - str r0, [r2, #0x10] - mov r2, sl - ldr r0, [r2, #0x10] - ands r0, r1 - str r0, [r2, #0x10] - ldr r3, _080556D8 @ =gCurrentLevel - ldrb r0, [r3] - mov r1, ip - strb r0, [r1] - mov r2, r8 - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - mov r2, sb - ldrh r1, [r2] - ldr r0, _080556DC @ =0x0000FFDF - ands r0, r1 - strh r0, [r2] - ldrb r0, [r3] - subs r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08055672 - bl LoadPalette423Anim - bl InitWaterPalettes -_08055672: - ldr r0, [r4, #0x20] - bl TaskDestroy - ldr r0, [r4, #0x1c] - bl TaskDestroy - ldr r0, [r4, #0x18] - bl TaskDestroy - ldr r0, [r4, #0x14] - bl TaskDestroy - ldr r0, [r4, #0x10] - bl TaskDestroy - ldr r0, [r4, #0xc] - bl TaskDestroy - ldr r0, _080556E0 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r0, _080556B8 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - bhi _080556E4 - bl CreateStageUI - b _080556E8 - .align 2, 0 -_080556AC: .4byte gDispCnt -_080556B0: .4byte 0x00001FFF -_080556B4: .4byte gBldRegs -_080556B8: .4byte gGameMode -_080556BC: .4byte gPlayer -_080556C0: .4byte gStageFlags -_080556C4: .4byte gPartner -_080556C8: .4byte gFinalBossActive -_080556CC: .4byte gMultiplayerPlayerTasks -_080556D0: .4byte 0x0000FFFE -_080556D4: .4byte 0xFFDFFFFF -_080556D8: .4byte gCurrentLevel -_080556DC: .4byte 0x0000FFDF -_080556E0: .4byte gCurTask -_080556E4: - bl CreateChaoHuntHUD -_080556E8: - ldr r0, _08055704 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xd - bne _0805571A - movs r0, #0xf0 - lsls r0, r0, #7 - movs r1, #0xa0 - lsls r1, r1, #7 - bl sub_804A5D8 - b _0805571A - .align 2, 0 -_08055704: .4byte gCurrentLevel -_08055708: - ldr r0, _0805572C @ =gCurrentLevel - ldrb r0, [r0] - subs r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0805571A - bl InitWaterPalettes -_0805571A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805572C: .4byte gCurrentLevel - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc deleted file mode 100644 index 2b74e154dc..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_8055798.inc +++ /dev/null @@ -1,190 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08055804 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r1, r0 @ r4 = strc - ldrh r0, [r4, #0x18] - movs r2, #0x18 - ldrsh r1, [r4, r2] - cmp r1, #0xd7 - ble _08055826 - subs r0, #0xd7 - lsls r0, r0, #7 - movs r1, #0xa - bl Div - movs r5, #0 - lsls r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - mov sb, r1 - asrs r1, r0, #0x10 - rsbs r0, r0, #0 - mov r8, r0 - rsbs r6, r1, #0 - ldr r7, _08055808 @ =gUnknown_08688394 -_080557D6_loop: - strh r6, [r4, #0xc] - mov r2, r8 - asrs r0, r2, #0x10 - cmp r0, sb - blt _08055814 - ldrh r0, [r4, #0x18] - cmp r0, #0x69 - bls _080557FA - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _080557FA - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _0805580C -_080557FA: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_8052F78 - b _08055814 - .align 2, 0 -_08055804: .4byte gCurTask -_08055808: .4byte gUnknown_08688394 -_0805580C: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_80530CC -_08055814: - movs r0, #0x80 - lsls r0, r0, #0xe - add r8, r0 - adds r6, #0x20 - adds r7, #1 - adds r5, #1 - cmp r5, #3 - ble _080557D6_loop - b _080558F0_return -_08055826: - cmp r1, #0x1f - ble _0805586E - movs r5, #0 - ldr r6, _08055858 @ =gUnknown_08688394 -_0805582E_loop: - lsls r0, r5, #5 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0x18] - cmp r0, #0x69 - bls _0805584C - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _0805584C - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _0805585C -_0805584C: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_8052F78 - b _08055864 - .align 2, 0 -_08055858: .4byte gUnknown_08688394 -_0805585C: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_80530CC -_08055864: - adds r6, #1 - adds r5, #1 - cmp r5, #3 - ble _0805582E_loop - b _080558F0_return -_0805586E: - cmp r1, #0x19 - ble _080558F0_return - subs r0, #0xd7 - lsls r0, r0, #7 - movs r1, #6 - bl Div - subs r0, #0xb0 - mov r8, r0 @ r8 = Div((strc->unk18 - 215) << 7, 6) - 176; - ldr r1, _080558CC @ =0x000001FF - adds r0, r1, #0 - movs r5, #0 - mov r2, r8 - ands r2, r0 - mov r8, r2 - ldr r0, _080558D0 @ =0x000001A5 - mov sl, r0 - lsls r7, r2, #0x10 - mov r6, r8 - movs r1, #0x20 - rsbs r1, r1, #0 - mov sb, r1 -_0805589A_loop: - cmp r8, sl - ble _080558E2 - strh r6, [r4, #0xc] - asrs r0, r7, #0x10 - cmp r0, sb - blt _080558E2 - ldrh r0, [r4, #0x18] - cmp r0, #0x69 - bls _080558C0 - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _080558C0 - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _080558D8 -_080558C0: - ldr r0, _080558D4 @ =gUnknown_08688394 - adds r0, r5, r0 - adds r1, r4, #0 - bl sub_8052F78 - b _080558E2 - .align 2, 0 -_080558CC: .4byte 0x000001FF -_080558D0: .4byte 0x000001A5 -_080558D4: .4byte gUnknown_08688394 -_080558D8: - ldr r0, _08055900 @ =gUnknown_08688394 - adds r0, r5, r0 - adds r1, r4, #0 - bl sub_80530CC -_080558E2: - movs r2, #0x80 - lsls r2, r2, #0xe - adds r7, r7, r2 - adds r6, #0x20 - adds r5, #1 - cmp r5, #3 - ble _0805589A_loop -_080558F0_return: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08055900: .4byte gUnknown_08688394 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc deleted file mode 100644 index 1065f14c26..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_SpecialStageUIMain.inc +++ /dev/null @@ -1,411 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _08053D64 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - ldr r2, _08053D68 @ =0x03000048 - adds r0, r1, r2 - ldrb r7, [r0] - ldr r4, _08053D6C @ =0x0300004C - adds r1, r1, r4 - movs r2, #0 - ldrsh r0, [r1, r2] - adds r0, #1 - lsls r2, r0, #0x10 - strh r0, [r1] - movs r4, #0x72 - mov sl, r4 @ sl = r4 = 0x72 - lsrs r0, r2, #0x10 - mov sb, r0 @ sb = ui->unk4C++; - asrs r2, r2, #0x10 - adds r1, r2, #0 - subs r1, #0xa - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bhi _08053D70 - lsls r0, r1, #6 - movs r1, #0x14 @ 20 - bl Div - mov r1, sp - subs r0, #0x46 - b _08053D84 - .align 2, 0 -_08053D64: .4byte gCurTask -_08053D68: .4byte 0x03000048 -_08053D6C: .4byte 0x0300004C -_08053D70: - cmp r2, #0x1d - ble _08053D80 - mov r1, sp - ldr r0, _08053D7C @ =0x0000FFFA - b _08053D84 - .align 2, 0 -_08053D7C: .4byte 0x0000FFFA -_08053D80: - mov r1, sp - ldr r0, _08053DDC @ =0x0000FFBA -_08053D84: - strh r0, [r1, #0xc] - mov r1, sp @ r1 = overB - movs r4, #0x5a - lsls r4, r4, #0x10 - asrs r0, r4, #0x10 - adds r0, #4 - strh r0, [r1, #0xa] - movs r2, #1 - movs r0, #1 - strh r0, [r1, #0xe] - movs r0, #0x18 - strh r0, [r1, #8] - movs r0, #3 - strh r0, [r1, #0x10] - movs r0, #0xa - strh r0, [r1, #0x12] - mov r0, sp - strb r2, [r0, #0x16] - ldr r0, _08053DE0 @ =gUnknown_0865F178 - bl sub_80530CC - ldr r0, _08053DE4 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = ui - ldr r2, _08053DE8 @ =gSpecialStageCollectedRings - ldrh r1, [r2] - ldr r0, _08053DEC @ =0x000003E7 - mov r8, r4 @ r8 = r4 = 90 - cmp r1, r0 - bls _08053DF0 - movs r0, #0x29 - strb r0, [r6] - strb r0, [r6, #1] - strb r0, [r6, #2] - mov r1, sb - lsls r1, r1, #0x10 - mov sb, r1 - mov r2, sl - lsls r2, r2, #0x10 - mov sl, r2 - b _08053E24 - .align 2, 0 -_08053DDC: .4byte 0x0000FFBA -_08053DE0: .4byte gUnknown_0865F178 -_08053DE4: .4byte gCurTask -_08053DE8: .4byte gSpecialStageCollectedRings -_08053DEC: .4byte 0x000003E7 -_08053DF0: - ldrh r4, [r2] - movs r5, #0 - mov r0, sb - lsls r0, r0, #0x10 - mov sb, r0 - mov r1, sl - lsls r1, r1, #0x10 - mov sl, r1 -_08053E00: - adds r0, r4, #0 - movs r1, #0xa - bl Div - adds r3, r0, #0 - movs r0, #2 - subs r0, r0, r5 - adds r0, r6, r0 - lsls r1, r3, #3 - lsls r2, r3, #1 - adds r1, r1, r2 - subs r1, r4, r1 - adds r1, #0x20 - strb r1, [r0] - adds r4, r3, #0 - adds r5, #1 - cmp r5, #2 - ble _08053E00 -_08053E24: - ldr r0, _08053E54 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r2, _08053E58 @ =0x03000044 - adds r0, r0, r2 - ldr r1, _08053E5C @ =gSpecialStageCollectedRings - ldrh r1, [r1] - strh r1, [r0] - mov r4, sb - asrs r2, r4, #0x10 - adds r1, r2, #0 - subs r1, #0x14 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bhi _08053E60 - lsls r0, r1, #6 - movs r1, #0x14 - bl Div - mov r1, sp - subs r0, #0x40 - b _08053E6E - .align 2, 0 -_08053E54: .4byte gCurTask -_08053E58: .4byte 0x03000044 -_08053E5C: .4byte gSpecialStageCollectedRings -_08053E60: - cmp r2, #0x27 - ble _08053E6A - mov r1, sp - movs r0, #0 - b _08053E6E -_08053E6A: - mov r1, sp - ldr r0, _08053EC4 @ =0x0000FFC0 -_08053E6E: - strh r0, [r1, #0xc] - mov r1, sp - movs r2, #0 - movs r0, #6 - strh r0, [r1, #0x12] - movs r0, #0x10 - strh r0, [r1, #8] - mov r0, sp - strh r2, [r0, #0x10] - movs r3, #1 - strb r3, [r0, #0x16] - ldr r0, _08053EC8 @ =gSpecialStageCollectedRings - ldrh r2, [r0] - cmp r2, #9 - bhi _08053EE2 - mov r0, sp - mov r4, r8 - asrs r1, r4, #0x10 - adds r1, #0xc - strh r1, [r0, #0xa] - strh r3, [r0, #0xe] - cmp r2, #0 - bne _08053ED8 - adds r0, r7, #0 @ r0 = r7 = r7 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsrs r0, r0, #3 - ldr r1, _08053ECC @ =gUnknown_0865F174 - adds r0, r0, r1 - mov r1, sp - bl sub_80530CC - movs r0, #0x1f - ands r7, r0 - ldr r0, _08053ED0 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r1, _08053ED4 @ =0x03000048 - adds r0, r0, r1 - strh r7, [r0] - b _08053F10 - .align 2, 0 -_08053EC4: .4byte 0x0000FFC0 -_08053EC8: .4byte gSpecialStageCollectedRings -_08053ECC: .4byte gUnknown_0865F174 -_08053ED0: .4byte gCurTask -_08053ED4: .4byte 0x03000048 -_08053ED8: - adds r0, r6, #2 - mov r1, sp - bl sub_80530CC - b _08053F10 -_08053EE2: - cmp r2, #0x63 - bhi _08053EFC - mov r1, sp - mov r2, r8 - asrs r0, r2, #0x10 - adds r0, #8 - strh r0, [r1, #0xa] - movs r0, #2 - strh r0, [r1, #0xe] - adds r0, r6, #1 - bl sub_80530CC - b _08053F10 -_08053EFC: - mov r1, sp - mov r4, r8 - asrs r0, r4, #0x10 - adds r0, #4 - strh r0, [r1, #0xa] - movs r0, #3 - strh r0, [r1, #0xe] - adds r0, r6, #0 - bl sub_80530CC -_08053F10: - ldr r0, _08053F30 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r1, _08053F34 @ =0x03000010 - adds r6, r0, r1 - ldr r2, _08053F38 @ =gSpecialStageTargetRings - ldrh r1, [r2] - ldr r0, _08053F3C @ =0x000003E7 - cmp r1, r0 - bls _08053F40 - movs r0, #0x29 - strb r0, [r6] - strb r0, [r6, #1] - strb r0, [r6, #2] - b _08053F68 - .align 2, 0 -_08053F30: .4byte gCurTask -_08053F34: .4byte 0x03000010 -_08053F38: .4byte gSpecialStageTargetRings -_08053F3C: .4byte 0x000003E7 -_08053F40: - ldrh r4, [r2] - movs r5, #0 -_08053F44: - adds r0, r4, #0 - movs r1, #0xa - bl Div - adds r3, r0, #0 - movs r0, #2 - subs r0, r0, r5 - adds r0, r6, r0 - lsls r1, r3, #3 - lsls r2, r3, #1 - adds r1, r1, r2 - subs r1, r4, r1 - adds r1, #0x20 - strb r1, [r0] - adds r4, r3, #0 - adds r5, #1 - cmp r5, #2 - ble _08053F44 -_08053F68: - ldr r0, _08053F98 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r2, _08053F9C @ =0x03000044 - adds r0, r0, r2 - ldr r1, _08053FA0 @ =gSpecialStageTargetRings - ldrh r1, [r1] - strh r1, [r0] - mov r4, sb - asrs r2, r4, #0x10 - adds r1, r2, #0 - subs r1, #0xf - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bhi _08053FA4 - lsls r0, r1, #6 - movs r1, #0x14 - bl Div - mov r1, sp - subs r0, #0x34 - b _08053FB2 - .align 2, 0 -_08053F98: .4byte gCurTask -_08053F9C: .4byte 0x03000044 -_08053FA0: .4byte gSpecialStageTargetRings -_08053FA4: - cmp r2, #0x22 - ble _08053FAE - mov r1, sp - movs r0, #0xc - b _08053FB2 -_08053FAE: - mov r1, sp - ldr r0, _0805400C @ =0x0000FFCC -_08053FB2: - strh r0, [r1, #0xc] - mov r1, sp - movs r2, #0 - movs r0, #6 - strh r0, [r1, #0x12] - movs r0, #0x10 - strh r0, [r1, #8] - mov r0, sp - strh r2, [r0, #0x10] - movs r3, #1 - strb r3, [r0, #0x16] - ldr r0, _08054010 @ =gSpecialStageTargetRings - ldrh r2, [r0] - cmp r2, #9 - bhi _0805402A - mov r0, sp - mov r4, sl - asrs r1, r4, #0x10 - adds r1, #0xc - strh r1, [r0, #0xa] - strh r3, [r0, #0xe] - cmp r2, #0 - bne _08054020 - adds r0, r7, #0 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - lsrs r0, r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08054014 @ =gUnknown_0865F174 - adds r0, r0, r1 - mov r1, sp - bl sub_80530CC - movs r0, #0x1f - ands r7, r0 - ldr r0, _08054018 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r1, _0805401C @ =0x03000048 - adds r0, r0, r1 - strh r7, [r0] - b _08054058 - .align 2, 0 -_0805400C: .4byte 0x0000FFCC -_08054010: .4byte gSpecialStageTargetRings -_08054014: .4byte gUnknown_0865F174 -_08054018: .4byte gCurTask -_0805401C: .4byte 0x03000048 -_08054020: - adds r0, r6, #2 - mov r1, sp - bl sub_80530CC - b _08054058 -_0805402A: - cmp r2, #0x63 - bhi _08054044 - mov r1, sp - mov r2, sl - asrs r0, r2, #0x10 - adds r0, #8 - strh r0, [r1, #0xa] - movs r0, #2 - strh r0, [r1, #0xe] - adds r0, r6, #1 - bl sub_80530CC - b _08054058 -_08054044: - mov r1, sp - mov r4, sl - asrs r0, r4, #0x10 - adds r0, #4 - strh r0, [r1, #0xa] - movs r0, #3 - strh r0, [r1, #0xe] - adds r0, r6, #0 - bl sub_80530CC -_08054058: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc deleted file mode 100644 index 39aeb2a8f8..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__Task_StageUIMain.inc +++ /dev/null @@ -1,223 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - sub sp, #0x18 - mov r1, sp - ldr r0, _08053758 @ =0x0000FFFE - strh r0, [r1, #0xa] - adds r0, #1 - strh r0, [r1, #0xc] - mov r0, sp - movs r2, #1 - movs r5, #1 - strh r5, [r0, #0xe] - movs r0, #0x18 - strh r0, [r1, #8] - movs r0, #3 - strh r0, [r1, #0x10] - movs r0, #6 - strh r0, [r1, #0x12] - mov r0, sp - strb r2, [r0, #0x16] - ldr r4, _0805375C @ =gUnknown_0865F178 - adds r0, r4, #0 - bl sub_80530CC - ldr r0, _08053760 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08053738 - mov r1, sp - movs r0, #0x90 - strh r0, [r1, #0xc] - movs r0, #2 - strh r0, [r1, #0xa] - mov r0, sp - strh r5, [r0, #0x10] - ldr r0, _08053764 @ =gSelectedCharacter - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r1, #0x12] - adds r0, r4, #0 - bl sub_80530CC -_08053738: - ldr r0, _08053768 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r1, r0 @ r6 = ui - ldr r2, _0805376C @ =gRingCount - ldrh r1, [r2] - ldr r0, _08053770 @ =0x000003E7 - cmp r1, r0 - bls _08053774 - movs r0, #0x29 - strb r0, [r6] - strb r0, [r6, #1] - strb r0, [r6, #2] - b _0805379C - .align 2, 0 -_08053758: .4byte 0x0000FFFE -_0805375C: .4byte gUnknown_0865F178 -_08053760: .4byte gGameMode -_08053764: .4byte gSelectedCharacter -_08053768: .4byte gCurTask -_0805376C: .4byte gRingCount -_08053770: .4byte 0x000003E7 -_08053774: - ldrh r4, [r2] - movs r5, #0 -_08053778: - adds r0, r4, #0 - movs r1, #0xa - bl Div - adds r3, r0, #0 - movs r0, #2 - subs r0, r0, r5 - adds r0, r6, r0 - lsls r1, r3, #3 - lsls r2, r3, #1 - adds r1, r1, r2 - subs r1, r4, r1 - adds r1, #0x20 - strb r1, [r0] - adds r4, r3, #0 - adds r5, #1 - cmp r5, #2 - ble _08053778 -_0805379C: - ldr r2, _08053800 @ =gCurTask - ldr r0, [r2] - ldrh r0, [r0, #6] - ldr r1, _08053804 @ =0x03000044 - adds r0, r0, r1 - ldr r1, _08053808 @ =gRingCount - ldrh r1, [r1] - strh r1, [r0] @ ui->ringCount = gRingCount; - ldr r0, [r2] - ldrh r0, [r0, #6] - ldr r1, _0805380C @ =0x03000010 - adds r6, r0, r1 - movs r0, #0 - strb r0, [r6, #9] @ ui->unk10[ARRAY_COUNT(ui->unk10) - 1] = 0; - ldr r0, _08053810 @ =gLevelScore - ldr r4, [r0] - movs r5, #8 -_080537BE: - adds r0, r4, #0 - movs r1, #0xa - bl Div - adds r3, r0, #0 - adds r0, r6, r5 - lsls r1, r3, #3 - lsls r2, r3, #1 - adds r1, r1, r2 - subs r1, r4, r1 - adds r1, #0x20 - strb r1, [r0] - adds r4, r3, #0 - subs r5, #1 - cmp r5, #0 - bge _080537BE - ldr r0, _08053814 @ =gCourseTime - ldr r0, [r0] - bl StageUI_DrawTimer - ldr r0, _08053800 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r1, _08053818 @ =0x03000030 - adds r6, r0, r1 @ r6 = - ldr r0, _0805381C @ =gNumLives - ldrb r0, [r0] - adds r1, r0, #0 - cmp r1, #9 - bls _08053820 - movs r0, #0x29 - b _0805382A - .align 2, 0 -_08053800: .4byte gCurTask -_08053804: .4byte 0x03000044 -_08053808: .4byte gRingCount -_0805380C: .4byte 0x03000010 -_08053810: .4byte gLevelScore -_08053814: .4byte gCourseTime -_08053818: .4byte 0x03000030 -_0805381C: .4byte gNumLives -_08053820: - cmp r1, #0 - beq _08053828 - adds r0, #0x1f - b _0805382A -_08053828: - movs r0, #0x20 -_0805382A: - strb r0, [r6] - bl sub_8053BAC - ldr r0, _08053870 @ =gLoadedSaveGame - ldrb r0, [r0, #0x1b] - cmp r0, #1 - bne _08053840 - ldr r0, _08053874 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - beq _080538A8 -_08053840: - ldr r0, _08053878 @ =gStageFlags - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08053884 - ldr r4, _0805387C @ =gCourseTime - ldr r1, [r4] - ldr r0, _08053880 @ =0x000004AF - cmp r1, r0 - bhi _080538A8 - adds r0, r1, #0 - movs r1, #0x3c - bl Mod - cmp r0, #0 - bne _080538A8 - ldr r0, [r4] - cmp r0, #0 - beq _080538A8 - movs r0, #0x8b - bl m4aSongNumStart - b _080538A8 - .align 2, 0 -_08053870: .4byte gLoadedSaveGame -_08053874: .4byte gGameMode -_08053878: .4byte gStageFlags -_0805387C: .4byte gCourseTime -_08053880: .4byte 0x000004AF -_08053884: - ldr r4, _080538B0 @ =gCourseTime - ldr r1, [r4] - ldr r0, _080538B4 @ =0x000087F0 - cmp r1, r0 - bls _080538A8 - adds r0, r1, #0 - movs r1, #0x3c - bl Mod - cmp r0, #0 - bne _080538A8 - ldr r1, [r4] - ldr r0, _080538B8 @ =0x00008C9F - cmp r1, r0 - bhi _080538A8 - movs r0, #0x8b - bl m4aSongNumStart -_080538A8: - add sp, #0x18 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080538B0: .4byte gCourseTime -_080538B4: .4byte 0x000087F0 -_080538B8: .4byte 0x00008C9F - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc deleted file mode 100644 index 712d8e8186..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_8053BAC.inc +++ /dev/null @@ -1,184 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x18 - ldr r0, _08053C24 @ =gCurTask - mov sb, r0 - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r4, r0 @ r5 = ui - ldr r1, _08053C28 @ =0x03000048 - mov r8, r1 @ r8 = 0x03000048 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r6, r0, #0x18 @ r6 = ui->unk48 << 24 - lsrs r7, r6, #0x18 @ r7 = r7 = ui->unk48 - mov r0, sp - movs r2, #0 - movs r1, #5 @ r1 = 5 - mov ip, r1 @ ip = r1 = 5 - mov r1, ip @ r1 = 5 - strh r1, [r0, #0xc] - mov r1, sp - movs r0, #6 - strh r0, [r1, #0x12] - movs r0, #0x10 - strh r0, [r1, #8] - mov r0, sp - strh r2, [r0, #0x10] - movs r3, #1 - strb r3, [r0, #0x16] - ldr r0, _08053C2C @ =gRingCount - ldrh r2, [r0] - cmp r2, #9 - bhi _08053C3C - mov r0, sp - movs r1, #9 - strh r1, [r0, #0xa] - strh r3, [r0, #0xe] - cmp r2, #0 - bne _08053C34 - adds r4, r7, #1 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsrs r0, r6, #0x1b - ldr r1, _08053C30 @ =gUnknown_0865F174 - adds r0, r0, r1 - mov r1, sp - bl sub_80530CC - movs r0, #0x1f - ands r4, r0 - mov r1, sb - ldr r0, [r1] - ldrh r0, [r0, #6] - add r0, r8 - strh r4, [r0] - b _08053C6C - .align 2, 0 -_08053C24: .4byte gCurTask -_08053C28: .4byte 0x03000048 -_08053C2C: .4byte gRingCount -_08053C30: .4byte gUnknown_0865F174 -_08053C34: - ldr r1, _08053C38 @ =0x03000002 - b _08053C4E - .align 2, 0 -_08053C38: .4byte 0x03000002 -_08053C3C: - cmp r2, #0x63 - bhi _08053C5C - mov r0, sp - mov r1, ip @ r1 = ip = 5 - strh r1, [r0, #0xa] - mov r1, sp - movs r0, #2 - strh r0, [r1, #0xe] - ldr r1, _08053C58 @ =0x03000001 -_08053C4E: - adds r0, r4, r1 - mov r1, sp - bl sub_80530CC - b _08053C6C - .align 2, 0 -_08053C58: .4byte 0x03000001 -_08053C5C: - mov r0, sp - strh r3, [r0, #0xa] - mov r1, sp - movs r0, #3 - strh r0, [r1, #0xe] - adds r0, r5, #0 - bl sub_80530CC -_08053C6C: - adds r5, #0x10 - mov r0, sp - ldr r1, _08053CB4 @ =0x0000FFFE - strh r1, [r0, #0xc] - movs r3, #0 - ldrb r0, [r5] - ldr r1, _08053CB8 @ =gLevelScore - cmp r0, #0x20 - bne _08053C90 -_08053C7E: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #9 - bhi _08053C90 - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, #0x20 - beq _08053C7E -_08053C90: - ldr r0, [r1] - cmp r0, #0 - beq _08053CBC - mov r0, sp - movs r1, #9 - subs r1, r1, r3 - strh r1, [r0, #0xe] - mov r2, sp - lsls r1, r1, #3 - movs r0, #0x51 - subs r0, r0, r1 - strh r0, [r2, #0xa] - adds r0, r5, r3 - mov r1, sp - bl sub_80530CC - b _08053CCC - .align 2, 0 -_08053CB4: .4byte 0x0000FFFE -_08053CB8: .4byte gLevelScore -_08053CBC: - mov r1, sp - movs r0, #1 - strh r0, [r1, #0xe] - movs r0, #0x49 - strh r0, [r1, #0xa] - ldr r0, _08053D10 @ =gUnknown_0865F178 - bl sub_80530CC -_08053CCC: - adds r5, #0x10 - mov r1, sp - movs r0, #0x19 - strh r0, [r1, #0xa] - movs r0, #0xc - strh r0, [r1, #0xc] - movs r0, #7 - strh r0, [r1, #0xe] - adds r0, r5, #0 - bl sub_80530CC - ldr r0, _08053D14 @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _08053D00 - adds r5, #0x10 - mov r1, sp - movs r0, #0x16 - strh r0, [r1, #0xa] - movs r0, #0x8f - strh r0, [r1, #0xc] - movs r0, #1 - strh r0, [r1, #0xe] - adds r0, r5, #0 - bl sub_80530CC -_08053D00: - add sp, #0x18 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08053D10: .4byte gUnknown_0865F178 -_08053D14: .4byte gGameMode - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc b/sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc deleted file mode 100644 index bceb2a1d7b..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/stage_ui__sub_80550F8.inc +++ /dev/null @@ -1,401 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x30 - ldr r2, _0805512C @ =gCurrentLevel - ldrb r1, [r2] - movs r3, #0 - ldrsb r3, [r2, r3] - cmp r3, #0xc - bgt _08055164 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08055164 - ldr r0, _08055130 @ =gFinalBossActive - ldrb r1, [r0] - adds r0, r3, #0 - cmp r1, r0 - beq _08055164 - cmp r3, #0xd - beq _08055164 - movs r4, #0 - ldr r5, _08055134 @ =0x0000042A - b _08055150 - .align 2, 0 -_0805512C: .4byte gCurrentLevel -_08055130: .4byte gFinalBossActive -_08055134: .4byte 0x0000042A -_08055138: - strh r5, [r2] - lsls r0, r4, #5 - ldr r3, _080552A8 @ =0xFFFF8000 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r2, #2] - movs r0, #0xc1 - lsls r0, r0, #7 - strh r0, [r2, #4] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08055150: - cmp r4, #7 - bhi _08055164 - movs r0, #1 - bl OamMalloc - adds r2, r0, #0 - ldr r0, _080552AC @ =iwram_end - ldr r0, [r0] - cmp r0, r2 - bne _08055138 -_08055164: - bl sub_80535FC - bl UiGfxStackInit - ldr r0, _080552B0 @ =Task_8055730 - ldr r1, _080552B4 @ =TaskDestructor_8055C38 - str r1, [sp] - movs r1, #0x24 - ldr r2, _080552B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0x20] @ sp20 = t0 - ldrh r4, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r7, r4, r2 @ r7 = Strc_Ui_24* - movs r5, #0 - strh r5, [r7, #0x18] - ldr r3, _080552BC @ =0x03000020 - adds r0, r4, r3 - movs r1, #1 - strb r1, [r0] - strh r5, [r7, #0x1a] - ldr r0, _080552C0 @ =0x0000FFB0 - strh r0, [r7, #0xa] - strh r5, [r7, #0xc] - movs r0, #3 - strh r0, [r7, #0xe] - movs r0, #0x18 - strh r0, [r7, #8] - movs r2, #6 - strh r2, [r7, #0x10] - movs r3, #0 - strb r3, [r7, #0x16] - movs r0, #0xf - mov sl, r0 - mov r1, sl - strh r1, [r7, #0x12] - movs r0, #5 - strh r0, [r7, #0x14] - movs r0, #0x20 - bl VramMalloc - str r0, [r7, #0x1c] - str r0, [sp, #8] @ sp08 = vram0 - ldr r2, _080552C4 @ =0x03000021 - adds r4, r4, r2 - movs r3, #0 - strb r3, [r4] @ --- 0 - ldr r0, _080552C8 @ =Task_8055798 - str r5, [sp] - movs r1, #0x24 - ldr r2, _080552B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0x24] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - strh r5, [r7, #0x18] - ldr r2, _080552BC @ =0x03000020 - adds r0, r1, r2 - movs r3, #0 - strb r3, [r0] - movs r0, #1 - strh r0, [r7, #0x1a] - movs r0, #0x14 - strh r0, [r7, #0xa] - movs r2, #1 - strh r2, [r7, #0xe] - movs r0, #7 - strh r0, [r7, #0x10] - mov r3, sl - strh r3, [r7, #0x12] - movs r0, #1 - strb r0, [r7, #0x16] - movs r0, #0x10 - strh r0, [r7, #8] - ldr r2, _080552C4 @ =0x03000021 - adds r1, r1, r2 - movs r3, #0 - strb r3, [r1] - ldr r0, _080552CC @ =Task_8055904 - ldr r1, _080552B4 @ =TaskDestructor_8055C38 - str r1, [sp] - movs r1, #0x24 - ldr r2, _080552B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0x18] - ldrh r4, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r7, r4, r2 - strh r5, [r7, #0x18] - ldr r3, _080552BC @ =0x03000020 - adds r0, r4, r3 - movs r1, #1 - strb r1, [r0] - strh r5, [r7, #0x1a] - movs r0, #0xb4 - strh r0, [r7, #0xa] - movs r0, #0xa0 - strh r0, [r7, #0xc] - movs r2, #6 - strh r2, [r7, #0xe] - movs r0, #0xa - strh r0, [r7, #0x10] - strh r2, [r7, #0x12] - strb r1, [r7, #0x16] - strh r5, [r7, #8] - movs r0, #0xc - bl VramMalloc - str r0, [r7, #0x1c] - str r0, [sp, #0x14] - ldr r3, _080552C4 @ =0x03000021 - adds r4, r4, r3 - movs r0, #0 - strb r0, [r4] - ldr r0, _080552D0 @ =Task_8055998 - ldr r1, _080552B4 @ =TaskDestructor_8055C38 - str r1, [sp] - movs r1, #0x24 - ldr r2, _080552B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0x1c] - ldrh r0, [r0, #6] - movs r2, #0xc0 - lsls r2, r2, #0x12 - adds r7, r0, r2 - strh r5, [r7, #0x18] - ldr r3, _080552BC @ =0x03000020 - adds r0, r0, r3 - movs r1, #1 - strb r1, [r0] - strh r5, [r7, #0x1a] - ldr r3, _080552D4 @ =gCurrentLevel - ldrb r2, [r3] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080552E0 - ldr r0, _080552D8 @ =gFinalBossActive - ldrb r1, [r0] - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r1, r0 - beq _080552E0 - cmp r2, #0xd - beq _080552E0 - ldr r0, _080552DC @ =0x0000FFF0 - strh r0, [r7, #0xa] - movs r0, #0x2a - b _080552E6 - .align 2, 0 -_080552A8: .4byte 0xFFFF8000 -_080552AC: .4byte iwram_end -_080552B0: .4byte Task_8055730 -_080552B4: .4byte TaskDestructor_8055C38 -_080552B8: .4byte 0x00002120 -_080552BC: .4byte 0x03000020 -_080552C0: .4byte 0x0000FFB0 -_080552C4: .4byte 0x03000021 -_080552C8: .4byte Task_8055798 -_080552CC: .4byte Task_8055904 -_080552D0: .4byte Task_8055998 -_080552D4: .4byte gCurrentLevel -_080552D8: .4byte gFinalBossActive -_080552DC: .4byte 0x0000FFF0 -_080552E0: - movs r0, #0xf0 - strh r0, [r7, #0xa] - movs r0, #0x7e -_080552E6: - strh r0, [r7, #0xc] - movs r0, #8 - strh r0, [r7, #0xe] - strh r0, [r7, #0x10] - movs r1, #6 - strh r1, [r7, #0x12] - movs r2, #1 - strb r2, [r7, #0x16] - strh r0, [r7, #8] - movs r0, #0x10 - bl VramMalloc - str r0, [r7, #0x1c] - str r0, [sp, #4] - adds r0, r7, #0 - adds r0, #0x21 - movs r3, #0 - strb r3, [r0] - ldr r0, _08055430 @ =Task_8055AA0 - ldr r1, _08055434 @ =TaskDestructor_8055C38 - mov sb, r1 - str r1, [sp] - movs r1, #0x24 - ldr r2, _08055438 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0x28] - ldrh r5, [r0, #6] - movs r4, #0xc0 - lsls r4, r4, #0x12 - adds r7, r5, r4 - movs r2, #0 - strh r2, [r7, #0x18] - ldr r3, _0805543C @ =0x03000020 - adds r0, r5, r3 - movs r1, #1 - strb r1, [r0] - strh r2, [r7, #0x1a] - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r7, #0xa] - movs r0, #0x72 - strh r0, [r7, #0xc] - movs r0, #4 - strh r0, [r7, #0xe] - movs r2, #9 - strh r2, [r7, #0x10] - movs r3, #6 - strh r3, [r7, #0x12] - strb r1, [r7, #0x16] - movs r0, #0 - strh r0, [r7, #8] - movs r0, #0x10 - bl VramMalloc - str r0, [r7, #0x1c] - str r0, [sp, #0xc] - ldr r1, _08055440 @ =0x03000021 - adds r5, r5, r1 - movs r2, #0 - strb r2, [r5] - ldr r0, _08055444 @ =Task_8055B18 - mov r3, sb - str r3, [sp] - movs r1, #0x24 - ldr r2, _08055438 @ =0x00002120 - movs r3, #0 - bl TaskCreate - adds r6, r0, #0 - ldrh r5, [r6, #6] - adds r7, r5, r4 - movs r0, #0 - strh r0, [r7, #0x18] - ldr r1, _0805543C @ =0x03000020 - adds r0, r5, r1 - movs r2, #1 - strb r2, [r0] - movs r3, #0 - strh r3, [r7, #0x1a] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r7, #0xa] - movs r0, #0x80 - strh r0, [r7, #0xc] - movs r0, #9 - strh r0, [r7, #0xe] - movs r1, #2 - mov r8, r1 - mov r2, r8 - strh r2, [r7, #0x10] - movs r3, #6 - strh r3, [r7, #0x12] - movs r0, #1 - strb r0, [r7, #0x16] - movs r1, #0 - strh r1, [r7, #8] - movs r0, #0x38 - bl VramMalloc - str r0, [r7, #0x1c] - str r0, [sp, #0x10] - ldr r2, _08055440 @ =0x03000021 - adds r5, r5, r2 - movs r3, #0 - strb r3, [r5] - ldr r0, _08055448 @ =Task_8055458 - movs r2, #0x84 - lsls r2, r2, #6 - ldr r1, _0805544C @ =TaskDestructor_StrcUI28_8055C4C - str r1, [sp] - movs r1, #0x28 @ sizeof(Struct_sub_80550F8) - movs r3, #0 - bl TaskCreate - adds r5, r0, #0 - ldrh r1, [r5, #6] - adds r4, r1, r4 - movs r0, #0 - strh r0, [r4, #0x24] - ldr r2, _08055450 @ =0x03000026 - adds r0, r1, r2 - movs r3, #1 - strb r3, [r0] - ldr r0, [sp, #0x20] @ r0 = t0 - str r0, [r4, #0xc] - ldr r2, [sp, #0x24] - str r2, [r4, #0x10] - ldr r3, [sp, #0x1c] - str r3, [r4, #0x14] - ldr r0, [sp, #0x28] - str r0, [r4, #0x18] - ldr r2, [sp, #0x18] - str r2, [r4, #0x1c] - str r6, [r4, #0x20] - movs r3, #0 - strh r3, [r4] - strh r3, [r4, #2] - mov r0, r8 - strh r0, [r4, #4] - strh r3, [r4, #6] - movs r0, #0x60 - strh r0, [r4, #8] - movs r2, #1 - strb r2, [r4, #0xa] - ldr r3, _08055454 @ =0x03000027 - adds r1, r1, r3 - movs r0, #0 - strb r0, [r1] - add r0, sp, #4 - bl LoadStageIntroGraphics - adds r0, r4, #0 - bl sub_805423C - adds r0, r5, #0 - add sp, #0x30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08055430: .4byte Task_8055AA0 -_08055434: .4byte TaskDestructor_8055C38 -_08055438: .4byte 0x00002120 -_0805543C: .4byte 0x03000020 -_08055440: .4byte 0x03000021 -_08055444: .4byte Task_8055B18 -_08055448: .4byte Task_8055458 -_0805544C: .4byte TaskDestructor_StrcUI28_8055C4C -_08055450: .4byte 0x03000026 -_08055454: .4byte 0x03000027 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc b/sa1/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc deleted file mode 100644 index 6b1939c74a..0000000000 --- a/sa1/asm/non_matching/game/sa1/stage/unk_1__Task_801D200.inc +++ /dev/null @@ -1,177 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified - -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _0801D228 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - str r1, [sp] - movs r0, #0 - str r0, [sp, #0x18] - ldr r2, _0801D22C @ =gMultiplayerConnections - ldrb r0, [r2] - movs r1, #1 - b _0801D244 - .align 2, 0 -_0801D228: .4byte gCurTask -_0801D22C: .4byte gMultiplayerConnections -_0801D230: - ldr r0, [sp, #0x18] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x18] - cmp r0, #3 - bhi _0801D24A - ldrb r0, [r2] - ldr r3, [sp, #0x18] - asrs r0, r3 -_0801D244: - ands r0, r1 - cmp r0, #0 - bne _0801D230 -_0801D24A: - movs r0, #0x14 - ldr r4, [sp, #0x18] - cmp r4, #3 - beq _0801D25A - movs r0, #0 - cmp r4, #2 - bne _0801D25A - movs r0, #0x28 -_0801D25A: - movs r6, #0 - ldr r7, [sp, #0x18] - cmp r6, r7 - bhs _0801D336 - ldr r1, [sp] - adds r1, #0x60 - str r1, [sp, #0x10] - ldr r3, [sp] - adds r3, #0x62 - str r3, [sp, #0x14] - ldr r4, _0801D2DC @ =gLoadedSaveGame - str r4, [sp, #8] - str r0, [sp, #4] -_0801D274: - movs r5, #0 - lsls r7, r6, #1 - mov sl, r7 - lsls r0, r6, #2 - lsls r1, r6, #0x10 - mov sb, r1 - adds r3, r6, #1 - str r3, [sp, #0xc] - adds r0, r0, r6 - lsls r0, r0, #3 - ldr r4, [sp, #4] - adds r4, r4, r0 - mov r8, r4 -_0801D28E: - mov r7, sl - adds r0, r7, r6 - lsls r0, r0, #3 - ldr r1, [sp] - adds r2, r1, r0 - lsls r0, r5, #3 - ldr r3, [sp, #0x10] - ldrh r3, [r3] - adds r0, r0, r3 - strh r0, [r2, #0xa] - ldr r4, [sp, #0x14] - ldrh r0, [r4] - mov r7, r8 - adds r3, r0, r7 - strh r3, [r2, #0xc] - ldr r0, _0801D2E0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - mov r4, sb - lsrs r1, r4, #0x10 - cmp r0, r1 - bne _0801D2E8 - ldr r7, _0801D2E4 @ =gLoadedSaveGame + 0x10 - adds r1, r5, r7 - ldrb r0, [r1] - subs r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x19 - bhi _0801D2D2 - adds r0, r3, #0 - adds r0, #8 - strh r0, [r2, #0xc] -_0801D2D2: - adds r0, r1, #0 - adds r1, r2, #0 - bl sub_8052F78 - b _0801D320 - .align 2, 0 -_0801D2DC: .4byte gLoadedSaveGame -_0801D2E0: .4byte 0x04000128 -_0801D2E4: .4byte gLoadedSaveGame + 0x10 -_0801D2E8: - ldr r0, _0801D348 @ =gUnknown_03005008 - adds r1, r6, r0 - ldrb r0, [r1] - lsls r0, r0, #4 - adds r0, r0, r5 - mov ip, r0 - ldr r0, [sp, #8] - movs r7, #0xe1 - lsls r7, r7, #2 - adds r4, r0, r7 - mov r7, ip - adds r0, r7, r4 - ldrb r0, [r0] - subs r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x19 - bhi _0801D312 - adds r0, r3, #0 - adds r0, #8 - strh r0, [r2, #0xc] -_0801D312: - ldrb r0, [r1] - lsls r0, r0, #4 - adds r0, r0, r4 - adds r0, r0, r5 - adds r1, r2, #0 - bl sub_8052F78 -_0801D320: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _0801D28E - ldr r1, [sp, #0xc] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - ldr r3, [sp, #0x18] - cmp r6, r3 - blo _0801D274 -_0801D336: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801D348: .4byte gUnknown_03005008 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc b/sa1/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc deleted file mode 100644 index a3a3062ab3..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/course_select__Task_CourseSelectInit.inc +++ /dev/null @@ -1,348 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - movs r5, #0 - ldr r0, _08061EE0 @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r2, r1 - mov sl, r0 - ldr r0, [r0, #0x10] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #0x30] - mov r3, sl - ldr r0, [r3, #0x14] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #0x34] - ldr r0, [r3, #0x18] - ldrh r0, [r0, #6] - adds r6, r0, r1 - ldr r7, [r3, #0x4c] - mov r8, r7 - adds r1, #0x58 - adds r0, r2, r1 - ldrb r0, [r0] - movs r3, #1 - add r8, r3 - mov r7, r8 - cmp r7, #0x3f - bne _08061EE4 - cmp r0, #1 - bne _08061EE4 - subs r1, #6 - adds r0, r2, r1 - strh r5, [r0] - adds r3, r1, #0 - adds r3, r3, r2 - mov sb, r3 - b _08061EEE - .align 2, 0 -_08061EE0: .4byte gCurTask -_08061EE4: - mov r1, sl - adds r1, #0x52 - movs r0, #0x14 - strh r0, [r1] - mov sb, r1 -_08061EEE: - mov r4, sl - adds r4, #0x50 - movs r0, #0x14 - strh r0, [r4] - mov r7, r8 - cmp r7, #0xa - bhi _08061F64 - add r1, sp, #0x2c - movs r0, #0x3e - strb r0, [r1] - subs r1, #1 - movs r0, #0 - strb r0, [r1] - ldr r2, _080620FC @ =gUiGraphics - movs r1, #0xd9 - lsls r1, r1, #3 - adds r0, r2, r1 - ldr r0, [r0] - str r0, [sp, #0x14] - ldr r3, _08062100 @ =0x000006CC - adds r0, r2, r3 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0x20 - str r0, [sp, #0x18] - str r0, [sp, #0x24] - add r1, sp, #0x28 - movs r0, #3 - strb r0, [r1] - ldr r0, _08062104 @ =0x06010020 - str r0, [sp, #0xc] - adds r1, #2 - movs r0, #0xc - strb r0, [r1] - movs r7, #0xda - lsls r7, r7, #3 - adds r0, r2, r7 - ldr r0, [r0] - str r0, [sp, #4] - mov r1, sp - adds r3, #8 - adds r0, r2, r3 - ldr r0, [r0] - strb r0, [r1, #8] - adds r7, #8 - adds r0, r2, r7 - ldr r0, [r0] - strb r0, [r1, #9] - adds r3, #8 - adds r0, r2, r3 - ldr r0, [r0] - strb r0, [r1, #0xa] - adds r7, #8 - adds r2, r2, r7 - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC -_08061F64: - mov r0, r8 - mov r1, sl - str r0, [r1, #0x4c] - movs r0, #0xb4 - lsls r0, r0, #2 - ldr r2, [sp, #0x30] - adds r1, r2, r0 - mov r3, r8 - str r3, [r1] - ldr r7, [sp, #0x34] - adds r0, r7, r0 - str r3, [r0] - str r3, [r6, #0x48] - mov r3, sl - adds r3, #0x55 - ldrb r2, [r3] - ldr r0, _08062108 @ =0x000002D7 - ldr r7, [sp, #0x30] - adds r1, r7, r0 - strb r2, [r1] - ldrb r1, [r3] - ldr r2, [sp, #0x34] - adds r0, r2, r0 - strb r1, [r0] - ldrb r0, [r3] - adds r3, r6, #0 - adds r3, #0x4f - strb r0, [r3] - mov r3, sb - movs r7, #0 - ldrsh r0, [r3, r7] - ldrh r1, [r4] - subs r0, r0, r1 - lsls r0, r0, #1 - movs r1, #0xa - bl Div - ldrh r1, [r4] - adds r1, r1, r0 - strh r1, [r4] - movs r0, #0xb5 - lsls r0, r0, #2 - ldr r3, [sp, #0x30] - adds r2, r3, r0 - strh r1, [r2] - ldrh r1, [r4] - ldr r7, [sp, #0x34] - adds r0, r7, r0 - strh r1, [r0] - ldrh r1, [r4] - adds r0, r6, #0 - adds r0, #0x4c - strh r1, [r0] - mov r0, sl - adds r0, #0x57 - ldrb r1, [r0] - ldr r2, _0806210C @ =0x000002D9 - adds r0, r3, r2 - strb r1, [r0] - mov r0, sl - bl sub_805423C - ldr r1, _08062110 @ =gFlags - ldr r0, [r1] - movs r2, #4 - orrs r0, r2 - str r0, [r1] - ldr r1, _08062114 @ =gHBlankCopyTarget - ldr r0, _08062118 @ =0x04000010 - str r0, [r1] - ldr r0, _0806211C @ =gHBlankCopySize - strb r2, [r0] - ldr r0, _08062120 @ =gBgOffsetsHBlankPrimary - ldr r1, [r0] - movs r2, #0 - movs r4, #0 - movs r3, #0x14 -_08061FFE: - strh r4, [r1] - adds r1, #2 - strh r3, [r1] - adds r1, #2 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r2, #0xb - bls _08061FFE - movs r2, #0 - cmp r5, #0x9f - bhi _080620A4 - movs r0, #0x40 - mov r3, r8 - subs r3, r0, r3 - str r3, [sp, #0x38] -_08062024: - movs r3, #0 - adds r6, r2, #1 - mov sb, r6 - lsls r7, r2, #1 - str r7, [sp, #0x3c] - ldr r0, [sp, #0x38] - cmp r3, r0 - bhs _08062068 - cmp r5, #0x9f - bhi _08062068 - movs r6, #0 - mov ip, r6 - ldr r0, _08062124 @ =0x000001FF - adds r7, r0, #0 - movs r0, #0x40 - mov r6, r8 - subs r4, r0, r6 -_08062046: - mov r0, ip - strh r0, [r1] - adds r1, #2 - rsbs r0, r5, #0 - ands r0, r7 - strh r0, [r1] - adds r1, #2 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, r4 - bhs _08062068 - cmp r5, #0x9f - bls _08062046 -_08062068: - ldr r3, [sp, #0x3c] - adds r0, r3, r2 - lsls r0, r0, #3 - subs r0, r0, r5 - adds r0, #0x20 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - movs r2, #0 - cmp r5, #0x9f - bhi _0806209A - movs r4, #0 -_0806207E: - strh r4, [r1] - adds r1, #2 - strh r3, [r1] - adds r1, #2 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0x17 - bhi _0806209A - cmp r5, #0x9f - bls _0806207E -_0806209A: - mov r6, sb - lsls r0, r6, #0x18 - lsrs r2, r0, #0x18 - cmp r5, #0x9f - bls _08062024 -_080620A4: - mov r7, r8 - cmp r7, #0x3f - beq _080620B6 - ldr r0, _08062128 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080620EC -_080620B6: - ldr r1, _0806212C @ =gBgScrollRegs - movs r0, #0x14 - strh r0, [r1, #2] - movs r2, #0x3f - mov r0, sl - str r2, [r0, #0x4c] - movs r0, #0xb4 - lsls r0, r0, #2 - ldr r3, [sp, #0x30] - adds r1, r3, r0 - str r2, [r1] - ldr r6, [sp, #0x34] - adds r0, r6, r0 - str r2, [r0] - ldr r1, _08062130 @ =gBgCntRegs - ldr r0, _08062134 @ =0x00009D83 - strh r0, [r1] - ldr r2, _08062110 @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - ldr r0, _08062138 @ =gCurTask - ldr r1, [r0] - ldr r0, _0806213C @ =Task_8062140 - str r0, [r1, #8] -_080620EC: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080620FC: .4byte gUiGraphics -_08062100: .4byte 0x000006CC -_08062104: .4byte 0x06010020 -_08062108: .4byte 0x000002D7 -_0806210C: .4byte 0x000002D9 -_08062110: .4byte gFlags -_08062114: .4byte gHBlankCopyTarget -_08062118: .4byte 0x04000010 -_0806211C: .4byte gHBlankCopySize -_08062120: .4byte gBgOffsetsHBlankPrimary -_08062124: .4byte 0x000001FF -_08062128: .4byte gPressedKeys -_0806212C: .4byte gBgScrollRegs -_08062130: .4byte gBgCntRegs -_08062134: .4byte 0x00009D83 -_08062138: .4byte gCurTask -_0806213C: .4byte Task_8062140 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc b/sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc deleted file mode 100644 index cfe9ae04de..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8066520.inc +++ /dev/null @@ -1,131 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - ldr r0, _080665AC @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r4, r2, r1 - ldr r0, [r4, #0xc] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sl, r0 - ldr r0, [r4, #0x24] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp] - ldr r0, [r4, #0x28] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #4] - ldr r0, [r4, #0x2c] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #8] - ldr r0, [r4, #0x18] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sb, r0 - ldr r0, [r4, #0x14] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov r8, r0 - ldr r0, [r4, #0x1c] - ldrh r0, [r0, #6] - adds r7, r0, r1 - ldr r0, [r4, #0x20] - ldrh r0, [r0, #6] - adds r6, r0, r1 - ldr r0, _080665B0 @ =0x03000040 - adds r2, r2, r0 - movs r1, #0 - ldrsh r0, [r2, r1] - adds r5, r0, #1 - movs r0, #0xaf - lsls r0, r0, #2 - cmp r5, r0 - bls _080665CC - ldr r1, _080665B4 @ =0x0000FFFF - movs r0, #0 - bl TasksDestroyInPriorityRange - ldr r1, _080665B8 @ =gBackgroundsCopyQueueCursor - ldr r0, _080665BC @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _080665C0 @ =gBgSpritesCount - movs r0, #0 - strb r0, [r1] - ldr r1, _080665C4 @ =gVramGraphicsCopyCursor - ldr r0, _080665C8 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl CreateStaffCredits - b _08066614 - .align 2, 0 -_080665AC: .4byte gCurTask -_080665B0: .4byte 0x03000040 -_080665B4: .4byte 0x0000FFFF -_080665B8: .4byte gBackgroundsCopyQueueCursor -_080665BC: .4byte gBackgroundsCopyQueueIndex -_080665C0: .4byte gBgSpritesCount -_080665C4: .4byte gVramGraphicsCopyCursor -_080665C8: .4byte gVramGraphicsCopyQueueIndex -_080665CC: - ldr r0, _08066624 @ =0x0000029D - cmp r5, r0 - bls _080665F2 - adds r0, #1 - cmp r5, r0 - bne _080665EC - movs r1, #0 - strh r1, [r4] - movs r2, #1 - movs r0, #1 - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r1, [r4, #6] - movs r0, #0xc0 - strh r0, [r4, #8] - strb r2, [r4, #0xa] -_080665EC: - adds r0, r4, #0 - bl sub_805423C -_080665F2: - adds r0, r4, #0 - adds r0, #0x40 - strh r5, [r0] - mov r0, sl - strh r5, [r0, #0x3c] - ldr r0, [sp] - strh r5, [r0, #0x3c] - ldr r0, [sp, #4] - strh r5, [r0, #0x3c] - ldr r0, [sp, #8] - strh r5, [r0, #0x3c] - mov r1, sb - strh r5, [r1, #0x3c] - mov r0, r8 - strh r5, [r0, #0x3c] - strh r5, [r7, #0x3c] - strh r5, [r6, #0x3c] -_08066614: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08066624: .4byte 0x0000029D - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc b/sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc deleted file mode 100644 index b64f9065f6..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/extra_stage_results__Task_8067C24.inc +++ /dev/null @@ -1,290 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _08067CAC @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - mov sb, r0 - ldr r0, [r0, #0xc] - ldrh r0, [r0, #6] - adds r0, r0, r1 - str r0, [sp, #0x14] - mov r1, sb - ldr r0, [r1, #0x38] - adds r2, r0, #1 - str r2, [sp, #0x10] - subs r0, #0xb3 - cmp r0, #0x80 - bhi _08067D28 - lsrs r7, r0, #4 - movs r0, #2 - mov r8, r0 - movs r1, #0x1f - mov ip, r1 - movs r2, #0xf8 - lsls r2, r2, #7 - mov sl, r2 -_08067C64: - mov r0, r8 - lsls r2, r0, #1 - ldr r1, _08067CB0 @ =gUiPaletteSoundTestBox3 - adds r0, r2, r1 - ldrh r1, [r0] - movs r3, #0x1f - ands r3, r1 - movs r0, #0xf8 - lsls r0, r0, #2 - ands r0, r1 - lsrs r5, r0, #5 - mov r0, sl - ands r0, r1 - lsrs r4, r0, #0xa - ldr r0, _08067CB4 @ =gUiPaletteSoundTestBox4 - adds r2, r2, r0 - ldrh r1, [r2] - movs r2, #0x1f - ands r2, r1 - movs r0, #0xf8 - lsls r0, r0, #2 - ands r0, r1 - lsrs r6, r0, #5 - mov r0, sl - ands r0, r1 - lsrs r1, r0, #0xa - cmp r3, r2 - bls _08067CB8 - subs r0, r3, r2 - muls r0, r7, r0 - lsrs r0, r0, #3 - subs r3, r3, r0 - mov r2, ip - ands r3, r2 - b _08067CC4 - .align 2, 0 -_08067CAC: .4byte gCurTask -_08067CB0: .4byte gUiPaletteSoundTestBox3 -_08067CB4: .4byte gUiPaletteSoundTestBox4 -_08067CB8: - subs r0, r2, r3 - muls r0, r7, r0 - lsrs r0, r0, #3 - adds r3, r3, r0 - mov r0, ip - ands r3, r0 -_08067CC4: - cmp r5, r6 - bls _08067CD2 - subs r0, r5, r6 - muls r0, r7, r0 - lsrs r0, r0, #3 - subs r0, r5, r0 - b _08067CDA -_08067CD2: - subs r0, r6, r5 - muls r0, r7, r0 - lsrs r0, r0, #3 - adds r0, r5, r0 -_08067CDA: - mov r2, ip - ands r0, r2 - lsls r5, r0, #5 - cmp r4, r1 - bls _08067CF2 - subs r0, r4, r1 - muls r0, r7, r0 - lsrs r0, r0, #3 - subs r0, r4, r0 - mov r1, ip - ands r0, r1 - b _08067CFE -_08067CF2: - subs r0, r1, r4 - muls r0, r7, r0 - lsrs r0, r0, #3 - adds r0, r4, r0 - mov r2, ip - ands r0, r2 -_08067CFE: - lsls r4, r0, #0xa - orrs r3, r5 - orrs r4, r3 - mov r0, r8 - adds r0, #0xe0 - lsls r0, r0, #1 - ldr r1, _08067D88 @ =gObjPalette - adds r0, r0, r1 - strh r4, [r0] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #0xf - bls _08067C64 - ldr r2, _08067D8C @ =gFlags - ldr r0, [r2] - movs r1, #2 - orrs r0, r1 - str r0, [r2] -_08067D28: - movs r0, #0xc8 - lsls r0, r0, #1 - ldr r1, [sp, #0x10] - cmp r1, r0 - bhi _08067D34 - b _08067E32 -_08067D34: - movs r2, #0 - str r2, [sp, #0x10] - mov r8, r2 - mov r7, sb - adds r7, #0x2c - movs r4, #0 - ldr r6, _08067D90 @ =0x00000311 -_08067D42: - str r4, [sp] - ldr r0, _08067D94 @ =Task_8066D64 - movs r1, #0xb2 - lsls r1, r1, #1 - ldr r2, _08067D98 @ =0x00002120 - movs r3, #0 - bl TaskCreate - mov r1, r8 - lsls r2, r1, #2 - mov r1, sp - adds r1, r1, r2 - adds r1, #4 - str r0, [r1] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r3, r1, r0 - strh r4, [r3, #0x3c] - movs r0, #0xf - str r0, [r3, #0x4c] - str r4, [r3, #0x48] - mov r0, r8 - str r0, [r3, #0x44] - str r4, [r3, #0x40] - adds r5, r2, #0 - cmp r0, #0 - bne _08067DA4 - ldr r0, _08067D9C @ =0x06016060 - str r0, [r3, #4] - strh r6, [r3, #0xa] - ldr r2, _08067DA0 @ =0x03000020 - adds r0, r1, r2 - strb r4, [r0] - b _08067DD2 - .align 2, 0 -_08067D88: .4byte gObjPalette -_08067D8C: .4byte gFlags -_08067D90: .4byte 0x00000311 -_08067D94: .4byte Task_8066D64 -_08067D98: .4byte 0x00002120 -_08067D9C: .4byte 0x06016060 -_08067DA0: .4byte 0x03000020 -_08067DA4: - mov r0, r8 - cmp r0, #1 - bne _08067DC4 - ldr r0, _08067DBC @ =0x06016920 - str r0, [r3, #4] - strh r6, [r3, #0xa] - ldr r2, _08067DC0 @ =0x03000020 - adds r0, r1, r2 - mov r1, r8 - strb r1, [r0] - b _08067DD2 - .align 2, 0 -_08067DBC: .4byte 0x06016920 -_08067DC0: .4byte 0x03000020 -_08067DC4: - ldr r0, _08067E54 @ =0x06016E20 - str r0, [r3, #4] - strh r6, [r3, #0xa] - ldr r2, _08067E58 @ =0x03000020 - adds r1, r1, r2 - movs r0, #2 - strb r0, [r1] -_08067DD2: - movs r0, #0xb4 - strh r0, [r3, #0x16] - movs r0, #0x50 - strh r0, [r3, #0x18] - strh r4, [r3, #0x1a] - strh r4, [r3, #8] - strh r4, [r3, #0x14] - strh r4, [r3, #0x1c] - adds r1, r3, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - adds r1, #1 - movs r0, #0x10 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x25 - strb r4, [r0] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r3, #0x28] - movs r0, #0x80 - lsls r0, r0, #5 - str r0, [r3, #0x10] - adds r0, r3, #0 - bl UpdateSpriteAnimation - adds r1, r7, r5 - mov r0, sp - adds r0, r0, r5 - adds r0, #4 - ldr r0, [r0] - str r0, [r1] - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r0, #2 - bls _08067D42 - mov r0, sb - ldr r1, [r0, #0xc] - ldr r0, _08067E5C @ =Task_8068004 - str r0, [r1, #8] - ldr r0, _08067E60 @ =gCurTask - ldr r1, [r0] - ldr r0, _08067E64 @ =Task_8067E68 - str r0, [r1, #8] -_08067E32: - mov r0, sb - bl sub_805423C - ldr r1, [sp, #0x10] - mov r2, sb - str r1, [r2, #0x38] - ldr r0, [sp, #0x14] - str r1, [r0, #0x3c] - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08067E54: .4byte 0x06016E20 -_08067E58: .4byte 0x03000020 -_08067E5C: .4byte Task_8068004 -_08067E60: .4byte gCurTask -_08067E64: .4byte Task_8067E68 -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc b/sa1/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc deleted file mode 100644 index 99593aa459..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/game2_0__sub_805BC94.inc +++ /dev/null @@ -1,951 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x58 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x30] - movs r1, #100 - bl Div - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0805BCB8 - movs r0, #3 - str r0, [sp, #0x38] - b _0805BCCE -_0805BCB8: - ldr r0, [sp, #0x30] - movs r1, #10 - bl Div - lsls r0, r0, #0x18 - movs r1, #1 - str r1, [sp, #0x38] - cmp r0, #0 - beq _0805BCCE - movs r2, #2 - str r2, [sp, #0x38] -_0805BCCE: - mov r3, sp - adds r3, #0x2c - str r3, [sp, #0x3c] - movs r0, #0x32 - strb r0, [r3] - mov r0, sp - adds r0, #0x2b - str r0, [sp, #0x40] - movs r0, #4 - ldr r1, [sp, #0x40] - strb r0, [r1] - ldr r7, _0805BE00 @ =gUiGraphics - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - str r0, [sp, #0x14] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0xa0 - lsls r0, r0, #4 - str r0, [sp, #0x18] - movs r2, #0x20 - str r2, [sp, #0x24] - add r3, sp, #0x28 - mov sl, r3 - movs r0, #6 - strb r0, [r3] - ldr r0, _0805BE04 @ =0x06015DA0 - str r0, [sp, #0xc] - mov r5, sp - adds r5, #0x2a - movs r1, #0xd - strb r1, [r5] - ldr r2, [sp, #0x3c] - ldrb r1, [r2] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r2, sp - ldr r3, [sp, #0x3c] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - mov r0, sp - bl sub_80528AC - movs r0, #0x10 - ldr r1, [sp, #0x3c] - strb r0, [r1] - movs r0, #8 - ldr r2, [sp, #0x40] - strb r0, [r2] - movs r3, #0xe0 - lsls r3, r3, #1 - adds r0, r7, r3 - ldr r0, [r0] - str r0, [sp, #0x14] - movs r1, #0xe2 - lsls r1, r1, #1 - adds r0, r7, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #0x18] - movs r2, #0x20 - str r2, [sp, #0x24] - movs r0, #6 - mov r3, sl - strb r0, [r3] - ldr r0, _0805BE08 @ =0x060177A0 - str r0, [sp, #0xc] - movs r1, #0xd - strb r1, [r5] - movs r2, #0xe4 - lsls r2, r2, #1 - adds r0, r7, r2 - ldr r0, [r0] - str r0, [sp, #4] - mov r1, sp - movs r3, #0xe6 - lsls r3, r3, #1 - adds r0, r7, r3 - ldr r0, [r0] - strb r0, [r1, #8] - adds r2, #8 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #9] - adds r3, #8 - adds r0, r7, r3 - ldr r0, [r0] - strb r0, [r1, #0xa] - adds r2, #8 - adds r0, r7, r2 - ldr r0, [r0] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - ldr r3, [sp, #0x38] - cmp r3, #1 - bne _0805BE0C - movs r0, #0x2f - b _0805BE1C - .align 2, 0 -_0805BE00: .4byte gUiGraphics -_0805BE04: .4byte 0x06015DA0 -_0805BE08: .4byte 0x060177A0 -_0805BE0C: - ldr r2, [sp, #0x38] - cmp r2, #2 - bne _0805BE1A - movs r0, #0x30 - add r3, sp, #0x2c - strb r0, [r3] - b _0805BE20 -_0805BE1A: - movs r0, #0x31 -_0805BE1C: - add r1, sp, #0x2c - strb r0, [r1] -_0805BE20: - mov r2, sp - adds r2, #0x2b - str r2, [sp, #0x44] - movs r0, #2 - strb r0, [r2] - ldr r7, _0805C160 @ =gUiGraphics - add r6, sp, #0x2c - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - str r0, [sp, #0x14] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x20] - movs r0, #0xe0 - lsls r0, r0, #4 - str r0, [sp, #0x18] - movs r3, #0x20 - str r3, [sp, #0x24] - mov r0, sp - adds r0, #0x28 - str r0, [sp, #0x48] - movs r1, #6 - strb r1, [r0] - ldr r0, _0805C164 @ =0x060167A0 - str r0, [sp, #0xc] - subs r2, #1 - str r2, [sp, #0x4c] - movs r3, #0xd - strb r3, [r2] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r2, sp - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r6] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - mov r0, sp - bl sub_80528AC - ldr r0, [sp, #0x38] - cmp r0, #3 - beq _0805BED6 - b _0805C19C -_0805BED6: - movs r1, #1 - str r1, [sp, #0x34] - ldr r0, [sp, #0x30] - movs r1, #100 - bl Div - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [sp, #0x30] - movs r1, #100 - bl Mod - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x30] - cmp r5, #0 - beq _0805BFB2 - movs r2, #0 - str r2, [sp, #0x34] - movs r3, #0x20 - strb r3, [r6] - add r0, sp, #0x38 - ldrb r1, [r0] - ldr r0, [sp, #0x44] - strb r1, [r0] - lsls r4, r5, #7 - ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r1] - adds r0, r0, r4 - str r0, [sp, #0x14] - ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r2] - str r0, [sp, #0x20] - ldr r0, _0805C170 @ =0x060169E0 - str r0, [sp, #0xc] - movs r3, #0x40 - str r3, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r2, #6 - ldr r1, [sp, #0x48] - strb r2, [r1] - movs r0, #0xd - ldr r3, [sp, #0x4c] - strb r0, [r3] - ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - movs r0, #0xe5 - lsls r0, r0, #2 - adds r5, r7, r0 - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r2, _0805C180 @ =gUiGraphics + ((32 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r3, #0x20 - strb r3, [r6] - add r0, sp, #0x38 - ldrb r1, [r0] - ldr r0, [sp, #0x44] - strb r1, [r0] - ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r1] - adds r0, r0, r4 - adds r0, #0x40 - str r0, [sp, #0x14] - ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r2] - str r0, [sp, #0x20] - ldr r0, _0805C184 @ =0x06016A60 - str r0, [sp, #0xc] - movs r3, #0x40 - str r3, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r2, #6 - ldr r1, [sp, #0x48] - strb r2, [r1] - movs r0, #0xd - ldr r3, [sp, #0x4c] - strb r0, [r3] - ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r2, _0805C180 @ =gUiGraphics + ((32 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC -_0805BFB2: - ldr r0, [sp, #0x30] - movs r1, #10 - bl Div - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [sp, #0x30] - movs r1, #10 - bl Mod - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x30] - cmp r5, #0 - bne _0805BFD6 - ldr r3, [sp, #0x34] - cmp r3, #0 - bne _0805C094 -_0805BFD6: - movs r0, #0 - str r0, [sp, #0x34] - movs r1, #0x20 - strb r1, [r6] - add r2, sp, #0x38 - ldrb r3, [r2] - ldr r2, [sp, #0x44] - strb r3, [r2] - lsls r5, r5, #7 - mov sb, r5 - ldr r3, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r3] - add r0, sb - str r0, [sp, #0x14] - ldr r1, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r1] - str r0, [sp, #0x20] - ldr r0, _0805C188 @ =0x06016BA0 - str r0, [sp, #0xc] - movs r2, #0x40 - str r2, [sp, #0x18] - movs r3, #0x20 - str r3, [sp, #0x24] - movs r1, #6 - ldr r0, [sp, #0x48] - strb r1, [r0] - movs r3, #0xd - ldr r2, [sp, #0x4c] - strb r3, [r2] - ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - movs r0, #0xe5 - lsls r0, r0, #2 - adds r5, r7, r0 - ldr r0, [r5] - strb r0, [r1, #0xa] - movs r2, #0xe6 - lsls r2, r2, #2 - adds r7, r7, r2 - ldr r0, [r7] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r3, #0x20 - strb r3, [r6] - add r0, sp, #0x38 - ldrb r1, [r0] - ldr r0, [sp, #0x44] - strb r1, [r0] - ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r1] - add r0, sb - adds r0, #0x40 - str r0, [sp, #0x14] - ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r2] - str r0, [sp, #0x20] - ldr r0, _0805C18C @ =0x06016C20 - str r0, [sp, #0xc] - movs r3, #0x40 - str r3, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r2, #6 - ldr r1, [sp, #0x48] - strb r2, [r1] - movs r0, #0xd - ldr r3, [sp, #0x4c] - strb r0, [r3] - ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r0, [r7] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC -_0805C094: - ldr r1, [sp, #0x30] - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0805C0A6 - ldr r2, [sp, #0x34] - cmp r2, #0 - beq _0805C0A6 - b _0805C416 -_0805C0A6: - movs r3, #0x20 - add r0, sp, #0x2c - strb r3, [r0] - movs r1, #3 - movs r2, #0x2b - add r2, sp - strb r1, [r2] - ldr r2, _0805C160 @ =gUiGraphics - lsls r7, r5, #7 - ldr r3, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r3] - adds r0, r0, r7 - str r0, [sp, #0x14] - ldr r1, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r1] - str r0, [sp, #0x20] - ldr r0, _0805C190 @ =0x06016BE0 - str r0, [sp, #0xc] - movs r3, #0x40 - str r3, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r1, #6 - add r3, sp, #0x28 - strb r1, [r3] - movs r0, #0xd - movs r1, #0x2a - add r1, sp - strb r0, [r1] - ldr r3, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r3] - str r0, [sp, #4] - mov r1, sp - ldr r3, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r3] - strb r0, [r1, #8] - ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - ldr r3, _0805C194 @ =gUiGraphics + ((32 * 0x1C) + 0x14) - ldr r0, [r3] - strb r0, [r1, #0xa] - movs r0, #0xe6 - lsls r0, r0, #2 - adds r5, r2, r0 - ldr r0, [r5] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #0x20 - add r2, sp, #0x2c - strb r1, [r2] - movs r3, #3 - movs r0, #0x2b - add r0, sp - strb r3, [r0] - ldr r1, _0805C168 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r1] - adds r0, r0, r7 - adds r0, #0x40 - str r0, [sp, #0x14] - ldr r2, _0805C16C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r2] - str r0, [sp, #0x20] - ldr r0, _0805C198 @ =0x06016C60 - str r0, [sp, #0xc] - movs r3, #0x40 - str r3, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r1, #6 - add r2, sp, #0x28 - strb r1, [r2] - movs r3, #0xd - movs r0, #0x2a - add r0, sp - strb r3, [r0] - ldr r1, _0805C174 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C178 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C17C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - ldr r2, _0805C194 @ =gUiGraphics + ((32 * 0x1C) + 0x14) - ldr r0, [r2] - strb r0, [r1, #0xa] - ldr r0, [r5] - b _0805C318 - .align 2, 0 -_0805C160: .4byte gUiGraphics -_0805C164: .4byte 0x060167A0 -_0805C168: .4byte gUiGraphics + ((32 * 0x1C) + 0) -_0805C16C: .4byte gUiGraphics + ((32 * 0x1C) + 4) -_0805C170: .4byte 0x060169E0 -_0805C174: .4byte gUiGraphics + ((32 * 0x1C) + 8) -_0805C178: .4byte gUiGraphics + ((32 * 0x1C) + 0xC) -_0805C17C: .4byte gUiGraphics + ((32 * 0x1C) + 0x10) -_0805C180: .4byte gUiGraphics + ((32 * 0x1C) + 0x18) -_0805C184: .4byte 0x06016A60 -_0805C188: .4byte 0x06016BA0 -_0805C18C: .4byte 0x06016C20 -_0805C190: .4byte 0x06016BE0 -_0805C194: .4byte gUiGraphics + ((32 * 0x1C) + 0x14) -_0805C198: .4byte 0x06016C60 -_0805C19C: - ldr r3, [sp, #0x38] - cmp r3, #2 - beq _0805C1A4 - b _0805C34C -_0805C1A4: - ldr r0, [sp, #0x30] - movs r1, #10 - bl Div - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r0, [sp, #0x30] - movs r1, #10 - bl Mod - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x30] - movs r0, #0x20 - strb r0, [r6] - movs r2, #3 - ldr r1, [sp, #0x44] - strb r2, [r1] - lsls r5, r5, #7 - mov r8, r5 - ldr r3, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r3] - add r0, r8 - str r0, [sp, #0x14] - ldr r1, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r1] - str r0, [sp, #0x20] - ldr r0, _0805C32C @ =0x060169E0 - str r0, [sp, #0xc] - movs r2, #0x40 - str r2, [sp, #0x18] - movs r3, #0x20 - str r3, [sp, #0x24] - movs r1, #6 - ldr r0, [sp, #0x48] - strb r1, [r0] - movs r3, #0xd - ldr r2, [sp, #0x4c] - strb r3, [r2] - ldr r1, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - movs r0, #0xe5 - lsls r0, r0, #2 - adds r5, r7, r0 - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r2, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r3, #0x20 - strb r3, [r6] - movs r1, #3 - ldr r0, [sp, #0x44] - strb r1, [r0] - ldr r2, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r2] - add r0, r8 - adds r0, #0x40 - str r0, [sp, #0x14] - ldr r3, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r3] - str r0, [sp, #0x20] - ldr r0, _0805C340 @ =0x06016A60 - str r0, [sp, #0xc] - movs r0, #0x40 - str r0, [sp, #0x18] - movs r1, #0x20 - str r1, [sp, #0x24] - movs r3, #6 - ldr r2, [sp, #0x48] - strb r3, [r2] - movs r1, #0xd - ldr r0, [sp, #0x4c] - strb r1, [r0] - ldr r2, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r2] - str r0, [sp, #4] - mov r1, sp - ldr r3, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r3] - strb r0, [r1, #8] - ldr r2, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r3, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) - ldr r0, [r3] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r0, #0x20 - strb r0, [r6] - movs r2, #3 - ldr r1, [sp, #0x44] - strb r2, [r1] - ldr r3, [sp, #0x30] - lsls r7, r3, #7 - ldr r1, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r1] - adds r0, r0, r7 - str r0, [sp, #0x14] - ldr r2, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r2] - str r0, [sp, #0x20] - ldr r0, _0805C344 @ =0x06016BA0 - str r0, [sp, #0xc] - movs r3, #0x40 - str r3, [sp, #0x18] - movs r0, #0x20 - str r0, [sp, #0x24] - movs r2, #6 - ldr r1, [sp, #0x48] - strb r2, [r1] - movs r0, #0xd - ldr r3, [sp, #0x4c] - strb r0, [r3] - ldr r1, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r1] - str r0, [sp, #4] - mov r1, sp - ldr r2, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r2] - strb r0, [r1, #8] - ldr r3, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r3] - strb r0, [r1, #9] - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r2, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) - ldr r0, [r2] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r3, #0x20 - strb r3, [r6] - movs r1, #3 - ldr r0, [sp, #0x44] - strb r1, [r0] - ldr r2, _0805C324 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r2] - adds r0, r0, r7 - adds r0, #0x40 - str r0, [sp, #0x14] - ldr r3, _0805C328 @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r3] - str r0, [sp, #0x20] - ldr r0, _0805C348 @ =0x06016C20 - str r0, [sp, #0xc] - movs r0, #0x40 - str r0, [sp, #0x18] - movs r1, #0x20 - str r1, [sp, #0x24] - movs r3, #6 - ldr r2, [sp, #0x48] - strb r3, [r2] - movs r1, #0xd - ldr r0, [sp, #0x4c] - strb r1, [r0] - ldr r2, _0805C330 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r2] - str r0, [sp, #4] - mov r1, sp - ldr r3, _0805C334 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r3] - strb r0, [r1, #8] - ldr r2, _0805C338 @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r0, [r5] - strb r0, [r1, #0xa] - ldr r3, _0805C33C @ =gUiGraphics + ((32 * 0x1C) + 0x18) - ldr r0, [r3] -_0805C318: - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - b _0805C416 - .align 2, 0 -_0805C324: .4byte gUiGraphics + ((32 * 0x1C) + 0) -_0805C328: .4byte gUiGraphics + ((32 * 0x1C) + 4) -_0805C32C: .4byte 0x060169E0 -_0805C330: .4byte gUiGraphics + ((32 * 0x1C) + 8) -_0805C334: .4byte gUiGraphics + ((32 * 0x1C) + 0xC) -_0805C338: .4byte gUiGraphics + ((32 * 0x1C) + 0x10) -_0805C33C: .4byte gUiGraphics + ((32 * 0x1C) + 0x18) -_0805C340: .4byte 0x06016A60 -_0805C344: .4byte 0x06016BA0 -_0805C348: .4byte 0x06016C20 -_0805C34C: - ldr r0, [sp, #0x30] - lsls r0, r0, #0x18 - str r0, [sp, #0x50] - movs r1, #0x20 - add r2, sp, #0x2c - strb r1, [r2] - movs r3, #3 - movs r0, #0x2b - add r0, sp - strb r3, [r0] - ldr r1, [sp, #0x50] - lsrs r1, r1, #0x11 - str r1, [sp, #0x54] - ldr r2, _0805C428 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r2] - adds r0, r0, r1 - str r0, [sp, #0x14] - ldr r3, _0805C42C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r3] - str r0, [sp, #0x20] - ldr r0, _0805C430 @ =0x060169E0 - str r0, [sp, #0xc] - movs r0, #0x40 - str r0, [sp, #0x18] - movs r1, #0x20 - str r1, [sp, #0x24] - movs r2, #6 - add r3, sp, #0x28 - strb r2, [r3] - movs r0, #0xd - movs r1, #0x2a - add r1, sp - strb r0, [r1] - ldr r2, _0805C434 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r2] - str r0, [sp, #4] - mov r1, sp - ldr r3, _0805C438 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r3] - strb r0, [r1, #8] - ldr r2, _0805C43C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r3, _0805C440 @ =gUiGraphics + ((32 * 0x1C) + 0x14) - ldr r0, [r3] - strb r0, [r1, #0xa] - movs r0, #0xe6 - lsls r0, r0, #2 - adds r5, r7, r0 - ldr r0, [r5] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC - movs r1, #0x20 - add r2, sp, #0x2c - strb r1, [r2] - movs r3, #3 - movs r0, #0x2b - add r0, sp - strb r3, [r0] - ldr r1, _0805C428 @ =gUiGraphics + ((32 * 0x1C) + 0) - ldr r0, [r1] - ldr r2, [sp, #0x54] - adds r0, r0, r2 - adds r0, #0x40 - str r0, [sp, #0x14] - ldr r3, _0805C42C @ =gUiGraphics + ((32 * 0x1C) + 4) - ldr r0, [r3] - str r0, [sp, #0x20] - ldr r0, _0805C444 @ =0x06016A60 - str r0, [sp, #0xc] - movs r0, #0x40 - str r0, [sp, #0x18] - movs r1, #0x20 - str r1, [sp, #0x24] - movs r2, #6 - add r3, sp, #0x28 - strb r2, [r3] - movs r0, #0xd - movs r1, #0x2a - add r1, sp - strb r0, [r1] - ldr r2, _0805C434 @ =gUiGraphics + ((32 * 0x1C) + 8) - ldr r0, [r2] - str r0, [sp, #4] - mov r1, sp - ldr r3, _0805C438 @ =gUiGraphics + ((32 * 0x1C) + 0xC) - ldr r0, [r3] - strb r0, [r1, #8] - ldr r2, _0805C43C @ =gUiGraphics + ((32 * 0x1C) + 0x10) - ldr r0, [r2] - strb r0, [r1, #9] - ldr r3, _0805C440 @ =gUiGraphics + ((32 * 0x1C) + 0x14) - ldr r0, [r3] - strb r0, [r1, #0xa] - ldr r0, [r5] - strb r0, [r1, #0xb] - mov r0, sp - bl sub_80528AC -_0805C416: - add sp, #0x58 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805C428: .4byte gUiGraphics + ((32 * 0x1C) + 0) -_0805C42C: .4byte gUiGraphics + ((32 * 0x1C) + 4) -_0805C430: .4byte 0x060169E0 -_0805C434: .4byte gUiGraphics + ((32 * 0x1C) + 8) -_0805C438: .4byte gUiGraphics + ((32 * 0x1C) + 0xC) -_0805C43C: .4byte gUiGraphics + ((32 * 0x1C) + 0x10) -_0805C440: .4byte gUiGraphics + ((32 * 0x1C) + 0x14) -_0805C444: .4byte 0x06016A60 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc b/sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc deleted file mode 100644 index 69d2c33eaf..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D048.inc +++ /dev/null @@ -1,563 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - bl sub_80535FC - ldr r1, _0805D0B0 @ =gBgScrollRegs - movs r0, #0 - strh r0, [r1] - strh r0, [r1, #2] - strh r0, [r1, #4] - strh r0, [r1, #6] - strh r0, [r1, #8] - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - strh r0, [r1, #0xe] - ldr r0, _0805D0B4 @ =gSpecialStageCollectedRings - ldr r1, _0805D0B8 @ =gSpecialStageTargetRings - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - blo _0805D0DA - movs r0, #0x2f - bl m4aSongNumStart - movs r0, #1 - str r0, [sp, #0x24] - ldr r1, _0805D0BC @ =0x00002710 - str r1, [sp, #0x20] - ldr r3, _0805D0C0 @ =gLoadedSaveGame - ldrb r2, [r3, #0x1d] - ldr r1, _0805D0C4 @ =gUnknown_08487134 - ldr r0, _0805D0C8 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - asrs r0, r1 - ldr r4, [sp, #0x24] - ands r0, r4 - cmp r0, #0 - beq _0805D0CC - movs r0, #1 - mov r8, r0 - b _0805D0EC - .align 2, 0 -_0805D0B0: .4byte gBgScrollRegs -_0805D0B4: .4byte gSpecialStageCollectedRings -_0805D0B8: .4byte gSpecialStageTargetRings -_0805D0BC: .4byte 0x00002710 -_0805D0C0: .4byte gLoadedSaveGame -_0805D0C4: .4byte gUnknown_08487134 -_0805D0C8: .4byte gCurrentLevel -_0805D0CC: - ldr r0, [sp, #0x24] - lsls r0, r1 - orrs r2, r0 - strb r2, [r3, #0x1d] - movs r1, #0 - mov r8, r1 - b _0805D0EC -_0805D0DA: - movs r0, #0x2e - bl m4aSongNumStart - movs r2, #0 - mov r8, r2 - movs r3, #0 - str r3, [sp, #0x24] - movs r4, #0 - str r4, [sp, #0x20] -_0805D0EC: - ldr r0, _0805D164 @ =gLoadedSaveGame - ldrb r0, [r0, #0x1d] - mov sb, r0 - ldr r0, _0805D168 @ =gSpecialStageCollectedRings - ldrh r0, [r0] - mov sl, r0 - ldr r0, _0805D16C @ =gUnknown_0300507C - ldrb r0, [r0] - add r0, r8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - ldr r1, _0805D170 @ =sa2__gUnknown_0300543C - ldrb r0, [r1] - add r0, r8 - strb r0, [r1] - ldr r1, _0805D174 @ =gLevelScore - ldr r6, [r1] - movs r0, #0x64 - mov r2, sl - muls r2, r0, r2 - adds r0, r2, #0 - ldr r3, [sp, #0x20] - adds r0, r3, r0 - adds r0, r6, r0 - str r0, [r1] - ldr r4, _0805D178 @ =0x0000C350 - adds r1, r4, #0 - bl Div - adds r5, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl Div - cmp r5, r0 - beq _0805D146 - ldr r0, _0805D17C @ =gGameMode - ldrb r0, [r0] - cmp r0, #0 - bne _0805D146 - ldr r1, _0805D180 @ =gNumLives - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0805D146: - movs r0, #0x64 - mov r4, sl - muls r4, r0, r4 - adds r0, r4, #0 - ldr r1, [sp, #0x20] - cmp r1, r0 - bls _0805D184 - adds r0, r1, #0 - movs r1, #0x64 - bl Div - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - b _0805D186 - .align 2, 0 -_0805D164: .4byte gLoadedSaveGame -_0805D168: .4byte gSpecialStageCollectedRings -_0805D16C: .4byte gUnknown_0300507C -_0805D170: .4byte sa2__gUnknown_0300543C -_0805D174: .4byte gLevelScore -_0805D178: .4byte 0x0000C350 -_0805D17C: .4byte gGameMode -_0805D180: .4byte gNumLives -_0805D184: - mov r7, sl -_0805D186: - bl UiGfxStackInit - ldr r0, _0805D4B4 @ =Task_805D684 - movs r5, #0 - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0xc] - ldrh r1, [r0, #6] - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r2, r1, r3 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - movs r0, #0xf0 - strh r0, [r2, #0xa] - movs r0, #0x7e - strh r0, [r2, #0xc] - movs r4, #8 - strh r4, [r2, #0xe] - strh r4, [r2, #0x10] - movs r0, #0xe - strh r0, [r2, #0x12] - movs r3, #1 - strb r3, [r2, #0x16] - movs r0, #0xa - strh r0, [r2, #8] - ldr r4, _0805D4BC @ =0x03000028 - adds r0, r1, r4 - add r3, sp, #0x24 - ldrb r3, [r3] - strb r3, [r0] - adds r4, #1 - adds r0, r1, r4 - mov r3, sb - strb r3, [r0] - adds r4, #1 - adds r1, r1, r4 - mov r0, r8 - strb r0, [r1] - mov r1, sl - strh r1, [r2, #0x26] - ldr r3, [sp, #0x20] - str r3, [r2, #0x18] - movs r4, #0 - str r4, [r2, #0x1c] - ldr r0, _0805D4C0 @ =Task_805D720 - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #8] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r2, r1, r0 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - movs r3, #0x80 - lsls r3, r3, #1 - strh r3, [r2, #0xa] - movs r0, #0x80 - strh r0, [r2, #0xc] - movs r0, #9 - strh r0, [r2, #0xe] - movs r4, #2 - strh r4, [r2, #0x10] - movs r0, #0xf - strh r0, [r2, #0x12] - movs r0, #1 - strb r0, [r2, #0x16] - strh r5, [r2, #8] - ldr r3, _0805D4BC @ =0x03000028 - adds r0, r1, r3 - add r4, sp, #0x24 - ldrb r4, [r4] - strb r4, [r0] - adds r3, #1 - adds r0, r1, r3 - mov r4, sb - strb r4, [r0] - ldr r0, _0805D4C4 @ =0x0300002A - adds r1, r1, r0 - mov r3, r8 - strb r3, [r1] - mov r4, sl - strh r4, [r2, #0x26] - ldr r0, [sp, #0x20] - str r0, [r2, #0x18] - movs r1, #0 - str r1, [r2, #0x1c] - ldr r0, _0805D4C8 @ =Task_805D8EC - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - str r0, [sp, #0x10] - ldrh r1, [r0, #6] - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r2, r1, r3 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - movs r4, #0x80 - lsls r4, r4, #1 - strh r4, [r2] - strh r5, [r2, #2] - strh r5, [r2, #4] - strh r5, [r2, #6] - movs r6, #0x39 - strh r6, [r2, #0xa] - movs r0, #0x49 - strh r0, [r2, #0xc] - movs r4, #3 - strh r4, [r2, #0xe] - strh r4, [r2, #0x10] - movs r0, #0xe - strh r0, [r2, #0x12] - movs r3, #1 - strb r3, [r2, #0x16] - movs r0, #0x18 - strh r0, [r2, #8] - ldr r0, _0805D4BC @ =0x03000028 - add r3, sp, #0x24 - ldrb r3, [r3] - strb r3, [r0, r1] - ldr r3, _0805D4CC @ =0x03000029 - adds r0, r1, r3 - mov r3, sb - strb r3, [r0] - ldr r0, _0805D4C4 @ =0x0300002A - adds r1, r1, r0 - mov r3, r8 - strb r3, [r1] - mov r0, sl - strh r0, [r2, #0x26] - ldr r1, [sp, #0x20] - str r1, [r2, #0x18] - movs r3, #0 - str r3, [r2, #0x1c] - ldr r0, _0805D4D0 @ =Task_805DB04 - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - bl TaskCreate - str r0, [sp, #0x14] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r2, r1, r0 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - movs r3, #0x80 - lsls r3, r3, #1 - strh r3, [r2] - strh r5, [r2, #2] - strh r5, [r2, #4] - movs r0, #1 - strh r0, [r2, #6] - strh r6, [r2, #0xa] - strh r6, [r2, #0xc] - strh r4, [r2, #0xe] - strh r4, [r2, #0x10] - movs r3, #0xe - strh r3, [r2, #0x12] - strb r0, [r2, #0x16] - movs r0, #0x10 - strh r0, [r2, #8] - ldr r3, _0805D4BC @ =0x03000028 - add r0, sp, #0x24 - ldrb r0, [r0] - strb r0, [r3, r1] - adds r3, #1 - adds r0, r1, r3 - mov r3, sb - strb r3, [r0] - ldr r0, _0805D4C4 @ =0x0300002A - adds r1, r1, r0 - mov r3, r8 - strb r3, [r1] - mov r0, sl - strh r0, [r2, #0x26] - ldr r1, [sp, #0x20] - str r1, [r2, #0x18] - movs r3, #0 - str r3, [r2, #0x1c] - ldr r0, _0805D4D4 @ =Task_805DD10 - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - bl TaskCreate - str r0, [sp, #0x18] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r2, r1, r0 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - movs r3, #0x80 - lsls r3, r3, #1 - strh r3, [r2] - strh r5, [r2, #2] - strh r5, [r2, #4] - movs r0, #2 - strh r0, [r2, #6] - strh r6, [r2, #0xa] - strh r6, [r2, #0xc] - strh r4, [r2, #0xe] - strh r4, [r2, #0x10] - movs r3, #0xe - strh r3, [r2, #0x12] - movs r0, #1 - strb r0, [r2, #0x16] - movs r3, #8 - strh r3, [r2, #8] - ldr r0, _0805D4BC @ =0x03000028 - add r3, sp, #0x24 - ldrb r3, [r3] - strb r3, [r0, r1] - ldr r3, _0805D4CC @ =0x03000029 - adds r0, r1, r3 - mov r3, sb - strb r3, [r0] - ldr r0, _0805D4C4 @ =0x0300002A - adds r1, r1, r0 - mov r3, r8 - strb r3, [r1] - mov r0, sl - strh r0, [r2, #0x26] - ldr r1, [sp, #0x20] - str r1, [r2, #0x18] - movs r3, #0 - str r3, [r2, #0x1c] - ldr r0, _0805D4D8 @ =Task_805DF2C - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - bl TaskCreate - str r0, [sp, #0x1c] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r2, r1, r0 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - movs r3, #0x80 - lsls r3, r3, #1 - strh r3, [r2] - strh r5, [r2, #2] - strh r5, [r2, #4] - strh r4, [r2, #6] - strh r6, [r2, #0xa] - strh r6, [r2, #0xc] - strh r4, [r2, #0xe] - strh r4, [r2, #0x10] - movs r4, #0xe - strh r4, [r2, #0x12] - movs r0, #1 - strb r0, [r2, #0x16] - strh r5, [r2, #8] - ldr r3, _0805D4BC @ =0x03000028 - adds r0, r1, r3 - add r4, sp, #0x24 - ldrb r4, [r4] - strb r4, [r0] - adds r3, #1 - adds r0, r1, r3 - mov r4, sb - strb r4, [r0] - ldr r0, _0805D4C4 @ =0x0300002A - adds r1, r1, r0 - mov r3, r8 - strb r3, [r1] - mov r4, sl - strh r4, [r2, #0x26] - ldr r0, [sp, #0x20] - str r0, [r2, #0x18] - movs r1, #0 - str r1, [r2, #0x1c] - ldr r0, _0805D4DC @ =sub_805E018 - str r5, [sp] - movs r1, #0x34 - ldr r2, _0805D4B8 @ =0x00002120 - movs r3, #0 - bl TaskCreate - adds r6, r0, #0 - ldrh r1, [r6, #6] - movs r3, #0xc0 - lsls r3, r3, #0x12 - adds r2, r1, r3 - strh r5, [r2, #0x20] - strh r7, [r2, #0x22] - strh r5, [r2, #0x24] - strh r5, [r2, #0xa] - movs r0, #0x29 - strh r0, [r2, #0xc] - movs r4, #1 - strh r4, [r2, #0xe] - movs r0, #4 - strh r0, [r2, #0x10] - movs r0, #0xd - strh r0, [r2, #0x12] - movs r0, #1 - strb r0, [r2, #0x16] - strh r5, [r2, #8] - adds r3, #0x28 - adds r0, r1, r3 - add r4, sp, #0x24 - ldrb r4, [r4] - strb r4, [r0] - adds r3, #1 - adds r0, r1, r3 - mov r4, sb - strb r4, [r0] - ldr r0, _0805D4C4 @ =0x0300002A - adds r1, r1, r0 - mov r3, r8 - strb r3, [r1] - movs r4, #0 - mov r0, sl - strh r0, [r2, #0x26] - ldr r1, [sp, #0x20] - str r1, [r2, #0x18] - movs r3, #0 - str r3, [r2, #0x1c] - ldr r0, _0805D4E0 @ =sub_805D4F0 - movs r2, #0x84 - lsls r2, r2, #6 - ldr r1, _0805D4E4 @ =TaskDestructor_805E1E4 - str r1, [sp] - movs r1, #0x2c - bl TaskCreate - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - strh r5, [r0, #0x28] - strh r7, [r0, #0x2a] - ldr r2, [sp, #0xc] - str r2, [r0, #0x1c] - ldr r3, [sp, #8] - str r3, [r0, #0x18] - ldr r1, [sp, #0x10] - str r1, [r0, #0xc] - ldr r2, [sp, #0x14] - str r2, [r0, #0x24] - ldr r3, [sp, #0x18] - str r3, [r0, #0x10] - ldr r1, [sp, #0x1c] - str r1, [r0, #0x14] - str r6, [r0, #0x20] - ldr r3, _0805D4E8 @ =gBgSprites_Unknown1 - strb r4, [r3] - ldr r0, _0805D4EC @ =gBgSprites_Unknown2 - strb r4, [r0] - strb r4, [r0, #1] - movs r1, #0xff - strb r1, [r0, #2] - movs r2, #0x20 - strb r2, [r0, #3] - strb r4, [r3, #1] - strb r4, [r0, #4] - strb r4, [r0, #5] - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0, #6] - strb r2, [r0, #7] - strb r4, [r3, #2] - strb r4, [r0, #8] - strb r4, [r0, #9] - strb r1, [r0, #0xa] - strb r2, [r0, #0xb] - strb r4, [r3, #3] - strb r4, [r0, #0xc] - strb r4, [r0, #0xd] - strb r1, [r0, #0xe] - strb r2, [r0, #0xf] - ldr r0, [sp, #4] - bl sub_805C994 - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805D4B4: .4byte Task_805D684 -_0805D4B8: .4byte 0x00002120 -_0805D4BC: .4byte 0x03000028 -_0805D4C0: .4byte Task_805D720 -_0805D4C4: .4byte 0x0300002A -_0805D4C8: .4byte Task_805D8EC -_0805D4CC: .4byte 0x03000029 -_0805D4D0: .4byte Task_805DB04 -_0805D4D4: .4byte Task_805DD10 -_0805D4D8: .4byte Task_805DF2C -_0805D4DC: .4byte sub_805E018 -_0805D4E0: .4byte sub_805D4F0 -_0805D4E4: .4byte TaskDestructor_805E1E4 -_0805D4E8: .4byte gBgSprites_Unknown1 -_0805D4EC: .4byte gBgSprites_Unknown2 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc b/sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc deleted file mode 100644 index 47cc21348a..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/game2_1__sub_805D4F0.inc +++ /dev/null @@ -1,197 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - ldr r0, _0805D5FC @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r5, r0, r1 - ldr r0, [r5, #0x1c] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov r8, r0 - ldr r0, [r5, #0x18] - ldrh r3, [r0, #6] - adds r3, r3, r1 - ldr r0, [r5, #0xc] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sb, r0 - ldr r0, [r5, #0x24] - ldrh r0, [r0, #6] - adds r7, r0, r1 - ldr r0, [r5, #0x10] - ldrh r0, [r0, #6] - adds r4, r0, r1 - ldr r0, [r5, #0x14] - ldrh r0, [r0, #6] - adds r6, r0, r1 - ldr r0, [r5, #0x20] - ldrh r2, [r0, #6] - adds r2, r2, r1 - ldrh r0, [r5, #0x28] - mov r1, r8 - strh r0, [r1, #0x20] - ldrh r0, [r5, #0x28] - strh r0, [r3, #0x20] - ldrh r0, [r5, #0x28] - mov r1, sb - strh r0, [r1, #0x20] - ldrh r0, [r5, #0x28] - strh r0, [r7, #0x20] - ldrh r0, [r5, #0x28] - strh r0, [r4, #0x20] - ldrh r0, [r5, #0x28] - strh r0, [r6, #0x20] - ldrh r0, [r5, #0x28] - strh r0, [r2, #0x20] - movs r1, #0x28 - ldrsh r0, [r5, r1] - cmp r0, #0xa9 - ble _0805D586 - ldrh r0, [r6, #0x26] - cmp r0, #0 - beq _0805D576 - subs r0, #1 - strh r0, [r6, #0x26] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0805D570 - strh r0, [r6, #0x26] -_0805D570: - ldr r0, [r7, #0x1c] - adds r0, #0x64 - str r0, [r7, #0x1c] -_0805D576: - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _0805D586 - subs r0, #0x64 - str r0, [r4, #0x18] - ldr r0, [r7, #0x1c] - adds r0, #0x64 - str r0, [r7, #0x1c] -_0805D586: - ldrh r1, [r5, #0x2a] - ldr r0, _0805D600 @ =0x00000267 - adds r1, r1, r0 - ldrh r0, [r5, #0x28] - adds r0, #1 - strh r0, [r5, #0x28] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r5, #0x2a] - cmp r1, r0 - bge _0805D62C - ldr r7, _0805D604 @ =gPlayer - movs r1, #0x48 - adds r1, r1, r7 - mov sb, r1 - ldrh r0, [r1] - subs r0, #0x10 - strh r0, [r1] - movs r0, #0x4a - adds r0, r0, r7 - mov r8, r0 - ldrh r0, [r0] - subs r0, #0x10 - mov r1, r8 - strh r0, [r1] - ldr r1, _0805D608 @ =0x0000FFFF - movs r0, #0 - bl TasksDestroyInPriorityRange - ldr r1, _0805D60C @ =gBackgroundsCopyQueueCursor - ldr r0, _0805D610 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0805D614 @ =gBgSpritesCount - movs r0, #0 - strb r0, [r1] - ldr r1, _0805D618 @ =gVramGraphicsCopyCursor - ldr r0, _0805D61C @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r5, _0805D620 @ =gCourseTime - ldr r6, [r5] - bl CreateGameStage - ldr r0, _0805D624 @ =gSpecialStageReturnX - ldrh r0, [r0] - mov r1, sb - strh r0, [r1] - ldr r0, _0805D628 @ =gSpecialStageReturnY - ldrh r0, [r0] - mov r1, r8 - strh r0, [r1] - adds r1, r7, #0 - adds r1, #0x6e - movs r0, #1 - strb r0, [r1] - str r6, [r5] - b _0805D674 - .align 2, 0 -_0805D5FC: .4byte gCurTask -_0805D600: .4byte 0x00000267 -_0805D604: .4byte gPlayer -_0805D608: .4byte 0x0000FFFF -_0805D60C: .4byte gBackgroundsCopyQueueCursor -_0805D610: .4byte gBackgroundsCopyQueueIndex -_0805D614: .4byte gBgSpritesCount -_0805D618: .4byte gVramGraphicsCopyCursor -_0805D61C: .4byte gVramGraphicsCopyQueueIndex -_0805D620: .4byte gCourseTime -_0805D624: .4byte gSpecialStageReturnX -_0805D628: .4byte gSpecialStageReturnY -_0805D62C: - movs r0, #0x28 - ldrsh r1, [r5, r0] - adds r0, r2, #0 - adds r0, #0xaa - cmp r1, r0 - bne _0805D650 - mov r0, sb - adds r0, #0x2a - ldrb r0, [r0] - cmp r0, #0 - beq _0805D64A - movs r0, #0x9a - bl m4aSongNumStart - b _0805D650 -_0805D64A: - movs r0, #0x8d @ SE_STAGE_RESULT_COUNTER_DONE - bl m4aSongNumStart -_0805D650: - movs r1, #0x28 - ldrsh r0, [r5, r1] - cmp r0, #0xaa - ble _0805D674 - adds r1, r0, #0 - ldrh r0, [r5, #0x2a] - adds r0, #0xaa - cmp r1, r0 - bge _0805D674 - adds r0, r1, #0 - movs r1, #4 - bl Mod - cmp r0, #0 - bne _0805D674 - movs r0, #0x8c @ SE_STAGE_RESULT_COUNTER - bl m4aSongNumStart -_0805D674: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc b/sa1/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc deleted file mode 100644 index 476aa23de1..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/game2_3__Task_8063638.inc +++ /dev/null @@ -1,243 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _080636AC @ =gCurTask - ldr r0, [r2] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - mov ip, r1 - ldr r0, _080636B0 @ =gGameMode - ldrb r0, [r0] - mov sb, r2 - ldr r7, _080636B4 @ =gMultiSioStatusFlags - cmp r0, #1 - bls _080636EE - movs r5, #0 - ldr r2, _080636B8 @ =gMultiplayerConnections - ldrb r1, [r2] - movs r0, #1 - ands r1, r0 - adds r6, r2, #0 - cmp r1, #0 - beq _080636EE - movs r2, #1 - ldr r3, _080636BC @ =gMultiplayerMissingHeartbeats -_0806366E: - adds r0, r2, #0 - lsls r0, r5 - ldr r4, [r7] - ands r4, r0 - cmp r4, #0 - bne _080636D8 - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _080636DC - movs r0, #0 - ldr r1, _080636C0 @ =0x0000FFFF - bl TasksDestroyInPriorityRange - ldr r1, _080636C4 @ =gBackgroundsCopyQueueCursor - ldr r0, _080636C8 @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080636CC @ =gBgSpritesCount - strb r4, [r0] - ldr r1, _080636D0 @ =gVramGraphicsCopyCursor - ldr r0, _080636D4 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - bl LinkCommunicationError - b _08063818 - .align 2, 0 -_080636AC: .4byte gCurTask -_080636B0: .4byte gGameMode -_080636B4: .4byte gMultiSioStatusFlags -_080636B8: .4byte gMultiplayerConnections -_080636BC: .4byte gMultiplayerMissingHeartbeats -_080636C0: .4byte 0x0000FFFF -_080636C4: .4byte gBackgroundsCopyQueueCursor -_080636C8: .4byte gBackgroundsCopyQueueIndex -_080636CC: .4byte gBgSpritesCount -_080636D0: .4byte gVramGraphicsCopyCursor -_080636D4: .4byte gVramGraphicsCopyQueueIndex -_080636D8: - movs r0, #0 - strb r0, [r3] -_080636DC: - adds r3, #1 - adds r5, #1 - cmp r5, #3 - bhi _080636EE - ldrb r0, [r6] - asrs r0, r5 - ands r0, r2 - cmp r0, #0 - bne _0806366E -_080636EE: - ldr r4, _080637BC @ =gMultiSioRecv - ldrh r0, [r4] - adds r5, r4, #0 - ldr r1, _080637C0 @ =gMultiSioSend - mov r8, r1 - movs r1, #0x55 - add ip, r1 - cmp r0, #0x52 - bne _0806371A - mov r0, sb - ldr r1, [r0] - ldr r0, _080637C4 @ =Task_80638B0 - str r0, [r1, #8] - movs r3, #0 - adds r1, r4, #3 - ldr r2, _080637C8 @ =gChaoTasks -_0806370E: - adds r0, r1, r3 - ldrb r0, [r0] - stm r2!, {r0} - adds r3, #1 - cmp r3, #2 - bls _0806370E -_0806371A: - ldr r0, [r7] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806380C - movs r3, #1 - ldr r1, _080637CC @ =gMultiplayerConnections - ldrb r0, [r1] - asrs r0, r0, #1 - ands r0, r3 - adds r6, r1, #0 - cmp r0, #0 - beq _0806373A - ldrh r0, [r5, #0x14] - cmp r0, #0x51 - bne _0806375A -_0806373A: - adds r3, #1 - cmp r3, #3 - bhi _0806375A - ldrb r0, [r6] - asrs r0, r3 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806373A - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r4, r0, r5 - ldrh r0, [r4] - cmp r0, #0x51 - beq _0806373A -_0806375A: - cmp r3, #4 - bne _0806380C - mov r4, r8 - movs r0, #0x52 - strh r0, [r4] - mov r1, ip - ldrb r0, [r1] - strb r0, [r4, #2] - ldr r2, _080637D0 @ =gPseudoRandom - ldr r0, [r2] - ldr r1, _080637D4 @ =0x00196225 - mov ip, r1 - mov r1, ip - muls r1, r0, r1 - adds r0, r1, #0 - ldr r7, _080637D8 @ =0x3C6EF35F - adds r0, r0, r7 - str r0, [r2] - adds r3, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #3] - lsrs r3, r3, #8 - ldrb r1, [r4, #3] - movs r0, #7 - ands r0, r3 - adds r6, r2, #0 - cmp r1, r0 - bne _080637AE - adds r5, r6, #0 - movs r2, #7 -_08063798: - ldr r0, [r5] - mov r1, ip - muls r1, r0, r1 - adds r0, r1, #0 - adds r0, r0, r7 - str r0, [r5] - adds r3, r0, #0 - ldrb r1, [r4, #3] - ands r0, r2 - cmp r1, r0 - beq _08063798 -_080637AE: - movs r0, #7 - adds r1, r3, #0 - ands r1, r0 - strb r1, [r4, #4] - lsrs r3, r3, #8 - b _080637EA - .align 2, 0 -_080637BC: .4byte gMultiSioRecv -_080637C0: .4byte gMultiSioSend -_080637C4: .4byte Task_80638B0 -_080637C8: .4byte gChaoTasks -_080637CC: .4byte gMultiplayerConnections -_080637D0: .4byte gPseudoRandom -_080637D4: .4byte 0x00196225 -_080637D8: .4byte 0x3C6EF35F -_080637DC: - ldr r1, [r6] - ldr r0, _08063804 @ =0x00196225 - muls r0, r1, r0 - ldr r1, _08063808 @ =0x3C6EF35F - adds r0, r0, r1 - str r0, [r6] - adds r3, r0, #0 -_080637EA: - ldrb r0, [r4, #3] - movs r1, #7 - ands r1, r3 - cmp r0, r1 - beq _080637DC - ldrb r0, [r4, #4] - cmp r0, r1 - beq _080637DC - movs r0, #7 - ands r3, r0 - strb r3, [r4, #5] - b _08063818 - .align 2, 0 -_08063804: .4byte 0x00196225 -_08063808: .4byte 0x3C6EF35F -_0806380C: - mov r4, r8 - movs r0, #0x51 - strh r0, [r4] - mov r1, ip - ldrb r0, [r1] - strb r0, [r4, #2] -_08063818: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc b/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc deleted file mode 100644 index c0541ce204..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__CreatePlayerNameInputMenu.inc +++ /dev/null @@ -1,585 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x44 - movs r6, #0 - ldr r2, _0805847C @ =gDispCnt - ldr r1, _08058480 @ =gBgCntRegs - movs r4, #0 - ldr r0, _08058484 @ =0x00001C06 - strh r0, [r1, #2] - ldr r0, _08058488 @ =0x00001A09 - strh r0, [r1, #4] - ldr r0, _0805848C @ =gBgScrollRegs - strh r6, [r0, #4] - strh r6, [r0, #6] - strh r6, [r0, #8] - strh r6, [r0, #0xa] - movs r0, #0xd9 - lsls r0, r0, #6 - strh r0, [r2] - ldr r1, _08058490 @ =gBldRegs - movs r0, #0x1f - strh r0, [r1] - ldr r0, _08058494 @ =gWinRegs - movs r1, #1 - mov r8, r1 - movs r5, #1 - strh r5, [r0] - strh r5, [r0, #4] - bl sub_80535FC - ldr r0, _08058498 @ =sub_8058830 - movs r7, #0x80 - lsls r7, r7, #1 - movs r2, #0x80 - lsls r2, r2, #6 - str r6, [sp] - adds r1, r7, #0 - movs r3, #0 - bl TaskCreate - adds r6, r0, #0 - ldrh r0, [r6, #6] - ldr r2, _0805849C @ =0x03000024 - adds r0, r0, r2 - strh r4, [r0] - ldrh r0, [r6, #6] - ldr r3, _080584A0 @ =0x03000028 - adds r0, r0, r3 - strh r4, [r0] - ldrh r0, [r6, #6] - ldr r1, _080584A4 @ =0x0300002C - adds r0, r0, r1 - strh r4, [r0] - ldrh r0, [r6, #6] - adds r2, #0xc - adds r0, r0, r2 - strh r4, [r0] - ldrh r0, [r6, #6] - adds r3, #0x2c - adds r0, r0, r3 - strh r4, [r0] - ldrh r0, [r6, #6] - adds r1, #0xd0 - adds r0, r0, r1 - strh r4, [r0] - ldrh r0, [r6, #6] - subs r1, #0xfc - adds r0, r0, r1 - movs r1, #0x1e - strh r1, [r0, #0xa] - strh r1, [r0, #0xc] - strh r5, [r0, #0xe] - strh r4, [r0, #8] - movs r1, #3 - strh r1, [r0, #0x10] - mov r2, r8 - strb r2, [r0, #0x16] - strh r4, [r0, #0x12] - ldrh r0, [r6, #6] - subs r3, #0x3c - adds r3, r3, r0 - mov sb, r3 - strh r4, [r3] - strh r5, [r3, #2] - movs r0, #2 - strh r0, [r3, #4] - strh r4, [r3, #6] - strh r7, [r3, #8] - strb r2, [r3, #0xa] - movs r0, #0 - mov r8, r0 - add r7, sp, #0x30 - mov r1, sp - adds r1, #0x2f - str r1, [sp, #0x40] - mov r2, sp - adds r2, #0x2c - str r2, [sp, #0x34] - mov r3, sp - adds r3, #0x2d - str r3, [sp, #0x38] - mov r0, sp - adds r0, #0x2e - str r0, [sp, #0x3c] - ldr r1, _080584A8 @ =gLoadedSaveGame - mov sl, r1 - ldr r5, _080584AC @ =gUnknown_08688492 -_0805843C: - ldr r0, _080584A8 @ =gLoadedSaveGame - adds r0, #0x10 - mov r2, r8 - adds r3, r2, r0 - ldrb r0, [r3] - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x69 - bhi _080584BC - ldrh r2, [r6, #6] - adds r2, r4, r2 - ldr r0, _080584B0 @ =0x030000C8 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r3] - subs r0, #0x20 - lsls r0, r0, #1 - adds r0, r0, r5 - ldr r2, _080584B4 @ =0x00001001 - adds r1, r2, #0 - ldrh r0, [r0] - adds r1, r1, r0 - mov r0, ip - strh r1, [r0] - ldrh r2, [r6, #6] - adds r2, r4, r2 - ldr r1, _080584B8 @ =0x030000CA - adds r1, r1, r2 - mov ip, r1 - b _080584DC - .align 2, 0 -_0805847C: .4byte gDispCnt -_08058480: .4byte gBgCntRegs -_08058484: .4byte 0x00001C06 -_08058488: .4byte 0x00001A09 -_0805848C: .4byte gBgScrollRegs -_08058490: .4byte gBldRegs -_08058494: .4byte gWinRegs -_08058498: .4byte sub_8058830 -_0805849C: .4byte 0x03000024 -_080584A0: .4byte 0x03000028 -_080584A4: .4byte 0x0300002C -_080584A8: .4byte gLoadedSaveGame -_080584AC: .4byte gUnknown_08688492 -_080584B0: .4byte 0x030000C8 -_080584B4: .4byte 0x00001001 -_080584B8: .4byte 0x030000CA -_080584BC: - movs r0, #0x20 - strb r0, [r3] - ldrh r1, [r6, #6] - adds r1, r4, r1 - ldr r0, _080587EC @ =0x030000C8 - adds r1, r1, r0 - ldr r2, _080587F0 @ =0x00001001 - adds r0, r2, #0 - ldrh r2, [r5] - adds r0, r0, r2 - strh r0, [r1] - ldrh r2, [r6, #6] - adds r2, r4, r2 - ldr r0, _080587F4 @ =0x030000CA - adds r0, r0, r2 - mov ip, r0 -_080584DC: - ldrb r0, [r3] - subs r0, #0x20 - lsls r0, r0, #1 - adds r0, r0, r5 - ldr r2, _080587F8 @ =0x00001002 - adds r1, r2, #0 - ldrh r0, [r0] - adds r1, r1, r0 - mov r0, ip - strh r1, [r0] - ldrh r2, [r6, #6] - adds r2, r4, r2 - ldr r1, _080587FC @ =0x030000E0 - adds r1, r1, r2 - mov ip, r1 - ldrb r0, [r3] - subs r0, #0x20 - lsls r0, r0, #1 - adds r0, r0, r5 - ldr r2, _08058800 @ =0x00001015 - adds r1, r2, #0 - ldrh r0, [r0] - adds r1, r1, r0 - mov r0, ip - strh r1, [r0] - ldrh r2, [r6, #6] - adds r2, r4, r2 - ldr r1, _08058804 @ =0x030000E2 - adds r2, r2, r1 - ldrb r0, [r3] - subs r0, #0x20 - lsls r0, r0, #1 - adds r0, r0, r5 - ldr r3, _08058808 @ =0x00001016 - adds r1, r3, #0 - ldrh r0, [r0] - adds r1, r1, r0 - strh r1, [r2] - adds r4, #4 - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #5 - ble _0805843C - movs r2, #5 - mov r8, r2 - mov r3, sl - ldrb r0, [r3, #0x15] - ldrh r1, [r6, #6] - cmp r0, #0x20 - bne _0805855A - mov r2, sl - adds r2, #0x10 -_08058546: - movs r0, #1 - rsbs r0, r0, #0 - add r8, r0 - mov r3, r8 - cmp r3, #0 - blt _0805855A - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #0x20 - beq _08058546 -_0805855A: - ldr r0, _0805880C @ =0x030000F8 - adds r1, r1, r0 - mov r0, r8 - adds r0, #1 - strh r0, [r1] - bl UiGfxStackInit - movs r0, #0x23 - strb r0, [r7] - movs r2, #0 - ldr r1, [sp, #0x40] - strb r2, [r1] - ldr r3, _08058810 @ =gUiGraphics - mov sl, r3 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldr r0, [r0] - str r0, [sp, #0x18] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058814 @ =gUiGraphics + 0x4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x24] - movs r0, #0xa0 - lsls r0, r0, #7 - str r0, [sp, #0x1c] - movs r2, #0x20 - str r2, [sp, #0x28] - movs r0, #0 - ldr r3, [sp, #0x34] - strb r0, [r3] - movs r2, #2 - ldr r1, [sp, #0x38] - strb r2, [r1] - ldr r0, _08058818 @ =gUnknown_08684D3C - str r0, [sp, #0x14] - movs r0, #0xa0 - lsls r0, r0, #3 - str r0, [sp, #0x20] - movs r0, #0x15 - ldr r3, [sp, #0x3c] - strb r0, [r3] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805881C @ =gUiGraphics + 0x8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058820 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - movs r1, #0x10 - add r1, sl - mov r8, r1 - add r0, r8 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058824 @ =gUiGraphics + 0x14 - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - mov r5, sl - adds r5, #0x18 - adds r0, r0, r5 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r0, #0x24 - strb r0, [r7] - movs r4, #1 - ldr r0, [sp, #0x40] - strb r4, [r0] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldr r0, [r0] - str r0, [sp, #0x18] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058814 @ =gUiGraphics + 0x4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #0x24] - movs r0, #0xa0 - lsls r0, r0, #6 - str r0, [sp, #0x1c] - movs r2, #0x20 - str r2, [sp, #0x28] - movs r0, #0 - ldr r3, [sp, #0x34] - strb r0, [r3] - ldr r1, [sp, #0x38] - strb r4, [r1] - ldr r0, _08058828 @ =gUnknown_08685D3C - str r0, [sp, #0x14] - movs r0, #0x80 - lsls r0, r0, #4 - str r0, [sp, #0x20] - movs r3, #0x15 - ldr r2, [sp, #0x3c] - strb r3, [r2] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805881C @ =gUiGraphics + 0x8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058820 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058824 @ =gUiGraphics + 0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r0, #0x25 - strb r0, [r7] - ldr r2, [sp, #0x40] - strb r4, [r2] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058814 @ =gUiGraphics + 0x4 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [sp, #0x24] - movs r0, #0x20 - str r0, [sp, #0x28] - movs r2, #2 - ldr r1, [sp, #0x34] - strb r2, [r1] - ldr r3, [sp, #0x38] - strb r4, [r3] - movs r0, #4 - ldr r1, [sp, #0x3c] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r2, _0805881C @ =gUiGraphics + 0x8 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058820 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058824 @ =gUiGraphics + 0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - movs r0, #0x26 - strb r0, [r7] - movs r0, #3 - ldr r2, [sp, #0x40] - strb r0, [r2] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, sl - ldr r0, [r0] - str r0, [sp, #0x18] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058814 @ =gUiGraphics + 0x4 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [sp, #0x24] - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp, #0x1c] - movs r0, #0x20 - str r0, [sp, #0x28] - movs r2, #0 - ldr r1, [sp, #0x34] - strb r2, [r1] - ldr r0, _0805882C @ =0x06012000 - str r0, [sp, #0x10] - movs r0, #0xd - ldr r3, [sp, #0x3c] - strb r0, [r3] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805881C @ =gUiGraphics + 0x8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #8] - add r2, sp, #4 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r3, _08058820 @ =gUiGraphics + 0xC - adds r0, r0, r3 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - add r0, r8 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08058824 @ =gUiGraphics + 0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - strb r0, [r2, #0xb] - adds r0, r2, #0 - bl sub_80528AC - mov r0, sb - bl sub_805423C - movs r0, #0x30 @ MUS_PLAYER_DATA - bl m4aSongNumStartOrChange - add sp, #0x44 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080587EC: .4byte 0x030000C8 -_080587F0: .4byte 0x00001001 -_080587F4: .4byte 0x030000CA -_080587F8: .4byte 0x00001002 -_080587FC: .4byte 0x030000E0 -_08058800: .4byte 0x00001015 -_08058804: .4byte 0x030000E2 -_08058808: .4byte 0x00001016 -_0805880C: .4byte 0x030000F8 -_08058810: .4byte gUiGraphics -_08058814: .4byte gUiGraphics + 0x4 -_08058818: .4byte gUnknown_08684D3C -_0805881C: .4byte gUiGraphics + 0x8 -_08058820: .4byte gUiGraphics + 0xC -_08058824: .4byte gUiGraphics + 0x14 -_08058828: .4byte gUnknown_08685D3C -_0805882C: .4byte 0x06012000 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc b/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc deleted file mode 100644 index 3402aab862..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__Task_80595DC.inc +++ /dev/null @@ -1,239 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r7, #0 - ldr r4, _08059778 @ =gCurTask - ldr r0, [r4] - ldrh r0, [r0, #6] - ldr r1, _0805977C @ =0x03000018 - adds r0, r0, r1 - bl sub_805423C - ldr r0, [r4] - ldrh r1, [r0, #6] - ldr r2, _08059780 @ =0x030000FC - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, [r4] - ldrh r0, [r0, #6] - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - mov sb, r4 - cmp r0, #0x3c - bgt _08059618 - b _080597CC -_08059618: - movs r6, #0 - ldr r3, _08059784 @ =gLoadedSaveGame - mov r8, r3 - ldr r0, _08059788 @ =gUnknown_08688444 - mov sl, r0 -_08059622: - mov r2, sb - ldr r1, [r2] - lsls r0, r6, #2 - ldrh r1, [r1, #6] - adds r0, r0, r1 - ldr r3, _0805978C @ =0x030000C8 - adds r0, r0, r3 - movs r1, #0 - ldrsh r5, [r0, r1] - ldr r2, _08059790 @ =0xFFFFDFFF - adds r5, r5, r2 - adds r0, r5, #0 - movs r1, #0x28 - bl __udivsi3 - lsls r4, r0, #2 - adds r4, r4, r0 - lsls r4, r4, #1 - adds r0, r5, #0 - movs r1, #0x28 - bl __umodsi3 - lsrs r0, r0, #1 - adds r4, r4, r0 - mov r0, r8 - adds r0, #0x10 - adds r1, r6, r0 - add r4, sl - ldrb r4, [r4] - ldrb r0, [r1] - cmp r0, r4 - beq _08059666 - movs r7, #1 - strb r4, [r1] -_08059666: - adds r6, #1 - cmp r6, #5 - bls _08059622 - cmp r7, #0 - beq _08059740 - ldr r0, _08059794 @ =gFrameCount - ldr r0, [r0] - mov r3, r8 - str r0, [r3, #4] - bl m4aMPlayAllStop - bl m4aSoundVSyncOff - ldr r0, _08059798 @ =gFlags - mov sl, r0 - ldr r1, [r0] - movs r0, #0x80 - lsls r0, r0, #8 - orrs r1, r0 - ldr r2, _0805979C @ =0x04000200 - mov r8, r2 - ldrh r0, [r2] - str r0, [sp] - ldr r6, _080597A0 @ =0x04000208 - ldrh r0, [r6] - adds r7, r0, #0 - ldr r5, _080597A4 @ =0x04000004 - ldrh r3, [r5] - mov sb, r3 - movs r0, #0 - strh r0, [r2] - ldrh r2, [r2] - strh r0, [r6] - ldrh r2, [r6] - strh r0, [r5] - ldrh r0, [r5] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - mov r0, sl - str r1, [r0] - ldr r1, _080597A8 @ =0x040000B0 - ldrh r2, [r1, #0xa] - ldr r4, _080597AC @ =0x0000C5FF - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r3, _080597B0 @ =0x00007FFF - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - adds r1, #0xc - ldrh r2, [r1, #0xa] - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - adds r1, #0xc - ldrh r2, [r1, #0xa] - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - adds r0, r3, #0 - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - ldr r0, _080597B4 @ =0x040000D4 - ldrh r1, [r0, #0xa] - ands r4, r1 - strh r4, [r0, #0xa] - ldrh r1, [r0, #0xa] - ldrh r1, [r0, #0xa] - ands r3, r1 - strh r3, [r0, #0xa] - ldrh r1, [r0, #0xa] - ldrh r0, [r0, #0xa] - bl WriteSaveGame - mov r1, sp - ldrh r2, [r1] - mov r1, r8 - strh r2, [r1] - ldrh r0, [r1] - strh r7, [r6] - ldrh r0, [r6] - mov r3, sb - strh r3, [r5] - ldrh r0, [r5] - bl m4aSoundVSyncOn - mov r1, sl - ldr r0, [r1] - ldr r1, _080597B8 @ =0xFFFF7FFF - ands r0, r1 - mov r2, sl - str r0, [r2] -_08059740: - ldr r0, _08059778 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - ldr r4, _080597BC @ =gBgSprites_Unknown1 - movs r2, #0 - strb r2, [r4, #1] - ldr r0, _080597C0 @ =gBgSprites_Unknown2 - strb r2, [r0, #4] - strb r2, [r0, #5] - movs r1, #0xff - strb r1, [r0, #6] - movs r3, #0x20 - strb r3, [r0, #7] - strb r2, [r4, #2] - strb r2, [r0, #8] - strb r2, [r0, #9] - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r0, #0xa] - strb r3, [r0, #0xb] - ldr r0, _080597C4 @ =gGameMode - ldrb r0, [r0] - cmp r0, #2 - bne _080597C8 - bl CreateMultiplayerModeSelectScreen - b _080597CC - .align 2, 0 -_08059778: .4byte gCurTask -_0805977C: .4byte 0x03000018 -_08059780: .4byte 0x030000FC -_08059784: .4byte gLoadedSaveGame -_08059788: .4byte gUnknown_08688444 -_0805978C: .4byte 0x030000C8 -_08059790: .4byte 0xFFFFDFFF -_08059794: .4byte gFrameCount -_08059798: .4byte gFlags -_0805979C: .4byte 0x04000200 -_080597A0: .4byte 0x04000208 -_080597A4: .4byte 0x04000004 -_080597A8: .4byte 0x040000B0 -_080597AC: .4byte 0x0000C5FF -_080597B0: .4byte 0x00007FFF -_080597B4: .4byte 0x040000D4 -_080597B8: .4byte 0xFFFF7FFF -_080597BC: .4byte gBgSprites_Unknown1 -_080597C0: .4byte gBgSprites_Unknown2 -_080597C4: .4byte gGameMode -_080597C8: - bl CreatePlayerDataMenu -_080597CC: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc b/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc deleted file mode 100644 index d604908bcb..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/player_name_input_menu__sub_8058830.inc +++ /dev/null @@ -1,1687 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x64 - ldr r0, _080588A8 @ =gPressedKeys - ldrh r7, [r0] - ldr r3, _080588AC @ =gCurTask - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r0, _080588B0 @ =0x03000018 - adds r0, r1, r0 - str r0, [sp, #0x30] - ldr r2, _080588B4 @ =0x0300002C - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r1, r0, r2 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0x20 - ble _08058868 - movs r0, #0 - strh r0, [r1] -_08058868: - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r2, _080588B8 @ =0x03000030 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r1, r0, r2 - movs r4, #0 - ldrsh r0, [r1, r4] - cmp r0, #0x2e - ble _08058888 - movs r0, #0 - strh r0, [r1] -_08058888: - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r5, _080588BC @ =0x030000FC - adds r1, r1, r5 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3b - bgt _080588C0 - ldr r0, [sp, #0x30] - bl sub_805423C - b _080588CC - .align 2, 0 -_080588A8: .4byte gPressedKeys -_080588AC: .4byte gCurTask -_080588B0: .4byte 0x03000018 -_080588B4: .4byte 0x0300002C -_080588B8: .4byte 0x03000030 -_080588BC: .4byte 0x030000FC -_080588C0: - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r1, _080588F0 @ =0x030000FC - adds r0, r0, r1 - movs r1, #0x3c - strh r1, [r0] -_080588CC: - ldr r2, _080588F4 @ =gInput - ldrh r1, [r2] - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - adds r4, r2, #0 - cmp r3, #0 - beq _08058900 - ldr r2, _080588F8 @ =gCurTask - ldr r0, [r2] - ldrh r1, [r0, #6] - ldr r3, _080588FC @ =0x03000058 - adds r1, r1, r3 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0805890C - .align 2, 0 -_080588F0: .4byte 0x030000FC -_080588F4: .4byte gInput -_080588F8: .4byte gCurTask -_080588FC: .4byte 0x03000058 -_08058900: - ldr r1, _0805892C @ =gCurTask - ldr r0, [r1] - ldrh r0, [r0, #6] - ldr r5, _08058930 @ =0x03000058 - adds r0, r0, r5 - strh r3, [r0] -_0805890C: - ldrh r1, [r4] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08058938 - ldr r1, _0805892C @ =gCurTask - ldr r0, [r1] - ldrh r1, [r0, #6] - ldr r2, _08058934 @ =0x0300005C - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _08058944 - .align 2, 0 -_0805892C: .4byte gCurTask -_08058930: .4byte 0x03000058 -_08058934: .4byte 0x0300005C -_08058938: - ldr r3, _08058964 @ =gCurTask - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r5, _08058968 @ =0x0300005C - adds r0, r0, r5 - strh r1, [r0] -_08058944: - ldrh r1, [r4] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08058970 - ldr r1, _08058964 @ =gCurTask - ldr r0, [r1] - ldrh r1, [r0, #6] - ldr r2, _0805896C @ =0x03000064 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0805897C - .align 2, 0 -_08058964: .4byte gCurTask -_08058968: .4byte 0x0300005C -_0805896C: .4byte 0x03000064 -_08058970: - ldr r3, _0805899C @ =gCurTask - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r5, _080589A0 @ =0x03000064 - adds r0, r0, r5 - strh r1, [r0] -_0805897C: - ldrh r1, [r4] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _080589A8 - ldr r1, _0805899C @ =gCurTask - ldr r0, [r1] - ldrh r1, [r0, #6] - ldr r2, _080589A4 @ =0x03000060 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080589B4 - .align 2, 0 -_0805899C: .4byte gCurTask -_080589A0: .4byte 0x03000064 -_080589A4: .4byte 0x03000060 -_080589A8: - ldr r3, _08058A20 @ =gCurTask - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r4, _08058A24 @ =0x03000060 - adds r0, r0, r4 - strh r1, [r0] -_080589B4: - ldr r4, _08058A20 @ =gCurTask - ldr r0, [r4] - ldrh r1, [r0, #6] - ldr r6, _08058A28 @ =0x03000024 - adds r0, r1, r6 - ldrh r0, [r0] - mov sb, r0 - ldr r5, _08058A2C @ =0x03000028 - adds r0, r1, r5 - ldrh r0, [r0] - mov sl, r0 - ldr r2, _08058A30 @ =0x03000054 - adds r0, r1, r2 - ldrh r0, [r0] - mov r8, r0 - ldr r0, _08058A34 @ =gPressedKeys - ldrh r2, [r0] - movs r5, #0x10 - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - bne _080589EC - ldr r3, _08058A38 @ =0x03000058 - adds r0, r1, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0xf - ble _08058A3C -_080589EC: - movs r0, #0x6c - bl m4aSongNumStart - ldr r0, [r4] - ldrh r1, [r0, #6] - ldr r0, _08058A38 @ =0x03000058 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #5 - strh r0, [r1] - ldr r0, [r4] - ldrh r1, [r0, #6] - adds r1, r1, r6 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, [r4] - ldrh r0, [r0, #6] - adds r1, r0, r6 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #9 - ble _08058A84 - movs r0, #0 - b _08058A82 - .align 2, 0 -_08058A20: .4byte gCurTask -_08058A24: .4byte 0x03000060 -_08058A28: .4byte 0x03000024 -_08058A2C: .4byte 0x03000028 -_08058A30: .4byte 0x03000054 -_08058A34: .4byte gPressedKeys -_08058A38: .4byte 0x03000058 -_08058A3C: - movs r5, #0x20 - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - bne _08058A52 - ldr r3, _08058B10 @ =0x0300005C - adds r0, r1, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0xf - ble _08058A86 -_08058A52: - movs r0, #0x6c - bl m4aSongNumStart - ldr r0, [r4] - ldrh r1, [r0, #6] - ldr r2, _08058B10 @ =0x0300005C - adds r1, r1, r2 - ldrh r0, [r1] - subs r0, #5 - strh r0, [r1] - ldr r0, [r4] - ldrh r1, [r0, #6] - adds r1, r1, r6 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldr r0, [r4] - ldrh r0, [r0, #6] - adds r1, r0, r6 - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _08058A84 - movs r0, #9 -_08058A82: - strh r0, [r1] -_08058A84: - orrs r7, r5 -_08058A86: - ldr r0, _08058B14 @ =gPressedKeys - ldrh r2, [r0] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - bne _08058AA8 - ldr r1, _08058B18 @ =gCurTask - ldr r0, [r1] - ldrh r3, [r0, #6] - ldr r5, _08058B1C @ =0x03000060 - adds r0, r3, r5 - movs r5, #0 - ldrsh r0, [r0, r5] - cmp r0, #0xf - ble _08058B28 -_08058AA8: - movs r0, #0x6c - bl m4aSongNumStart - ldr r3, _08058B18 @ =gCurTask - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r0, _08058B1C @ =0x03000060 - adds r1, r1, r0 - ldrh r0, [r1] - subs r0, #5 - strh r0, [r1] - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r4, _08058B20 @ =0x03000028 - adds r1, r1, r4 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r1, r0, r4 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #5 - ble _08058B0A - movs r0, #5 - strh r0, [r1] - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r2, _08058B24 @ =0x03000054 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldrh r1, [r0, #6] - adds r2, r1, r2 - movs r5, #0 - ldrsh r0, [r2, r5] - cmp r0, #2 - ble _08058B0A - adds r0, r1, r4 - movs r1, #0 - strh r1, [r0] - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r2, _08058B24 @ =0x03000054 - adds r0, r0, r2 - strh r1, [r0] -_08058B0A: - movs r0, #0x80 - b _08058BA4 - .align 2, 0 -_08058B10: .4byte 0x0300005C -_08058B14: .4byte gPressedKeys -_08058B18: .4byte gCurTask -_08058B1C: .4byte 0x03000060 -_08058B20: .4byte 0x03000028 -_08058B24: .4byte 0x03000054 -_08058B28: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _08058B3C - ldr r5, _08058BEC @ =0x03000064 - adds r0, r3, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0xf - ble _08058BA6 -_08058B3C: - movs r0, #0x6c - bl m4aSongNumStart - ldr r2, _08058BF0 @ =gCurTask - ldr r0, [r2] - ldrh r1, [r0, #6] - ldr r3, _08058BEC @ =0x03000064 - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #5 - strh r0, [r1] - ldr r0, [r2] - ldrh r1, [r0, #6] - subs r3, #0x3c - adds r1, r1, r3 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldr r0, [r2] - ldrh r0, [r0, #6] - adds r1, r0, r3 - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, #0 - bge _08058BA2 - strh r4, [r1] - ldr r0, [r2] - ldrh r1, [r0, #6] - ldr r2, _08058BF4 @ =0x03000054 - adds r1, r1, r2 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldr r1, _08058BF0 @ =gCurTask - ldr r0, [r1] - ldrh r1, [r0, #6] - adds r2, r1, r2 - movs r4, #0 - ldrsh r0, [r2, r4] - cmp r0, #0 - bge _08058BA2 - adds r1, r1, r3 - movs r0, #5 - strh r0, [r1] - ldr r5, _08058BF0 @ =gCurTask - ldr r0, [r5] - ldrh r0, [r0, #6] - ldr r1, _08058BF4 @ =0x03000054 - adds r0, r0, r1 - movs r1, #2 - strh r1, [r0] -_08058BA2: - movs r0, #0x40 -_08058BA4: - orrs r7, r0 -_08058BA6: - ldr r2, _08058BF0 @ =gCurTask - ldr r3, [r2] - ldrh r0, [r3, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r4, r0, r1 - ldr r5, _08058BF8 @ =0x0300002C - adds r1, r0, r5 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0xf - bgt _08058BFC - adds r1, r0, #0 - movs r2, #0x10 - subs r1, r2, r1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - adds r0, r0, r1 - strh r0, [r4] - ldrh r0, [r3, #6] - ldr r3, _08058BF8 @ =0x0300002C - adds r0, r0, r3 - movs r5, #0 - ldrsh r0, [r0, r5] - subs r2, r2, r0 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - b _08058C26 - .align 2, 0 -_08058BEC: .4byte 0x03000064 -_08058BF0: .4byte gCurTask -_08058BF4: .4byte 0x03000054 -_08058BF8: .4byte 0x0300002C -_08058BFC: - movs r0, #0 - ldrsh r1, [r1, r0] - subs r1, #0xf - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r1, #0 - adds r0, r0, r2 - strh r0, [r4] - ldrh r0, [r3, #6] - ldr r3, _08058E94 @ =0x0300002C - adds r0, r0, r3 - movs r5, #0 - ldrsh r1, [r0, r5] - subs r1, #0xf - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 -_08058C26: - strh r0, [r4, #2] - ldr r0, _08058E98 @ =gCurTask - ldr r1, [r0] - ldrh r0, [r1, #6] - ldr r2, _08058E9C @ =0x03000024 - adds r0, r0, r2 - ldrh r2, [r0] - lsls r2, r2, #4 - adds r2, #0x20 - movs r3, #0 - strh r2, [r4, #0xa] - ldrh r0, [r1, #6] - ldr r5, _08058EA0 @ =0x03000028 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #4 - adds r1, #0x28 - ldrh r0, [r4] - subs r0, #0xf0 - asrs r0, r0, #7 - subs r2, r2, r0 - strh r2, [r4, #0xa] - ldrh r0, [r4, #2] - subs r0, #0xf0 - asrs r0, r0, #7 - subs r1, r1, r0 - strh r1, [r4, #0xc] - strh r3, [r4, #4] - movs r0, #2 - strh r0, [r4, #6] - ldr r0, _08058EA4 @ =gUnknown_08688568 - adds r1, r4, #0 - bl sub_8052D64 - ldr r0, _08058EA8 @ =gPrevInput - ldrh r0, [r0] - orrs r0, r7 - movs r1, #0xf9 - ands r0, r1 - mov r7, r8 - lsls r7, r7, #0x10 - str r7, [sp, #0x60] - cmp r0, #0 - beq _08058D32 - ldr r0, _08058E98 @ =gCurTask - ldr r0, [r0] - str r0, [sp, #0x34] - ldrh r0, [r0, #6] - ldr r1, _08058EAC @ =0x03000080 - adds r7, r0, r1 - mov r3, sb - lsls r2, r3, #0x10 - asrs r2, r2, #0xe - adds r1, r2, #0 - adds r1, #0xa - mov r4, sl - lsls r4, r4, #0x10 - asrs r5, r4, #0x10 - ldr r3, [sp, #0x60] - asrs r0, r3, #0x10 - adds r0, r5, r0 - lsls r4, r0, #7 - str r4, [sp, #0x44] - adds r1, r1, r4 - ldr r5, _08058EB0 @ =0x000007FF - ands r1, r5 - str r1, [r7, #4] - adds r0, r1, #0 - ldr r3, _08058EB4 @ =0x000003FF - ands r0, r3 - ldr r4, _08058EB8 @ =gUnknown_08685D3C - adds r0, r0, r4 - str r0, [r7] - movs r5, #0xc0 - lsls r5, r5, #0x13 - mov sl, r5 - add r1, sl - ldr r0, _08058EBC @ =gBgCntRegs - mov sb, r0 - ldrh r4, [r0, #2] - movs r3, #0xf8 - lsls r3, r3, #5 - adds r0, r3, #0 - ands r0, r4 - lsls r0, r0, #3 - adds r1, r1, r0 - str r1, [r7, #4] - movs r1, #4 - strh r1, [r7, #8] - ldr r4, _08058EC0 @ =gVramGraphicsCopyQueue - mov r8, r4 - ldr r1, _08058EC4 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r1] - lsls r0, r0, #2 - add r0, r8 - str r7, [r0] - ldrb r0, [r1] - adds r0, #1 - movs r4, #0x1f - ands r0, r4 - strb r0, [r1] - ldr r5, [sp, #0x34] - ldrh r0, [r5, #6] - ldr r5, _08058EC8 @ =0x0300008C - adds r7, r0, r5 - adds r2, #0x4a - ldr r0, [sp, #0x44] - adds r2, r2, r0 - ldr r5, _08058EB0 @ =0x000007FF - ands r2, r5 - str r2, [r7, #4] - adds r0, r2, #0 - ldr r5, _08058EB4 @ =0x000003FF - ands r0, r5 - ldr r5, _08058EB8 @ =gUnknown_08685D3C - adds r0, r0, r5 - str r0, [r7] - add r2, sl - mov r5, sb - ldrh r0, [r5, #2] - ands r3, r0 - lsls r3, r3, #3 - adds r2, r2, r3 - str r2, [r7, #4] - movs r0, #4 - strh r0, [r7, #8] - ldrb r0, [r1] - lsls r0, r0, #2 - add r0, r8 - str r7, [r0] - ldrb r0, [r1] - adds r0, #1 - ands r0, r4 - strb r0, [r1] -_08058D32: - ldr r1, _08058E98 @ =gCurTask - ldr r1, [r1] - mov ip, r1 - ldrh r3, [r1, #6] - ldr r4, _08058EA0 @ =0x03000028 - adds r2, r3, r4 - ldr r5, _08058ECC @ =0x03000054 - adds r0, r3, r5 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - lsrs r6, r0, #0x10 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #0x12 - ldr r7, _08058E9C @ =0x03000024 - adds r1, r3, r7 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x11 - lsrs r6, r0, #0x10 - ldr r0, _08058ED0 @ =gPressedKeys - ldrh r1, [r0] - cmp r1, #0 - bne _08058E62 - ldr r1, _08058ED4 @ =0x030000F8 - adds r0, r3, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #5 - bgt _08058E62 - adds r4, #0x40 - adds r7, r3, r4 - movs r0, #0xa - str r0, [r7, #4] - mov r5, ip - ldrh r0, [r5, #6] - subs r1, #0xd4 - adds r0, r0, r1 - movs r3, #0 - ldrsh r2, [r0, r3] - lsls r2, r2, #2 - adds r2, #0xa - str r2, [r7, #4] - ldrh r0, [r5, #6] - subs r4, #0x40 - adds r1, r0, r4 - movs r5, #0 - ldrsh r1, [r1, r5] - ldr r3, _08058ECC @ =0x03000054 - adds r0, r0, r3 - movs r4, #0 - ldrsh r0, [r0, r4] - adds r1, r1, r0 - lsls r1, r1, #7 - adds r2, r2, r1 - ldr r5, _08058EB0 @ =0x000007FF - ands r2, r5 - str r2, [r7, #4] - adds r0, r2, #0 - ldr r1, _08058EB4 @ =0x000003FF - ands r0, r1 - ldr r3, _08058ED8 @ =gUnknown_0868653C - adds r0, r0, r3 - str r0, [r7] - movs r4, #0xc0 - lsls r4, r4, #0x13 - mov sl, r4 - add r2, sl - ldr r5, _08058EBC @ =gBgCntRegs - mov sb, r5 - ldrh r1, [r5, #2] - movs r3, #0xf8 - lsls r3, r3, #5 - adds r0, r3, #0 - ands r0, r1 - lsls r0, r0, #3 - adds r2, r2, r0 - str r2, [r7, #4] - movs r0, #4 - strh r0, [r7, #8] - ldr r1, _08058EC0 @ =gVramGraphicsCopyQueue - mov r8, r1 - ldr r4, _08058EC4 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r4] - lsls r0, r0, #2 - add r0, r8 - str r7, [r0] - ldrb r0, [r4] - adds r0, #1 - movs r2, #0x1f - ands r0, r2 - strb r0, [r4] - mov r5, ip - ldrh r0, [r5, #6] - ldr r1, _08058EDC @ =0x03000074 - adds r7, r0, r1 - movs r0, #0x4a - str r0, [r7, #4] - ldrh r0, [r5, #6] - ldr r2, _08058E9C @ =0x03000024 - adds r0, r0, r2 - movs r5, #0 - ldrsh r1, [r0, r5] - lsls r1, r1, #2 - adds r1, #0x4a - str r1, [r7, #4] - mov r2, ip - ldrh r0, [r2, #6] - ldr r5, _08058EA0 @ =0x03000028 - adds r2, r0, r5 - movs r5, #0 - ldrsh r2, [r2, r5] - ldr r5, _08058ECC @ =0x03000054 - adds r0, r0, r5 - movs r5, #0 - ldrsh r0, [r0, r5] - adds r2, r2, r0 - lsls r2, r2, #7 - adds r1, r1, r2 - ldr r0, _08058EB0 @ =0x000007FF - ands r1, r0 - str r1, [r7, #4] - adds r0, r1, #0 - ldr r2, _08058EB4 @ =0x000003FF - ands r0, r2 - ldr r5, _08058ED8 @ =gUnknown_0868653C - adds r0, r0, r5 - str r0, [r7] - add r1, sl - mov r2, sb - ldrh r0, [r2, #2] - ands r3, r0 - lsls r3, r3, #3 - adds r1, r1, r3 - str r1, [r7, #4] - movs r3, #4 - strh r3, [r7, #8] - ldrb r0, [r4] - lsls r0, r0, #2 - add r0, r8 - str r7, [r0] - ldrb r0, [r4] - adds r0, #1 - movs r5, #0x1f - ands r0, r5 - strb r0, [r4] -_08058E62: - ldr r7, _08058ED0 @ =gPressedKeys - ldrh r1, [r7] - movs r0, #0xc0 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08058EF8 - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08058EE0 - ldr r0, _08058E98 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r2, _08058ED4 @ =0x030000F8 - adds r1, r0, r2 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - beq _08058EF8 - subs r0, r2, #1 - b _08058EF6 - .align 2, 0 -_08058E94: .4byte 0x0300002C -_08058E98: .4byte gCurTask -_08058E9C: .4byte 0x03000024 -_08058EA0: .4byte 0x03000028 -_08058EA4: .4byte gUnknown_08688568 -_08058EA8: .4byte gPrevInput -_08058EAC: .4byte 0x03000080 -_08058EB0: .4byte 0x000007FF -_08058EB4: .4byte 0x000003FF -_08058EB8: .4byte gUnknown_08685D3C -_08058EBC: .4byte gBgCntRegs -_08058EC0: .4byte gVramGraphicsCopyQueue -_08058EC4: .4byte gVramGraphicsCopyQueueIndex -_08058EC8: .4byte 0x0300008C -_08058ECC: .4byte 0x03000054 -_08058ED0: .4byte gPressedKeys -_08058ED4: .4byte 0x030000F8 -_08058ED8: .4byte gUnknown_0868653C -_08058EDC: .4byte 0x03000074 -_08058EE0: - ldr r0, _08058F50 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r4, _08058F54 @ =0x030000F8 - adds r1, r0, r4 - ldrh r2, [r1] - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, #4 - bgt _08058EF8 - adds r0, r2, #1 -_08058EF6: - strh r0, [r1] -_08058EF8: - ldr r7, _08058F58 @ =gPressedKeys - ldrh r1, [r7] - movs r0, #1 - ands r0, r1 - add r2, sp, #0x2c - mov r8, r2 - movs r3, #0x2b - add r3, sp - mov sb, r3 - add r4, sp, #0x28 - mov sl, r4 - mov r5, sp - adds r5, #0x29 - str r5, [sp, #0x58] - mov r7, sp - adds r7, #0x2a - str r7, [sp, #0x5c] - cmp r0, #0 - bne _08058F20 - b _0805905C -_08058F20: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08058F2A - b _0805905C -_08058F2A: - movs r0, #0x93 - lsls r0, r0, #1 - cmp r6, r0 - bne _08058F5C - ldr r0, _08058F50 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r2, _08058F54 @ =0x030000F8 - adds r1, r0, r2 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bne _08058F48 - b _08059056 -_08058F48: - subs r0, r2, #1 - strh r0, [r1] - b _08059056 - .align 2, 0 -_08058F50: .4byte gCurTask -_08058F54: .4byte 0x030000F8 -_08058F58: .4byte gPressedKeys -_08058F5C: - movs r0, #0x94 - lsls r0, r0, #1 - cmp r6, r0 - bne _08058F88 - ldr r0, _08058F80 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r4, _08058F84 @ =0x030000F8 - adds r1, r0, r4 - ldrh r2, [r1] - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, #5 - bgt _08059056 - adds r0, r2, #1 - strh r0, [r1] - b _08059056 - .align 2, 0 -_08058F80: .4byte gCurTask -_08058F84: .4byte 0x030000F8 -_08058F88: - movs r0, #0x95 - lsls r0, r0, #1 - cmp r6, r0 - bne _08058FFC - movs r1, #0 - movs r6, #0 - ldr r7, _08058FE4 @ =gCurTask - ldr r0, [r7] - ldrh r2, [r0, #6] - ldr r5, _08058FE8 @ =0x030000C8 - ldr r4, _08058FEC @ =0xFFFFF000 - ldr r3, _08058FF0 @ =0x000010DB -_08058FA0: - lsls r0, r6, #2 - adds r0, r0, r2 - adds r0, r0, r5 - movs r7, #0 - ldrsh r0, [r0, r7] - adds r0, r0, r4 - cmp r0, r3 - beq _08058FB4 - movs r0, #1 - orrs r1, r0 -_08058FB4: - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #5 - bls _08058FA0 - cmp r1, #0 - beq _08059056 - movs r1, #0 - ldr r0, [sp, #0x30] - strh r1, [r0, #6] - movs r0, #1 - ldr r2, [sp, #0x30] - strh r0, [r2, #4] - ldr r3, _08058FE4 @ =gCurTask - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r4, _08058FF4 @ =0x030000FC - adds r0, r0, r4 - strh r1, [r0] - ldr r1, [r3] - ldr r0, _08058FF8 @ =Task_80595DC - str r0, [r1, #8] - b _08059056 - .align 2, 0 -_08058FE4: .4byte gCurTask -_08058FE8: .4byte 0x030000C8 -_08058FEC: .4byte 0xFFFFF000 -_08058FF0: .4byte 0x000010DB -_08058FF4: .4byte 0x030000FC -_08058FF8: .4byte Task_80595DC -_08058FFC: - ldr r3, _080590B4 @ =gCurTask - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r5, _080590B8 @ =0x030000F8 - adds r1, r0, r5 - movs r7, #0 - ldrsh r0, [r1, r7] - cmp r0, #5 - bgt _08059056 - ldrh r2, [r1] - adds r0, r2, #1 - strh r0, [r1] - ldr r0, [r3] - ldrh r0, [r0, #6] - lsls r2, r2, #2 - adds r0, r2, r0 - ldr r1, _080590BC @ =0x030000C8 - adds r0, r0, r1 - ldr r4, _080590C0 @ =0x00002001 - adds r1, r6, r4 - strh r1, [r0] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r0, r2, r0 - subs r5, #0x2e - adds r0, r0, r5 - ldr r7, _080590C4 @ =0x00002002 - adds r1, r6, r7 - strh r1, [r0] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r0, r2, r0 - ldr r1, _080590C8 @ =0x030000E0 - adds r0, r0, r1 - adds r4, #0x14 - adds r1, r6, r4 - strh r1, [r0] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r2, r2, r0 - adds r5, #0x18 - adds r2, r2, r5 - adds r7, #0x14 - adds r0, r6, r7 - strh r0, [r2] -_08059056: - movs r0, #0x6a - bl m4aSongNumStart -_0805905C: - ldr r1, _080590CC @ =gPressedKeys - ldrh r2, [r1] - movs r0, #8 - ands r0, r2 - cmp r0, #0 - bne _08059082 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080590F2 - ldr r0, _080590B4 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r1, _080590B8 @ =0x030000F8 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #6 - bne _080590F2 -_08059082: - ldr r3, _080590B4 @ =gCurTask - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r4, _080590D0 @ =0x03000054 - adds r2, r1, r4 - ldrh r0, [r2] - movs r6, #7 - ands r6, r0 - cmp r6, #1 - bhi _080590DC - movs r0, #2 - strh r0, [r2] - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r5, _080590D4 @ =0x03000024 - adds r0, r0, r5 - movs r1, #9 - strh r1, [r0] - ldr r0, [r3] - ldrh r0, [r0, #6] - ldr r7, _080590D8 @ =0x03000028 - adds r0, r0, r7 - movs r1, #5 - strh r1, [r0] - b _080590F2 - .align 2, 0 -_080590B4: .4byte gCurTask -_080590B8: .4byte 0x030000F8 -_080590BC: .4byte 0x030000C8 -_080590C0: .4byte 0x00002001 -_080590C4: .4byte 0x00002002 -_080590C8: .4byte 0x030000E0 -_080590CC: .4byte gPressedKeys -_080590D0: .4byte 0x03000054 -_080590D4: .4byte 0x03000024 -_080590D8: .4byte 0x03000028 -_080590DC: - ldr r0, _080591E8 @ =0x03000024 - adds r1, r1, r0 - movs r0, #9 - strh r0, [r1] - ldr r0, [r3] - ldrh r1, [r0, #6] - ldr r2, _080591EC @ =0x03000028 - adds r1, r1, r2 - movs r0, #7 - subs r0, r0, r6 - strh r0, [r1] -_080590F2: - ldr r3, _080591F0 @ =gPressedKeys - ldrh r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _080591C8 - ldr r1, _080591F4 @ =gCurTask - ldr r0, [r1] - ldrh r0, [r0, #6] - ldr r4, _080591F8 @ =0x030000F8 - adds r3, r0, r4 - ldrh r4, [r3] - movs r5, #0 - ldrsh r0, [r3, r5] - cmp r0, #0 - ble _080591C8 - subs r0, r4, #1 - strh r0, [r3] - adds r7, r1, #0 - ldr r0, [r7] - ldrh r0, [r0, #6] - ldr r1, _080591F8 @ =0x030000F8 - adds r0, r0, r1 - ldrh r6, [r0] - cmp r6, #4 - bhi _0805917C - adds r3, r7, #0 -_08059128: - ldr r0, [r3] - ldrh r0, [r0, #6] - lsls r1, r6, #2 - adds r0, r1, r0 - ldr r4, _080591FC @ =0x030000C8 - adds r2, r0, r4 - ldr r5, _08059200 @ =0x030000CC - adds r0, r0, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r0, r1, r0 - ldr r7, _08059204 @ =0x030000CA - adds r2, r0, r7 - adds r4, #6 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r2] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r0, r1, r0 - adds r5, #0x14 - adds r2, r0, r5 - adds r7, #0x1a - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r2] - ldr r0, [r3] - ldrh r0, [r0, #6] - adds r1, r1, r0 - ldr r0, _08059208 @ =0x030000E2 - adds r2, r1, r0 - adds r4, #0x18 - adds r1, r1, r4 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #4 - bls _08059128 -_0805917C: - ldr r5, _080591F4 @ =gCurTask - ldr r0, [r5] - ldrh r0, [r0, #6] - lsls r2, r6, #2 - adds r0, r2, r0 - ldr r7, _080591FC @ =0x030000C8 - adds r0, r0, r7 - ldr r3, _0805920C @ =0x000020DB - adds r1, r3, #0 - strh r1, [r0] - ldr r0, [r5] - ldrh r0, [r0, #6] - adds r0, r2, r0 - ldr r4, _08059204 @ =0x030000CA - adds r0, r0, r4 - ldr r5, _08059210 @ =0x000020DC - adds r1, r5, #0 - strh r1, [r0] - ldr r7, _080591F4 @ =gCurTask - ldr r0, [r7] - ldrh r0, [r0, #6] - adds r0, r2, r0 - ldr r1, _08059214 @ =0x030000E0 - adds r0, r0, r1 - adds r3, #0x14 - adds r1, r3, #0 - strh r1, [r0] - ldr r0, [r7] - ldrh r0, [r0, #6] - adds r2, r2, r0 - adds r4, #0x18 - adds r2, r2, r4 - adds r5, #0x14 - adds r0, r5, #0 - strh r0, [r2] - movs r0, #0x6b - bl m4aSongNumStart -_080591C8: - bl UiGfxStackInit - ldr r0, _080591F4 @ =gCurTask - ldr r0, [r0] - ldrh r0, [r0, #6] - ldr r7, _08059218 @ =0x03000030 - adds r1, r0, r7 - movs r2, #0 - ldrsh r0, [r1, r2] - cmp r0, #0x16 - bgt _0805921C - adds r1, r0, #0 - movs r0, #0x17 - subs r0, r0, r1 - b _08059222 - .align 2, 0 -_080591E8: .4byte 0x03000024 -_080591EC: .4byte 0x03000028 -_080591F0: .4byte gPressedKeys -_080591F4: .4byte gCurTask -_080591F8: .4byte 0x030000F8 -_080591FC: .4byte 0x030000C8 -_08059200: .4byte 0x030000CC -_08059204: .4byte 0x030000CA -_08059208: .4byte 0x030000E2 -_0805920C: .4byte 0x000020DB -_08059210: .4byte 0x000020DC -_08059214: .4byte 0x030000E0 -_08059218: .4byte 0x03000030 -_0805921C: - movs r4, #0 - ldrsh r0, [r1, r4] - subs r0, #0x17 -_08059222: - lsls r0, r0, #5 - movs r1, #0x17 - bl __divsi3 - adds r7, r0, #0 - ldr r4, _080593B8 @ =gSineTable - lsls r0, r7, #5 - movs r1, #0x3c - bl __udivsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x17 - movs r1, #0x1f - subs r7, r1, r0 - cmp r7, #0x1f - bls _0805924A - movs r7, #0x1f -_0805924A: - movs r6, #0 -_0805924C: - lsls r5, r6, #1 - str r5, [sp, #0x48] - ldr r1, _080593BC @ =gUiGraphics + ((37 * 0x1C) + 0x4) - ldr r0, [r1] - adds r0, r0, r5 - ldrh r0, [r0] - movs r2, #0xf8 - lsls r2, r2, #7 - adds r1, r2, #0 - ands r0, r1 - lsrs r0, r0, #0xa - muls r0, r7, r0 - movs r1, #0x20 - bl Div - adds r4, r0, #0 - ldr r3, _080593BC @ =gUiGraphics + ((37 * 0x1C) + 0x4) - ldr r0, [r3] - adds r0, r0, r5 - ldrh r0, [r0] - movs r5, #0xf8 - lsls r5, r5, #2 - adds r1, r5, #0 - ands r0, r1 - lsrs r0, r0, #5 - muls r0, r7, r0 - movs r1, #0x20 - bl Div - adds r5, r0, #0 - ldr r1, _080593BC @ =gUiGraphics + ((37 * 0x1C) + 0x4) - ldr r0, [r1] - ldr r2, [sp, #0x48] - adds r0, r0, r2 - ldrh r1, [r0] - movs r0, #0x1f - ands r0, r1 - muls r0, r7, r0 - movs r1, #0x20 - bl Div - ldr r3, _080593C0 @ =gCurTask - ldr r1, [r3] - ldrh r1, [r1, #6] - ldr r2, [sp, #0x48] - adds r1, r2, r1 - ldr r3, _080593C4 @ =0x03000034 - adds r3, r1, r3 - lsls r4, r4, #0xa - lsls r5, r5, #5 - adds r4, r4, r5 - adds r4, r4, r0 - strh r4, [r3] - adds r0, r6, #1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0xf - bls _0805924C - movs r0, #0x25 - mov r4, r8 - strb r0, [r4] - movs r1, #1 - mov r5, sb - strb r1, [r5] - ldr r7, _080593C0 @ =gCurTask - ldr r0, [r7] - ldrh r0, [r0, #6] - ldr r2, _080593C4 @ =0x03000034 - adds r0, r0, r2 - str r0, [sp, #0x20] - movs r0, #0x20 - str r0, [sp, #0x24] - mov r3, sl - strb r1, [r3] - ldr r4, [sp, #0x58] - strb r1, [r4] - movs r0, #4 - ldr r5, [sp, #0x5c] - strb r0, [r5] - ldr r3, _080593C8 @ =gUiGraphics - mov r7, r8 - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - mov r2, sp - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #8] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #9] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x14 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xa] - ldrb r1, [r7] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x18 - adds r0, r0, r1 - ldr r0, [r0] - strb r0, [r2, #0xb] - mov r0, sp - bl sub_80528AC - ldr r0, _080593C0 @ =gCurTask - ldr r5, [r0] - ldrh r3, [r5, #6] - ldr r1, _080593CC @ =0x030000F8 - adds r0, r3, r1 - ldrh r7, [r0] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r0, #5 - bgt _080593F2 - ldr r4, _080593D0 @ =0x03000028 - adds r2, r3, r4 - subs r1, #0xa4 - adds r0, r3, r1 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - movs r0, #0xe0 - lsls r0, r0, #0xb - ands r0, r1 - lsrs r6, r0, #0x10 - lsls r0, r6, #2 - adds r0, r0, r6 - lsls r0, r0, #0x12 - ldr r2, _080593D4 @ =0x03000024 - adds r1, r3, r2 - lsrs r0, r0, #0x10 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x11 - movs r1, #0x95 - lsls r1, r1, #0x11 - cmp r0, r1 - beq _080593F2 - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r3, r0 - lsls r0, r7, #4 - adds r0, #0x78 - strh r0, [r4, #0xa] - ldrh r0, [r5, #6] - ldr r3, _080593D8 @ =0x0300002C - adds r1, r0, r3 - movs r5, #0 - ldrsh r0, [r1, r5] - cmp r0, #0x10 - ble _080593DC - movs r1, #0x10 - subs r1, r1, r0 - b _080593E2 - .align 2, 0 -_080593B8: .4byte gSineTable -_080593BC: .4byte gUiGraphics + ((37 * 0x1C) + 0x4) -_080593C0: .4byte gCurTask -_080593C4: .4byte 0x03000034 -_080593C8: .4byte gUiGraphics -_080593CC: .4byte 0x030000F8 -_080593D0: .4byte 0x03000028 -_080593D4: .4byte 0x03000024 -_080593D8: .4byte 0x0300002C -_080593DC: - movs r0, #0 - ldrsh r1, [r1, r0] - subs r1, #0x10 -_080593E2: - asrs r1, r1, #2 - movs r0, #0xd - subs r0, r0, r1 - strh r0, [r4, #0xc] - ldr r0, _08059520 @ =gUnknown_0868856C - adds r1, r4, #0 - bl sub_805321C -_080593F2: - ldr r1, _08059524 @ =gCurTask - ldr r2, [r1] - mov sl, r2 - ldrh r0, [r2, #6] - ldr r3, _08059528 @ =0x03000098 - adds r7, r0, r3 - ldr r4, _0805952C @ =0x030000C8 - adds r0, r0, r4 - str r0, [r7] - movs r0, #0x1e - str r0, [r7, #4] - ldrh r0, [r2, #6] - subs r4, #0x74 - adds r0, r0, r4 - movs r5, #0 - ldrsh r1, [r0, r5] - subs r1, #2 - lsls r1, r1, #7 - adds r1, #0x1e - ldr r0, _08059530 @ =0x000007FF - ands r1, r0 - str r1, [r7, #4] - movs r2, #0xc0 - lsls r2, r2, #0x13 - mov r8, r2 - add r1, r8 - ldr r3, _08059534 @ =gBgCntRegs - ldrh r2, [r3, #2] - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - str r1, [r7, #4] - movs r5, #0x18 - strh r5, [r7, #8] - ldr r0, _08059538 @ =gVramGraphicsCopyQueue - mov ip, r0 - ldr r3, _0805953C @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r3] - lsls r0, r0, #2 - add r0, ip - str r7, [r0] - ldrb r0, [r3] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r3] - mov r2, sl - ldrh r0, [r2, #6] - ldr r5, _08059540 @ =0x030000A4 - adds r7, r0, r5 - ldr r1, _08059544 @ =0x030000E0 - adds r0, r0, r1 - str r0, [r7] - movs r0, #0x5e - str r0, [r7, #4] - ldrh r0, [r2, #6] - adds r0, r0, r4 - movs r2, #0 - ldrsh r1, [r0, r2] - subs r1, #2 - lsls r1, r1, #7 - adds r1, #0x5e - ldr r5, _08059530 @ =0x000007FF - ands r1, r5 - str r1, [r7, #4] - add r1, r8 - ldr r0, _08059534 @ =gBgCntRegs - ldrh r2, [r0, #2] - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - str r1, [r7, #4] - movs r1, #0x18 - strh r1, [r7, #8] - ldrb r0, [r3] - lsls r0, r0, #2 - add r0, ip - str r7, [r0] - ldrb r0, [r3] - adds r0, #1 - movs r2, #0x1f - ands r0, r2 - strb r0, [r3] - mov r5, sl - ldrh r2, [r5, #6] - adds r4, r2, r4 - ldr r7, [sp, #0x60] - asrs r1, r7, #0x10 - movs r5, #0 - ldrsh r0, [r4, r5] - ldr r7, _08059534 @ =gBgCntRegs - mov r8, r7 - mov sb, ip - adds r5, r3, #0 - cmp r1, r0 - beq _0805959E - ldr r0, _08059548 @ =0x030000B0 - adds r7, r2, r0 - adds r0, r1, #6 - lsls r6, r0, #7 - adds r0, r6, #0 - ldr r2, _08059530 @ =0x000007FF - ands r0, r2 - ldr r3, _0805954C @ =gUnknown_08685D3C + 0x1E - adds r0, r0, r3 - str r0, [r7] - subs r0, r1, #2 - lsls r4, r0, #7 - adds r1, r4, #0 - adds r1, #0x1e - ands r1, r2 - str r1, [r7, #4] - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r1, r1, r0 - mov r0, r8 - ldrh r2, [r0, #2] - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - str r1, [r7, #4] - movs r1, #0x18 - strh r1, [r7, #8] - ldrb r0, [r5] - lsls r0, r0, #2 - add r0, sb - str r7, [r0] - ldrb r0, [r5] - adds r0, #1 - movs r2, #0x1f - ands r0, r2 - strb r0, [r5] - mov r7, sl - ldrh r0, [r7, #6] - ldr r1, _08059550 @ =0x030000BC - adds r7, r0, r1 - ldr r2, _08059554 @ =0x03000028 - adds r0, r0, r2 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08059558 - adds r0, r4, #0 - b _0805955A - .align 2, 0 -_08059520: .4byte gUnknown_0868856C -_08059524: .4byte gCurTask -_08059528: .4byte 0x03000098 -_0805952C: .4byte 0x030000C8 -_08059530: .4byte 0x000007FF -_08059534: .4byte gBgCntRegs -_08059538: .4byte gVramGraphicsCopyQueue -_0805953C: .4byte gVramGraphicsCopyQueueIndex -_08059540: .4byte 0x030000A4 -_08059544: .4byte 0x030000E0 -_08059548: .4byte 0x030000B0 -_0805954C: .4byte gUnknown_08685D3C + 0x1E -_08059550: .4byte 0x030000BC -_08059554: .4byte 0x03000028 -_08059558: - adds r0, r6, #0 -_0805955A: - adds r0, #0x40 - str r0, [r7] - ldr r0, [r7] - ldr r2, _080595C8 @ =0x000007FF - ands r0, r2 - adds r0, r0, r3 - str r0, [r7] - ldr r3, [sp, #0x60] - asrs r1, r3, #9 - subs r1, #0xa2 - ands r1, r2 - str r1, [r7, #4] - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r1, r1, r0 - mov r4, r8 - ldrh r2, [r4, #2] - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r2 - lsls r0, r0, #3 - adds r1, r1, r0 - str r1, [r7, #4] - movs r0, #0x18 - strh r0, [r7, #8] - ldrb r0, [r5] - lsls r0, r0, #2 - add r0, sb - str r7, [r0] - ldrb r0, [r5] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5] -_0805959E: - ldr r2, _080595CC @ =gBgScrollRegs - ldr r5, _080595D0 @ =gCurTask - ldr r0, [r5] - ldrh r0, [r0, #6] - ldr r7, _080595D4 @ =0x03000054 - adds r0, r0, r7 - ldrh r0, [r0] - lsls r0, r0, #4 - subs r0, #0x30 - ldr r3, _080595D8 @ =0x000001FF - adds r1, r3, #0 - ands r0, r1 - strh r0, [r2, #6] - add sp, #0x64 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080595C8: .4byte 0x000007FF -_080595CC: .4byte gBgScrollRegs -_080595D0: .4byte gCurTask -_080595D4: .4byte 0x03000054 -_080595D8: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc b/sa1/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc deleted file mode 100644 index f5a8d0e179..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/sound_test__sub_805F950.inc +++ /dev/null @@ -1,189 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - ldr r0, _0805F9A0 @ =gCurTask - ldr r0, [r0] - ldrh r5, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r5, r0 - ldr r1, _0805F9A4 @ =0x03000108 - adds r0, r5, r1 - ldr r6, [r0] - ldr r2, _0805F9A8 @ =0x0300010D - adds r3, r5, r2 - ldrb r0, [r3] - cmp r0, #0 - beq _0805F972 - cmp r6, #0x77 - bhi _0805F9B8 -_0805F972: - movs r7, #0 - movs r0, #0xb4 - strh r0, [r4, #0x16] - movs r0, #0x78 - strh r0, [r4, #0x18] - ldr r0, _0805F9AC @ =0x00000355 - strh r0, [r4, #0xa] - ldr r0, _0805F9B0 @ =0x03000020 - adds r2, r5, r0 - strb r7, [r2] - cmp r6, #0x77 - beq _0805F98C - b _0805FAA8 -_0805F98C: - adds r0, #1 - adds r1, r5, r0 - movs r0, #0xff - strb r0, [r1] - movs r0, #1 - strb r0, [r3] - ldr r0, _0805F9B4 @ =0x00000356 - strh r0, [r4, #0xa] - strb r7, [r2] - b _0805FAA8 - .align 2, 0 -_0805F9A0: .4byte gCurTask -_0805F9A4: .4byte 0x03000108 -_0805F9A8: .4byte 0x0300010D -_0805F9AC: .4byte 0x00000355 -_0805F9B0: .4byte 0x03000020 -_0805F9B4: .4byte 0x00000356 -_0805F9B8: - cmp r0, #1 - bne _0805F9DC - movs r1, #0 - movs r0, #0xb4 - strh r0, [r4, #0x16] - movs r0, #0x78 - strh r0, [r4, #0x18] - ldr r0, _0805F9D4 @ =0x00000356 -_0805F9C8: - strh r0, [r4, #0xa] - ldr r2, _0805F9D8 @ =0x03000020 - adds r0, r5, r2 - strb r1, [r0] - b _0805FAA8 - .align 2, 0 -_0805F9D4: .4byte 0x00000356 -_0805F9D8: .4byte 0x03000020 -_0805F9DC: - cmp r0, #2 - bne _0805FA6C - adds r0, r6, #0 - movs r1, #0xfa - bl Mod - cmp r0, #0x77 - bgt _0805FA00 - movs r1, #0 - movs r0, #0xa4 - strh r0, [r4, #0x16] - movs r0, #0x78 - strh r0, [r4, #0x18] - ldr r0, _0805F9FC @ =0x00000357 - b _0805F9C8 - .align 2, 0 -_0805F9FC: .4byte 0x00000357 -_0805FA00: - adds r0, r6, #0 - movs r1, #0xfa - bl Mod - cmp r0, #0x7c - ble _0805FA40 - adds r0, r6, #0 - movs r1, #0xfa - bl Mod - cmp r0, #0xf4 - bgt _0805FA40 - movs r1, #0 - movs r0, #0xc4 - strh r0, [r4, #0x16] - movs r0, #0x78 - strh r0, [r4, #0x18] - ldr r0, _0805FA38 @ =0x00000357 - strh r0, [r4, #0xa] - ldr r2, _0805FA3C @ =0x03000020 - adds r0, r5, r2 - strb r1, [r0] - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - b _0805FAAE - .align 2, 0 -_0805FA38: .4byte 0x00000357 -_0805FA3C: .4byte 0x03000020 -_0805FA40: - movs r0, #0xb4 - strh r0, [r4, #0x16] - movs r0, #0x78 - strh r0, [r4, #0x18] - ldr r0, _0805FA60 @ =0x00000357 - strh r0, [r4, #0xa] - ldr r0, _0805FA64 @ =0x03000020 - adds r1, r5, r0 - movs r0, #1 - strb r0, [r1] - ldr r2, _0805FA68 @ =0x0300010E - adds r1, r5, r2 - movs r0, #5 - strh r0, [r1] - b _0805FAB0 - .align 2, 0 -_0805FA60: .4byte 0x00000357 -_0805FA64: .4byte 0x03000020 -_0805FA68: .4byte 0x0300010E -_0805FA6C: - cmp r0, #3 - bne _0805FAB0 - movs r6, #0 - movs r0, #0xb4 - strh r0, [r4, #0x16] - movs r0, #0x78 - strh r0, [r4, #0x18] - movs r0, #0xd6 - lsls r0, r0, #2 - strh r0, [r4, #0xa] - ldr r0, _0805FAC4 @ =0x03000020 - adds r2, r5, r0 - strb r6, [r2] - adds r0, #0xee - adds r1, r5, r0 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805FAA8 - ldr r0, _0805FAC8 @ =0x03000021 - adds r1, r5, r0 - movs r0, #0xff - strb r0, [r1] - movs r0, #1 - strb r0, [r3] - ldr r0, _0805FACC @ =0x00000356 - strh r0, [r4, #0xa] - strb r6, [r2] -_0805FAA8: - ldr r0, [r4, #0x10] - ldr r1, _0805FAD0 @ =0xFFFFFBFF - ands r0, r1 -_0805FAAE: - str r0, [r4, #0x10] -_0805FAB0: - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0805FAC4: .4byte 0x03000020 -_0805FAC8: .4byte 0x03000021 -_0805FACC: .4byte 0x00000356 -_0805FAD0: .4byte 0xFFFFFBFF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc b/sa1/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc deleted file mode 100644 index f81f91ef6a..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/staff_credits__Task_805E888.inc +++ /dev/null @@ -1,155 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0805E954 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r1, r0 - adds r0, #0x30 - adds r0, r0, r1 - mov sb, r0 - ldr r5, [r4, #0x78] - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _0805E8BC - ldr r0, _0805E958 @ =0x00143000 - ldr r1, _0805E95C @ =0x0000201C - bl Div - adds r0, #1 - muls r0, r5, r0 - str r0, [r4, #0x7c] -_0805E8BC: - ldr r0, [r4, #0x7c] - lsrs r2, r0, #8 - adds r0, r2, #0 - subs r0, #0xc - cmp r0, #0x9a - bls _0805E9A2 - subs r0, #0x8a - lsrs r6, r0, #4 - subs r0, #0x10 - movs r1, #0x10 - bl Mod - adds r0, #4 - mov sl, r0 - movs r5, #0xff - movs r3, #0 - ldr r1, _0805E960 @ =gUnknown_086886A0 - mov ip, r1 - mov r7, ip -_0805E8E2: - movs r2, #0 -_0805E8E4: - lsls r0, r2, #2 - adds r0, r0, r7 - adds r1, r6, r3 - ldr r0, [r0] - cmp r0, r1 - bne _0805E8F8 - adds r5, r2, #0 - mov r8, r3 - movs r3, #0xa - movs r2, #5 -_0805E8F8: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _0805E8E4 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #9 - bls _0805E8E2 - mov r2, ip - ldr r0, [r2, #0xc] - subs r0, #3 - cmp r6, r0 - blo _0805E91C - movs r5, #3 - movs r0, #0 - mov r8, r0 -_0805E91C: - cmp r5, #0xff - beq _0805E9A2 - movs r0, #0x18 - mov r1, sl - subs r0, r0, r1 - mov r2, r8 - lsls r1, r2, #4 - adds r0, r0, r1 - strh r0, [r4, #0x18] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9a - bgt _0805E9A2 - movs r2, #0x78 - strh r2, [r4, #0x16] - cmp r5, #0 - beq _0805E996 - cmp r5, #1 - beq _0805E946 - cmp r5, #2 - bne _0805E964 -_0805E946: - movs r0, #0xb9 - lsls r0, r0, #2 - strh r0, [r4, #0xa] - adds r0, r4, #0 - adds r0, #0x20 - strb r5, [r0] - b _0805E996 - .align 2, 0 -_0805E954: .4byte gCurTask -_0805E958: .4byte 0x00143000 -_0805E95C: .4byte 0x0000201C -_0805E960: .4byte gUnknown_086886A0 -_0805E964: - movs r0, #0xb9 - lsls r0, r0, #2 - strh r0, [r4, #0xa] - adds r1, r4, #0 - adds r1, #0x20 - movs r0, #3 - strb r0, [r1] - movs r1, #0x18 - ldrsh r0, [r4, r1] - cmp r0, #0x4f - bgt _0805E97E - movs r0, #0x50 - strh r0, [r4, #0x18] -_0805E97E: - mov r0, sb - strh r2, [r0, #0x16] - ldrh r0, [r4, #0x18] - adds r0, #0x28 - mov r1, sb - strh r0, [r1, #0x18] - mov r0, sb - bl UpdateSpriteAnimation - mov r0, sb - bl DisplaySprite -_0805E996: - adds r0, r4, #0 - bl UpdateSpriteAnimation - adds r0, r4, #0 - bl DisplaySprite -_0805E9A2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc b/sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc deleted file mode 100644 index e65cfb11e5..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061144.inc +++ /dev/null @@ -1,308 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r7, #0 - movs r0, #0 - str r0, [sp] - ldr r0, _080611E0 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r6, r4, r1 - ldr r2, _080611E4 @ =0x030000CC - adds r0, r4, r2 - ldr r0, [r0] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov r8, r0 - ldr r3, _080611E8 @ =0x030000D0 - adds r0, r4, r3 - ldr r0, [r0] - ldrh r0, [r0, #6] - adds r0, r0, r1 - mov sl, r0 - ldr r0, _080611EC @ =0x030000D8 - adds r2, r4, r0 - ldr r1, [r2] - adds r3, #4 - adds r0, r4, r3 - ldr r3, [r0] - mov sb, r3 - movs r3, #1 - add sb, r3 - mov r3, sb - str r3, [r0] - mov r0, r8 - str r3, [r0, #0x48] - mov r0, sl - str r3, [r0, #0x48] - str r1, [r2] - mov r2, r8 - str r1, [r2, #0x4c] - str r1, [r0, #0x4c] - ldr r3, _080611F0 @ =0x030000DE - adds r5, r4, r3 - ldrh r0, [r5] - cmp r0, #0 - bne _0806126C - ldr r0, _080611F4 @ =gRepeatedKeys - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08061200 - movs r0, #0x6c - bl m4aSongNumStart - movs r0, #2 - strb r0, [r5] - ldr r0, _080611F8 @ =0x030000DC - adds r2, r4, r0 - ldrb r1, [r2] - ldr r3, _080611FC @ =0x030000DD - adds r0, r4, r3 - strb r1, [r0] - ldrb r0, [r2] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2] - movs r0, #0x6c - bl m4aSongNumStart - b _0806122E - .align 2, 0 -_080611E0: .4byte gCurTask -_080611E4: .4byte 0x030000CC -_080611E8: .4byte 0x030000D0 -_080611EC: .4byte 0x030000D8 -_080611F0: .4byte 0x030000DE -_080611F4: .4byte gRepeatedKeys -_080611F8: .4byte 0x030000DC -_080611FC: .4byte 0x030000DD -_08061200: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0806122E - movs r0, #0x6c - bl m4aSongNumStart - movs r0, #2 - strb r0, [r5] - ldr r0, _08061260 @ =0x030000DC - adds r2, r4, r0 - ldrb r1, [r2] - ldr r3, _08061264 @ =0x030000DD - adds r0, r4, r3 - strb r1, [r0] - ldrb r0, [r2] - subs r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2] - movs r0, #0x6c - bl m4aSongNumStart -_0806122E: - ldr r0, _08061268 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - adds r4, r6, #0 - adds r4, #0xdf - cmp r0, #0 - beq _0806127A - movs r0, #0x6b - bl m4aSongNumStart - movs r0, #1 - strb r0, [r4] - strh r0, [r6, #4] - ldrh r1, [r6, #6] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r6, #6] - movs r0, #0x6b - bl m4aSongNumStart - b _0806127A - .align 2, 0 -_08061260: .4byte 0x030000DC -_08061264: .4byte 0x030000DD -_08061268: .4byte gPressedKeys -_0806126C: - ldrb r0, [r5] - ldr r3, _0806131C @ =0x030000DF - adds r4, r4, r3 - cmp r0, #0 - beq _0806127A - subs r0, #1 - strb r0, [r5] -_0806127A: - adds r0, r6, #0 - bl sub_805423C - adds r2, r6, #0 - adds r2, #0xde - ldrb r0, [r2] - mov r1, r8 - adds r1, #0x52 - movs r5, #0 - strb r0, [r1] - ldrb r0, [r2] - mov r1, sl - adds r1, #0x52 - strb r0, [r1] - adds r3, r6, #0 - adds r3, #0xdd - ldrb r0, [r3] - mov r1, r8 - adds r1, #0x51 - strb r0, [r1] - subs r2, #2 - ldrb r1, [r2] - mov r0, r8 - adds r0, #0x50 - strb r1, [r0] - ldrb r0, [r3] - mov r1, sl - adds r1, #0x51 - strb r0, [r1] - ldrb r1, [r2] - mov r0, sl - adds r0, #0x50 - strb r1, [r0] - ldrb r0, [r4] - cmp r0, #0 - beq _08061334 - movs r0, #6 - ldrsh r1, [r6, r0] - movs r0, #0xc0 - lsls r0, r0, #5 - cmp r1, r0 - ble _08061334 - movs r1, #4 - ldrsh r0, [r6, r1] - cmp r0, #1 - bne _08061334 - ldr r2, _08061320 @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - movs r0, #0xa - bl m4aSongNumStop - ldr r2, _08061324 @ =gDispCnt - ldrh r1, [r2] - ldr r0, _08061328 @ =0x00001FFF - ands r0, r1 - strh r0, [r2] - ldr r0, _0806132C @ =gBldRegs - strh r5, [r0] - strh r5, [r0, #4] - adds r0, r6, #0 - adds r0, #0xcc - ldr r0, [r0] - bl TaskDestroy - adds r0, r6, #0 - adds r0, #0xd0 - ldr r0, [r0] - bl TaskDestroy - ldr r0, _08061330 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - movs r0, #1 - bl CreateCourseSelect - b _080613A8 - .align 2, 0 -_0806131C: .4byte 0x030000DF -_08061320: .4byte gFlags -_08061324: .4byte gDispCnt -_08061328: .4byte 0x00001FFF -_0806132C: .4byte gBldRegs -_08061330: .4byte gCurTask -_08061334: - movs r0, #0xff - mov r3, sb - ands r3, r0 - ldr r1, _080613B8 @ =gFlags - ldr r0, [r1] - movs r2, #4 - orrs r0, r2 - str r0, [r1] - ldr r1, _080613BC @ =gHBlankCopyTarget - ldr r0, _080613C0 @ =0x04000010 - str r0, [r1] - ldr r0, _080613C4 @ =gHBlankCopySize - strb r2, [r0] - ldr r0, _080613C8 @ =gBgOffsetsHBlankPrimary - lsls r1, r7, #2 - ldr r0, [r0] - adds r2, r0, r1 - cmp r7, #0xa0 - bhs _080613A4 -_0806135A: - movs r1, #0 - ldr r6, [sp] - lsls r5, r6, #0x18 - lsls r4, r3, #0x10 - cmp r7, #0xa0 - bhs _0806138C - adds r3, #0 - ldr r6, _080613CC @ =0x000001FF - adds r0, r6, #0 - ands r3, r0 -_0806136E: - strh r3, [r2] - adds r2, #2 - movs r0, #0 - strh r0, [r2] - adds r2, #2 - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0x17 - bhi _0806138C - cmp r7, #0xa0 - blo _0806136E -_0806138C: - asrs r1, r5, #0x18 - asrs r0, r4, #0x10 - adds r0, r0, r1 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp] - cmp r7, #0xa0 - blo _0806135A -_080613A4: - bl sub_80613D0 -_080613A8: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080613B8: .4byte gFlags -_080613BC: .4byte gHBlankCopyTarget -_080613C0: .4byte 0x04000010 -_080613C4: .4byte gHBlankCopySize -_080613C8: .4byte gBgOffsetsHBlankPrimary -_080613CC: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc b/sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc deleted file mode 100644 index 7df512a112..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/time_attack_record__sub_8061480.inc +++ /dev/null @@ -1,449 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x4c - ldr r0, _080614AC @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r1, r0 - str r0, [sp, #0x38] - ldr r2, _080614B0 @ =0x03000052 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #1 - bhi _080614B8 - ldr r3, _080614B4 @ =0x03000050 - adds r0, r1, r3 - b _080614BC - .align 2, 0 -_080614AC: .4byte gCurTask -_080614B0: .4byte 0x03000052 -_080614B4: .4byte 0x03000050 -_080614B8: - ldr r2, _08061554 @ =0x03000051 - adds r0, r1, r2 -_080614BC: - ldrb r0, [r0] - str r0, [sp, #0x3c] - ldr r0, [sp, #0x38] - adds r0, #0x52 - ldrb r1, [r0] - cmp r1, #1 - beq _080614CC - b _08061706 -_080614CC: - str r1, [sp, #0x48] - bl UiGfxStackInit - ldr r0, [sp, #0x38] - adds r0, #0x50 - ldrb r7, [r0] - ldr r1, [sp, #0x48] - cmp r7, #0 - bne _0806156C - add r6, sp, #0x2c - movs r5, #0x80 - strb r5, [r6] - mov r4, sp - adds r4, #0x2b - strb r1, [r4] - ldr r0, _08061558 @ =gUnknown_086972F4 - str r0, [sp, #0x14] - movs r0, #0xc8 - lsls r0, r0, #5 - str r0, [sp, #0x18] - ldr r0, _0806155C @ =gUnknown_08698BF4 - str r0, [sp, #0x10] - movs r3, #0xa0 - lsls r3, r3, #3 - mov r8, r3 - str r3, [sp, #0x1c] - movs r0, #0x29 - add r0, sp - mov sb, r0 - strb r1, [r0] - movs r1, #0x2a - add r1, sp - mov sl, r1 - movs r0, #0x11 - strb r0, [r1] - str r7, [sp, #4] - mov r0, sp - strb r7, [r0, #8] - strb r7, [r0, #9] - strb r7, [r0, #0xa] - strb r7, [r0, #0xb] - bl sub_80528AC - strb r5, [r6] - strb r7, [r4] - ldr r0, _08061560 @ =gCharacterCards_Sonic_Tiles - str r0, [sp, #0x14] - movs r0, #0x9c - lsls r0, r0, #4 - str r0, [sp, #0x18] - ldr r0, _08061564 @ =gCharacterCards_Sonic_Palette - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #0x24] - ldr r0, _08061568 @ =gCharacterCards_Sonic_Layout - str r0, [sp, #0x10] - mov r2, r8 - str r2, [sp, #0x1c] - add r0, sp, #0x28 - strb r7, [r0] - mov r3, sb - strb r7, [r3] - movs r0, #0x15 - mov r1, sl - strb r0, [r1] - b _08061670 - .align 2, 0 -_08061554: .4byte 0x03000051 -_08061558: .4byte gUnknown_086972F4 -_0806155C: .4byte gUnknown_08698BF4 -_08061560: .4byte gCharacterCards_Sonic_Tiles -_08061564: .4byte gCharacterCards_Sonic_Palette -_08061568: .4byte gCharacterCards_Sonic_Layout -_0806156C: - cmp r7, #1 - bne _080615F8 - add r2, sp, #0x2c - mov r8, r2 - movs r4, #0 - movs r6, #0x80 - strb r6, [r2] - mov r5, sp - adds r5, #0x2b - strb r1, [r5] - ldr r0, _080615E4 @ =gUnknown_0869A9B4 - str r0, [sp, #0x14] - movs r0, #0xe2 - lsls r0, r0, #5 - str r0, [sp, #0x18] - ldr r0, _080615E8 @ =gUnknown_0869C5F4 - str r0, [sp, #0x10] - movs r3, #0xa0 - lsls r3, r3, #3 - mov sb, r3 - str r3, [sp, #0x1c] - movs r0, #0x29 - add r0, sp - mov sl, r0 - strb r1, [r0] - mov r7, sp - adds r7, #0x2a - movs r0, #0x11 - strb r0, [r7] - str r4, [sp, #4] - mov r0, sp - strb r4, [r0, #8] - strb r4, [r0, #9] - strb r4, [r0, #0xa] - strb r4, [r0, #0xb] - bl sub_80528AC - mov r1, r8 - strb r6, [r1] - strb r4, [r5] - ldr r0, _080615EC @ =gCharacterCards_Tails_Tiles - str r0, [sp, #0x14] - movs r0, #0xd0 - lsls r0, r0, #3 - str r0, [sp, #0x18] - ldr r0, _080615F0 @ =gCharacterCards_Tails_Palette - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #0x24] - ldr r0, _080615F4 @ =gCharacterCards_Tails_Layout - str r0, [sp, #0x10] - mov r2, sb - str r2, [sp, #0x1c] - add r0, sp, #0x28 - strb r4, [r0] - mov r3, sl - strb r4, [r3] - b _0806166C - .align 2, 0 -_080615E4: .4byte gUnknown_0869A9B4 -_080615E8: .4byte gUnknown_0869C5F4 -_080615EC: .4byte gCharacterCards_Tails_Tiles -_080615F0: .4byte gCharacterCards_Tails_Palette -_080615F4: .4byte gCharacterCards_Tails_Layout -_080615F8: - cmp r7, #2 - bne _0806168C - add r0, sp, #0x2c - mov r8, r0 - movs r4, #0 - movs r6, #0x80 - strb r6, [r0] - mov r5, sp - adds r5, #0x2b - strb r1, [r5] - ldr r0, _08061678 @ =gUnknown_08690574 - str r0, [sp, #0x14] - movs r0, #0xc0 - lsls r0, r0, #5 - str r0, [sp, #0x18] - ldr r0, _0806167C @ =gUnknown_08691D74 - str r0, [sp, #0x10] - movs r2, #0xa0 - lsls r2, r2, #3 - mov sb, r2 - str r2, [sp, #0x1c] - movs r3, #0x29 - add r3, sp - mov sl, r3 - strb r1, [r3] - mov r7, sp - adds r7, #0x2a - movs r0, #0x11 - strb r0, [r7] - str r4, [sp, #4] - mov r0, sp - strb r4, [r0, #8] - strb r4, [r0, #9] - strb r4, [r0, #0xa] - strb r4, [r0, #0xb] - bl sub_80528AC - mov r0, r8 - strb r6, [r0] - strb r4, [r5] - ldr r0, _08061680 @ =gCharacterCards_Knuckles_Tiles - str r0, [sp, #0x14] - movs r0, #0xf8 - lsls r0, r0, #3 - str r0, [sp, #0x18] - ldr r0, _08061684 @ =gCharacterCards_Knuckles_Palette - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #0x24] - ldr r0, _08061688 @ =gCharacterCards_Knuckles_Layout - str r0, [sp, #0x10] - mov r1, sb - str r1, [sp, #0x1c] - add r0, sp, #0x28 - strb r4, [r0] - mov r2, sl - strb r4, [r2] -_0806166C: - movs r0, #0x15 - strb r0, [r7] -_08061670: - mov r0, sp - bl sub_80528AC - b _08061706 - .align 2, 0 -_08061678: .4byte gUnknown_08690574 -_0806167C: .4byte gUnknown_08691D74 -_08061680: .4byte gCharacterCards_Knuckles_Tiles -_08061684: .4byte gCharacterCards_Knuckles_Palette -_08061688: .4byte gCharacterCards_Knuckles_Layout -_0806168C: - add r3, sp, #0x2c - mov r8, r3 - movs r4, #0 - movs r6, #0x80 - strb r6, [r3] - mov r5, sp - adds r5, #0x2b - strb r1, [r5] - ldr r0, _08061780 @ =gUnknown_08693974 - str r0, [sp, #0x14] - movs r0, #0xc4 - lsls r0, r0, #5 - str r0, [sp, #0x18] - ldr r0, _08061784 @ =gUnknown_086951F4 - str r0, [sp, #0x10] - movs r0, #0xa0 - lsls r0, r0, #3 - mov sb, r0 - str r0, [sp, #0x1c] - movs r2, #0x29 - add r2, sp - mov sl, r2 - strb r1, [r2] - mov r7, sp - adds r7, #0x2a - movs r0, #0x11 - strb r0, [r7] - str r4, [sp, #4] - mov r0, sp - strb r4, [r0, #8] - strb r4, [r0, #9] - strb r4, [r0, #0xa] - strb r4, [r0, #0xb] - bl sub_80528AC - mov r3, r8 - strb r6, [r3] - strb r4, [r5] - ldr r0, _08061788 @ =gCharacterCards_Amy_Tiles - str r0, [sp, #0x14] - movs r0, #0x98 - lsls r0, r0, #3 - str r0, [sp, #0x18] - ldr r0, _0806178C @ =gCharacterCards_Amy_Palette - str r0, [sp, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [sp, #0x24] - ldr r0, _08061790 @ =gCharacterCards_Amy_Layout - str r0, [sp, #0x10] - mov r0, sb - str r0, [sp, #0x1c] - add r0, sp, #0x28 - strb r4, [r0] - mov r1, sl - strb r4, [r1] - movs r0, #0x15 - strb r0, [r7] - mov r0, sp - bl sub_80528AC -_08061706: - movs r7, #0 - add r6, sp, #0x30 - ldr r2, [sp, #0x38] - adds r2, #0x30 - mov sb, r2 - ldr r3, [sp, #0x38] - adds r3, #0x54 - str r3, [sp, #0x40] - ldr r0, _08061794 @ =gLoadedSaveGame - adds r0, #0x20 - str r0, [sp, #0x44] - mov r8, r6 - ldr r1, _08061798 @ =gSecondsTable - mov sl, r1 -_08061722: - movs r0, #1 - ldr r2, [sp, #0x38] - strh r0, [r2, #0x3e] - adds r0, r7, #0 - adds r0, #0x21 - mov r3, r8 - strb r0, [r3] - movs r0, #0x2c - strh r0, [r2, #0x3a] - lsls r4, r7, #4 - adds r4, #0x5c - strh r4, [r2, #0x3c] - mov r0, r8 - mov r1, sb - bl sub_805321C - movs r0, #7 - ldr r1, [sp, #0x38] - strh r0, [r1, #0x3e] - movs r0, #0x54 - strh r0, [r1, #0x3a] - strh r4, [r1, #0x3c] - ldr r2, [sp, #0x40] - ldrb r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r7 - lsls r0, r0, #2 - movs r1, #0xd8 - ldr r3, [sp, #0x3c] - muls r1, r3, r1 - adds r0, r0, r1 - ldr r1, [sp, #0x44] - adds r0, r1, r0 - ldr r5, [r0] - ldr r0, _0806179C @ =0x00008C9F - cmp r5, r0 - bls _080617A0 - movs r1, #0x29 - strb r1, [r6, #6] - strb r1, [r6, #5] - strb r1, [r6, #3] - movs r0, #0x25 - strb r0, [r6, #2] - strb r1, [r6] - b _080617F6 - .align 2, 0 -_08061780: .4byte gUnknown_08693974 -_08061784: .4byte gUnknown_086951F4 -_08061788: .4byte gCharacterCards_Amy_Tiles -_0806178C: .4byte gCharacterCards_Amy_Palette -_08061790: .4byte gCharacterCards_Amy_Layout -_08061794: .4byte gLoadedSaveGame -_08061798: .4byte gSecondsTable -_0806179C: .4byte 0x00008C9F -_080617A0: - adds r0, r5, #0 - movs r1, #0x3c - bl Div - adds r4, r0, #0 - movs r1, #0x3c - bl Div - ldr r2, _08061820 @ =sZoneTimeSecondsTable - lsls r0, r0, #1 - adds r1, r0, r2 - movs r3, #0 - ldrsh r1, [r1, r3] - subs r4, r4, r1 - lsls r4, r4, #1 - adds r2, r4, r2 - movs r1, #0 - ldrsh r2, [r2, r1] - subs r2, r5, r2 - ldr r1, _08061824 @ =sZoneTimeMinutesTable - adds r1, r0, r1 - ldrh r1, [r1] - subs r2, r2, r1 - lsls r2, r2, #1 - ldr r3, _08061828 @ =gMillisUnpackTable - adds r1, r2, #1 - adds r1, r1, r3 - ldrb r1, [r1] - strb r1, [r6, #6] - adds r2, r2, r3 - ldrb r1, [r2] - strb r1, [r6, #5] - adds r1, r4, #1 - add r1, sl - ldrb r1, [r1] - strb r1, [r6, #3] - add r4, sl - ldrb r1, [r4] - strb r1, [r6, #2] - adds r0, #1 - add r0, sl - ldrb r0, [r0] - strb r0, [r6] -_080617F6: - movs r0, #0x2a - mov r2, r8 - strb r0, [r2, #1] - strb r0, [r2, #4] - mov r0, r8 - mov r1, sb - bl sub_805321C - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #2 - bls _08061722 - add sp, #0x4c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08061820: .4byte sZoneTimeSecondsTable -_08061824: .4byte sZoneTimeMinutesTable -_08061828: .4byte gMillisUnpackTable - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc b/sa1/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc deleted file mode 100644 index 9889f0a04e..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/time_attack_records__Task_806BBC0.inc +++ /dev/null @@ -1,171 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - movs r6, #0 - movs r0, #0xa0 - mov ip, r0 - movs r4, #0 - mov sb, r4 - ldr r5, _0806BC30 @ =gCurTask - ldr r0, [r5] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r1, r1, r0 - mov sl, r1 - ldr r1, _0806BC34 @ =0x030000D8 - adds r1, r1, r0 - mov r8, r1 - ldr r2, _0806BC38 @ =0x03000104 - adds r1, r0, r2 - ldr r7, [r1] - adds r7, #1 - ldr r1, _0806BC3C @ =0x03000108 - adds r0, r0, r1 - ldr r2, [r0] - adds r2, #1 - str r2, [r0] - cmp r7, #0xf0 - bls _0806BC50 - ldr r2, _0806BC40 @ =gFlags - ldr r0, [r2] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2] - movs r0, #4 @ MUS_COURSE_SELECTION - bl m4aSongNumStop - ldr r2, _0806BC44 @ =gDispCnt - ldrh r1, [r2] - ldr r0, _0806BC48 @ =0x00001FFF - ands r0, r1 - strh r0, [r2] - ldr r0, _0806BC4C @ =gBldRegs - strh r6, [r0] - strh r6, [r0, #4] - ldr r0, [r5] - bl TaskDestroy - bl ApplyGameStageSettingsAndStart - b _0806BCF6 - .align 2, 0 -_0806BC30: .4byte gCurTask -_0806BC34: .4byte 0x030000D8 -_0806BC38: .4byte 0x03000104 -_0806BC3C: .4byte 0x03000108 -_0806BC40: .4byte gFlags -_0806BC44: .4byte gDispCnt -_0806BC48: .4byte 0x00001FFF -_0806BC4C: .4byte gBldRegs -_0806BC50: - cmp r7, #0xd0 - bne _0806BC5E - movs r0, #1 - mov r5, r8 - strh r0, [r5, #4] - strh r6, [r5, #6] - b _0806BC74 -_0806BC5E: - ldr r0, _0806BD08 @ =gPressedKeys - ldrh r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0806BC74 - cmp r7, #0x20 - bls _0806BC74 - cmp r7, #0xcf - bhi _0806BC74 - movs r7, #0xcf -_0806BC74: - movs r0, #0xff - adds r3, r0, #0 - ands r3, r2 - ldr r1, _0806BD0C @ =gFlags - ldr r0, [r1] - movs r2, #4 - orrs r0, r2 - str r0, [r1] - ldr r1, _0806BD10 @ =gHBlankCopyTarget - ldr r0, _0806BD14 @ =0x04000010 - str r0, [r1] - ldr r0, _0806BD18 @ =gHBlankCopySize - strb r2, [r0] - ldr r0, _0806BD1C @ =gBgOffsetsHBlankPrimary - lsls r1, r6, #2 - ldr r0, [r0] - adds r2, r0, r1 - cmp r6, ip - bhs _0806BCE0 -_0806BC9A: - movs r1, #0 - lsls r4, r4, #0x18 - str r4, [sp] - lsls r4, r3, #0x10 - cmp r6, ip - bhs _0806BCC8 - adds r3, #0 - ldr r5, _0806BD20 @ =0x000001FF - adds r0, r5, #0 - ands r3, r0 -_0806BCAE: - strh r3, [r2] - adds r2, #2 - mov r0, sb - strh r0, [r2] - adds r2, #2 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - adds r1, #1 - cmp r1, #0x17 - bhi _0806BCC8 - cmp r6, ip - blo _0806BCAE -_0806BCC8: - ldr r5, [sp] - asrs r1, r5, #0x18 - asrs r0, r4, #0x10 - adds r0, r0, r1 - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r6, ip - blo _0806BC9A -_0806BCE0: - movs r0, #0x82 - lsls r0, r0, #1 - add r0, sl - str r7, [r0] - mov r0, r8 - bl sub_805423C - bl sub_806BF04 - bl sub_806BD24 -_0806BCF6: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806BD08: .4byte gPressedKeys -_0806BD0C: .4byte gFlags -_0806BD10: .4byte gHBlankCopyTarget -_0806BD14: .4byte 0x04000010 -_0806BD18: .4byte gHBlankCopySize -_0806BD1C: .4byte gBgOffsetsHBlankPrimary -_0806BD20: .4byte 0x000001FF - -.syntax divided diff --git a/sa1/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc b/sa1/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc deleted file mode 100644 index 222d8bd59f..0000000000 --- a/sa1/asm/non_matching/game/sa1/ui/vs_record__Task_8060874.inc +++ /dev/null @@ -1,523 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x34 - ldr r7, _08060938 @ =gLoadedSaveGame - ldr r0, _0806093C @ =gCurTask - ldr r0, [r0] - ldrh r2, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r0, r2, r0 - str r0, [sp, #8] - ldr r1, _08060940 @ =0x030000EC - adds r0, r2, r1 - ldr r0, [r0] - str r0, [sp, #0xc] - ldr r3, _08060944 @ =gBgScrollRegs - lsrs r0, r0, #8 - subs r0, #0x30 - ldr r4, _08060948 @ =0x000001FF - adds r1, r4, #0 - ands r0, r1 - strh r0, [r3, #6] - ldr r0, _0806094C @ =0x030000AE - adds r1, r2, r0 - movs r0, #1 - strh r0, [r1] - movs r5, #0 - ldr r1, _08060950 @ =0x030000AC - adds r4, r2, r1 - movs r0, #0x10 - adds r0, r0, r7 - mov r8, r0 - subs r1, #2 - adds r1, r2, r1 - str r1, [sp, #0x18] - ldr r0, _08060950 @ =0x030000AC - adds r0, r2, r0 - str r0, [sp, #0x1c] - ldr r1, _08060954 @ =0x030000A0 - adds r1, r2, r1 - str r1, [sp, #0x14] -_080608CC: - lsls r0, r5, #3 - adds r0, #0x1b - ldr r1, [sp, #8] - adds r1, #0xaa - strh r0, [r1] - movs r6, #0x20 - strh r6, [r4] - mov r2, r8 - adds r1, r5, r2 - ldrb r0, [r1] - subs r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x19 - bhi _080608EE - movs r0, #0x28 - strh r0, [r4] -_080608EE: - adds r0, r1, #0 - ldr r1, [sp, #8] - adds r1, #0xa0 - bl sub_805321C - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bls _080608CC - ldr r4, [sp, #0x1c] - strh r6, [r4] - ldr r0, _08060958 @ =0x00000425 - adds r5, r7, r0 - ldrb r0, [r5] - cmp r0, #9 - bls _08060976 - movs r1, #0xa - bl Div - mov r1, sp - adds r0, #0x30 - strb r0, [r1] - ldrb r0, [r5] - movs r1, #0xa - bl Mod - mov r1, sp - adds r0, #0x30 - strb r0, [r1, #1] - ldrb r0, [r7, #0x19] - cmp r0, #0 - beq _0806095C - movs r0, #0x5b - ldr r1, [sp, #0x18] - strh r0, [r1] - b _08060962 - .align 2, 0 -_08060938: .4byte gLoadedSaveGame -_0806093C: .4byte gCurTask -_08060940: .4byte 0x030000EC -_08060944: .4byte gBgScrollRegs -_08060948: .4byte 0x000001FF -_0806094C: .4byte 0x030000AE -_08060950: .4byte 0x030000AC -_08060954: .4byte 0x030000A0 -_08060958: .4byte 0x00000425 -_0806095C: - movs r0, #0x59 - ldr r2, [sp, #0x18] - strh r0, [r2] -_08060962: - ldr r4, [sp, #8] - adds r4, #0xae - movs r0, #2 - strh r0, [r4] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C - str r4, [sp, #0x20] - b _080609DA -_08060976: - ldr r2, [sp, #8] - adds r2, #0xae - movs r0, #1 - strh r0, [r2] - mov r1, sp - ldrb r0, [r5] - adds r0, #0x30 - strb r0, [r1] - ldrb r0, [r7, #0x19] - str r2, [sp, #0x20] - cmp r0, #0 - beq _08060996 - movs r0, #0x63 - ldr r4, [sp, #0x18] - strh r0, [r4] - b _0806099C -_08060996: - movs r0, #0x61 - ldr r1, [sp, #0x18] - strh r0, [r1] -_0806099C: - ldr r2, _080609C8 @ =0x00000425 - adds r0, r7, r2 - ldrb r0, [r0] - cmp r0, #1 - bhi _080609CC - mov r1, sp - movs r0, #0x8a - strb r0, [r1, #1] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C - movs r0, #0x7e - ldr r4, [sp, #0x18] - strh r0, [r4] - mov r0, sp - adds r0, #1 - ldr r1, [sp, #0x14] - bl sub_805321C - b _080609DA - .align 2, 0 -_080609C8: .4byte 0x00000425 -_080609CC: - mov r1, sp - adds r0, #0x30 - strb r0, [r1] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C -_080609DA: - ldr r0, _08060A14 @ =0x00000426 - adds r5, r7, r0 - ldrb r0, [r5] - cmp r0, #9 - bls _08060A22 - movs r0, #2 - ldr r1, [sp, #0x20] - strh r0, [r1] - ldrb r0, [r5] - movs r1, #0xa - bl Div - mov r1, sp - adds r0, #0x30 - strb r0, [r1] - ldrb r0, [r5] - movs r1, #0xa - bl Mod - mov r1, sp - adds r0, #0x30 - strb r0, [r1, #1] - ldrb r0, [r7, #0x19] - cmp r0, #0 - beq _08060A18 - movs r0, #0x88 - ldr r2, [sp, #0x18] - strh r0, [r2] - b _08060A1E - .align 2, 0 -_08060A14: .4byte 0x00000426 -_08060A18: - movs r0, #0x89 - ldr r4, [sp, #0x18] - strh r0, [r4] -_08060A1E: - mov r0, sp - b _08060A84 -_08060A22: - movs r0, #1 - ldr r1, [sp, #0x20] - strh r0, [r1] - ldrb r0, [r7, #0x19] - cmp r0, #0 - beq _08060A36 - movs r0, #0x90 - ldr r2, [sp, #0x18] - strh r0, [r2] - b _08060A3C -_08060A36: - movs r0, #0x91 - ldr r4, [sp, #0x18] - strh r0, [r4] -_08060A3C: - mov r2, sp - ldr r0, _08060A8C @ =0x00000426 - adds r1, r7, r0 - ldrb r0, [r1] - adds r0, #0x30 - strb r0, [r2] - ldrb r0, [r1] - cmp r0, #1 - bhi _08060A94 - ldrb r0, [r7, #0x19] - cmp r0, #0 - beq _08060A94 - ldr r0, [sp, #8] - adds r0, #0xb8 - movs r1, #0x98 - strh r1, [r0, #0x16] - movs r1, #0x20 - strh r1, [r0, #0x18] - ldr r1, [r0, #0x10] - ldr r2, _08060A90 @ =0xFFFFF7FF - ands r1, r2 - str r1, [r0, #0x10] - bl DisplaySprite - mov r1, sp - movs r0, #0x8a - strb r0, [r1, #1] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C - movs r0, #0xb1 - ldr r1, [sp, #0x18] - strh r0, [r1] - mov r0, sp - adds r0, #1 -_08060A84: - ldr r1, [sp, #0x14] - bl sub_805321C - b _08060A9C - .align 2, 0 -_08060A8C: .4byte 0x00000426 -_08060A90: .4byte 0xFFFFF7FF -_08060A94: - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C -_08060A9C: - ldr r2, _08060AD4 @ =0x00000427 - adds r5, r7, r2 - ldrb r0, [r5] - cmp r0, #9 - bls _08060AD8 - movs r0, #2 - ldr r4, [sp, #0x20] - strh r0, [r4] - ldrb r0, [r5] - movs r1, #0xa - bl Div - mov r1, sp - adds r0, #0x30 - strb r0, [r1] - ldrb r0, [r5] - movs r1, #0xa - bl Mod - mov r1, sp - adds r0, #0x30 - strb r0, [r1, #1] - movs r0, #0xb9 - ldr r1, [sp, #0x18] - strh r0, [r1] - mov r0, sp - b _08060B06 - .align 2, 0 -_08060AD4: .4byte 0x00000427 -_08060AD8: - movs r0, #1 - ldr r2, [sp, #0x20] - strh r0, [r2] - movs r0, #0xc1 - ldr r4, [sp, #0x18] - strh r0, [r4] - mov r1, sp - ldrb r0, [r5] - adds r0, #0x30 - strb r0, [r1] - ldrb r0, [r5] - cmp r0, #1 - bhi _08060B0E - movs r0, #0x8a - strb r0, [r1, #1] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C - movs r0, #0xe2 - strh r0, [r4] - mov r0, sp - adds r0, #1 -_08060B06: - ldr r1, [sp, #0x14] - bl sub_805321C - b _08060B16 -_08060B0E: - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805321C -_08060B16: - movs r5, #0 - ldr r0, [sp, #0xc] - lsrs r0, r0, #0xc - str r0, [sp, #0x10] - mov r7, sp -_08060B20: - ldr r1, [sp, #0x10] - adds r0, r5, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r5, #1 - str r2, [sp, #0x28] - cmp r1, #9 - bls _08060B32 - b _08060C68 -_08060B32: - movs r0, #1 - ldr r4, [sp, #0x20] - strh r0, [r4] - movs r4, #0 - ldr r0, [sp, #0xc] - lsrs r6, r0, #8 - lsls r5, r5, #4 - mov sl, r5 - lsls r1, r1, #4 - mov sb, r1 - ldr r1, [sp, #8] - adds r1, #4 - str r1, [sp, #0x24] - movs r1, #0xf - adds r0, r6, #0 - ands r0, r1 - subs r0, #0x38 - subs r5, r5, r0 - movs r2, #8 - adds r2, r2, r5 - mov r8, r2 - mov r3, sb - ldr r2, [sp, #8] - add r2, sb -_08060B62: - lsls r0, r4, #3 - adds r0, #0x3c - ldr r1, [sp, #0x18] - strh r0, [r1] - ldr r0, [sp, #0x1c] - strh r5, [r0] - adds r0, r4, r3 - ldr r1, [sp, #0x24] - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, #0x70 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x19 - bhi _08060B86 - mov r1, r8 - ldr r0, [sp, #0x1c] - strh r1, [r0] -_08060B86: - adds r0, r4, #4 - adds r0, r2, r0 - ldr r1, [sp, #0x14] - str r2, [sp, #0x2c] - str r3, [sp, #0x30] - bl sub_805345C - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x30] - cmp r4, #5 - bls _08060B62 - movs r0, #0xf - ands r6, r0 - adds r0, r6, #0 - subs r0, #0x38 - mov r2, sl - subs r0, r2, r0 - ldr r4, [sp, #0x1c] - strh r0, [r4] - ldr r4, [sp, #8] - add r4, sb - ldrb r0, [r4, #0xc] - cmp r0, #0xff - bne _08060BC4 - movs r0, #0x20 - strb r0, [r7] - movs r0, #0x30 - b _08060BE6 -_08060BC4: - cmp r0, #9 - bls _08060BDE - ldrb r0, [r4, #0xc] - movs r1, #0xa - bl Div - adds r0, #0x30 - strb r0, [r7] - ldrb r0, [r4, #0xc] - movs r1, #0xa - bl Mod - b _08060BE4 -_08060BDE: - movs r1, #0x20 - strb r1, [r7] - ldrb r0, [r4, #0xc] -_08060BE4: - adds r0, #0x30 -_08060BE6: - strb r0, [r7, #1] - movs r0, #0x80 - ldr r2, [sp, #0x18] - strh r0, [r2] - movs r0, #2 - ldr r4, [sp, #0x20] - strh r0, [r4] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805345C - ldr r4, [sp, #8] - add r4, sb - ldrb r0, [r4, #0xd] - cmp r0, #9 - bls _08060C1A - movs r1, #0xa - bl Div - adds r0, #0x30 - strb r0, [r7] - ldrb r0, [r4, #0xd] - movs r1, #0xa - bl Mod - b _08060C20 -_08060C1A: - movs r0, #0x20 - strb r0, [r7] - ldrb r0, [r4, #0xd] -_08060C20: - adds r0, #0x30 - strb r0, [r7, #1] - movs r0, #0xa0 - ldr r1, [sp, #0x18] - strh r0, [r1] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805345C - ldr r4, [sp, #8] - add r4, sb - ldrb r0, [r4, #0xe] - cmp r0, #9 - bls _08060C50 - movs r1, #0xa - bl Div - adds r0, #0x30 - strb r0, [r7] - ldrb r0, [r4, #0xe] - movs r1, #0xa - bl Mod - b _08060C56 -_08060C50: - movs r2, #0x20 - strb r2, [r7] - ldrb r0, [r4, #0xe] -_08060C56: - adds r0, #0x30 - strb r0, [r7, #1] - movs r0, #0xc0 - ldr r4, [sp, #0x18] - strh r0, [r4] - mov r0, sp - ldr r1, [sp, #0x14] - bl sub_805345C -_08060C68: - ldr r1, [sp, #0x28] - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #8 - bhi _08060C74 - b _08060B20 -_08060C74: - add sp, #0x34 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/save__WriteSaveGame.inc b/sa1/asm/non_matching/game/save__WriteSaveGame.inc deleted file mode 100644 index 5157c59628..0000000000 --- a/sa1/asm/non_matching/game/save__WriteSaveGame.inc +++ /dev/null @@ -1,133 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, lr} - ldr r0, _08012DE0 @ =gFlags - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08012E0E_return_0 - ldr r6, _08012DE4 @ =gUsedSaveSectorID - movs r1, #0 - ldrsb r1, [r6, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08012E1C - movs r4, #0x86 - lsls r4, r4, #3 - adds r0, r4, #0 - bl EwramMalloc - adds r5, r0, #0 @ r5 = sectorBuffer - movs r0, #0 - ldrsb r0, [r6, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0 - adds r2, r5, #0 - adds r3, r4, #0 - bl ReadFlash - movs r4, #1 - movs r2, #0 - ldr r0, _08012DE8 @ =gLoadedSaveGame - ldrb r1, [r5] - b _08012DFC - .align 2, 0 -_08012DE0: .4byte gFlags -_08012DE4: .4byte gUsedSaveSectorID -_08012DE8: .4byte gLoadedSaveGame -_08012DEC_loop: - adds r2, #1 - ldr r0, _08012E14 @ =0x0000042F - cmp r2, r0 - bhi _08012E04 - adds r1, r5, r2 - ldr r0, _08012E18 @ =gLoadedSaveGame - adds r0, r2, r0 - ldrb r1, [r1] -_08012DFC: - ldrb r0, [r0] - cmp r1, r0 - beq _08012DEC_loop - movs r4, #0 -_08012E04: - adds r0, r5, #0 - bl EwramFree - cmp r4, #0 - beq _08012E1C -_08012E0E_return_0: - movs r0, #0 - b _08012E8A_return - .align 2, 0 -_08012E14: .4byte 0x0000042F -_08012E18: .4byte gLoadedSaveGame -_08012E1C: - ldr r0, _08012E34 @ =gUsedSaveSectorID - ldrb r0, [r0] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #9 - bne _08012E3C - ldr r0, _08012E38 @ =EraseFlashSector - ldr r1, [r0] - movs r0, #0 - b _08012E52 - .align 2, 0 -_08012E34: .4byte gUsedSaveSectorID -_08012E38: .4byte EraseFlashSector -_08012E3C: - cmp r0, #9 - ble _08012E42 - movs r5, #0 -_08012E42: - ldr r1, _08012E90 @ =EraseFlashSector - lsls r0, r5, #0x18 - asrs r0, r0, #8 - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - lsrs r0, r0, #0x10 - ldr r1, [r1] -_08012E52: - bl _call_via_r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _08012E8A_return - ldr r4, _08012E94 @ =gLoadedSaveGame - ldr r0, _08012E98 @ =0x4F524950 - str r0, [r4] - adds r0, r4, #0 - bl CalculateChecksum - ldr r2, _08012E9C @ =0x0000042C - adds r1, r4, r2 - str r0, [r1] - ldr r0, _08012EA0 @ =gUsedSaveSectorID - strb r5, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, #4 - adds r1, r4, #0 - bl ProgramFlashSectorAndVerifyNBytes - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_08012E8A_return: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08012E90: .4byte EraseFlashSector -_08012E94: .4byte gLoadedSaveGame -_08012E98: .4byte 0x4F524950 -_08012E9C: .4byte 0x0000042C -_08012EA0: .4byte gUsedSaveSectorID - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc b/sa1/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc deleted file mode 100644 index d48269351e..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/collision__Coll_Player_Itembox.inc +++ /dev/null @@ -1,538 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x40 - str r0, [sp, #0xc] - adds r7, r3, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x10] - ldrb r3, [r7, #0xe] - adds r3, #5 - rsbs r0, r3, #0 - add r5, sp, #4 - strb r0, [r5] - ldrb r2, [r7, #0xf] - movs r0, #1 - subs r0, r0, r2 - mov r1, sp - adds r1, #5 - strb r0, [r1] - mov r0, sp - adds r0, #6 - strb r3, [r0] - subs r2, #1 - adds r0, #1 - strb r2, [r0] - mov r0, sp - adds r1, r5, #0 - movs r2, #4 - bl memcpy - ldrb r4, [r7, #0xe] - rsbs r0, r4, #0 - add r1, sp, #8 - strb r0, [r1] - ldrb r3, [r7, #0xf] - rsbs r2, r3, #0 - mov r0, sp - adds r0, #9 - strb r2, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r3, [r0] - adds r0, r5, #0 - movs r2, #4 - bl memcpy - movs r0, #0 - str r0, [sp, #0x14] - ldr r1, [sp, #0xc] - ldr r0, [r1, #0x28] - movs r2, #1 - rsbs r2, r2, #0 - cmp r0, r2 - bne _0800AC68 - b _0800AE68 -_0800AC68: - ldr r1, [r7, #0x10] - movs r0, #0x80 - ands r0, r1 - adds r6, r1, #0 - cmp r0, #0 - beq _0800AC76 - b _0800AE68 -_0800AC76: - ldr r1, [r7, #0x64] - ldr r0, [r1, #0x3c] - adds r5, r1, #0 - cmp r0, r2 - beq _0800AD36 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - ldr r1, [sp, #0xc] - adds r1, #0x2c - movs r3, #0 - ldrsb r3, [r1, r3] - adds r2, r0, r3 - ldr r0, [r7] - asrs r0, r0, #8 - adds r1, r5, #0 - adds r1, #0x40 - movs r4, #0 - ldrsb r4, [r1, r4] - adds r1, r0, r4 - cmp r2, r1 - bgt _0800ACB8 - ldr r0, [sp, #0xc] - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0800ACCA - cmp r2, r1 - blt _0800AD36 -_0800ACB8: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r1, r0 - cmp r0, r2 - blt _0800AD36 -_0800ACCA: - ldr r3, [sp, #0x10] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - ldr r1, [sp, #0xc] - adds r1, #0x2d - movs r4, #0 - ldrsb r4, [r1, r4] - adds r3, r0, r4 - ldr r0, [r7, #4] - asrs r0, r0, #8 - adds r1, r5, #0 - adds r1, #0x41 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r2, r0, r1 - cmp r3, r2 - bgt _0800AD04 - ldr r0, [sp, #0xc] - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r3, r0 - cmp r0, r2 - bge _0800AD16 - cmp r3, r2 - blt _0800AD36 -_0800AD04: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r1 - adds r0, r2, r0 - cmp r0, r3 - blt _0800AD36 -_0800AD16: - movs r0, #0x20 - ldr r5, [sp, #0x14] - orrs r5, r0 - str r5, [sp, #0x14] - movs r0, #2 - ands r0, r6 - cmp r0, #0 - bne _0800AD28 - b _0800AFCA -_0800AD28: - ldrh r1, [r7, #0xa] - movs r2, #0xa - ldrsh r0, [r7, r2] - cmp r0, #0 - ble _0800AD36 - rsbs r0, r1, #0 - strh r0, [r7, #0xa] -_0800AD36: - movs r0, #2 - ands r0, r6 - cmp r0, #0 - bne _0800AD40 - b _0800AFCA -_0800AD40: - mov r3, r8 - lsls r3, r3, #0x10 - str r3, [sp, #0x1c] - asrs r4, r3, #0x10 - ldr r5, [sp, #0xc] - adds r5, #0x2c - mov r8, r5 - movs r6, #0 - ldrsb r6, [r5, r6] - mov ip, r6 - ldr r0, [sp, #0xc] - adds r0, #0x2e - mov sb, r0 - movs r1, #0 - ldrsb r1, [r0, r1] - str r1, [sp, #0x20] - adds r0, r1, #0 - add r0, ip - asrs r0, r0, #1 - adds r0, r4, r0 - str r0, [sp, #0x18] - ldr r2, [sp, #0x10] - lsls r2, r2, #0x10 - str r2, [sp, #0x3c] - asrs r2, r2, #0x10 - ldr r5, [sp, #0xc] - adds r5, #0x2d - movs r0, #0 - ldrsb r0, [r5, r0] - ldr r3, [sp, #0xc] - adds r3, #0x2f - movs r1, #0 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - str r2, [sp, #0x24] - add r4, ip - ldr r1, [r7] - asrs r0, r1, #8 - mov r6, sp - ldrb r6, [r6, #4] - lsls r6, r6, #0x18 - asrs r6, r6, #0x18 - mov sl, r6 - adds r2, r0, r6 - ldr r0, [sp, #0x1c] - str r0, [sp, #0x28] - mov r6, r8 - str r6, [sp, #0x2c] - str r1, [sp, #0x38] - mov r0, sb - str r0, [sp, #0x34] - ldr r1, [sp, #0x3c] - mov r8, r1 - str r5, [sp, #0x30] - mov sb, r3 - cmp r4, r2 - bgt _0800ADC8 - ldr r3, [sp, #0x20] - mov r5, ip - subs r0, r3, r5 - adds r0, r4, r0 - cmp r0, r2 - bge _0800ADDA - cmp r4, r2 - bge _0800ADC8 - b _0800AEF8 -_0800ADC8: - mov r6, sp - movs r0, #6 - ldrsb r0, [r6, r0] - mov r1, sl - subs r0, r0, r1 - adds r0, r2, r0 - cmp r0, r4 - bge _0800ADDA - b _0800AEF8 -_0800ADDA: - mov r2, r8 - asrs r0, r2, #0x10 - ldr r3, [sp, #0x30] - movs r5, #0 - ldrsb r5, [r3, r5] - adds r4, r0, r5 - ldr r1, [r7, #4] - asrs r0, r1, #8 - mov r2, sp - movs r6, #5 - ldrsb r6, [r2, r6] - adds r2, r0, r6 - adds r3, r1, #0 - cmp r4, r2 - bgt _0800AE0C - mov r1, sb - movs r0, #0 - ldrsb r0, [r1, r0] - subs r0, r0, r5 - adds r0, r4, r0 - cmp r0, r2 - bge _0800AE1A - cmp r4, r2 - bge _0800AE0C - b _0800AEF8 -_0800AE0C: - mov r5, sp - movs r0, #7 - ldrsb r0, [r5, r0] - subs r0, r0, r6 - adds r0, r2, r0 - cmp r0, r4 - blt _0800AEF8 -_0800AE1A: - ldr r2, _0800AE30 @ =gStageFlags - ldrh r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0800AE34 - asrs r0, r3, #8 - ldr r6, [sp, #0x24] - cmp r0, r6 - ble _0800AE3C - b _0800AE8C - .align 2, 0 -_0800AE30: .4byte gStageFlags -_0800AE34: - asrs r0, r3, #8 - ldr r1, [sp, #0x24] - cmp r0, r1 - blt _0800AE8C -_0800AE3C: - adds r0, r7, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _0800AE6C - adds r0, r7, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0800AE6C - ldr r2, [sp, #0x28] - asrs r1, r2, #0x10 - mov r3, r8 - asrs r2, r3, #0x10 - ldr r0, [sp, #0xc] - adds r3, r7, #0 - bl Coll_Player_Platform -_0800AE68: - movs r0, #0 - b _0800AFCC -_0800AE6C: - ldrh r2, [r7, #0xa] - movs r5, #0xa - ldrsh r1, [r7, r5] - cmp r1, #0 - bge _0800AE78 - b _0800AFCA -_0800AE78: - movs r0, #8 - ldr r6, [sp, #0x14] - orrs r6, r0 - str r6, [sp, #0x14] - cmp r1, #0 - bgt _0800AE86 - b _0800AFCA -_0800AE86: - rsbs r0, r2, #0 - strh r0, [r7, #0xa] - b _0800AFCA -_0800AE8C: - movs r1, #0xa - ldrsh r0, [r7, r1] - cmp r0, #0 - blt _0800AE96 - b _0800AFCA -_0800AE96: - movs r0, #0 - strh r0, [r7, #0xa] - ldrh r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0800AEC8 - mov r2, r8 - asrs r0, r2, #0x10 - mov r5, sb - movs r1, #0 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - mov r6, sp - movs r1, #5 - ldrsb r1, [r6, r1] - subs r0, r0, r1 - lsls r0, r0, #8 - ldr r1, _0800AEC4 @ =0xFFFFFF00 - bics r3, r1 - adds r0, r3, r0 - str r0, [r7, #4] - b _0800AEE8 - .align 2, 0 -_0800AEC4: .4byte 0xFFFFFF00 -_0800AEC8: - mov r0, r8 - asrs r1, r0, #0x10 - mov r2, sb - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov r5, sp - movs r0, #5 - ldrsb r0, [r5, r0] - subs r1, r1, r0 - lsls r1, r1, #8 - ldr r0, _0800AEF4 @ =0xFFFFFF00 - ands r0, r3 - subs r1, r1, r0 - subs r1, r3, r1 - str r1, [r7, #4] -_0800AEE8: - movs r0, #0x80 - lsls r0, r0, #9 - ldr r6, [sp, #0x14] - orrs r6, r0 - str r6, [sp, #0x14] - b _0800AFCA - .align 2, 0 -_0800AEF4: .4byte 0xFFFFFF00 -_0800AEF8: - ldr r1, [sp, #0x28] - asrs r0, r1, #0x10 - ldr r2, [sp, #0x2c] - movs r4, #0 - ldrsb r4, [r2, r4] - adds r2, r0, r4 - ldr r3, [sp, #0x38] - asrs r1, r3, #8 - mov r0, sp - movs r3, #0 - ldrsb r3, [r0, r3] - adds r1, r1, r3 - cmp r2, r1 - bgt _0800AF26 - ldr r5, [sp, #0x34] - movs r0, #0 - ldrsb r0, [r5, r0] - subs r0, r0, r4 - adds r0, r2, r0 - cmp r0, r1 - bge _0800AF36 - cmp r2, r1 - blt _0800AFCA -_0800AF26: - mov r0, sp - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r1, r0 - cmp r0, r2 - blt _0800AFCA -_0800AF36: - mov r6, r8 - asrs r0, r6, #0x10 - ldr r1, [sp, #0x30] - movs r3, #0 - ldrsb r3, [r1, r3] - adds r2, r0, r3 - ldr r0, [r7, #4] - asrs r0, r0, #8 - mov r1, sp - movs r4, #1 - ldrsb r4, [r1, r4] - adds r1, r0, r4 - cmp r2, r1 - bgt _0800AF64 - mov r5, sb - movs r0, #0 - ldrsb r0, [r5, r0] - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0800AF74 - cmp r2, r1 - blt _0800AFCA -_0800AF64: - mov r0, sp - ldrb r0, [r0, #3] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r4 - adds r0, r1, r0 - cmp r0, r2 - blt _0800AFCA -_0800AF74: - ldr r6, [sp, #0x38] - asrs r0, r6, #8 - ldr r1, [sp, #0x18] - cmp r0, r1 - bgt _0800AFA2 - movs r2, #8 - ldrsh r0, [r7, r2] - cmp r0, #0 - ble _0800AFCA - movs r0, #0 - strh r0, [r7, #8] - ldr r3, [sp, #0x28] - asrs r0, r3, #0x10 - ldr r5, [sp, #0x2c] - movs r1, #0 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - mov r1, sp - ldrb r1, [r1, #2] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - b _0800AFC6 -_0800AFA2: - movs r6, #8 - ldrsh r0, [r7, r6] - cmp r0, #0 - bge _0800AFCA - movs r0, #0 - strh r0, [r7, #8] - ldr r1, [sp, #0x28] - asrs r0, r1, #0x10 - ldr r2, [sp, #0x34] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - mov r1, sp - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - adds r0, #1 -_0800AFC6: - lsls r0, r0, #8 - str r0, [r7] -_0800AFCA: - ldr r0, [sp, #0x14] -_0800AFCC: - add sp, #0x40 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc b/sa1/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc deleted file mode 100644 index f33694157d..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc +++ /dev/null @@ -1,1561 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x48 - str r0, [sp, #0x18] - ldr r0, [sp, #0x68] - ldr r4, [sp, #0x6c] - ldr r5, [sp, #0x70] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #0x1c] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - str r2, [sp, #0x20] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sl, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x24] - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - str r4, [sp, #0x28] - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - str r5, [sp, #0x2c] - ldr r7, _08009920 @ =gPlayer - ldrb r3, [r7, #0xe] - adds r3, #5 - rsbs r0, r3, #0 - add r1, sp, #8 - mov sb, r1 - strb r0, [r1] - ldrb r1, [r7, #0xf] - movs r6, #1 - subs r2, r6, r1 - mov r0, sp - adds r0, #9 - strb r2, [r0] - adds r0, #1 - strb r3, [r0] - subs r1, #1 - adds r0, #1 - strb r1, [r0] - add r0, sp, #4 - mov r1, sb - movs r2, #4 - bl memcpy - ldrb r3, [r7, #0xe] - rsbs r0, r3, #0 - add r2, sp, #0xc - mov r8, r2 - strb r0, [r2] - ldrb r2, [r7, #0xf] - rsbs r1, r2, #0 - mov r0, sp - adds r0, #0xd - strb r1, [r0] - adds r0, #1 - strb r3, [r0] - adds r0, #1 - strb r2, [r0] - mov r0, sb - mov r1, r8 - movs r2, #4 - bl memcpy - movs r3, #0 - str r3, [sp, #0x30] - movs r5, #0 - str r5, [sp, #0x34] - ldr r0, _08009924 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0x40] - ldr r0, _08009928 @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - ldrb r1, [r7, #0xe] - adds r1, #5 - rsbs r0, r1, #0 - add r5, sp, #0x10 - strb r0, [r5] - ldr r0, _0800992C @ =0x03000058 - adds r4, r4, r0 - ldrb r0, [r4] - subs r6, r6, r0 - mov r0, sp - adds r0, #0x11 - strb r6, [r0] - adds r0, #1 - strb r1, [r0] - ldrb r0, [r4] - subs r0, #1 - mov r1, sp - adds r1, #0x13 - strb r0, [r1] - mov r0, r8 - adds r1, r5, #0 - movs r2, #4 - bl memcpy - ldrb r3, [r7, #0xe] - rsbs r0, r3, #0 - add r1, sp, #0x14 - strb r0, [r1] - ldrb r0, [r4] - rsbs r0, r0, #0 - mov r2, sp - adds r2, #0x15 - strb r0, [r2] - mov r0, sp - adds r0, #0x16 - strb r3, [r0] - ldrb r2, [r4] - adds r0, #1 - strb r2, [r0] - adds r0, r5, #0 - movs r2, #4 - bl memcpy - ldr r2, [sp, #0x18] - ldr r1, [r2, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - mov ip, sb - cmp r1, r0 - beq _08009918 - ldr r0, [r7, #0x10] - movs r3, #0x80 - ands r0, r3 - cmp r0, #0 - bne _08009918 - ldr r6, [sp, #0x1c] - lsls r0, r6, #0x10 - asrs r2, r0, #0x10 - ldr r1, [r7] - asrs r1, r1, #8 - str r0, [sp, #0x44] - cmp r2, r1 - bne _08009930 - ldr r0, [sp, #0x20] - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - ldr r0, [r7, #4] - asrs r0, r0, #8 - cmp r1, r0 - bne _08009930 -_08009918: - movs r0, #0 - bl _0800A392 - .align 2, 0 -_08009920: .4byte gPlayer -_08009924: .4byte gStageFlags -_08009928: .4byte gCurTask -_0800992C: .4byte 0x03000058 -_08009930: - ldr r0, _08009A18 @ =gPlayer - ldr r1, [r0] - str r1, [sp, #0x38] - ldr r2, [r0, #4] - str r2, [sp, #0x3c] - adds r1, r0, #0 - adds r1, #0x27 - adds r4, r0, #0 - ldr r3, [sp, #0x28] - ldrb r1, [r1] - cmp r3, r1 - beq _0800994C - bl _0800A390 -_0800994C: - ldr r1, [r4, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0800996A - ldr r0, [r4, #0x28] - ldr r6, [sp, #0x18] - cmp r0, r6 - bne _0800996A - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x10] - movs r0, #1 - str r0, [sp, #0x34] -_0800996A: - ldr r1, [sp, #0x20] - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - mov sb, r0 - ldr r2, [sp, #0x3c] - asrs r2, r2, #8 - mov r8, r2 - cmp r1, r8 - bne _0800997E - b _08009E70 -_0800997E: - ldr r3, [sp, #0x44] - asrs r0, r3, #0x10 - movs r3, #0 - ldrsb r3, [r5, r3] - adds r2, r0, r3 - ldr r6, [sp, #0x38] - asrs r0, r6, #8 - mov r1, ip - movs r6, #0 - ldrsb r6, [r1, r6] - adds r1, r0, r6 - adds r7, r0, #0 - cmp r2, r1 - bgt _080099AC - movs r0, #2 - ldrsb r0, [r5, r0] - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _080099BC - cmp r2, r1 - bge _080099AC - b _08009E70 -_080099AC: - mov r3, ip - movs r0, #2 - ldrsb r0, [r3, r0] - subs r0, r0, r6 - adds r0, r1, r0 - cmp r0, r2 - bge _080099BC - b _08009E70 -_080099BC: - mov r6, sb - asrs r0, r6, #0x10 - movs r3, #1 - ldrsb r3, [r5, r3] - adds r2, r0, r3 - mov r0, ip - movs r6, #1 - ldrsb r6, [r0, r6] - mov r0, r8 - adds r1, r0, r6 - cmp r2, r1 - bgt _080099E6 - movs r0, #3 - ldrsb r0, [r5, r0] - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _080099F6 - cmp r2, r1 - bge _080099E6 - b _08009E70 -_080099E6: - mov r3, ip - movs r0, #3 - ldrsb r0, [r3, r0] - subs r0, r0, r6 - adds r0, r1, r0 - cmp r0, r2 - bge _080099F6 - b _08009E70 -_080099F6: - ldr r6, [sp, #0x40] - cmp r6, #0 - bne _08009A1C - mov r1, sb - asrs r0, r1, #0x10 - cmp r8, r0 - ble _08009A06 - b _08009CBE -_08009A06: - movs r2, #0xa - ldrsh r1, [r4, r2] - ldr r3, [sp, #0x24] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - cmp r1, #0 - bge _08009A38 - b _08009CBE - .align 2, 0 -_08009A18: .4byte gPlayer -_08009A1C: - mov r6, sb - asrs r0, r6, #0x10 - cmp r8, r0 - bgt _08009A26 - b _08009CB8 -_08009A26: - movs r0, #0xa - ldrsh r1, [r4, r0] - ldr r2, [sp, #0x24] - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - cmp r1, #0 - bge _08009A38 - b _08009CB8 -_08009A38: - ldr r3, [sp, #0x40] - cmp r3, #0 - beq _08009A40 - b _08009B78 -_08009A40: - mov r6, sb - asrs r0, r6, #0x10 - movs r1, #1 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - mov r2, ip - movs r1, #3 - ldrsb r1, [r2, r1] - subs r0, r0, r1 - lsls r0, r0, #8 - ldr r6, _08009AF8 @ =gPlayer - ldr r1, [r6, #4] - ldr r2, _08009AFC @ =0xFFFFFF00 - ands r1, r2 - subs r0, r0, r1 - ldr r3, [sp, #0x3c] - adds r3, r3, r0 - str r3, [sp, #0x3c] - asrs r0, r3, #8 - movs r1, #0xf - ldrsb r1, [r6, r1] - subs r0, r0, r1 - movs r3, #8 - rsbs r3, r3, #0 - ldr r1, _08009B00 @ =sa2__sub_801EC3C - str r1, [sp] - adds r1, r7, #0 - ldr r2, [sp, #0x28] - bl sa2__sub_801F100 - adds r7, r0, #0 - cmp r7, #0 - bge _08009B04 - ldr r1, [r6, #0x10] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r6, #0x10] - adds r0, r6, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _08009AAA - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #1 - beq _08009AD6 - cmp r0, #3 - beq _08009AD6 -_08009AAA: - cmp r2, #3 - bne _08009AC8 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _08009AC8 - adds r0, r6, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #0 - bne _08009AD6 -_08009AC8: - ldr r0, _08009AF8 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] - adds r4, r0, #0 -_08009AD6: - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0 - strh r0, [r4, #0xa] - lsls r1, r7, #8 - ldr r0, [r4, #4] - subs r0, r0, r1 - str r0, [r4, #4] - bl _0800A372 - .align 2, 0 -_08009AF8: .4byte gPlayer -_08009AFC: .4byte 0xFFFFFF00 -_08009B00: .4byte sa2__sub_801EC3C -_08009B04: - movs r0, #8 - ldr r5, [sp, #0x30] - orrs r5, r0 - str r5, [sp, #0x30] - ldr r1, [r6, #0x10] - orrs r1, r0 - str r1, [r6, #0x10] - adds r0, r6, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _08009B30 - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #1 - beq _08009B5C - cmp r0, #3 - beq _08009B5C -_08009B30: - cmp r2, #3 - bne _08009B4E - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _08009B4E - adds r0, r6, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #0 - bne _08009B5C -_08009B4E: - ldr r0, _08009B74 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] - adds r4, r0, #0 -_08009B5C: - ldr r6, [sp, #0x18] - str r6, [r4, #0x28] - movs r0, #0 - strh r0, [r4, #0xa] - ldr r0, [sp, #0x3c] - str r0, [r4, #4] - ldr r1, [sp, #0x34] - cmp r1, #0 - beq _08009B72 - bl _0800A378 -_08009B72: - b _08009CA4 - .align 2, 0 -_08009B74: .4byte gPlayer -_08009B78: - mov r2, sb - asrs r0, r2, #0x10 - movs r1, #3 - ldrsb r1, [r5, r1] - adds r0, r0, r1 - mov r3, ip - movs r1, #3 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - lsls r0, r0, #8 - ldr r6, _08009C2C @ =gPlayer - ldr r1, [r6, #4] - ldr r2, _08009C30 @ =0xFFFFFF00 - ands r1, r2 - subs r0, r0, r1 - ldr r5, [sp, #0x3c] - adds r5, r5, r0 - str r5, [sp, #0x3c] - asrs r0, r5, #8 - movs r1, #0xf - ldrsb r1, [r6, r1] - adds r0, r0, r1 - ldr r1, _08009C34 @ =sa2__sub_801EC3C - str r1, [sp] - adds r1, r7, #0 - ldr r2, [sp, #0x28] - movs r3, #8 - bl sa2__sub_801F100 - adds r7, r0, #0 - cmp r7, #0 - bge _08009C38 - ldr r1, [r6, #0x10] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r6, #0x10] - adds r0, r6, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _08009BE0 - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #1 - beq _08009C0C - cmp r0, #3 - beq _08009C0C -_08009BE0: - cmp r2, #3 - bne _08009BFE - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _08009BFE - adds r0, r6, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #0 - bne _08009C0C -_08009BFE: - ldr r0, _08009C2C @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] - adds r4, r0, #0 -_08009C0C: - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0 - strh r0, [r4, #0xa] - lsls r1, r7, #8 - ldr r0, [r4, #4] - adds r0, r0, r1 - str r0, [r4, #4] - b _0800A372 - .align 2, 0 -_08009C2C: .4byte gPlayer -_08009C30: .4byte 0xFFFFFF00 -_08009C34: .4byte sa2__sub_801EC3C -_08009C38: - movs r0, #8 - ldr r1, [sp, #0x30] - orrs r1, r0 - str r1, [sp, #0x30] - ldr r1, [r6, #0x10] - orrs r1, r0 - str r1, [r6, #0x10] - adds r0, r6, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _08009C64 - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #1 - beq _08009C90 - cmp r0, #3 - beq _08009C90 -_08009C64: - cmp r2, #3 - bne _08009C82 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _08009C82 - adds r0, r6, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r6, #0 - cmp r0, #0 - bne _08009C90 -_08009C82: - ldr r0, _08009CB4 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] - adds r4, r0, #0 -_08009C90: - ldr r2, [sp, #0x18] - str r2, [r4, #0x28] - movs r0, #0 - strh r0, [r4, #0xa] - ldr r3, [sp, #0x3c] - str r3, [r4, #4] - ldr r5, [sp, #0x34] - cmp r5, #0 - beq _08009CA4 - b _0800A378 -_08009CA4: - adds r0, r4, #0 - bl sa2__sub_8021BE0 - ldrh r0, [r4, #8] - strh r0, [r4, #0xc] - movs r0, #0 - strb r0, [r4, #0x14] - b _0800A372 - .align 2, 0 -_08009CB4: .4byte gPlayer -_08009CB8: - ldr r6, [sp, #0x40] - cmp r6, #0 - bne _08009CE0 -_08009CBE: - mov r1, sb - asrs r0, r1, #0x10 - cmp r8, r0 - ble _08009CD8 - movs r2, #0xa - ldrsh r0, [r4, r2] - ldr r3, [sp, #0x24] - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - subs r0, r0, r1 - adds r5, r2, #0 - cmp r0, #0 - blt _08009CFE -_08009CD8: - ldr r5, [sp, #0x40] - cmp r5, #0 - bne _08009CE0 - b _08009E70 -_08009CE0: - mov r6, sb - asrs r0, r6, #0x10 - cmp r8, r0 - ble _08009CEA - b _08009E70 -_08009CEA: - movs r1, #0xa - ldrsh r0, [r4, r1] - ldr r3, [sp, #0x24] - lsls r2, r3, #0x10 - asrs r1, r2, #0x10 - adds r0, r0, r1 - adds r5, r2, #0 - cmp r0, #0 - blt _08009CFE - b _08009E70 -_08009CFE: - ldr r6, [sp, #0x40] - cmp r6, #0 - bne _08009DB0 - ldr r4, _08009D90 @ =gPlayer - movs r0, #0xf - ldrsb r0, [r4, r0] - add r0, r8 - ldr r1, _08009D94 @ =sa2__sub_801EC3C - str r1, [sp] - adds r1, r7, #0 - ldr r2, [sp, #0x28] - movs r3, #8 - bl sa2__sub_801F100 - adds r7, r0, #0 - cmp r7, #0 - bge _08009D98 - ldr r1, [r4, #0x10] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _08009D46 - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _08009D6E - cmp r0, #3 - beq _08009D6E -_08009D46: - cmp r2, #3 - bne _08009D62 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _08009D62 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08009D6E -_08009D62: - ldr r0, _08009D90 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] -_08009D6E: - ldr r4, _08009D90 @ =gPlayer - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0 - strh r0, [r4, #0xa] - lsls r1, r7, #8 - ldr r0, [r4, #4] - adds r0, r0, r1 - str r0, [r4, #4] - b _08009DA0 - .align 2, 0 -_08009D90: .4byte gPlayer -_08009D94: .4byte sa2__sub_801EC3C -_08009D98: - ldr r0, [sp, #0x38] - str r0, [r4] - ldr r1, [sp, #0x3c] - str r1, [r4, #4] -_08009DA0: - ldr r0, _08009DAC @ =gPlayer - movs r2, #0xa - ldrsh r1, [r0, r2] - asrs r2, r5, #0x10 - subs r1, r1, r2 - b _08009E5A - .align 2, 0 -_08009DAC: .4byte gPlayer -_08009DB0: - ldr r4, _08009E40 @ =gPlayer - movs r0, #0xf - ldrsb r0, [r4, r0] - mov r6, r8 - subs r0, r6, r0 - movs r3, #8 - rsbs r3, r3, #0 - ldr r1, _08009E44 @ =sa2__sub_801EC3C - str r1, [sp] - adds r1, r7, #0 - ldr r2, [sp, #0x28] - bl sa2__sub_801F100 - adds r7, r0, #0 - cmp r7, #0 - bge _08009E48 - ldr r1, [r4, #0x10] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _08009DF6 - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _08009E1E - cmp r0, #3 - beq _08009E1E -_08009DF6: - cmp r2, #3 - bne _08009E12 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _08009E12 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08009E1E -_08009E12: - ldr r0, _08009E40 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] -_08009E1E: - ldr r4, _08009E40 @ =gPlayer - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0 - strh r0, [r4, #0xa] - lsls r1, r7, #8 - ldr r0, [r4, #4] - subs r0, r0, r1 - str r0, [r4, #4] - b _08009E50 - .align 2, 0 -_08009E40: .4byte gPlayer -_08009E44: .4byte sa2__sub_801EC3C -_08009E48: - ldr r0, [sp, #0x38] - str r0, [r4] - ldr r1, [sp, #0x3c] - str r1, [r4, #4] -_08009E50: - ldr r0, _08009E6C @ =gPlayer - movs r2, #0xa - ldrsh r1, [r0, r2] - asrs r2, r5, #0x10 - adds r1, r1, r2 -_08009E5A: - adds r4, r0, #0 - cmp r1, #0 - bgt _08009E70 - movs r0, #0x80 - lsls r0, r0, #9 - ldr r3, [sp, #0x30] - orrs r3, r0 - str r3, [sp, #0x30] - b _0800A372 - .align 2, 0 -_08009E6C: .4byte gPlayer -_08009E70: - ldrb r0, [r4, #0x14] - adds r0, #0x20 - movs r1, #0xc0 - ands r0, r1 - asrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08009E84 - b _0800A372 -_08009E84: - ldr r5, [sp, #0x44] - asrs r0, r5, #0x10 - mov r6, sp - movs r5, #0xc - ldrsb r5, [r6, r5] - adds r3, r0, r5 - ldr r0, [sp, #0x38] - asrs r1, r0, #8 - add r0, sp, #4 - movs r6, #0 - ldrsb r6, [r0, r6] - adds r2, r1, r6 - adds r7, r1, #0 - cmp r3, r2 - bgt _08009EB6 - mov r1, sp - movs r0, #0xe - ldrsb r0, [r1, r0] - subs r0, r0, r5 - adds r0, r3, r0 - cmp r0, r2 - bge _08009EC8 - cmp r3, r2 - bge _08009EB6 - b _0800A372 -_08009EB6: - add r0, sp, #4 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r2, r0 - cmp r0, r3 - bge _08009EC8 - b _0800A372 -_08009EC8: - mov r2, sb - asrs r0, r2, #0x10 - mov r3, sp - movs r2, #0xd - ldrsb r2, [r3, r2] - adds r1, r0, r2 - add r0, sp, #4 - movs r5, #1 - ldrsb r5, [r0, r5] - mov r6, r8 - adds r3, r6, r5 - cmp r1, r3 - bgt _08009EF6 - mov r6, sp - movs r0, #0xf - ldrsb r0, [r6, r0] - subs r0, r0, r2 - adds r0, r1, r0 - cmp r0, r3 - bge _08009F08 - cmp r1, r3 - bge _08009EF6 - b _0800A372 -_08009EF6: - add r0, sp, #4 - ldrb r0, [r0, #3] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r3, r0 - cmp r0, r1 - bge _08009F08 - b _0800A372 -_08009F08: - ldr r0, [sp, #0x44] - asrs r1, r0, #0x10 - cmp r7, r1 - ble _08009F12 - b _0800A132 -_08009F12: - mov sb, r4 - ldr r3, [r4, #0x10] - movs r2, #1 - ands r2, r3 - cmp r2, #0 - beq _08009F20 - b _0800A0B8 -_08009F20: - movs r0, #0x80 - lsls r0, r0, #0xb - ldr r5, [sp, #0x30] - orrs r5, r0 - str r5, [sp, #0x30] - adds r6, r4, #0 - adds r6, #0x3e - movs r5, #0 - ldrsb r5, [r6, r5] - cmp r5, #0 - beq _08009F3A - strh r2, [r4, #8] - b _0800A372 -_08009F3A: - mov r2, sp - movs r0, #0xc - ldrsb r0, [r2, r0] - adds r0, r1, r0 - add r1, sp, #4 - ldrb r1, [r1, #2] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - lsls r0, r0, #8 - str r0, [sp, #0x38] - movs r0, #8 - ldrsh r1, [r4, r0] - cmp r1, #0 - bge _08009F5A - rsbs r1, r1, #0 -_08009F5A: - movs r0, #0x90 - lsls r0, r0, #3 - cmp r1, r0 - ble _08009FCC - movs r0, #0x80 - lsls r0, r0, #0xe - ldr r1, [sp, #0x30] - orrs r1, r0 - str r1, [sp, #0x30] - mov r2, sl - lsls r0, r2, #0x10 - cmp r0, #0 - ble _08009FB4 - ldr r3, [sp, #0x2c] - cmp r3, #0 - beq _08009FA2 - strh r2, [r4, #0xc] - mov r0, sl - strh r0, [r4, #8] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3d - strb r5, [r0] - strb r5, [r6] - b _0800A358 -_08009FA2: - mov r1, sl - strh r1, [r4, #0xc] - strh r1, [r4, #8] - ldr r0, [r4] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r0, r2 - str r0, [r4] - b _0800A366 -_08009FB4: - movs r0, #2 - orrs r3, r0 - str r3, [r4, #0x10] - ldr r0, _08009FC8 @ =0x0000FE80 - strh r0, [r4, #8] - movs r0, #0xfd - lsls r0, r0, #8 - strh r0, [r4, #0xa] - b _0800A372 - .align 2, 0 -_08009FC8: .4byte 0x0000FE80 -_08009FCC: - movs r3, #8 - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _08009FD6 - b _0800A372 -_08009FD6: - ldr r1, [sp, #0x38] - asrs r0, r1, #8 - movs r1, #0xe - ldrsb r1, [r4, r1] - mov r2, r8 - subs r1, r2, r1 - movs r3, #8 - rsbs r3, r3, #0 - ldr r2, _0800A060 @ =sa2__sub_801EB44 - str r2, [sp] - ldr r2, [sp, #0x28] - bl sa2__sub_801F100 - adds r7, r0, #0 - cmp r7, #0 - bge _0800A068 - ldr r1, [r4, #0x10] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _0800A01C - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _0800A042 - cmp r0, #3 - beq _0800A042 -_0800A01C: - cmp r2, #3 - bne _0800A034 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0800A034 - movs r0, #0 - ldrsb r0, [r6, r0] - mov r4, sb - cmp r0, #0 - bne _0800A042 -_0800A034: - ldr r0, _0800A064 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] - adds r4, r0, #0 -_0800A042: - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0 - strh r0, [r4, #8] - lsls r1, r7, #8 - ldr r0, [r4] - subs r0, r0, r1 - str r0, [r4] - b _0800A372 - .align 2, 0 -_0800A060: .4byte sa2__sub_801EB44 -_0800A064: .4byte gPlayer -_0800A068: - ldr r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0800A09A - movs r0, #0x20 - orrs r1, r0 - ldr r3, [sp, #0x30] - orrs r3, r0 - subs r0, #0x25 - ands r1, r0 - str r1, [r4, #0x10] - ands r3, r0 - str r3, [sp, #0x30] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x40 - strb r0, [r1] -_0800A09A: - ldr r0, [r4, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x10] - ldr r6, [sp, #0x30] - ands r6, r1 - str r6, [sp, #0x30] - strh r5, [r4, #0xc] - strh r5, [r4, #8] - ldr r0, [sp, #0x38] - str r0, [r4] - ldr r1, [sp, #0x3c] - str r1, [r4, #4] - b _0800A372 -_0800A0B8: - movs r0, #0x80 - lsls r0, r0, #0xb - ldr r2, [sp, #0x30] - orrs r2, r0 - str r2, [sp, #0x30] - adds r6, r4, #0 - adds r6, #0x3e - movs r5, #0 - ldrsb r5, [r6, r5] - cmp r5, #0 - beq _0800A0D4 - movs r0, #0 - strh r0, [r4, #8] - b _0800A372 -_0800A0D4: - mov r3, sl - lsls r0, r3, #0x10 - asrs r1, r0, #0x10 - adds r2, r1, #0 - cmp r1, #0 - bge _0800A0E2 - rsbs r2, r1, #0 -_0800A0E2: - movs r0, #0x90 - lsls r0, r0, #3 - cmp r2, r0 - bgt _0800A0EC - b _0800A372 -_0800A0EC: - movs r0, #0x80 - lsls r0, r0, #0xe - ldr r2, [sp, #0x30] - orrs r2, r0 - str r2, [sp, #0x30] - cmp r1, #0 - bge _0800A12C - ldr r3, [sp, #0x2c] - cmp r3, #0 - beq _0800A128 - mov r0, sl - strh r0, [r4, #0xc] - strh r0, [r4, #8] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3d - strb r5, [r0] - strb r5, [r6] - b _0800A358 -_0800A128: - adds r0, r4, #0 - b _0800A362 -_0800A12C: - strh r5, [r4, #0xc] - strh r5, [r4, #8] - b _0800A372 -_0800A132: - adds r5, r4, #0 - ldr r3, [r5, #0x10] - movs r2, #1 - mov sb, r2 - adds r2, r3, #0 - mov r6, sb - ands r2, r6 - cmp r2, #0 - bne _0800A146 - b _0800A2F0 -_0800A146: - movs r0, #0x80 - lsls r0, r0, #0xa - ldr r2, [sp, #0x30] - orrs r2, r0 - str r2, [sp, #0x30] - ldr r0, _0800A160 @ =gPlayer + 0x3E - movs r6, #0 - ldrsb r6, [r0, r6] - cmp r6, #0 - beq _0800A164 - movs r0, #0 - strh r0, [r5, #8] - b _0800A372 - .align 2, 0 -_0800A160: .4byte gPlayer + 0x3E -_0800A164: - mov r2, sp - movs r0, #0xe - ldrsb r0, [r2, r0] - adds r0, r1, r0 - add r1, sp, #4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - lsls r0, r0, #8 - str r0, [sp, #0x38] - movs r0, #8 - ldrsh r1, [r5, r0] - cmp r1, #0 - bge _0800A184 - rsbs r1, r1, #0 -_0800A184: - movs r0, #0x90 - lsls r0, r0, #3 - cmp r1, r0 - ble _0800A1FC - movs r0, #0x80 - lsls r0, r0, #0xe - ldr r1, [sp, #0x30] - orrs r1, r0 - str r1, [sp, #0x30] - mov r2, sl - lsls r0, r2, #0x10 - cmp r0, #0 - bge _0800A1E8 - ldr r3, [sp, #0x2c] - cmp r3, #0 - beq _0800A1D4 - strh r2, [r5, #0xc] - mov r0, sl - strh r0, [r5, #8] - adds r0, r5, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3d - strb r6, [r0] - ldr r1, _0800A1D0 @ =gPlayer + 0x3E - strb r6, [r1] - b _0800A358 - .align 2, 0 -_0800A1D0: .4byte gPlayer + 0x3E -_0800A1D4: - mov r2, sl - strh r2, [r5, #0xc] - strh r2, [r5, #8] - ldr r0, [r5] - ldr r3, _0800A1E4 @ =0xFFFFFF00 - adds r0, r0, r3 - str r0, [r5] - b _0800A366 - .align 2, 0 -_0800A1E4: .4byte 0xFFFFFF00 -_0800A1E8: - movs r0, #2 - orrs r3, r0 - str r3, [r5, #0x10] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #8] - movs r0, #0xfd - lsls r0, r0, #8 - strh r0, [r5, #0xa] - b _0800A372 -_0800A1FC: - movs r1, #8 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0800A206 - b _0800A372 -_0800A206: - ldr r2, [sp, #0x38] - asrs r0, r2, #8 - movs r1, #0xe - ldrsb r1, [r5, r1] - add r1, r8 - ldr r2, _0800A290 @ =sa2__sub_801EB44 - str r2, [sp] - ldr r2, [sp, #0x28] - movs r3, #8 - bl sa2__sub_801F100 - adds r7, r0, #0 - cmp r7, #0 - bge _0800A29C - ldr r1, [r5, #0x10] - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #2 - bne _0800A24A - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r5, #0 - cmp r0, #1 - beq _0800A272 - cmp r0, #3 - beq _0800A272 -_0800A24A: - cmp r2, #3 - bne _0800A264 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _0800A264 - ldr r3, _0800A294 @ =gPlayer + 0x3E - movs r0, #0 - ldrsb r0, [r3, r0] - adds r4, r5, #0 - cmp r0, #0 - bne _0800A272 -_0800A264: - ldr r0, _0800A298 @ =gPlayer - ldr r1, [r0, #0x10] - movs r2, #3 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x10] - adds r4, r0, #0 -_0800A272: - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - movs r0, #0 - strh r0, [r4, #8] - lsls r1, r7, #8 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] - b _0800A372 - .align 2, 0 -_0800A290: .4byte sa2__sub_801EB44 -_0800A294: .4byte gPlayer + 0x3E -_0800A298: .4byte gPlayer -_0800A29C: - ldr r1, [r5, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0800A2CE - movs r0, #0x20 - orrs r1, r0 - ldr r2, [sp, #0x30] - orrs r2, r0 - subs r0, #0x25 - ands r1, r0 - str r1, [r5, #0x10] - ands r2, r0 - str r2, [sp, #0x30] - adds r0, r5, #0 - adds r0, #0x40 - movs r4, #0xe - strb r4, [r0] - adds r0, r5, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] -_0800A2CE: - ldr r0, [r5, #0x10] - mov r3, sb - orrs r0, r3 - str r0, [r5, #0x10] - ldr r0, [sp, #0x30] - orrs r0, r3 - str r0, [sp, #0x30] - strh r6, [r5, #0xc] - strh r6, [r5, #8] - ldr r1, [sp, #0x38] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - str r0, [r5] - ldr r3, [sp, #0x3c] - str r3, [r5, #4] - b _0800A372 -_0800A2F0: - movs r0, #0x80 - lsls r0, r0, #0xa - orrs r3, r0 - str r3, [r5, #0x10] - adds r7, r5, #0 - adds r7, #0x3e - movs r6, #0 - ldrsb r6, [r7, r6] - cmp r6, #0 - beq _0800A308 - strh r2, [r5, #8] - b _0800A372 -_0800A308: - mov r1, sl - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r2, r1, #0 - cmp r1, #0 - bge _0800A316 - rsbs r2, r1, #0 -_0800A316: - movs r0, #0x90 - lsls r0, r0, #3 - cmp r2, r0 - ble _0800A372 - movs r0, #0x80 - lsls r0, r0, #0xe - ldr r2, [sp, #0x30] - orrs r2, r0 - str r2, [sp, #0x30] - cmp r1, #0 - ble _0800A36E - ldr r3, [sp, #0x2c] - cmp r3, #0 - beq _0800A360 - mov r0, sl - strh r0, [r5, #0xc] - strh r0, [r5, #8] - adds r0, r5, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3d - strb r6, [r0] - strb r6, [r7] -_0800A358: - movs r0, #0xa1 - bl m4aSongNumStart - b _0800A372 -_0800A360: - adds r0, r5, #0 -_0800A362: - bl sa2__sub_800DE44 -_0800A366: - movs r0, #0xa2 - bl m4aSongNumStart - b _0800A372 -_0800A36E: - strh r6, [r4, #0xc] - strh r6, [r4, #8] -_0800A372: - ldr r1, [sp, #0x34] - cmp r1, #0 - beq _0800A390 -_0800A378: - ldr r2, _0800A3A4 @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0800A390 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r2, #0x10] -_0800A390: - ldr r0, [sp, #0x30] -_0800A392: - add sp, #0x48 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800A3A4: .4byte gPlayer - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc b/sa1/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc deleted file mode 100644 index e47fb4bbcf..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/collision__sub_800C1E8.inc +++ /dev/null @@ -1,115 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r1, #0 - adds r4, r0, #0 - ldr r0, [sp, #0x1c] - mov r8, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov sb, r3 - ldr r1, [r0, #0x64] - mov ip, r1 - mov r7, ip - adds r7, #0xc - ldr r0, [r0, #0x10] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0800C2AA - ldr r1, [r7, #0x28] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0800C2AA - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - lsls r1, r5, #0x18 - asrs r3, r1, #0x18 - adds r2, r0, r3 - mov r1, r8 - ldr r0, [r1] - asrs r0, r0, #8 - mov r1, ip - adds r1, #0x38 - movs r6, #0 - ldrsb r6, [r1, r6] - adds r1, r0, r6 - cmp r2, r1 - bgt _0800C24C - lsls r0, r5, #8 - asrs r0, r0, #0x18 - subs r0, r0, r3 - adds r0, r2, r0 - cmp r0, r1 - bge _0800C25E - cmp r2, r1 - blt _0800C2AA -_0800C24C: - mov r0, ip - adds r0, #0x3a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r6 - adds r0, r1, r0 - cmp r0, r2 - blt _0800C2AA -_0800C25E: - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - adds r4, r5, #0 - lsls r1, r4, #0x10 - asrs r1, r1, #0x18 - adds r3, r0, r1 - mov r2, r8 - ldr r0, [r2, #4] - asrs r0, r0, #8 - adds r2, r7, #0 - adds r2, #0x2d - movs r5, #0 - ldrsb r5, [r2, r5] - adds r2, r0, r5 - cmp r3, r2 - bgt _0800C28E - asrs r0, r4, #0x18 - subs r0, r0, r1 - adds r0, r3, r0 - cmp r0, r2 - bge _0800C2A0 - cmp r3, r2 - blt _0800C2AA -_0800C28E: - adds r0, r7, #0 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r0, r5 - adds r0, r2, r0 - cmp r0, r3 - blt _0800C2AA -_0800C2A0: - mov r0, r8 - bl Coll_DamagePlayer - movs r0, #2 - b _0800C2AC -_0800C2AA: - movs r0, #0 -_0800C2AC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/collision__sub_800C934.inc b/sa1/asm/non_matching/game/shared/stage/collision__sub_800C934.inc deleted file mode 100644 index bd2205bae9..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/collision__sub_800C934.inc +++ /dev/null @@ -1,349 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 @ r8 = s - mov sb, r2 @ r2 = y - adds r7, r3, #0 @ r7 = rectPlayer - ldr r4, [sp, #0x2c] @ r4 = p - ldr r0, _0800CA1C @ =gStageFlags - ldrh r2, [r0] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - mov r0, r8 - adds r0, #0x2d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 @ r0 = hbTop = HB_TOP(s->hitboxes[0]) - mov r2, r8 - adds r2, #0x2f - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 @ r2 hbBottom = HB_BOTTOM(s->hitboxes[0]) - adds r0, r0, r2 - asrs r0, r0, #1 - add r0, sb @ r0 = y + (hbBottom - hbTop) / 2 - mov sl, r0 @ sl = middleY - mov r0, r8 - adds r0, #0x2c - movs r3, #0 - ldrsb r3, [r0, r3] @ r3 = HB_LEFT(s->hitboxes[0].b) - adds r1, r1, r3 @ r1 = x += HB_LEFT(s->hitboxes[0].b) - ldr r0, [r4] - asrs r0, r0, #8 @ r0 = I(p->qWorldX) - movs r5, #0 - ldrsb r5, [r7, r5] @ r5 = rectPlayer - adds r2, r0, r5 @ r2 = I(p->qWorldX) + HB_LEFT(rectPlayer) - cmp r1, r2 - bgt _0800C9A2 - mov r0, r8 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 @ r0 = HB_RIGHT(s->hitboxes[0].b.right) - subs r0, r0, r3 @ r0 = HB_WIDTH(s->hitboxes[0].b.right) - adds r0, r1, r0 - cmp r0, r2 - bge _0800C9B0 - cmp r1, r2 - bge _0800C9A2 - b _0800CBA8_return_0 -_0800C9A2: - movs r0, #2 - ldrsb r0, [r7, r0] @ r0 = r7+2 = rectPlayer - subs r0, r0, r5 - adds r0, r2, r0 - cmp r0, r1 - bge _0800C9B0 - b _0800CBA8_return_0 -_0800C9B0: - mov r3, r8 - adds r3, #0x2d - movs r0, #0 - ldrsb r0, [r3, r0] - mov ip, r0 - mov r6, sb - add r6, ip - ldr r2, [r4, #4] - asrs r0, r2, #8 @ r0 = I(p->qWorldY) - movs r1, #1 - ldrsb r1, [r7, r1] - adds r5, r0, r1 - str r3, [sp, #4] - cmp r6, r5 - bgt _0800C9E8 - mov r0, r8 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r3, ip - subs r0, r0, r3 - adds r0, r6, r0 - cmp r0, r5 - bge _0800C9F6 - cmp r6, r5 - bge _0800C9E8 - b _0800CBA8_return_0 -_0800C9E8: - movs r0, #3 - ldrsb r0, [r7, r0] - subs r0, r0, r1 - adds r0, r5, r0 - cmp r0, r6 - bge _0800C9F6 - b _0800CBA8_return_0 -_0800C9F6: - ldr r0, [sp] - cmp r0, #0 - bne _0800CA20 - asrs r0, r2, #8 - cmp r0, sl - ble _0800CA28 - mov r0, r8 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - subs r0, r0, r1 - lsls r0, r0, #8 - ldrb r1, [r4, #4] - adds r1, r1, r0 - str r1, [r4, #4] - b _0800CB4C - .align 2, 0 -_0800CA1C: .4byte gStageFlags -_0800CA20: - asrs r0, r2, #8 - cmp r0, sl - bge _0800CA28 - b _0800CB38 -_0800CA28: - ldr r1, [sp] - cmp r1, #0 - bne _0800CA3E - ldr r2, [sp, #4] - movs r0, #0 - ldrsb r0, [r2, r0] - add r0, sb - movs r1, #3 - ldrsb r1, [r7, r1] - subs r0, r0, r1 - b _0800CA50 -_0800CA3E: - mov r0, r8 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - movs r1, #3 - ldrsb r1, [r7, r1] - adds r0, r0, r1 -_0800CA50: - lsls r0, r0, #8 - ldrb r1, [r4, #4] - adds r1, r1, r0 - str r1, [r4, #4] - ldr r3, _0800CA6C @ =gCamera - movs r1, #0x14 - ldrsh r0, [r3, r1] - lsls r0, r0, #8 - ldr r1, [r4, #4] - cmp r1, r0 - bge _0800CA70 -_0800CA66: - str r0, [r4, #4] - b _0800CBA8_return_0 - .align 2, 0 -_0800CA6C: .4byte gCamera -_0800CA70: - ldr r2, _0800CB34 @ =gCamera - movs r3, #0x16 - ldrsh r0, [r2, r3] - lsls r0, r0, #8 - cmp r1, r0 - bge _0800CA66 - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _0800CA86 - b _0800CBA8_return_0 -_0800CA86: - ldrb r0, [r4, #0xf] - rsbs r0, r0, #0 - strb r0, [r7, #1] - ldrb r0, [r4, #0xf] - strb r0, [r7, #3] - movs r0, #0 - strh r0, [r4, #0xa] - ldr r2, [r4, #0x10] - movs r0, #2 - ands r2, r0 - cmp r2, #0 - bne _0800CAAC - ldrb r0, [r4, #0x14] - adds r0, #0x20 - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0800CAAC - strh r2, [r4, #0xc] -_0800CAAC: - ldr r0, [r4, #0x10] - movs r1, #8 - orrs r0, r1 - str r0, [r4, #0x10] - ldr r2, [sp, #0x30] - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - adds r0, r4, #0 - adds r0, #0x59 - movs r2, #0 - ldrsb r2, [r0, r2] - ldr r1, [r4, #0x10] - adds r3, r0, #0 - cmp r2, #2 - bne _0800CADC - subs r0, #0x1c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _0800CB00 - cmp r0, #3 - beq _0800CB00 -_0800CADC: - cmp r2, #3 - bne _0800CAF8 - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r0, r1 - cmp r0, #0 - beq _0800CAF8 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0800CB00 -_0800CAF8: - movs r0, #3 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x10] -_0800CB00: - mov r0, r8 - str r0, [r4, #0x28] - ldr r0, [sp, #0x28] - cmp r0, #0 - bne _0800CB9A_return_1 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #2 - bne _0800CB24 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _0800CB2E - cmp r0, #3 - beq _0800CB2E -_0800CB24: - adds r0, r4, #0 - bl sa2__sub_8021BE0 - ldrh r0, [r4, #8] - strh r0, [r4, #0xc] -_0800CB2E: - movs r0, #0 - strb r0, [r4, #0x14] - b _0800CB9A_return_1 - .align 2, 0 -_0800CB34: .4byte gCamera -_0800CB38: - ldr r3, [sp, #4] - movs r0, #0 - ldrsb r0, [r3, r0] - add r0, sb - adds r0, r0, r1 - lsls r0, r0, #8 - ldr r1, _0800CBA0 @ =0xFFFFFF00 - bics r2, r1 - adds r0, r2, r0 - str r0, [r4, #4] -_0800CB4C: - ldr r1, _0800CBA4 @ =gCamera - movs r2, #0x14 - ldrsh r0, [r1, r2] - lsls r0, r0, #8 - ldr r1, [r4, #4] - cmp r1, r0 - bge _0800CB5C - b _0800CA66 -_0800CB5C: - ldr r3, _0800CBA4 @ =gCamera - movs r2, #0x16 - ldrsh r0, [r3, r2] - lsls r0, r0, #8 - cmp r1, r0 - blt _0800CB6A - b _0800CA66 -_0800CB6A: - ldr r3, [sp, #0x30] - ldr r0, [r3] - movs r1, #0x80 - lsls r1, r1, #9 - orrs r0, r1 - str r0, [r3] - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _0800CBA8_return_0 - movs r0, #0 - strh r0, [r4, #0xa] - ldr r2, [r4, #0x10] - movs r0, #2 - ands r2, r0 - cmp r2, #0 - bne _0800CB9A_return_1 - ldrb r0, [r4, #0x14] - adds r0, #0x20 - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0800CB9A_return_1 - strh r2, [r4, #0xc] -_0800CB9A_return_1: - movs r0, #1 - b _0800CBAA - .align 2, 0 -_0800CBA0: .4byte 0xFFFFFF00 -_0800CBA4: .4byte gCamera -_0800CBA8_return_0: - movs r0, #0 -_0800CBAA: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc b/sa1/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc deleted file mode 100644 index 4d82e7327c..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/collision__sub_800CBBC.inc +++ /dev/null @@ -1,333 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - adds r6, r0, #0 @ r6 = s - mov sb, r1 @ sb = x - mov sl, r2 @ sl = y - adds r7, r3, #0 @ r7 = rectPlayer - ldr r4, [sp, #0x3c] @ r4 = p - ldr r0, [sp, #0x40] - mov r8, r0 @ r8 = param6 - adds r0, r6, #0 - adds r0, #0x2c - movs r5, #0 - ldrsb r5, [r0, r5] @ r5 = shbLeft = s->hitboxes[0].b.left - adds r0, #2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov ip, r0 @ ip = shbRight = s->hitboxes[0].b.right - adds r0, r5, r0 - asrs r0, r0, #1 - add r0, sb - str r0, [sp, #8] @ sp08 = shbMiddleH - ldrb r0, [r4, #0x14] - adds r0, #0x20 - movs r1, #0xc0 - ands r0, r1 - asrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0800CC04 - b _0800CE20_return_FALSE -_0800CC04: - mov r1, sb @ r1 = x - adds r3, r1, r5 @ r3 = x + shbLeft - ldr r0, [r4] - asrs r1, r0, #8 - movs r2, #0 - ldrsb r2, [r7, r2] - adds r1, r1, r2 - str r0, [sp, #0x10] @ sp10 = p->x - str r2, [sp, #0xc] @ sp0C = rectPlayer.left - cmp r3, r1 - bgt _0800CC2A @ (x + shbLeft) > (I(p->x) + rectPlayer->left)) - mov r2, ip @ r2 = ip = shbRight - subs r0, r2, r5 - adds r0, r3, r0 - cmp r0, r1 - bge _0800CC3A - cmp r3, r1 - bge _0800CC2A - b _0800CE20_return_FALSE -_0800CC2A: - movs r0, #2 - ldrsb r0, [r7, r0] - ldr r5, [sp, #0xc] - subs r0, r0, r5 - adds r0, r1, r0 - cmp r0, r3 - bge _0800CC3A - b _0800CE20_return_FALSE -_0800CC3A: - adds r0, r6, #0 - adds r0, #0x2d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - str r0, [sp, #0x14] - adds r2, r0, #0 - add r2, sl - ldr r1, [r4, #4] - asrs r0, r1, #8 - movs r3, #1 - ldrsb r3, [r7, r3] - mov ip, r3 - adds r3, r0, r3 - mov sl, r1 - cmp r2, r3 - bgt _0800CC76 - adds r0, r6, #0 - adds r0, #0x2f - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r5, [sp, #0x14] - subs r0, r0, r5 - adds r0, r2, r0 - cmp r0, r3 - bge _0800CC86 - cmp r2, r3 - bge _0800CC76 - b _0800CE20_return_FALSE -_0800CC76: - movs r0, #3 - ldrsb r0, [r7, r0] - mov r1, ip - subs r0, r0, r1 - adds r0, r3, r0 - cmp r0, r2 - bge _0800CC86 - b _0800CE20_return_FALSE -_0800CC86: - ldr r2, [sp, #0x10] - asrs r0, r2, #8 - ldr r3, [sp, #8] - cmp r0, r3 - bgt _0800CD58 - adds r0, r6, #0 - adds r0, #0x2c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - movs r1, #2 - ldrsb r1, [r7, r1] - subs r5, r0, r1 - mov r0, sl - asrs r1, r0, #8 - adds r0, r4, #0 - adds r0, #0x27 - ldrb r2, [r0] - movs r3, #8 - rsbs r3, r3, #0 - movs r0, #0 - str r0, [sp] - ldr r0, _0800CCC8 @ =sa2__sub_801ED24 - str r0, [sp, #4] - adds r0, r5, #0 - bl sa2__sub_801E4E4 - cmp r0, #0 - blt _0800CCCC - lsls r0, r5, #8 - b _0800CCE2 - .align 2, 0 -_0800CCC8: .4byte sa2__sub_801ED24 -_0800CCCC: - adds r0, r6, #0 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - movs r1, #0 - ldrsb r1, [r7, r1] - subs r0, r0, r1 - adds r0, #1 - lsls r0, r0, #8 -_0800CCE2: - str r0, [r4] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _0800CCEE - b _0800CE20_return_FALSE -_0800CCEE: - mov r2, r8 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r2] - ldr r2, [r4, #0x10] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0800CDD0 - adds r0, r4, #0 - adds r0, #0x3e - movs r3, #0 - ldrsb r3, [r0, r3] - cmp r3, #0 - bne _0800CDD0 - movs r5, #8 - ldrsh r0, [r4, r5] - cmp r0, #0 - ble _0800CDD4 - movs r1, #0x20 - orrs r2, r1 - str r2, [r4, #0x10] - mov r2, r8 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, [r4, #0x10] - subs r1, #0x25 - ands r0, r1 - str r0, [r4, #0x10] - ldr r0, [r2] - ands r0, r1 - str r0, [r2] - ldr r0, [r4, #0x10] - adds r1, #3 - ands r0, r1 - str r0, [r4, #0x10] - ldr r0, [r2] - ands r0, r1 - str r0, [r2] - strh r3, [r4, #0xc] - strh r3, [r4, #8] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - b _0800CDD4 -_0800CD58: - adds r0, r6, #0 - adds r0, #0x2e - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - ldr r3, [sp, #0xc] - subs r0, r0, r3 - adds r5, r0, #1 - mov r0, sl - asrs r1, r0, #8 - adds r0, r4, #0 - adds r0, #0x27 - ldrb r2, [r0] - movs r0, #0 - str r0, [sp] - ldr r0, _0800CD8C @ =sa2__sub_801ED24 - str r0, [sp, #4] - adds r0, r5, #0 - movs r3, #8 - bl sa2__sub_801E4E4 - cmp r0, #0 - blt _0800CD90 - lsls r0, r5, #8 - b _0800CDA4 - .align 2, 0 -_0800CD8C: .4byte sa2__sub_801ED24 -_0800CD90: - adds r0, r6, #0 - adds r0, #0x2c - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sb - movs r1, #2 - ldrsb r1, [r7, r1] - subs r0, r0, r1 - lsls r0, r0, #8 -_0800CDA4: - str r0, [r4] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _0800CE20_return_FALSE - mov r2, r8 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xb - orrs r0, r1 - str r0, [r2] - ldr r2, [r4, #0x10] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - bne _0800CDD0 - adds r0, r4, #0 - adds r0, #0x3e - movs r3, #0 - ldrsb r3, [r0, r3] - cmp r3, #0 - beq _0800CDD8 -_0800CDD0: - movs r0, #0 - strh r0, [r4, #8] -_0800CDD4: - movs r0, #1 - b _0800CE22 -_0800CDD8: - movs r5, #8 - ldrsh r0, [r4, r5] - cmp r0, #0 - bge _0800CDD4 - movs r1, #0x20 - orrs r2, r1 - str r2, [r4, #0x10] - mov r2, r8 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, [r4, #0x10] - subs r1, #0x25 - ands r0, r1 - str r0, [r4, #0x10] - ldr r0, [r2] - ands r0, r1 - str r0, [r2] - ldr r0, [r4, #0x10] - movs r1, #1 - orrs r0, r1 - str r0, [r4, #0x10] - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - strh r3, [r4, #0xc] - strh r3, [r4, #8] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - b _0800CDD4 -_0800CE20_return_FALSE: - movs r0, #0 -_0800CE22: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc b/sa1/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc deleted file mode 100644 index 3a1f94cbe5..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/evt_mgr__ReceiveRoomEvent_ReachedStageGoal.inc +++ /dev/null @@ -1,375 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r0, #0 - mov sb, r0 - movs r1, #0 - str r1, [sp, #4] - mov sl, r1 - movs r2, #0 - str r2, [sp, #8] - ldr r2, _08017F80 @ =gMultiplayerPlayerTasks - lsls r0, r7, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - str r1, [sp] - movs r6, #0 - ldr r0, [r2] - cmp r0, #0 - beq _08017FD8 - ldr r0, _08017F84 @ =gGameMode - ldrb r5, [r0] - movs r0, #0x10 - mov ip, r0 - adds r4, r2, #0 - ldr r1, _08017F88 @ =0x04000128 - mov r8, r1 -_08017F56: - ldr r2, [sp, #4] - adds r2, #1 - str r2, [sp, #4] - ldr r0, [r4] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - cmp r5, #3 - beq _08017F8C - cmp r5, #5 - beq _08017F8C - ldr r0, [r1, #0x5c] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08017FCA - add sb, r1 - add sl, r1 - b _08017FCA - .align 2, 0 -_08017F80: .4byte gMultiplayerPlayerTasks -_08017F84: .4byte gGameMode -_08017F88: .4byte 0x04000128 -_08017F8C: - ldr r0, _08017FF8 @ =gMultiplayerConnections - ldrb r3, [r0] - mov r2, ip - lsls r2, r6 - ands r2, r3 - adds r0, r6, #4 - asrs r2, r0 - mov r0, r8 - ldr r1, [r0] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - mov r0, ip - lsls r0, r1 - ands r3, r0 - mov r1, r8 - ldr r0, [r1] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, #4 - asrs r3, r0 - cmp r2, r3 - beq _08017FCA - ldr r2, _08017FFC @ =gMultiplayerRanks - adds r0, r6, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08017FCA - movs r0, #1 - mov sb, r0 -_08017FCA: - adds r4, #4 - adds r6, #1 - cmp r6, #3 - bhi _08017FD8 - ldr r0, [r4] - cmp r0, #0 - bne _08017F56 -_08017FD8: - ldr r1, _08017FFC @ =gMultiplayerRanks - adds r0, r7, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08018000 - mov r2, sb - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - adds r0, r7, #0 - bl CreateMultiplayerFinishResult - b _08018004 - .align 2, 0 -_08017FF8: .4byte gMultiplayerConnections -_08017FFC: .4byte gMultiplayerRanks -_08018000: - movs r0, #1 - str r0, [sp, #8] -_08018004: - ldr r0, _08018180 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _0801801C - mov r1, sl - adds r1, #1 - str r1, [sp, #0x10] - ldr r2, [sp, #4] - subs r2, #1 - str r2, [sp, #0xc] - cmp r0, #5 - bne _08018106 -_0801801C: - movs r6, #0 - ldr r0, _08018184 @ =gMultiplayerPlayerTasks - ldr r0, [r0] - mov r1, sl - adds r1, #1 - str r1, [sp, #0x10] - ldr r2, [sp, #4] - subs r2, #1 - str r2, [sp, #0xc] - cmp r0, #0 - beq _08018106 - movs r0, #0x10 - mov sl, r0 - mov r8, sl - mov r1, r8 - lsls r1, r7 - mov r8, r1 - ldr r5, _08018188 @ =gPlayer -_08018040: - cmp r6, r7 - beq _080180F4 - ldr r0, _0801818C @ =gMultiplayerRanks - adds r0, r6, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r2, #1 - rsbs r2, r2, #0 - cmp r0, r2 - bne _080180F4 - ldr r0, _08018190 @ =gMultiplayerConnections - ldrb r2, [r0] - mov r0, sl - lsls r0, r6 - ands r0, r2 - adds r1, r6, #4 - asrs r0, r1 - mov r1, r8 - ands r2, r1 - adds r1, r7, #4 - asrs r2, r1 - cmp r0, r2 - bne _080180F4 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov r2, sb - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl CreateMultiplayerFinishResult - ldr r0, _08018194 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r6, r0 - bne _080180F4 - adds r0, r5, #0 - bl Player_TransitionCancelFlyingAndBoost - ldr r0, [r5, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #0x18 - ands r0, r1 - adds r1, #0x1c - ands r0, r1 - subs r1, #0xc - ands r0, r1 - movs r1, #2 - orrs r0, r1 - ldr r1, _08018198 @ =0xFFFFFBFF - ands r0, r1 - ldr r1, _0801819C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r5, #0x10] - adds r4, r5, #0 - adds r4, #0x40 - movs r0, #0xf - strb r0, [r4] - adds r0, r5, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r5, #0xe] - movs r0, #0xe - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x3d - movs r2, #0 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - strh r2, [r5, #0xc] - strh r2, [r5, #8] - ldr r1, [r5, #0x10] - movs r0, #0x80 - lsls r0, r0, #0xe - orrs r1, r0 - strh r2, [r5, #0x38] - movs r0, #1 - orrs r1, r0 - movs r0, #0x1d - strb r0, [r4] - movs r0, #0x80 - lsls r0, r0, #0x10 - orrs r1, r0 - str r1, [r5, #0x10] -_080180F4: - adds r6, #1 - cmp r6, #3 - bhi _08018106 - ldr r0, _08018184 @ =gMultiplayerPlayerTasks - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - bne _08018040 -_08018106: - ldr r1, [sp] - ldr r0, [r1, #0x5c] - movs r2, #1 - orrs r0, r2 - str r0, [r1, #0x5c] - mov r0, sb - cmp r0, #0 - bne _08018130 - ldr r3, _080181A0 @ =gStageFlags - ldrh r1, [r3] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08018130 - movs r0, #4 - orrs r0, r1 - strh r0, [r3] - ldr r1, _080181A4 @ =gCourseTime - movs r0, #0xe1 - lsls r0, r0, #4 - str r0, [r1] -_08018130: - ldr r1, [sp, #0x10] - ldr r2, [sp, #0xc] - cmp r1, r2 - bhs _08018144 - ldr r0, _08018180 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _08018144 - cmp r0, #5 - bne _080181E4 -_08018144: - movs r6, #0 - ldr r0, _08018184 @ =gMultiplayerPlayerTasks - ldr r0, [r0] - cmp r0, #0 - beq _080181DA - movs r0, #1 - rsbs r0, r0, #0 - mov r8, r0 - movs r4, #0 - ldr r5, _08018188 @ =gPlayer -_08018158: - cmp r6, r7 - beq _080181C2 - ldr r0, _0801818C @ =gMultiplayerRanks - adds r0, r6, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, r8 - bne _080181C2 - ldr r0, _08018180 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _08018176 - cmp r0, #5 - bne _080181A8 -_08018176: - lsrs r0, r4, #0x18 - movs r1, #1 - bl CreateMultiplayerFinishResult - b _080181C2 - .align 2, 0 -_08018180: .4byte gGameMode -_08018184: .4byte gMultiplayerPlayerTasks -_08018188: .4byte gPlayer -_0801818C: .4byte gMultiplayerRanks -_08018190: .4byte gMultiplayerConnections -_08018194: .4byte 0x04000128 -_08018198: .4byte 0xFFFFFBFF -_0801819C: .4byte 0xFFFFFEFF -_080181A0: .4byte gStageFlags -_080181A4: .4byte gCourseTime -_080181A8: - lsrs r0, r4, #0x18 - ldr r2, [sp, #0xc] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl CreateMultiplayerFinishResult - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r5, #0x10] - movs r0, #0 - strh r0, [r5, #0x38] -_080181C2: - movs r0, #0x80 - lsls r0, r0, #0x11 - adds r4, r4, r0 - adds r6, #1 - cmp r6, #3 - bhi _080181DA - ldr r0, _080181F4 @ =gMultiplayerPlayerTasks - lsls r1, r6, #2 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - bne _08018158 -_080181DA: - ldr r1, [sp, #8] - cmp r1, #0 - bne _080181E4 - bl CreateMultiplayerFinishHandler -_080181E4: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080181F4: .4byte gMultiplayerPlayerTasks - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc b/sa1/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc deleted file mode 100644 index 7798b492a4..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/item_box__Task_ItemBoxMain.inc +++ /dev/null @@ -1,553 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r0, #0 - mov sl, r0 - ldr r1, _0801E874 @ =gCurTask - mov sb, r1 - ldr r0, [r1] - ldrh r5, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r6, r5, r0 @ r6 = itembox - ldr r2, _0801E878 @ =0x0300000C - adds r4, r5, r2 @ r4 = s - ldr r3, [r6] - str r3, [sp, #8] @ sp08 = me - ldrb r0, [r6, #8] - lsls r0, r0, #3 - ldrh r1, [r6, #4] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 @ r8 = worldX - ldrb r0, [r3, #1] - lsls r0, r0, #3 - ldrh r1, [r6, #6] - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 @ r7 = worldY - ldr r0, _0801E87C @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bls _0801E890 - movs r1, #0 - ldrsb r1, [r3, r1] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0801E890 - movs r0, #0xa7 - bl m4aSongNumStart - mov r1, r8 - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - ldr r3, _0801E880 @ =0x0300006C - adds r2, r5, r3 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - ldrh r2, [r2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CreateDustCloud - mov r0, sb @ r0 = sb = gCurTask - ldr r1, [r0] - ldr r0, _0801E884 @ =Task_Itembox3 - str r0, [r1, #8] - ldr r1, _0801E888 @ =0x03000070 - adds r0, r5, r1 - mov r2, sl - strb r2, [r0] - ldr r2, _0801E88C @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0801E85E - b _0801EC0A_return -_0801E85E: - ldr r0, [r2, #0x28] - cmp r0, r4 - beq _0801E866 - b _0801EC0A_return -_0801E866: - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r2, #0x10] - b _0801EC0A_return - .align 2, 0 -_0801E874: .4byte gCurTask -_0801E878: .4byte 0x0300000C -_0801E87C: .4byte gGameMode -_0801E880: .4byte 0x0300006C -_0801E884: .4byte Task_Itembox3 -_0801E888: .4byte 0x03000070 -_0801E88C: .4byte gPlayer -_0801E890: - adds r0, r6, #0 @ r0 = r6 = itembox - adds r0, #0x70 - ldrb r1, [r0] - mov r3, r8 @ r3 = r8 = worldX - lsls r3, r3, #0x10 - mov r8, r3 @ r8 = worldX << 16 - lsls r7, r7, #0x10 - mov sb, r7 @ sb = r7 = worldY << 16 - str r0, [sp, #0xc] @ sp0C = &itembox->unk70 - adds r7, r6, #0 - adds r7, #0x6c @ r7 = &itembox->iconOffset - cmp r1, #0 - beq _0801E8F0 - adds r1, r6, #0 - adds r1, #0x6e - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r5, [r7] - adds r0, r0, r5 - movs r2, #0 - strh r0, [r7] - ldrh r0, [r1] - adds r0, #0x28 - strh r0, [r1] - mov r1, sb @ r1 = worldY - asrs r0, r1, #0x10 - movs r3, #0 - ldrsh r1, [r7, r3] - adds r0, r0, r1 @ r0 = worldY + iconOffset - mov r5, r8 - asrs r1, r5, #0x10 @ r1 = worldX - str r2, [sp] - ldr r2, _0801E9DC @ =sa2__sub_801EE64 - str r2, [sp, #4] - movs r2, #1 - movs r3, #8 - bl sa2__sub_801F07C - adds r1, r0, #0 - cmp r1, #0 - bge _0801E8F0 - ldrh r0, [r7] - adds r0, r0, r1 - strh r0, [r7] - movs r0, #0 - ldr r1, [sp, #0xc] - strb r0, [r1] -_0801E8F0: - ldr r2, _0801E9E0 @ =gCamera - ldrh r1, [r2] - mov r3, r8 @ r3 = r8 = worldX << 16 - asrs r0, r3, #0x10 - subs r0, r0, r1 - strh r0, [r4, #0x16] - ldrh r1, [r2, #2] - mov r5, sb @ r5 = sb = worldY << 16 - asrs r0, r5, #0x10 - subs r0, r0, r1 - ldrh r1, [r7] - adds r0, r0, r1 - strh r0, [r4, #0x18] - ldr r0, _0801E9E4 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _0801E916 - cmp r0, #5 - bne _0801E95E -_0801E916: - movs r2, #0 - ldr r1, _0801E9E8 @ =gMultiplayerPlayerTasks - ldr r0, [r1] - cmp r0, #0 - beq _0801E95E - adds r3, r1, #0 -_0801E922: - ldr r0, _0801E9EC @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r2, r0 - beq _0801E94A - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #0x12 - adds r0, r0, r1 - ldr r0, [r0, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0801E94A - movs r5, #1 - mov sl, r5 -_0801E94A: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bhi _0801E95E - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - bne _0801E922 -_0801E95E: - ldr r5, _0801E9F0 @ =gPlayer - ldr r0, [r5, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0801E974 - mov r0, sl - cmp r0, #0 - bne _0801E974 - b _0801EADC -_0801E974: - ldr r0, _0801E9F4 @ =gNumSingleplayerCharacters - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - ble _0801E998 - mov r2, r8 @ r2 = r8 = worldX << 16 - asrs r1, r2, #0x10 - mov r3, sb @ r3 = sb = worldY << 16 - asrs r2, r3, #0x10 - ldrh r0, [r7] - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r3, _0801E9F8 @ =gPartner - adds r0, r4, #0 - bl Coll_Player_Platform -_0801E998: - ldr r0, [r5, #0x10] - movs r1, #8 - mov sl, r1 - ands r0, r1 - cmp r0, #0 - beq _0801E9AA - ldr r0, [r5, #0x28] - cmp r0, r4 - beq _0801E9B6 -_0801E9AA: - ldr r0, [r5, #0x64] - ldr r1, [r0, #0x3c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0801E9FC -_0801E9B6: - mov r2, r8 @ r2 = r8 = worldX << 16 - asrs r1, r2, #0x10 - mov r3, sb @ r3 = sb = worldY << 16 - asrs r2, r3, #0x10 - ldrh r5, [r7] - adds r2, r2, r5 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldr r3, _0801E9F0 @ =gPlayer - adds r0, r4, #0 - bl Coll_Player_Platform - movs r1, #0x80 - lsls r1, r1, #9 - ands r1, r0 - cmp r1, #0 - bne _0801E9DA - b _0801EADC -_0801E9DA: - b _0801EA20 - .align 2, 0 -_0801E9DC: .4byte sa2__sub_801EE64 -_0801E9E0: .4byte gCamera -_0801E9E4: .4byte gGameMode -_0801E9E8: .4byte gMultiplayerPlayerTasks -_0801E9EC: .4byte 0x04000128 -_0801E9F0: .4byte gPlayer -_0801E9F4: .4byte gNumSingleplayerCharacters -_0801E9F8: .4byte gPartner -_0801E9FC: - mov r2, r8 @ r2 = r8 = worldX << 16 - asrs r1, r2, #0x10 - mov r3, sb @ r3 = sb = worldY << 16 - asrs r2, r3, #0x10 - ldrh r0, [r7] - adds r2, r2, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r4, #0 - adds r3, r5, #0 - bl Coll_Player_Itembox - adds r1, r0, #0 - movs r0, #0x80 - lsls r0, r0, #9 - ands r0, r1 - cmp r0, #0 - beq _0801EA32 -_0801EA20: - adds r1, r6, #0 - adds r1, #0x6e - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - movs r0, #0xff - ldr r1, [sp, #0xc] @ r1 = sp0C = &itembox->unk70 - strb r0, [r1] - b _0801EADC -_0801EA32: - movs r0, #0x28 - ands r0, r1 - cmp r0, #0 - beq _0801EADC - ldr r2, _0801EAC8 @ =gPlayer - ldr r1, [r2, #0x10] - adds r0, r1, #0 - mov r3, sl - ands r0, r3 - cmp r0, #0 - beq _0801EA5E - ldr r0, [r2, #0x28] - cmp r0, r4 - bne _0801EA5E - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #0x18 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r2, #0x10] -_0801EA5E: - ldr r2, _0801EACC @ =gPartner - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0801EA80 - ldr r0, [r2, #0x28] - cmp r0, r4 - bne _0801EA80 - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #0x18 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r2, #0x10] -_0801EA80: @ BreakItemBox() in SA2! - movs r0, #0xa7 - bl m4aSongNumStart - mov r5, r8 @ r5 = r8 = worldX << 16 - asrs r0, r5, #0x10 - mov r2, sb @ r2 = sb = worldY << 16 - asrs r1, r2, #0x10 - ldrh r7, [r7] - adds r1, r1, r7 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl CreateDustCloud - ldr r0, _0801EAD0 @ =gCurTask - ldr r1, [r0] - ldr r0, _0801EAD4 @ =Task_Itembox2 - str r0, [r1, #8] - movs r0, #0 - ldr r3, [sp, #0xc] @ r3 = sp0C = &itembox->unk70 - strb r0, [r3] - ldr r0, _0801EAD8 @ =gGameMode - ldrb r0, [r0] - cmp r0, #1 - bhi _0801EAB2 - b _0801EC0A_return -_0801EAB2: - bl CreateRoomEvent - movs r1, #2 - strb r1, [r0] - ldrh r1, [r6, #4] - strb r1, [r0, #1] - ldrh r1, [r6, #6] - strb r1, [r0, #2] - ldrb r1, [r6, #9] - strb r1, [r0, #3] - b _0801EC0A_return - .align 2, 0 -_0801EAC8: .4byte gPlayer -_0801EACC: .4byte gPartner -_0801EAD0: .4byte gCurTask -_0801EAD4: .4byte Task_Itembox2 -_0801EAD8: .4byte gGameMode -_0801EADC: - mov r5, r8 @ r5 = r8 = worldX << 16 - asrs r2, r5, #0x10 - ldr r3, _0801EB4C @ =gCamera - movs r0, #0 - ldrsh r1, [r3, r0] - movs r5, #0xb8 - lsls r5, r5, #1 - adds r0, r1, r5 - cmp r2, r0 - bgt _0801EB12 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - blt _0801EB12 - mov r0, sb @ r0 = sb = worldY << 16 - asrs r2, r0, #0x10 - movs r5, #2 - ldrsh r1, [r3, r5] - movs r3, #0x90 - lsls r3, r3, #1 - adds r0, r1, r3 - cmp r2, r0 - bgt _0801EB12 - adds r0, r1, #0 - subs r0, #0x80 - cmp r2, r0 - bge _0801EB54 -_0801EB12: - ldrh r0, [r4, #0x16] - adds r0, #0x80 - lsls r0, r0, #0x10 - movs r1, #0xf8 - lsls r1, r1, #0x11 - cmp r0, r1 - bhi _0801EB3C - movs r5, #0x18 - ldrsh r1, [r4, r5] - movs r2, #0 - ldrsh r0, [r7, r2] - adds r0, #0x80 - adds r1, r1, r0 - cmp r1, #0 - blt _0801EB3C - movs r3, #0x18 - ldrsh r1, [r4, r3] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0801EB54 -_0801EB3C: - ldrb r0, [r6, #8] - ldr r5, [sp, #8] - strb r0, [r5] - ldr r0, _0801EB50 @ =gCurTask - ldr r0, [r0] - bl TaskDestroy - b _0801EC0A_return - .align 2, 0 -_0801EB4C: .4byte gCamera -_0801EB50: .4byte gCurTask -_0801EB54: - adds r0, r4, #0 - bl DisplaySprite - adds r4, r6, #0 @ r4 = r6 = itembox - adds r4, #0x3c @ r4 = s - ldr r0, _0801EBA8 @ =gGameMode - ldrb r0, [r0] - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0801EBEA - ldr r0, _0801EBAC @ =gStageTime - ldr r3, [r0] - lsrs r0, r3, #5 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0801EBBC - ldr r2, _0801EBB0 @ =gUnknown_080BB4F0 - ldr r0, _0801EBB4 @ =gMultiplayerPseudoRandom - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r3, [r0] - adds r1, r6, #0 - adds r1, #0x71 - strb r3, [r1] - ldr r0, _0801EBB8 @ =gCurrentLevel - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x19 - adds r2, r1, #0 - cmp r0, #5 - bne _0801EBD6 - cmp r3, #8 - bne _0801EBD6 - movs r0, #0xa - strb r0, [r2] - b _0801EBD6 - .align 2, 0 -_0801EBA8: .4byte gGameMode -_0801EBAC: .4byte gStageTime -_0801EBB0: .4byte gUnknown_080BB4F0 -_0801EBB4: .4byte gMultiplayerPseudoRandom -_0801EBB8: .4byte gCurrentLevel -_0801EBBC: - ldr r2, _0801EC1C @ =gUnknown_080BB4E8 - lsrs r0, r3, #6 - ldr r1, [sp, #8] @ r1 = sp08 = me - ldrb r1, [r1, #2] - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x71 - strb r1, [r0] @ itembox->kind = - adds r2, r0, #0 -_0801EBD6: - ldr r1, _0801EC20 @ =gUnknown_080BB4D8 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x20 - strb r1, [r0] @ s->variant = gUnknown_080BB4D8[itembox->kind]; - adds r0, r4, #0 - bl UpdateSpriteAnimation -_0801EBEA: - ldr r2, _0801EC24 @ =gCamera - ldrh r1, [r2] - mov r3, r8 @ r3 = r8 = worldX << 16 - asrs r0, r3, #0x10 - subs r0, r0, r1 - strh r0, [r4, #0x16] - ldrh r1, [r2, #2] - mov r5, sb @ r5 = sb = worldY << 16 - asrs r0, r5, #0x10 - subs r0, r0, r1 - ldrh r7, [r7] - adds r0, r0, r7 - strh r0, [r4, #0x18] - adds r0, r4, #0 - bl DisplaySprite -_0801EC0A_return: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801EC1C: .4byte gUnknown_080BB4E8 -_0801EC20: .4byte gUnknown_080BB4D8 -_0801EC24: .4byte gCamera - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc b/sa1/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc deleted file mode 100644 index d5cc807780..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/sa1_Task_SpotlightBeam.inc +++ /dev/null @@ -1,582 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - ldr r0, _08011E7C @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r4, r1, r0 - ldrh r1, [r4] - ldr r0, _08011E80 @ =0x000001FF - cmp r1, r0 - bhi _08011E84 - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - subs r0, r0, r1 - b _08011E8A - .align 2, 0 -_08011E7C: .4byte gCurTask -_08011E80: .4byte 0x000001FF -_08011E84: - ldrh r0, [r4, #2] - ldrh r1, [r4, #4] - adds r0, r0, r1 -_08011E8A: - strh r0, [r4, #4] - ldrh r0, [r4, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r2, [r4] - adds r0, r0, r2 - movs r3, #0 - mov r8, r3 - ldr r3, _08011F28 @ =0x000003FF - ands r0, r3 - strh r0, [r4] - ldrb r1, [r4, #0xb] - adds r5, r0, r1 - ands r5, r3 - ldr r6, _08011F2C @ =gSineTable - movs r7, #0x80 - lsls r7, r7, #1 - adds r0, r5, r7 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r1, r0, #0x10 - cmp r1, #0 - bne _08011EBC - b _080122BA -_08011EBC: - lsls r0, r5, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - asrs r1, r1, #0x16 - str r3, [sp, #0x18] - bl Div - mov sl, r0 - add r2, sp, #0x10 - movs r1, #8 - ldrsh r0, [r4, r1] - mov sb, r0 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - mov r1, sb - muls r1, r0, r1 - asrs r1, r1, #8 - ldrh r0, [r4, #6] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r2 - ldr r3, [sp, #0x18] - cmp r0, #0 - bgt _08011F6A - mov r0, r8 - strh r0, [r2] - cmp r5, #0xff - bls _08011F34 - ldr r2, _08011F30 @ =0xFFFFFD00 - adds r1, r5, r2 - ands r1, r3 - lsls r0, r1, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - adds r1, r1, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - movs r3, #6 - ldrsh r1, [r4, r3] - b _08011FB0 - .align 2, 0 -_08011F28: .4byte 0x000003FF -_08011F2C: .4byte gSineTable -_08011F30: .4byte 0xFFFFFD00 -_08011F34: - subs r1, r7, r5 - ands r1, r3 - lsls r0, r1, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - adds r1, r1, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - movs r2, #6 - ldrsh r1, [r4, r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r1, r0, r1 - asrs r1, r1, #8 - ldrh r0, [r4, #8] - subs r0, r0, r1 - mov r3, sl - strh r0, [r3, #2] - b _08011FC8 -_08011F6A: - cmp r0, #0xef - ble _08011FC2 - movs r0, #0xf0 - mov r8, r0 - mov r2, r8 - mov r1, sl - strh r2, [r1] - cmp r5, #0xff - bls _08011F88 - ldr r0, _08011F84 @ =0xFFFFFD00 - adds r1, r5, r0 - b _08011F8A - .align 2, 0 -_08011F84: .4byte 0xFFFFFD00 -_08011F88: - subs r1, r7, r5 -_08011F8A: - ands r1, r3 - lsls r0, r1, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - adds r1, r1, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - movs r2, #6 - ldrsh r1, [r4, r2] - mov r3, r8 - subs r1, r3, r1 -_08011FB0: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r1, r0, r1 - asrs r1, r1, #8 - ldrh r0, [r4, #8] - subs r0, r0, r1 - mov r1, sl - strh r0, [r1, #2] - b _08011FC8 -_08011FC2: - mov r3, r8 - mov r2, sl - strh r3, [r2, #2] -_08011FC8: - add r1, sp, #8 - mov r2, sl - ldrh r0, [r2] - movs r3, #0 - mov sb, r3 - strb r0, [r1] - ldrh r0, [r2, #2] - strb r0, [r1, #1] - ldr r6, _08012074 @ =gSineTable - lsls r0, r5, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - movs r7, #0x80 - lsls r7, r7, #1 - adds r1, r5, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - add r3, sp, #8 - ldrb r2, [r4, #6] - movs r5, #8 - ldrsh r1, [r4, r5] - subs r1, #0xa0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - subs r2, r2, r0 - strb r2, [r3, #2] - adds r1, r3, #0 - movs r0, #0xa0 - strb r0, [r1, #3] - ldrb r1, [r4, #0xb] - ldrh r0, [r4] - subs r0, r0, r1 - movs r2, #0x80 - lsls r2, r2, #3 - adds r1, r2, #0 - subs r5, r1, r0 - ldr r3, _08012078 @ =0x000003FF - adds r0, r3, #0 - ands r5, r0 - lsls r0, r5, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - adds r1, r5, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - add r2, sp, #0x14 - movs r3, #8 - ldrsh r1, [r4, r3] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r2 - cmp r0, #0 - bgt _080120BC - mov r3, sb - strh r3, [r2] - cmp r5, #0xff - bls _08012080 - ldr r0, _0801207C @ =0xFFFFFD00 - adds r1, r5, r0 - b _08012082 - .align 2, 0 -_08012074: .4byte gSineTable -_08012078: .4byte 0x000003FF -_0801207C: .4byte 0xFFFFFD00 -_08012080: - subs r1, r7, r5 -_08012082: - ldr r0, _080120B8 @ =0x000003FF - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - adds r1, r1, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - movs r2, #6 - ldrsh r1, [r4, r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r1, r0, r1 - asrs r1, r1, #8 - ldrh r0, [r4, #8] - subs r0, r0, r1 - mov r3, r8 - strh r0, [r3, #2] - b _0801211E - .align 2, 0 -_080120B8: .4byte 0x000003FF -_080120BC: - cmp r0, #0xef - ble _08012118 - movs r0, #0xf0 - mov sb, r0 - mov r2, sb - mov r1, r8 - strh r2, [r1] - cmp r5, #0xff - bls _080120D8 - ldr r3, _080120D4 @ =0xFFFFFD00 - adds r1, r5, r3 - b _080120DA - .align 2, 0 -_080120D4: .4byte 0xFFFFFD00 -_080120D8: - subs r1, r7, r5 -_080120DA: - ldr r0, _08012114 @ =0x000003FF - ands r1, r0 - lsls r0, r1, #1 - adds r0, r0, r6 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - adds r1, r1, r7 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - movs r2, #6 - ldrsh r1, [r4, r2] - mov r3, sb - subs r1, r3, r1 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r1, r0, r1 - asrs r1, r1, #8 - ldrh r0, [r4, #8] - subs r0, r0, r1 - mov r1, r8 - strh r0, [r1, #2] - b _0801211E - .align 2, 0 -_08012114: .4byte 0x000003FF -_08012118: - mov r3, sb - mov r2, r8 - strh r3, [r2, #2] -_0801211E: - add r1, sp, #8 - mov r6, r8 - ldrh r0, [r6] - strb r0, [r1, #4] - ldrh r0, [r6, #2] - strb r0, [r1, #5] - ldr r2, _080121A4 @ =gSineTable - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - lsls r0, r0, #8 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r5, r3 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - bl Div - add r2, sp, #8 - movs r5, #8 - ldrsh r1, [r4, r5] - subs r1, #0xa0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - asrs r0, r0, #8 - ldrb r1, [r4, #6] - adds r0, r0, r1 - strb r0, [r2, #6] - adds r1, r2, #0 - movs r0, #0xa0 - strb r0, [r1, #7] - ldrh r1, [r4] - ldr r0, _080121A8 @ =0x000001FF - cmp r1, r0 - bhi _0801221C - ldrh r0, [r6, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _0801217C - b _080122BA -_0801217C: - mov r2, sl - ldrh r0, [r2, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _080121E0 - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080121B0 - ldr r2, _080121AC @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #6] - b _080121BE - .align 2, 0 -_080121A4: .4byte gSineTable -_080121A8: .4byte 0x000001FF -_080121AC: .4byte gWinRegs -_080121B0: - ldr r2, _080121DC @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #4] -_080121BE: - ldrb r0, [r4, #0xa] - add r1, sp, #8 - ldrb r1, [r1, #4] - add r2, sp, #8 - ldrb r2, [r2, #5] - add r3, sp, #8 - ldrb r3, [r3, #6] - add r4, sp, #8 - ldrb r4, [r4, #7] - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - bl sa2__sub_8006228 - b _080122BA - .align 2, 0 -_080121DC: .4byte gWinRegs -_080121E0: - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08012200 - ldr r2, _080121FC @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #6] - b _0801220E - .align 2, 0 -_080121FC: .4byte gWinRegs -_08012200: - ldr r2, _08012218 @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #5] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #4] -_0801220E: - ldrb r0, [r4, #0xa] - add r1, sp, #8 - bl sa2__sub_800724C - b _080122BA - .align 2, 0 -_08012218: .4byte gWinRegs -_0801221C: - mov r3, sl - ldrh r0, [r3, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - bgt _080122BA - mov r5, r8 - ldrh r0, [r5, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x9f - ble _08012284 - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08012254 - ldr r2, _08012250 @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #1] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #6] - b _08012262 - .align 2, 0 -_08012250: .4byte gWinRegs -_08012254: - ldr r2, _08012280 @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #1] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #4] -_08012262: - ldrb r0, [r4, #0xa] - add r1, sp, #8 - ldrb r1, [r1] - add r2, sp, #8 - ldrb r2, [r2, #1] - add r3, sp, #8 - ldrb r3, [r3, #2] - add r4, sp, #8 - ldrb r4, [r4, #3] - str r4, [sp] - movs r4, #0 - str r4, [sp, #4] - bl sa2__sub_80064A8 - b _080122BA - .align 2, 0 -_08012280: .4byte gWinRegs -_08012284: - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080122A4 - ldr r2, _080122A0 @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #1] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #6] - b _080122B2 - .align 2, 0 -_080122A0: .4byte gWinRegs -_080122A4: - ldr r2, _080122CC @ =gWinRegs - add r0, sp, #8 - ldrb r0, [r0, #1] - lsls r0, r0, #8 - movs r1, #0xa0 - orrs r0, r1 - strh r0, [r2, #4] -_080122B2: - ldrb r0, [r4, #0xa] - add r1, sp, #8 - bl sa2__sub_800724C -_080122BA: - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080122CC: .4byte gWinRegs - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc b/sa1/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc deleted file mode 100644 index 8353df0f60..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/sa1_mp_player__Task_CreateMultiplayerPlayer.inc +++ /dev/null @@ -1,1275 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - ldr r0, _080134CC @ =gCurTask - ldr r0, [r0] - ldrh r4, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r4, r0 - adds r6, r7, #0 - adds r0, #0x38 - adds r0, r4, r0 - str r0, [sp] - ldr r1, _080134D0 @ =0x03000056 - adds r3, r4, r1 - ldrb r2, [r3] - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080134D4 @ =gMultiSioRecv - adds r0, r0, r1 - mov r8, r0 - ldr r5, _080134D8 @ =gMultiSioStatusFlags - mov sb, r5 - movs r5, #1 - adds r1, r5, #0 - lsls r1, r2 - mov r2, sb - ldr r0, [r2] - ands r0, r1 - cmp r0, #0 - bne _08013448 - b _08013810 -_08013448: - ldr r0, _080134DC @ =0x03000061 - adds r2, r4, r0 - movs r1, #0 - mov sl, r1 - mov r0, sl - strb r0, [r2] - adds r1, r5, #0 - ldrb r3, [r3] - lsls r1, r3 - mov r3, sb - ldr r0, [r3] - ands r0, r1 - cmp r0, #0 - bne _08013466 - b _08013810 -_08013466: - mov r5, r8 - ldrh r1, [r5] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - beq _08013474 - b _08013810 -_08013474: - mov r0, sl - strb r0, [r2] - movs r1, #2 - ldrsh r0, [r5, r1] - ldr r2, _080134E0 @ =0x03000050 - adds r3, r4, r2 - movs r5, #0 - ldrsh r1, [r3, r5] - subs r0, r0, r1 - str r0, [r7, #0x44] - mov r1, r8 - movs r2, #4 - ldrsh r0, [r1, r2] - ldr r5, _080134E4 @ =0x03000052 - adds r2, r4, r5 - movs r5, #0 - ldrsh r1, [r2, r5] - subs r0, r0, r1 - str r0, [r7, #0x48] - mov r1, r8 - ldrh r0, [r1, #2] - strh r0, [r3] - ldrh r0, [r1, #4] - strh r0, [r2] - ldr r0, [r7, #0x44] - cmp r0, #0 - bge _080134AC - rsbs r0, r0, #0 -_080134AC: - cmp r0, #0x40 - bgt _080134BC - ldr r0, [r7, #0x48] - cmp r0, #0 - bge _080134B8 - rsbs r0, r0, #0 -_080134B8: - cmp r0, #0x40 - ble _080134E8 -_080134BC: - adds r0, r6, #0 - adds r0, #0x66 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - b _080134FC - .align 2, 0 -_080134CC: .4byte gCurTask -_080134D0: .4byte 0x03000056 -_080134D4: .4byte gMultiSioRecv -_080134D8: .4byte gMultiSioStatusFlags -_080134DC: .4byte 0x03000061 -_080134E0: .4byte 0x03000050 -_080134E4: .4byte 0x03000052 -_080134E8: - ldr r0, [r7, #0x44] - lsls r0, r0, #8 - ldr r2, _0801358C @ =0x03000066 - adds r1, r4, r2 - strh r0, [r1] - ldr r0, [r7, #0x48] - lsls r0, r0, #8 - ldr r3, _08013590 @ =0x03000068 - adds r1, r4, r3 - strh r0, [r1] -_080134FC: - adds r2, r6, #0 - adds r2, #0x57 - ldrb r1, [r2] - mov r4, r8 - ldrb r0, [r4, #0xa] - adds r4, r0, #0 - bics r4, r1 - adds r5, r4, #0 - adds r0, r4, #0 - movs r1, #2 - ands r0, r1 - mov sl, r2 - movs r2, #0x56 - adds r2, r2, r6 - mov sb, r2 - cmp r0, #0 - beq _08013526 - movs r0, #0 - ldrsb r0, [r2, r0] - bl CreateItemTask_Invincibility -_08013526: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08013538 - mov r3, sb - movs r0, #0 - ldrsb r0, [r3, r0] - bl CreateItemTask_Shield_Normal -_08013538: - movs r0, #8 - ands r4, r0 - cmp r4, #0 - beq _0801354A - mov r4, sb - movs r0, #0 - ldrsb r0, [r4, r0] - bl CreateItemTask_Shield_Magnetic -_0801354A: - movs r0, #0x50 - ands r5, r0 - cmp r5, #0 - beq _0801355C - mov r5, sb - movs r0, #0 - ldrsb r0, [r5, r0] - bl CreateItemTask_Confusion -_0801355C: - mov r1, r8 - ldrb r0, [r1, #0xa] - mov r2, sl - strb r0, [r2] - ldrh r1, [r1, #8] - adds r0, r6, #0 - adds r0, #0x54 - strh r1, [r0] - ldr r3, _08013594 @ =0x04000128 - ldr r0, [r3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - mov r4, sb - ldrb r4, [r4] - cmp r0, r4 - beq _08013598 - movs r0, #0xc0 - lsls r0, r0, #3 - ands r0, r1 - lsrs r0, r0, #9 - adds r1, r6, #0 - adds r1, #0x64 - strb r0, [r1] - b _08013644 - .align 2, 0 -_0801358C: .4byte 0x03000066 -_08013590: .4byte 0x03000068 -_08013594: .4byte 0x04000128 -_08013598: - ldr r0, [r3] - lsls r0, r0, #0x1a - adds r4, r6, #0 - adds r4, #0x64 - ldrb r2, [r4] - lsrs r0, r0, #0x1e - cmp r0, r2 - beq _08013644 - ldr r1, _08013674 @ =gMultiplayerPlayerTasks - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r5, r1, r0 - ldr r0, [r3] - lsls r0, r0, #0x1a - ldr r2, _08013678 @ =0x03000064 - adds r1, r1, r2 - lsrs r0, r0, #0x1e - ldrb r1, [r1] - cmp r0, r1 - bne _08013644 - ldr r0, [r3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - strb r0, [r4] - ldr r4, _0801367C @ =gPlayer - ldr r0, [r4, #0x10] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - subs r1, #0x18 - ands r0, r1 - movs r3, #5 - rsbs r3, r3, #0 - mov sl, r3 - ands r0, r3 - adds r1, #0x10 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - ldr r1, _08013680 @ =0xFFFFFBFF - ands r0, r1 - ldr r1, _08013684 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x40 - movs r1, #4 - strb r1, [r0] - movs r0, #0x3c - strh r0, [r4, #0x1c] - ldr r0, [r4, #0x10] - ldr r2, _08013688 @ =0xFFBFFFFF - ands r0, r2 - str r0, [r4, #0x10] - ldr r0, [r6, #0x5c] - mov r3, sl - ands r0, r3 - str r0, [r6, #0x5c] - ldr r0, [r5, #0x5c] - ands r0, r1 - cmp r0, #0 - beq _08013644 - ldr r0, [r4, #0x10] - ands r0, r2 - str r0, [r4, #0x10] - ldr r0, [r5, #0x5c] - ands r0, r3 - str r0, [r5, #0x5c] -_08013644: - ldr r0, _0801368C @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - bne _080136D4 - mov r4, r8 - ldrh r1, [r4, #6] - ldrb r3, [r4, #6] - ldr r2, _08013690 @ =gMultiplayerCharRings - mov r5, sb - ldrb r0, [r5] - adds r0, r0, r2 - lsrs r1, r1, #8 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x6a - strh r3, [r0] - ldrb r0, [r5] - cmp r0, #3 - bne _080136A0 - cmp r3, #8 - bne _08013694 - movs r3, #0xc4 - lsls r3, r3, #1 - b _080136B2 - .align 2, 0 -_08013674: .4byte gMultiplayerPlayerTasks -_08013678: .4byte 0x03000064 -_0801367C: .4byte gPlayer -_08013680: .4byte 0xFFFFFBFF -_08013684: .4byte 0xFFFFFEFF -_08013688: .4byte 0xFFBFFFFF -_0801368C: .4byte gGameMode -_08013690: .4byte gMultiplayerCharRings -_08013694: - cmp r3, #0x12 - bne _080136A0 - ldr r3, _0801369C @ =0x00000189 - b _080136B2 - .align 2, 0 -_0801369C: .4byte 0x00000189 -_080136A0: - ldr r0, _080136D0 @ =gPlayerCharacterIdleAnims - mov r5, sb - ldrb r1, [r5] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_080136B2: - adds r5, r7, #0 - adds r5, #0x20 - adds r0, r6, #0 - adds r0, #0x58 - str r0, [sp, #0x10] - movs r1, #0x22 - adds r1, r1, r7 - mov sl, r1 - adds r2, r6, #0 - adds r2, #0x50 - movs r4, #0x52 - adds r4, r4, r6 - mov ip, r4 - b _0801377A - .align 2, 0 -_080136D0: .4byte gPlayerCharacterIdleAnims -_080136D4: - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0801375C - movs r5, #0 - str r5, [sp, #8] - mov r0, r8 - ldrh r1, [r0, #6] - ldr r3, _08013750 @ =0x000003FF - ands r3, r1 - ldr r0, _08013754 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - mov r2, sb - ldrb r2, [r2] - cmp r0, r2 - beq _08013704 - lsrs r1, r1, #0xc - lsls r1, r1, #0x10 - ldr r0, [r6, #0x5c] - orrs r0, r1 - str r0, [r6, #0x5c] -_08013704: - movs r1, #0 - adds r5, r7, #0 - adds r5, #0x20 - adds r4, r6, #0 - adds r4, #0x58 - str r4, [sp, #0x10] - movs r0, #0x22 - adds r0, r0, r7 - mov sl, r0 - adds r2, r6, #0 - adds r2, #0x50 - movs r4, #0x52 - adds r4, r4, r6 - mov ip, r4 - ldr r4, [r6, #0x5c] -_08013722: - movs r0, #0x80 - lsls r0, r0, #9 - lsls r0, r1 - ands r0, r4 - cmp r0, #0 - beq _08013738 - ldr r0, [sp, #8] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #8] -_08013738: - adds r1, #1 - cmp r1, #2 - bls _08013722 - mov r1, sb - ldrb r0, [r1] - ldr r4, _08013758 @ =gMultiplayerCharRings - adds r0, r0, r4 - mov r1, sp - ldrb r1, [r1, #8] - strb r1, [r0] - b _0801377A - .align 2, 0 -_08013750: .4byte 0x000003FF -_08013754: .4byte 0x04000128 -_08013758: .4byte gMultiplayerCharRings -_0801375C: - mov r2, r8 - ldrh r3, [r2, #6] - adds r5, r7, #0 - adds r5, #0x20 - adds r4, r6, #0 - adds r4, #0x58 - str r4, [sp, #0x10] - movs r0, #0x22 - adds r0, r0, r7 - mov sl, r0 - adds r2, r6, #0 - adds r2, #0x50 - movs r1, #0x52 - adds r1, r1, r6 - mov ip, r1 -_0801377A: - mov r4, r8 - ldrb r0, [r4, #0xb] - movs r1, #7 - mov sb, r1 - mov r4, sb - ands r4, r0 - mov sb, r4 - ldrh r0, [r7, #0xa] - cmp r0, r3 - bne _08013794 - ldrb r0, [r5] - cmp r0, sb - beq _0801379C -_08013794: - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7, #0x28] - str r0, [r7, #0x30] -_0801379C: - adds r0, r6, #0 - adds r0, #0x54 - ldrh r1, [r0] - movs r4, #4 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _080137E4 - ldr r0, [r6, #0x5c] - ands r0, r4 - ldr r4, _08013808 @ =gPlayer - cmp r0, #0 - beq _080137C8 - ldr r0, [r4, #0x10] - ldr r1, _0801380C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r4, #0x10] - ldr r0, [r6, #0x5c] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r6, #0x5c] -_080137C8: - ldr r1, [r4, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080137E4 - ldr r0, [r4, #0x28] - cmp r0, r7 - bne _080137E4 - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r4, #0x10] -_080137E4: - strh r3, [r7, #0xa] - mov r0, sb - strb r0, [r5] - mov r1, r8 - ldrb r0, [r1, #0xb] - lsls r0, r0, #0x18 - asrs r0, r0, #0x1b - ldr r3, [sp, #0x10] - strb r0, [r3] - ldrb r0, [r1, #0xc] - mov r4, sl - strb r0, [r4] - ldrb r0, [r1, #0xd] - lsls r0, r0, #2 - ldr r5, [sp] - strh r0, [r5] - b _08013890 - .align 2, 0 -_08013808: .4byte gPlayer -_0801380C: .4byte 0xFFBFFFFF -_08013810: - adds r2, r6, #0 - adds r2, #0x50 - adds r0, r6, #0 - adds r0, #0x66 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - adds r4, r6, #0 - adds r4, #0x52 - adds r0, r6, #0 - adds r0, #0x68 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x18 - ldrh r3, [r4] - adds r0, r0, r3 - strh r0, [r4] - adds r3, r6, #0 - adds r3, #0x61 - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov ip, r4 - cmp r0, #0x1e - bls _08013890 - ldr r1, _08013874 @ =0x0000FFFF - movs r0, #0 - bl TasksDestroyInPriorityRange - ldr r1, _08013878 @ =gBackgroundsCopyQueueCursor - ldr r0, _0801387C @ =gBackgroundsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08013880 @ =gBgSpritesCount - movs r0, #0 - strb r0, [r1] - ldr r1, _08013884 @ =gVramGraphicsCopyCursor - ldr r0, _08013888 @ =gVramGraphicsCopyQueueIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0801388C @ =gGameMode - ldrb r0, [r0] - bl LinkCommunicationError - b _08013DB4 - .align 2, 0 -_08013874: .4byte 0x0000FFFF -_08013878: .4byte gBackgroundsCopyQueueCursor -_0801387C: .4byte gBackgroundsCopyQueueIndex -_08013880: .4byte gBgSpritesCount -_08013884: .4byte gVramGraphicsCopyCursor -_08013888: .4byte gVramGraphicsCopyQueueIndex -_0801388C: .4byte gGameMode -_08013890: - movs r3, #3 - ldr r4, _08013A60 @ =gPlayerCharacterIdleAnims - movs r5, #6 - ldrsh r0, [r4, r5] - ldrh r1, [r7, #0xa] - adds r5, r6, #0 - adds r5, #0x54 - str r5, [sp, #0xc] - ldr r5, _08013A64 @ =gCamera - cmp r0, r1 - ble _080138C4 - mov r8, r4 -_080138A8: - lsls r0, r3, #0x18 - movs r3, #0xff - lsls r3, r3, #0x18 - adds r0, r0, r3 - lsrs r3, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - blt _080138C4 - lsls r0, r0, #1 - add r0, r8 - movs r4, #0 - ldrsh r0, [r0, r4] - cmp r0, r1 - bgt _080138A8 -_080138C4: - ldrh r0, [r2] - ldrh r1, [r5] - subs r0, r0, r1 - strh r0, [r7, #0x16] - mov r1, ip - ldrh r0, [r1] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r7, #0x18] - ldrh r0, [r2] - ldrh r1, [r5] - subs r0, r0, r1 - ldr r2, [sp] - strh r0, [r2, #6] - mov r3, ip - ldrh r0, [r3] - ldrh r1, [r5, #2] - subs r0, r0, r1 - strh r0, [r2, #8] - ldr r4, [sp, #0xc] - ldrh r1, [r4] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08013908 - adds r1, r7, #0 - adds r1, #0x21 - movs r0, #0xff - strb r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7, #0x28] - str r0, [r7, #0x30] -_08013908: - adds r0, r7, #0 - bl UpdateSpriteAnimation - ldr r3, _08013A68 @ =gMultiplayerPlayerTasks - ldr r2, _08013A6C @ =0x04000128 - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r1, r1, r0 - str r1, [sp, #4] - ldr r0, _08013A70 @ =gGameMode - ldrb r0, [r0] - cmp r0, #3 - beq _08013934 - cmp r0, #5 - bne _080139C6 -_08013934: - ldr r1, _08013A74 @ =gMultiplayerRanks - ldr r0, [r2] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080139C6 - movs r5, #1 - mov sl, r5 - movs r4, #0 - ldr r0, [r3] - cmp r0, #0 - beq _080139B8 - ldr r0, _08013A78 @ =gMultiplayerConnections - ldrb r0, [r0] - mov ip, r0 - movs r0, #0x10 - mov sb, r0 - mov r8, r2 - adds r5, r3, #0 -_08013964: - ldr r0, [r5] - ldrh r0, [r0, #6] - str r0, [sp, #0x14] - mov r2, sb - lsls r2, r4 - mov r1, ip - ands r2, r1 - adds r0, r4, #4 - asrs r2, r0 - mov r3, r8 - ldr r0, [r3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - mov r1, sb - lsls r1, r0 - mov r0, ip - ands r1, r0 - ldr r0, [r3] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, #4 - asrs r1, r0 - cmp r2, r1 - bne _080139AA - ldr r1, [sp, #0x14] - ldr r2, _08013A7C @ =0x03000054 - adds r0, r1, r2 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080139AA - movs r3, #0 - mov sl, r3 -_080139AA: - adds r5, #4 - adds r4, #1 - cmp r4, #3 - bhi _080139B8 - ldr r0, [r5] - cmp r0, #0 - bne _08013964 -_080139B8: - mov r4, sl - cmp r4, #0 - beq _080139C6 - bl CreateRoomEvent - movs r1, #7 - strb r1, [r0] -_080139C6: - ldr r0, _08013A80 @ =gStageFlags - ldrh r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - ldr r4, _08013A84 @ =gPlayer - cmp r0, #0 - bne _08013ACC - ldr r5, [sp, #0xc] - ldrh r1, [r5] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08013ACC - ldr r0, [sp, #4] - adds r0, #0x57 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08013ACC - adds r0, r4, #0 - adds r0, #0x26 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08013A02 - b _08013B10 -_08013A02: - adds r0, r6, #0 - adds r0, #0x57 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08013ACC - ldr r1, [sp, #4] - ldr r0, [r1, #0x5c] - ands r0, r3 - cmp r0, #0 - bne _08013ACC - movs r3, #0x1c - ldrsh r0, [r4, r3] - cmp r0, #0 - bne _08013ACC - ldr r0, [r4, #0x10] - ands r0, r2 - cmp r0, #0 - bne _08013ACC - ldr r0, _08013A70 @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - beq _08013AAE - adds r0, r6, #0 - adds r0, #0x56 - ldrb r1, [r0] - ldr r0, _08013A6C @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r1, r0 - bne _08013A46 - b _08013BD4 -_08013A46: - ldr r0, _08013A88 @ =gMultiplayerCharacters - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - beq _08013A9C - cmp r0, #1 - bgt _08013A8C - cmp r0, #0 - beq _08013A96 - b _08013BD4 - .align 2, 0 -_08013A60: .4byte gPlayerCharacterIdleAnims -_08013A64: .4byte gCamera -_08013A68: .4byte gMultiplayerPlayerTasks -_08013A6C: .4byte 0x04000128 -_08013A70: .4byte gGameMode -_08013A74: .4byte gMultiplayerRanks -_08013A78: .4byte gMultiplayerConnections -_08013A7C: .4byte 0x03000054 -_08013A80: .4byte gStageFlags -_08013A84: .4byte gPlayer -_08013A88: .4byte gMultiplayerCharacters -_08013A8C: - cmp r0, #2 - beq _08013AA2 - cmp r0, #3 - beq _08013AA8 - b _08013BD4 -_08013A96: - bl sa2__sub_8016D20 - b _08013BD4 -_08013A9C: - bl sa2__sub_801707C - b _08013BD4 -_08013AA2: - bl sa2__sub_8017670 - b _08013BD4 -_08013AA8: - bl sa2__sub_8017C28 - b _08013BD4 -_08013AAE: - adds r1, r6, #0 - adds r1, #0x56 - ldr r0, _08013AC8 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - ldrb r1, [r1] - lsrs r0, r0, #0x1e - cmp r1, r0 - bne _08013AC2 - b _08013BD4 -_08013AC2: - bl sa2__sub_8018120 - b _08013BD4 - .align 2, 0 -_08013AC8: .4byte 0x04000128 -_08013ACC: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08013B10 - adds r0, r6, #0 - adds r0, #0x57 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08013B10 - movs r5, #0x1c - ldrsh r0, [r4, r5] - cmp r0, #0 - bne _08013B10 - ldr r0, [r4, #0x10] - ands r0, r2 - cmp r0, #0 - bne _08013B10 - ldr r1, _08013B98 @ =gMultiplayerRanks - adds r0, r6, #0 - adds r0, #0x56 - ldrb r0, [r0] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08013BD4 -_08013B10: - ldr r0, _08013B9C @ =gGameMode - ldrb r0, [r0] - cmp r0, #6 - beq _08013BB0 - adds r4, r6, #0 - adds r4, #0x56 - ldrb r1, [r4] - ldr r0, _08013BA0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - cmp r1, r0 - beq _08013B76 - ldr r0, _08013BA4 @ =gMultiplayerCharacters - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bgt _08013B76 - cmp r0, #1 - blt _08013B76 - ldr r1, [r6, #0x5c] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08013B76 - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r6, #0x5c] - ldr r2, _08013BA8 @ =gPlayer - adds r0, r2, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08013B66 - ldr r0, [r2, #0x10] - ldr r1, _08013BAC @ =0xFFBFFFFF - ands r0, r1 - str r0, [r2, #0x10] -_08013B66: - bl CreateRoomEvent - movs r2, #0 - movs r1, #8 - strb r1, [r0] - ldrb r1, [r4] - strb r1, [r0, #1] - strb r2, [r0, #2] -_08013B76: - ldr r2, _08013BA8 @ =gPlayer - ldr r1, [r2, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08013BD4 - ldr r0, [r2, #0x28] - cmp r0, r7 - bne _08013BD4 - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r2, #0x10] - b _08013BCC - .align 2, 0 -_08013B98: .4byte gMultiplayerRanks -_08013B9C: .4byte gGameMode -_08013BA0: .4byte 0x04000128 -_08013BA4: .4byte gMultiplayerCharacters -_08013BA8: .4byte gPlayer -_08013BAC: .4byte 0xFFBFFFFF -_08013BB0: - ldr r1, [r4, #0x10] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08013BD4 - ldr r0, [r4, #0x28] - cmp r0, r7 - bne _08013BD4 - movs r0, #9 - rsbs r0, r0, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - str r1, [r4, #0x10] -_08013BCC: - adds r1, r6, #0 - adds r1, #0x60 - movs r0, #0x1e - strb r0, [r1] -_08013BD4: - ldr r0, [sp, #0xc] - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08013C42 - ldr r0, [r7, #0x10] - movs r1, #0x20 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r7, #0x10] - ldr r2, _08013C18 @ =gOamMatrixIndex - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x20 - orrs r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, [r7, #0x10] - orrs r0, r1 - str r0, [r7, #0x10] - ldr r2, [sp, #0xc] - ldrh r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08013C1C - movs r0, #0xff - lsls r0, r0, #8 - ldr r3, [sp] - strh r0, [r3, #2] - b _08013C24 - .align 2, 0 -_08013C18: .4byte gOamMatrixIndex -_08013C1C: - movs r0, #0x80 - lsls r0, r0, #1 - ldr r4, [sp] - strh r0, [r4, #2] -_08013C24: - ldr r5, [sp, #0xc] - ldrh r1, [r5] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08013C38 - ldr r1, [sp] - ldrh r0, [r1, #2] - rsbs r0, r0, #0 - strh r0, [r1, #2] -_08013C38: - adds r0, r7, #0 - ldr r1, [sp] - bl TransformSprite - b _08013C88 -_08013C42: - ldr r2, [r7, #0x10] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r2, r0 - str r2, [r7, #0x10] - ldr r3, [sp, #0xc] - ldrh r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08013C60 - movs r0, #0x80 - lsls r0, r0, #3 - orrs r2, r0 - b _08013C64 -_08013C60: - ldr r0, _08013C7C @ =0xFFFFFBFF - ands r2, r0 -_08013C64: - str r2, [r7, #0x10] - ldr r4, [sp, #0xc] - ldrh r1, [r4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08013C80 - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #4 - orrs r0, r1 - b _08013C86 - .align 2, 0 -_08013C7C: .4byte 0xFFFFFBFF -_08013C80: - ldr r0, [r7, #0x10] - ldr r1, _08013DC4 @ =0xFFFFF7FF - ands r0, r1 -_08013C86: - str r0, [r7, #0x10] -_08013C88: - ldr r1, [r7, #0x10] - ldr r0, _08013DC8 @ =0xFFFFCFFF - ands r1, r0 - str r1, [r7, #0x10] - ldr r5, [sp, #0xc] - ldrh r2, [r5] - movs r0, #0x30 - ands r0, r2 - lsls r0, r0, #8 - orrs r1, r0 - str r1, [r7, #0x10] - ldrh r3, [r5] - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - beq _08013CAA - b _08013DB4 -_08013CAA: - ldr r0, _08013DCC @ =gStageTime - ldr r0, [r0] - movs r4, #2 - ands r0, r4 - movs r1, #0x57 - adds r1, r1, r6 - mov sl, r1 - cmp r0, #0 - bne _08013CFE - ldrb r1, [r1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08013CFE - ldr r2, [r6, #0x5c] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _08013CFE - ldr r1, _08013DD0 @ =gMultiplayerRanks - adds r0, r6, #0 - adds r0, #0x56 - ldrb r0, [r0] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08013CFE - adds r0, r6, #0 - adds r0, #0x60 - ldrb r0, [r0] - cmp r0, #0 - bne _08013DB4 - movs r0, #4 - ands r0, r3 - cmp r0, #0 - bne _08013DB4 - ands r2, r4 - cmp r2, #0 - bne _08013DB4 -_08013CFE: - ldr r2, [sp, #0xc] - ldrh r1, [r2] - movs r0, #0x80 - ands r0, r1 - movs r3, #0x80 - lsls r3, r3, #3 - adds r1, r3, #0 - cmp r0, #0 - beq _08013D16 - movs r4, #0x88 - lsls r4, r4, #3 - adds r1, r4, #0 -_08013D16: - strh r1, [r7, #0x1a] - ldr r0, [r7, #0x10] - ldr r1, _08013DD4 @ =0xFFFFFE7F - ands r0, r1 - str r0, [r7, #0x10] - mov r5, sl - ldrb r1, [r5] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08013DAE - ldr r0, _08013DD8 @ =gGameMode - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #3 - beq _08013D3A - cmp r1, #5 - bne _08013D6A -_08013D3A: - ldr r0, _08013DDC @ =gMultiplayerConnections - ldrb r3, [r0] - adds r0, r6, #0 - adds r0, #0x56 - ldrb r0, [r0] - movs r2, #0x10 - adds r1, r2, #0 - lsls r1, r0 - ands r1, r3 - adds r0, #4 - asrs r1, r0 - ldr r4, _08013DE0 @ =0x04000128 - ldr r0, [r4] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r2, r0 - ands r3, r2 - ldr r0, [r4] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, #4 - asrs r3, r0 - cmp r1, r3 - bne _08013D74 -_08013D6A: - ldrb r0, [r5] - cmp r0, #3 - beq _08013DAE - cmp r0, #5 - beq _08013DAE -_08013D74: - adds r0, r6, #0 - adds r0, #0x60 - ldrb r0, [r0] - cmp r0, #0 - bne _08013DAE - adds r1, r6, #0 - adds r1, #0x56 - ldr r0, _08013DE0 @ =0x04000128 - ldr r0, [r0] - lsls r0, r0, #0x1a - ldrb r1, [r1] - lsrs r0, r0, #0x1e - cmp r1, r0 - beq _08013DAE - ldr r0, [r7, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r7, #0x10] - ldr r2, _08013DE4 @ =gDispCnt - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08013DE8 @ =gWinRegs - ldr r0, _08013DEC @ =0x0000083F - strh r0, [r1, #0xa] -_08013DAE: - adds r0, r7, #0 - bl DisplaySprite -_08013DB4: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08013DC4: .4byte 0xFFFFF7FF -_08013DC8: .4byte 0xFFFFCFFF -_08013DCC: .4byte gStageTime -_08013DD0: .4byte gMultiplayerRanks -_08013DD4: .4byte 0xFFFFFE7F -_08013DD8: .4byte gGameMode -_08013DDC: .4byte gMultiplayerConnections -_08013DE0: .4byte 0x04000128 -_08013DE4: .4byte gDispCnt -_08013DE8: .4byte gWinRegs -_08013DEC: .4byte 0x0000083F - -.syntax divided diff --git a/sa1/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc b/sa1/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc deleted file mode 100644 index 66a530319b..0000000000 --- a/sa1/asm/non_matching/game/shared/stage/sa1_mp_player__sa2__sub_8017670.inc +++ /dev/null @@ -1,757 +0,0 @@ -.include "constants/constants.inc" - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x24 - ldr r2, _080147EC @ =gPlayer - ldr r0, [r2, #0x64] - adds r0, #0xc - mov r8, r0 - ldr r0, _080147F0 @ =gCurTask - ldr r0, [r0] - ldrh r1, [r0, #6] - movs r0, #0xc0 - lsls r0, r0, #0x12 - adds r7, r1, r0 - mov sb, r7 - ldr r1, [r2, #0x10] - lsrs r0, r1, #5 - str r0, [sp, #0x14] - movs r0, #1 - ldr r3, [sp, #0x14] - ands r3, r0 - str r3, [sp, #0x14] - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0801477E - ldr r0, [r2, #0x28] - cmp r0, r7 - bne _0801477E - bl sa2__sub_8017F34 -_0801477E: - ldr r0, _080147F4 @ =gGameMode - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #3 - beq _0801478C - cmp r1, #5 - bne _080147BC -_0801478C: - ldr r0, _080147F8 @ =gMultiplayerConnections - ldrb r3, [r0] - adds r0, r7, #0 - adds r0, #0x56 - ldrb r0, [r0] - movs r2, #0x10 - adds r1, r2, #0 - lsls r1, r0 - ands r1, r3 - adds r0, #4 - asrs r1, r0 - ldr r4, _080147FC @ =0x04000128 - ldr r0, [r4] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - lsls r2, r0 - ands r3, r2 - ldr r0, [r4] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1e - adds r0, #4 - asrs r3, r0 - cmp r1, r3 - bne _080147C6 -_080147BC: - ldrb r0, [r5] - cmp r0, #3 - beq _08014800 - cmp r0, #5 - beq _08014800 -_080147C6: - bl sa2__sub_8018300 - cmp r0, #0 - bne _080147D0 - b _08014CFC -_080147D0: - ldr r0, [r7, #0x4c] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080147DC - b _08014CFC -_080147DC: - ldr r2, _080147EC @ =gPlayer - ldr r0, [r2, #0x10] - subs r1, #0x41 - ands r0, r1 - str r0, [r2, #0x10] - movs r0, #0 - str r0, [r7, #0x4c] - b _08014CFC - .align 2, 0 -_080147EC: .4byte gPlayer -_080147F0: .4byte gCurTask -_080147F4: .4byte gGameMode -_080147F8: .4byte gMultiplayerConnections -_080147FC: .4byte 0x04000128 -_08014800: - ldr r6, _08014870 @ =gPlayer - adds r0, r6, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08014820 - adds r0, r6, #0 - adds r0, #0x59 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08014820 - b _08014CFC -_08014820: - adds r1, r7, #0 - adds r1, #0x60 - ldrb r2, [r1] - str r1, [sp, #0x20] - cmp r2, #0 - beq _08014838 - ldr r5, [r7, #0x5c] - movs r0, #4 - ands r5, r0 - cmp r5, #0 - bne _08014838 - b _08014C98 -_08014838: - movs r5, #0 - strb r5, [r1] - ldr r0, _08014874 @ =0xFFFFFEFC - adds r4, r0, #0 - mov r1, sb - ldrh r1, [r1, #0xa] - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _0801489C - bl sa2__sub_80181E0 - cmp r0, #0 - beq _08014878 - ldr r0, [r7, #0x4c] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08014862 - b _08014CFC -_08014862: - ldr r0, [r6, #0x10] - subs r1, #0x41 - ands r0, r1 - str r0, [r6, #0x10] - str r5, [r7, #0x4c] - b _08014CFC - .align 2, 0 -_08014870: .4byte gPlayer -_08014874: .4byte 0xFFFFFEFC -_08014878: - mov r2, sb - ldrh r2, [r2, #0xa] - adds r0, r4, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bls _0801489C - mov r3, r8 - ldr r0, [r3, #0x30] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0801489C - mov r4, sb - ldr r0, [r4, #0x30] - cmp r0, r1 - beq _0801489C - b _08014CFC -_0801489C: - ldr r0, _080149A8 @ =gPlayer - mov sl, r0 - ldrb r4, [r0, #0xe] - rsbs r0, r4, #0 - add r1, sp, #0x10 - strb r0, [r1] - mov r2, sl - ldrb r3, [r2, #0xf] - rsbs r2, r3, #0 - mov r0, sp - adds r0, #0x11 - strb r2, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r3, [r0] - add r0, sp, #0xc - movs r2, #4 - bl memcpy - movs r3, #0x50 - adds r3, r3, r7 - mov r8, r3 - movs r4, #0 - ldrsh r1, [r3, r4] - adds r6, r7, #0 - adds r6, #0x52 - movs r0, #0 - ldrsh r2, [r6, r0] - adds r0, r7, #0 - adds r0, #0x66 - movs r4, #0 - ldrsh r3, [r0, r4] - adds r0, #2 - movs r4, #0 - ldrsh r0, [r0, r4] - str r0, [sp] - adds r5, r7, #0 - adds r5, #0x54 - ldrh r0, [r5] - lsrs r0, r0, #7 - movs r4, #1 - ands r0, r4 - str r0, [sp, #4] - str r4, [sp, #8] - mov r0, sb - bl sa2__sub_800D0A0 - adds r2, r0, #0 - ldr r0, [r7, #0x4c] - movs r1, #0x20 - ands r0, r1 - mov r3, r8 - str r3, [sp, #0x18] - str r6, [sp, #0x1c] - mov r8, r5 - cmp r0, #0 - beq _08014922 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08014922 - mov r4, sl - ldr r0, [r4, #0x10] - subs r1, #0x41 - ands r0, r1 - str r0, [r4, #0x10] -_08014922: - str r2, [r7, #0x4c] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r0, r2 - cmp r0, #0 - beq _08014934 - movs r0, #0x1e - ldr r1, [sp, #0x20] - strb r0, [r1] -_08014934: - ldr r2, [sp, #0x18] - movs r3, #0 - ldrsh r1, [r2, r3] - ldr r4, [sp, #0x1c] - movs r0, #0 - ldrsh r2, [r4, r0] - ldr r5, _080149A8 @ =gPlayer - add r3, sp, #0xc - str r3, [sp] - mov r0, sb - adds r3, r5, #0 - bl Coll_Player_Entity_RectIntersection - cmp r0, #0 - bne _08014954 - b _08014A6A -_08014954: - mov r4, r8 - ldrh r0, [r4] - lsls r2, r0, #0x10 - lsrs r0, r2, #0x17 - movs r4, #1 - ands r0, r4 - adds r1, r5, #0 - adds r1, #0x27 - ldrb r1, [r1] - cmp r0, r1 - beq _0801496C - b _08014A6A -_0801496C: - ldr r1, _080149AC @ =0xFFFFFEFC - adds r0, r1, #0 - mov r3, sb - ldrh r3, [r3, #0xa] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #2 - bhi _08014A6A - ldr r0, _080149B0 @ =gStageFlags - ldrh r3, [r0] - lsrs r1, r3, #7 - ands r1, r4 - lsrs r2, r2, #0x13 - adds r0, r4, #0 - bics r0, r2 - cmp r1, r0 - beq _08014A6A - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _080149B4 - ldr r0, [r5, #4] - asrs r0, r0, #8 - ldr r4, [sp, #0x1c] - movs r2, #0 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _080149C2 - b _08014A6A - .align 2, 0 -_080149A8: .4byte gPlayer -_080149AC: .4byte 0xFFFFFEFC -_080149B0: .4byte gStageFlags -_080149B4: - ldr r0, [r5, #4] - asrs r0, r0, #8 - ldr r3, [sp, #0x1c] - movs r4, #0 - ldrsh r1, [r3, r4] - cmp r0, r1 - bge _08014A6A -_080149C2: - ldr r4, _08014A10 @ =gPlayer - ldr r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0xe - bl Player_HandleSpriteYOffsetChange - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #0xe - strb r0, [r4, #0xf] - adds r2, r4, #0 - movs r1, #0 - movs r0, #0 - strh r0, [r2, #0xc] - strh r0, [r2, #8] - adds r0, r2, #0 - adds r0, #0x40 - strb r1, [r0] - subs r0, #3 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - mov r1, sb - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08014A14 - ldr r0, [r2, #0x10] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x10] - b _08014A1C - .align 2, 0 -_08014A10: .4byte gPlayer -_08014A14: - ldr r0, [r4, #0x10] - movs r1, #1 - orrs r0, r1 - str r0, [r4, #0x10] -_08014A1C: - ldr r0, [r7, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08014A62 - bl CreateRoomEvent - movs r1, #8 - strb r1, [r0] - adds r1, r7, #0 - adds r1, #0x56 - ldrb r1, [r1] - strb r1, [r0, #1] - movs r1, #1 - strb r1, [r0, #2] - ldr r0, _08014A50 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08014A58 - ldr r0, [r7, #0x5c] - ldr r1, _08014A54 @ =0xFFFFFEFF - ands r0, r1 - b _08014A60 - .align 2, 0 -_08014A50: .4byte gStageFlags -_08014A54: .4byte 0xFFFFFEFF -_08014A58: - ldr r0, [r7, #0x5c] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 -_08014A60: - str r0, [r7, #0x5c] -_08014A62: - ldr r0, [r7, #0x5c] - movs r1, #4 - orrs r0, r1 - str r0, [r7, #0x5c] -_08014A6A: - ldr r0, [r7, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08014A76 - b _08014CFC -_08014A76: - ldr r6, _08014A98 @ =gPlayer - adds r0, r6, #0 - bl Player_TryJump - cmp r0, #0 - beq _08014AA0 - movs r0, #0x1e - ldr r2, [sp, #0x20] - strb r0, [r2] - ldr r0, [r6, #0x10] - ldr r1, _08014A9C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r6, #0x10] - ldr r0, [r7, #0x5c] - movs r1, #5 - rsbs r1, r1, #0 - b _08014C7C - .align 2, 0 -_08014A98: .4byte gPlayer -_08014A9C: .4byte 0xFFBFFFFF -_08014AA0: - ldr r3, _08014B3C @ =0xFFFFFEFC - adds r0, r3, #0 - mov r4, sb - ldrh r4, [r4, #0xa] - adds r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r5, _08014B40 @ =gStageFlags - cmp r0, #2 - bhi _08014AF4 - ldr r0, [r6] - asrs r1, r0, #8 - ldr r2, _08014B44 @ =gCamera - movs r3, #0x18 - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _08014AF4 - movs r4, #0x1a - ldrsh r0, [r2, r4] - cmp r1, r0 - bge _08014AF4 - ldrh r4, [r5] - lsrs r0, r4, #7 - movs r3, #1 - adds r2, r3, #0 - bics r2, r0 - mov r1, r8 - ldrh r0, [r1] - lsrs r0, r0, #3 - adds r1, r3, #0 - bics r1, r0 - cmp r2, r1 - bne _08014AF4 - ldr r1, [r7, #0x5c] - lsrs r1, r1, #8 - adds r0, r3, #0 - bics r0, r1 - cmp r0, r2 - bne _08014AF4 - ldr r2, [sp, #0x14] - cmp r2, #0 - beq _08014B50 -_08014AF4: - ldr r2, _08014B48 @ =gPlayer - ldr r0, [r2, #0x10] - ldr r1, _08014B4C @ =0xFFBFFFFF - ands r0, r1 - str r0, [r2, #0x10] - ldr r0, [r7, #0x5c] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r7, #0x5c] - adds r2, #0x40 - movs r0, #0 - strb r0, [r2] - ldrh r0, [r5] - lsrs r0, r0, #7 - movs r3, #1 - adds r2, r3, #0 - bics r2, r0 - mov r4, r8 - ldrh r1, [r4] - lsrs r1, r1, #3 - adds r0, r3, #0 - bics r0, r1 - cmp r2, r0 - bne _08014B34 - ldr r1, [r7, #0x5c] - lsrs r1, r1, #8 - adds r0, r3, #0 - bics r0, r1 - cmp r0, r2 - bne _08014B34 - b _08014CFC -_08014B34: - movs r0, #0x1e - ldr r1, [sp, #0x20] - strb r0, [r1] - b _08014CFC - .align 2, 0 -_08014B3C: .4byte 0xFFFFFEFC -_08014B40: .4byte gStageFlags -_08014B44: .4byte gCamera -_08014B48: .4byte gPlayer -_08014B4C: .4byte 0xFFBFFFFF -_08014B50: - movs r2, #0xf - ldrsb r2, [r6, r2] - movs r0, #0x80 - ands r0, r4 - ldr r3, [sp, #0x18] - movs r4, #0 - ldrsh r1, [r3, r4] - lsls r1, r1, #8 - mov r8, r1 - cmp r0, #0 - bne _08014BAC - ldr r1, [sp, #0x1c] - movs r3, #0 - ldrsh r0, [r1, r3] - mov r1, sb - adds r1, #0x2d - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - add r1, sp, #0xc - ldrb r1, [r1, #3] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r0, r0, r1 - lsls r5, r0, #8 - subs r0, r0, r2 - mov r4, r8 - asrs r1, r4, #8 - adds r2, r6, #0 - adds r2, #0x27 - ldrb r2, [r2] - movs r3, #8 - rsbs r3, r3, #0 - ldr r4, _08014BA8 @ =sa2__sub_801EC3C - str r4, [sp] - bl sa2__sub_801F100 - cmp r0, #0 - bge _08014BFC - lsls r0, r0, #8 - subs r5, r5, r0 - b _08014BE8 - .align 2, 0 -_08014BA8: .4byte sa2__sub_801EC3C -_08014BAC: - ldr r1, [sp, #0x1c] - movs r3, #0 - ldrsh r0, [r1, r3] - mov r1, sb - adds r1, #0x2f - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - add r1, sp, #0xc - ldrb r1, [r1, #3] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - lsls r5, r0, #8 - adds r0, r0, r2 - mov r4, r8 - asrs r1, r4, #8 - adds r2, r6, #0 - adds r2, #0x27 - ldrb r2, [r2] - ldr r3, _08014C3C @ =sa2__sub_801EC3C - str r3, [sp] - movs r3, #8 - bl sa2__sub_801F100 - cmp r0, #0 - bge _08014BFC - lsls r0, r0, #8 - adds r5, r5, r0 -_08014BE8: - ldr r0, [r6, #0x10] - ldr r1, _08014C40 @ =0xFFBFFFFF - ands r0, r1 - movs r1, #2 - orrs r0, r1 - str r0, [r6, #0x10] - ldr r0, [r7, #0x5c] - subs r1, #7 - ands r0, r1 - str r0, [r7, #0x5c] -_08014BFC: - ldr r3, _08014C44 @ =gPlayer - mov r0, r8 - str r0, [r3] - str r5, [r3, #4] - ldr r0, [r7, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _08014C58 - ldr r2, [r3, #0x10] - movs r0, #8 - orrs r2, r0 - subs r0, #0xd - ands r2, r0 - adds r0, #2 - ands r2, r0 - str r2, [r3, #0x10] - mov r1, sb - str r1, [r3, #0x28] - movs r0, #0 - strh r0, [r3, #0xa] - ldr r0, [r1, #0x10] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08014C48 - movs r0, #2 - rsbs r0, r0, #0 - ands r2, r0 - b _08014C4C - .align 2, 0 -_08014C3C: .4byte sa2__sub_801EC3C -_08014C40: .4byte 0xFFBFFFFF -_08014C44: .4byte gPlayer -_08014C48: - movs r0, #1 - orrs r2, r0 -_08014C4C: - str r2, [r3, #0x10] - ldr r0, [r7, #0x5c] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _08014C6C -_08014C58: - bl CreateRoomEvent - movs r2, #0 - movs r1, #8 - strb r1, [r0] - adds r1, r7, #0 - adds r1, #0x56 - ldrb r1, [r1] - strb r1, [r0, #1] - strb r2, [r0, #2] -_08014C6C: - ldr r0, _08014C84 @ =gStageFlags - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08014C8C - ldr r0, [r7, #0x5c] - ldr r1, _08014C88 @ =0xFFFFFEFF -_08014C7C: - ands r0, r1 - str r0, [r7, #0x5c] - b _08014CFC - .align 2, 0 -_08014C84: .4byte gStageFlags -_08014C88: .4byte 0xFFFFFEFF -_08014C8C: - ldr r0, [r7, #0x5c] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r7, #0x5c] - b _08014CFC -_08014C98: - subs r0, r2, #1 - strb r0, [r1] - ldr r0, [r6, #0x10] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08014CFC - ldr r0, [r6, #0x28] - cmp r0, sb - bne _08014CFC - adds r0, r7, #0 - adds r0, #0x50 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, #2 - movs r3, #0 - ldrsh r2, [r0, r3] - adds r0, #0x14 - movs r4, #0 - ldrsh r3, [r0, r4] - adds r0, #2 - movs r4, #0 - ldrsh r0, [r0, r4] - str r0, [sp] - adds r0, r7, #0 - adds r0, #0x54 - ldrh r0, [r0] - lsrs r0, r0, #7 - movs r4, #1 - ands r0, r4 - str r0, [sp, #4] - str r5, [sp, #8] - mov r0, sb - bl sa2__sub_800D0A0 - adds r2, r0, #0 - ldr r0, [r7, #0x4c] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08014CFA - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08014CFA - ldr r0, [r6, #0x10] - subs r1, #0x41 - ands r0, r1 - str r0, [r6, #0x10] -_08014CFA: - str r2, [r7, #0x4c] -_08014CFC: - add sp, #0x24 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/sa1/chao_garden/include/program_params.h b/sa1/chao_garden/include/program_params.h deleted file mode 100644 index f58f057bf0..0000000000 --- a/sa1/chao_garden/include/program_params.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_TCG_PROGRAM_PARAMS_H -#define GUARD_TCG_PROGRAM_PARAMS_H - -#define TinyChaoGardenConfig ((u32 *)(EWRAM_START + 0x8)) - -#endif // GUARD_TCG_PROGRAM_PARAMS_H \ No newline at end of file diff --git a/sa1/constants/constants.inc b/sa1/constants/constants.inc deleted file mode 100644 index d8d22946bf..0000000000 --- a/sa1/constants/constants.inc +++ /dev/null @@ -1,3 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/misc_constants.inc" - .include "constants/multi_sio_constants.inc" diff --git a/sa1/constants/gba_constants.inc b/sa1/constants/gba_constants.inc deleted file mode 100644 index 2dd7c816b5..0000000000 --- a/sa1/constants/gba_constants.inc +++ /dev/null @@ -1,495 +0,0 @@ - .set PSR_USR_MODE, 0x00000010 - .set PSR_FIQ_MODE, 0x00000011 - .set PSR_IRQ_MODE, 0x00000012 - .set PSR_SVC_MODE, 0x00000013 - .set PSR_ABT_MODE, 0x00000017 - .set PSR_UND_MODE, 0x0000001b - .set PSR_SYS_MODE, 0x0000001f - .set PSR_MODE_MASK, 0x0000001f - .set PSR_T_BIT, 0x00000020 - .set PSR_F_BIT, 0x00000040 - .set PSR_I_BIT, 0x00000080 - - .set EWRAM_START, 0x2000000 - .set EWRAM_END, EWRAM_START + 0x40000 - .set IWRAM_START, 0x3000000 - .set IWRAM_END, IWRAM_START + 0x8000 - - .set PLTT, 0x5000000 - .set BG_PLTT, PLTT - .set OBJ_PLTT, PLTT + 0x200 - - .set VRAM, 0x6000000 - .set BG_VRAM, VRAM - .set OBJ_VRAM0, VRAM + 0x10000 @ text-mode BG - .set OBJ_VRAM1, VRAM + 0x14000 @ bitmap-mode BG - - .set OAM, 0x7000000 - - .set SOUND_INFO_PTR, 0x3007FF0 - .set INTR_CHECK, 0x3007FF8 - .set INTR_VECTOR, 0x3007FFC - - .set INTR_FLAG_VBLANK, 1 << 0 - .set INTR_FLAG_HBLANK, 1 << 1 - .set INTR_FLAG_VCOUNT, 1 << 2 - .set INTR_FLAG_TIMER0, 1 << 3 - .set INTR_FLAG_TIMER1, 1 << 4 - .set INTR_FLAG_TIMER2, 1 << 5 - .set INTR_FLAG_TIMER3, 1 << 6 - .set INTR_FLAG_SERIAL, 1 << 7 - .set INTR_FLAG_DMA0, 1 << 8 - .set INTR_FLAG_DMA1, 1 << 9 - .set INTR_FLAG_DMA2, 1 << 10 - .set INTR_FLAG_DMA3, 1 << 11 - .set INTR_FLAG_KEYPAD, 1 << 12 - .set INTR_FLAG_GAMEPAK, 1 << 13 - - .set VCOUNT_VBLANK, 160 - .set TOTAL_SCANLINES, 228 - - .set REG_BASE, 0x4000000 @ I/O register base address - -@ I/O register offsets - .set OFFSET_REG_DISPCNT, 0x0 - .set OFFSET_REG_DISPSTAT, 0x4 - .set OFFSET_REG_VCOUNT, 0x6 - .set OFFSET_REG_BG0CNT, 0x8 - .set OFFSET_REG_BG1CNT, 0xa - .set OFFSET_REG_BG2CNT, 0xc - .set OFFSET_REG_BG3CNT, 0xe - .set OFFSET_REG_BG0HOFS, 0x10 - .set OFFSET_REG_BG0VOFS, 0x12 - .set OFFSET_REG_BG1HOFS, 0x14 - .set OFFSET_REG_BG1VOFS, 0x16 - .set OFFSET_REG_BG2HOFS, 0x18 - .set OFFSET_REG_BG2VOFS, 0x1a - .set OFFSET_REG_BG3HOFS, 0x1c - .set OFFSET_REG_BG3VOFS, 0x1e - .set OFFSET_REG_BG2PA, 0x20 - .set OFFSET_REG_BG2PB, 0x22 - .set OFFSET_REG_BG2PC, 0x24 - .set OFFSET_REG_BG2PD, 0x26 - .set OFFSET_REG_BG2X_L, 0x28 - .set OFFSET_REG_BG2X_H, 0x2a - .set OFFSET_REG_BG2Y_L, 0x2c - .set OFFSET_REG_BG2Y_H, 0x2e - .set OFFSET_REG_BG3PA, 0x30 - .set OFFSET_REG_BG3PB, 0x32 - .set OFFSET_REG_BG3PC, 0x34 - .set OFFSET_REG_BG3PD, 0x36 - .set OFFSET_REG_BG3X_L, 0x38 - .set OFFSET_REG_BG3X_H, 0x3a - .set OFFSET_REG_BG3Y_L, 0x3c - .set OFFSET_REG_BG3Y_H, 0x3e - .set OFFSET_REG_WIN0H, 0x40 - .set OFFSET_REG_WIN1H, 0x42 - .set OFFSET_REG_WIN0V, 0x44 - .set OFFSET_REG_WIN1V, 0x46 - .set OFFSET_REG_WININ, 0x48 - .set OFFSET_REG_WINOUT, 0x4a - .set OFFSET_REG_MOSAIC, 0x4c - .set OFFSET_REG_BLDCNT, 0x50 - .set OFFSET_REG_BLDALPHA, 0x52 - .set OFFSET_REG_BLDY, 0x54 - - .set OFFSET_REG_SOUND1CNT, 0x60 - .set OFFSET_REG_SOUND1CNT_L, 0x60 - .set OFFSET_REG_NR10, 0x60 - .set OFFSET_REG_SOUND1CNT_H, 0x62 - .set OFFSET_REG_NR11, 0x62 - .set OFFSET_REG_NR12, 0x63 - .set OFFSET_REG_SOUND1CNT_X, 0x64 - .set OFFSET_REG_NR13, 0x64 - .set OFFSET_REG_NR14, 0x65 - .set OFFSET_REG_SOUND2CNT, 0x68 - .set OFFSET_REG_SOUND2CNT_L, 0x68 - .set OFFSET_REG_NR21, 0x68 - .set OFFSET_REG_NR22, 0x69 - .set OFFSET_REG_SOUND2CNT_H, 0x6c - .set OFFSET_REG_NR23, 0x6c - .set OFFSET_REG_NR24, 0x6d - .set OFFSET_REG_SOUND3CNT, 0x70 - .set OFFSET_REG_SOUND3CNT_L, 0x70 - .set OFFSET_REG_NR30, 0x70 - .set OFFSET_REG_SOUND3CNT_H, 0x72 - .set OFFSET_REG_NR31, 0x72 - .set OFFSET_REG_NR32, 0x73 - .set OFFSET_REG_SOUND3CNT_X, 0x74 - .set OFFSET_REG_NR33, 0x74 - .set OFFSET_REG_NR34, 0x75 - .set OFFSET_REG_SOUND4CNT, 0x78 - .set OFFSET_REG_SOUND4CNT_L, 0x78 - .set OFFSET_REG_NR41, 0x78 - .set OFFSET_REG_NR42, 0x79 - .set OFFSET_REG_SOUND4CNT_H, 0x7c - .set OFFSET_REG_NR43, 0x7c - .set OFFSET_REG_NR44, 0x7d - .set OFFSET_REG_SOUNDCNT, 0x80 - .set OFFSET_REG_SOUNDCNT_L, 0x80 - .set OFFSET_REG_NR50, 0x80 - .set OFFSET_REG_NR51, 0x81 - .set OFFSET_REG_SOUNDCNT_H, 0x82 - .set OFFSET_REG_SOUNDCNT_X, 0x84 - .set OFFSET_REG_NR52, 0x84 - .set OFFSET_REG_SOUNDBIAS, 0x88 - .set OFFSET_REG_WAVE_RAM, 0x90 - .set OFFSET_REG_WAVE_RAM0, 0x90 - .set OFFSET_REG_WAVE_RAM0_L, 0x90 - .set OFFSET_REG_WAVE_RAM0_H, 0x92 - .set OFFSET_REG_WAVE_RAM1, 0x94 - .set OFFSET_REG_WAVE_RAM1_L, 0x94 - .set OFFSET_REG_WAVE_RAM1_H, 0x96 - .set OFFSET_REG_WAVE_RAM2, 0x98 - .set OFFSET_REG_WAVE_RAM2_L, 0x98 - .set OFFSET_REG_WAVE_RAM2_H, 0x9a - .set OFFSET_REG_WAVE_RAM3, 0x9c - .set OFFSET_REG_WAVE_RAM3_L, 0x9c - .set OFFSET_REG_WAVE_RAM3_H, 0x9e - .set OFFSET_REG_FIFO, 0xa0 - .set OFFSET_REG_FIFO_A, 0xa0 - .set OFFSET_REG_FIFO_A_L, 0xa0 - .set OFFSET_REG_FIFO_A_H, 0xa2 - .set OFFSET_REG_FIFO_B, 0xa4 - .set OFFSET_REG_FIFO_B_L, 0xa4 - .set OFFSET_REG_FIFO_B_H, 0xa6 - - .set OFFSET_REG_DMA0, 0xb0 - .set OFFSET_REG_DMA0SAD, 0xb0 - .set OFFSET_REG_DMA0SAD_L, 0xb0 - .set OFFSET_REG_DMA0SAD_H, 0xb2 - .set OFFSET_REG_DMA0DAD, 0xb4 - .set OFFSET_REG_DMA0DAD_L, 0xb4 - .set OFFSET_REG_DMA0DAD_H, 0xb6 - .set OFFSET_REG_DMA0CNT, 0xb8 - .set OFFSET_REG_DMA0CNT_L, 0xb8 - .set OFFSET_REG_DMA0CNT_H, 0xba - .set OFFSET_REG_DMA1, 0xbc - .set OFFSET_REG_DMA1SAD, 0xbc - .set OFFSET_REG_DMA1SAD_L, 0xbc - .set OFFSET_REG_DMA1SAD_H, 0xbe - .set OFFSET_REG_DMA1DAD, 0xc0 - .set OFFSET_REG_DMA1DAD_L, 0xc0 - .set OFFSET_REG_DMA1DAD_H, 0xc2 - .set OFFSET_REG_DMA1CNT, 0xc4 - .set OFFSET_REG_DMA1CNT_L, 0xc4 - .set OFFSET_REG_DMA1CNT_H, 0xc6 - .set OFFSET_REG_DMA2, 0xc8 - .set OFFSET_REG_DMA2SAD, 0xc8 - .set OFFSET_REG_DMA2SAD_L, 0xc8 - .set OFFSET_REG_DMA2SAD_H, 0xca - .set OFFSET_REG_DMA2DAD, 0xcc - .set OFFSET_REG_DMA2DAD_L, 0xcc - .set OFFSET_REG_DMA2DAD_H, 0xce - .set OFFSET_REG_DMA2CNT, 0xd0 - .set OFFSET_REG_DMA2CNT_L, 0xd0 - .set OFFSET_REG_DMA2CNT_H, 0xd2 - .set OFFSET_REG_DMA3, 0xd4 - .set OFFSET_REG_DMA3SAD, 0xd4 - .set OFFSET_REG_DMA3SAD_L, 0xd4 - .set OFFSET_REG_DMA3SAD_H, 0xd6 - .set OFFSET_REG_DMA3DAD, 0xd8 - .set OFFSET_REG_DMA3DAD_L, 0xd8 - .set OFFSET_REG_DMA3DAD_H, 0xda - .set OFFSET_REG_DMA3CNT, 0xdc - .set OFFSET_REG_DMA3CNT_L, 0xdc - .set OFFSET_REG_DMA3CNT_H, 0xde - - .set OFFSET_REG_TM0CNT, 0x100 - .set OFFSET_REG_TM0CNT_L, 0x100 - .set OFFSET_REG_TM0CNT_H, 0x102 - .set OFFSET_REG_TM1CNT, 0x104 - .set OFFSET_REG_TM1CNT_L, 0x104 - .set OFFSET_REG_TM1CNT_H, 0x106 - .set OFFSET_REG_TM2CNT, 0x108 - .set OFFSET_REG_TM2CNT_L, 0x108 - .set OFFSET_REG_TM2CNT_H, 0x10a - .set OFFSET_REG_TM3CNT, 0x10c - .set OFFSET_REG_TM3CNT_L, 0x10c - .set OFFSET_REG_TM3CNT_H, 0x10e - - .set OFFSET_REG_SIOCNT, 0x128 - .set OFFSET_REG_SIODATA8, 0x12a - .set OFFSET_REG_SIODATA32, 0x120 - .set OFFSET_REG_SIOMLT_SEND, 0x12a - .set OFFSET_REG_SIOMLT_RECV, 0x120 - .set OFFSET_REG_SIOMULTI0, 0x120 - .set OFFSET_REG_SIOMULTI1, 0x122 - .set OFFSET_REG_SIOMULTI2, 0x124 - .set OFFSET_REG_SIOMULTI3, 0x126 - - .set OFFSET_REG_KEYINPUT, 0x130 - .set OFFSET_REG_KEYCNT, 0x132 - - .set OFFSET_REG_RCNT, 0x134 - - .set OFFSET_REG_JOYCNT, 0x140 - .set OFFSET_REG_JOYSTAT, 0x158 - .set OFFSET_REG_JOY_RECV, 0x150 - .set OFFSET_REG_JOY_RECV_L, 0x150 - .set OFFSET_REG_JOY_RECV_H, 0x152 - .set OFFSET_REG_JOY_TRANS, 0x154 - .set OFFSET_REG_JOY_TRANS_L, 0x154 - .set OFFSET_REG_JOY_TRANS_H, 0x156 - - .set OFFSET_REG_IME, 0x208 - .set OFFSET_REG_IE, 0x200 - .set OFFSET_REG_IF, 0x202 - - .set OFFSET_REG_WAITCNT, 0x204 - -@ I/O register addresses - .set REG_DISPCNT, REG_BASE + OFFSET_REG_DISPCNT - .set REG_DISPSTAT, REG_BASE + OFFSET_REG_DISPSTAT - .set REG_VCOUNT, REG_BASE + OFFSET_REG_VCOUNT - .set REG_BG0CNT, REG_BASE + OFFSET_REG_BG0CNT - .set REG_BG1CNT, REG_BASE + OFFSET_REG_BG1CNT - .set REG_BG2CNT, REG_BASE + OFFSET_REG_BG2CNT - .set REG_BG3CNT, REG_BASE + OFFSET_REG_BG3CNT - .set REG_BG0HOFS, REG_BASE + OFFSET_REG_BG0HOFS - .set REG_BG0VOFS, REG_BASE + OFFSET_REG_BG0VOFS - .set REG_BG1HOFS, REG_BASE + OFFSET_REG_BG1HOFS - .set REG_BG1VOFS, REG_BASE + OFFSET_REG_BG1VOFS - .set REG_BG2HOFS, REG_BASE + OFFSET_REG_BG2HOFS - .set REG_BG2VOFS, REG_BASE + OFFSET_REG_BG2VOFS - .set REG_BG3HOFS, REG_BASE + OFFSET_REG_BG3HOFS - .set REG_BG3VOFS, REG_BASE + OFFSET_REG_BG3VOFS - .set REG_BG2PA, REG_BASE + OFFSET_REG_BG2PA - .set REG_BG2PB, REG_BASE + OFFSET_REG_BG2PB - .set REG_BG2PC, REG_BASE + OFFSET_REG_BG2PC - .set REG_BG2PD, REG_BASE + OFFSET_REG_BG2PD - .set REG_BG2X_L, REG_BASE + OFFSET_REG_BG2X_L - .set REG_BG2X_H, REG_BASE + OFFSET_REG_BG2X_H - .set REG_BG2Y_L, REG_BASE + OFFSET_REG_BG2Y_L - .set REG_BG2Y_H, REG_BASE + OFFSET_REG_BG2Y_H - .set REG_BG3PA, REG_BASE + OFFSET_REG_BG3PA - .set REG_BG3PB, REG_BASE + OFFSET_REG_BG3PB - .set REG_BG3PC, REG_BASE + OFFSET_REG_BG3PC - .set REG_BG3PD, REG_BASE + OFFSET_REG_BG3PD - .set REG_BG3X_L, REG_BASE + OFFSET_REG_BG3X_L - .set REG_BG3X_H, REG_BASE + OFFSET_REG_BG3X_H - .set REG_BG3Y_L, REG_BASE + OFFSET_REG_BG3Y_L - .set REG_BG3Y_H, REG_BASE + OFFSET_REG_BG3Y_H - .set REG_WIN0H, REG_BASE + OFFSET_REG_WIN0H - .set REG_WIN1H, REG_BASE + OFFSET_REG_WIN1H - .set REG_WIN0V, REG_BASE + OFFSET_REG_WIN0V - .set REG_WIN1V, REG_BASE + OFFSET_REG_WIN1V - .set REG_WININ, REG_BASE + OFFSET_REG_WININ - .set REG_WINOUT, REG_BASE + OFFSET_REG_WINOUT - .set REG_MOSAIC, REG_BASE + OFFSET_REG_MOSAIC - .set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT - .set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA - .set REG_BLDY, REG_BASE + OFFSET_REG_BLDY - - .set REG_SOUND1CNT, REG_BASE + OFFSET_REG_SOUND1CNT - .set REG_SOUND1CNT_L, REG_BASE + OFFSET_REG_SOUND1CNT_L - .set REG_NR10, REG_BASE + OFFSET_REG_NR10 - .set REG_SOUND1CNT_H, REG_BASE + OFFSET_REG_SOUND1CNT_H - .set REG_NR11, REG_BASE + OFFSET_REG_NR11 - .set REG_NR12, REG_BASE + OFFSET_REG_NR12 - .set REG_SOUND1CNT_X, REG_BASE + OFFSET_REG_SOUND1CNT_X - .set REG_NR13, REG_BASE + OFFSET_REG_NR13 - .set REG_NR14, REG_BASE + OFFSET_REG_NR14 - .set REG_SOUND2CNT, REG_BASE + OFFSET_REG_SOUND2CNT - .set REG_SOUND2CNT_L, REG_BASE + OFFSET_REG_SOUND2CNT_L - .set REG_NR21, REG_BASE + OFFSET_REG_NR21 - .set REG_NR22, REG_BASE + OFFSET_REG_NR22 - .set REG_SOUND2CNT_H, REG_BASE + OFFSET_REG_SOUND2CNT_H - .set REG_NR23, REG_BASE + OFFSET_REG_NR23 - .set REG_NR24, REG_BASE + OFFSET_REG_NR24 - .set REG_SOUND3CNT, REG_BASE + OFFSET_REG_SOUND3CNT - .set REG_SOUND3CNT_L, REG_BASE + OFFSET_REG_SOUND3CNT_L - .set REG_NR30, REG_BASE + OFFSET_REG_NR30 - .set REG_SOUND3CNT_H, REG_BASE + OFFSET_REG_SOUND3CNT_H - .set REG_NR31, REG_BASE + OFFSET_REG_NR31 - .set REG_NR32, REG_BASE + OFFSET_REG_NR32 - .set REG_SOUND3CNT_X, REG_BASE + OFFSET_REG_SOUND3CNT_X - .set REG_NR33, REG_BASE + OFFSET_REG_NR33 - .set REG_NR34, REG_BASE + OFFSET_REG_NR34 - .set REG_SOUND4CNT, REG_BASE + OFFSET_REG_SOUND4CNT - .set REG_SOUND4CNT_L, REG_BASE + OFFSET_REG_SOUND4CNT_L - .set REG_NR41, REG_BASE + OFFSET_REG_NR41 - .set REG_NR42, REG_BASE + OFFSET_REG_NR42 - .set REG_SOUND4CNT_H, REG_BASE + OFFSET_REG_SOUND4CNT_H - .set REG_NR43, REG_BASE + OFFSET_REG_NR43 - .set REG_NR44, REG_BASE + OFFSET_REG_NR44 - .set REG_SOUNDCNT, REG_BASE + OFFSET_REG_SOUNDCNT - .set REG_SOUNDCNT_L, REG_BASE + OFFSET_REG_SOUNDCNT_L - .set REG_NR50, REG_BASE + OFFSET_REG_NR50 - .set REG_NR51, REG_BASE + OFFSET_REG_NR51 - .set REG_SOUNDCNT_H, REG_BASE + OFFSET_REG_SOUNDCNT_H - .set REG_SOUNDCNT_X, REG_BASE + OFFSET_REG_SOUNDCNT_X - .set REG_NR52, REG_BASE + OFFSET_REG_NR52 - .set REG_SOUNDBIAS, REG_BASE + OFFSET_REG_SOUNDBIAS - .set REG_WAVE_RAM, REG_BASE + OFFSET_REG_WAVE_RAM - .set REG_WAVE_RAM0, REG_BASE + OFFSET_REG_WAVE_RAM0 - .set REG_WAVE_RAM0_L, REG_BASE + OFFSET_REG_WAVE_RAM0_L - .set REG_WAVE_RAM0_H, REG_BASE + OFFSET_REG_WAVE_RAM0_H - .set REG_WAVE_RAM1, REG_BASE + OFFSET_REG_WAVE_RAM1 - .set REG_WAVE_RAM1_L, REG_BASE + OFFSET_REG_WAVE_RAM1_L - .set REG_WAVE_RAM1_H, REG_BASE + OFFSET_REG_WAVE_RAM1_H - .set REG_WAVE_RAM2, REG_BASE + OFFSET_REG_WAVE_RAM2 - .set REG_WAVE_RAM2_L, REG_BASE + OFFSET_REG_WAVE_RAM2_L - .set REG_WAVE_RAM2_H, REG_BASE + OFFSET_REG_WAVE_RAM2_H - .set REG_WAVE_RAM3, REG_BASE + OFFSET_REG_WAVE_RAM3 - .set REG_WAVE_RAM3_L, REG_BASE + OFFSET_REG_WAVE_RAM3_L - .set REG_WAVE_RAM3_H, REG_BASE + OFFSET_REG_WAVE_RAM3_H - .set REG_FIFO, REG_BASE + OFFSET_REG_FIFO - .set REG_FIFO_A, REG_BASE + OFFSET_REG_FIFO_A - .set REG_FIFO_A_L, REG_BASE + OFFSET_REG_FIFO_A_L - .set REG_FIFO_A_H, REG_BASE + OFFSET_REG_FIFO_A_H - .set REG_FIFO_B, REG_BASE + OFFSET_REG_FIFO_B - .set REG_FIFO_B_L, REG_BASE + OFFSET_REG_FIFO_B_L - .set REG_FIFO_B_H, REG_BASE + OFFSET_REG_FIFO_B_H - - .set REG_DMA0, REG_BASE + OFFSET_REG_DMA0 - .set REG_DMA0SAD, REG_BASE + OFFSET_REG_DMA0SAD - .set REG_DMA0SAD_L, REG_BASE + OFFSET_REG_DMA0SAD_L - .set REG_DMA0SAD_H, REG_BASE + OFFSET_REG_DMA0SAD_H - .set REG_DMA0DAD, REG_BASE + OFFSET_REG_DMA0DAD - .set REG_DMA0DAD_L, REG_BASE + OFFSET_REG_DMA0DAD_L - .set REG_DMA0DAD_H, REG_BASE + OFFSET_REG_DMA0DAD_H - .set REG_DMA0CNT, REG_BASE + OFFSET_REG_DMA0CNT - .set REG_DMA0CNT_L, REG_BASE + OFFSET_REG_DMA0CNT_L - .set REG_DMA0CNT_H, REG_BASE + OFFSET_REG_DMA0CNT_H - .set REG_DMA1, REG_BASE + OFFSET_REG_DMA1 - .set REG_DMA1SAD, REG_BASE + OFFSET_REG_DMA1SAD - .set REG_DMA1SAD_L, REG_BASE + OFFSET_REG_DMA1SAD_L - .set REG_DMA1SAD_H, REG_BASE + OFFSET_REG_DMA1SAD_H - .set REG_DMA1DAD, REG_BASE + OFFSET_REG_DMA1DAD - .set REG_DMA1DAD_L, REG_BASE + OFFSET_REG_DMA1DAD_L - .set REG_DMA1DAD_H, REG_BASE + OFFSET_REG_DMA1DAD_H - .set REG_DMA1CNT, REG_BASE + OFFSET_REG_DMA1CNT - .set REG_DMA1CNT_L, REG_BASE + OFFSET_REG_DMA1CNT_L - .set REG_DMA1CNT_H, REG_BASE + OFFSET_REG_DMA1CNT_H - .set REG_DMA2, REG_BASE + OFFSET_REG_DMA2 - .set REG_DMA2SAD, REG_BASE + OFFSET_REG_DMA2SAD - .set REG_DMA2SAD_L, REG_BASE + OFFSET_REG_DMA2SAD_L - .set REG_DMA2SAD_H, REG_BASE + OFFSET_REG_DMA2SAD_H - .set REG_DMA2DAD, REG_BASE + OFFSET_REG_DMA2DAD - .set REG_DMA2DAD_L, REG_BASE + OFFSET_REG_DMA2DAD_L - .set REG_DMA2DAD_H, REG_BASE + OFFSET_REG_DMA2DAD_H - .set REG_DMA2CNT, REG_BASE + OFFSET_REG_DMA2CNT - .set REG_DMA2CNT_L, REG_BASE + OFFSET_REG_DMA2CNT_L - .set REG_DMA2CNT_H, REG_BASE + OFFSET_REG_DMA2CNT_H - .set REG_DMA3, REG_BASE + OFFSET_REG_DMA3 - .set REG_DMA3SAD, REG_BASE + OFFSET_REG_DMA3SAD - .set REG_DMA3SAD_L, REG_BASE + OFFSET_REG_DMA3SAD_L - .set REG_DMA3SAD_H, REG_BASE + OFFSET_REG_DMA3SAD_H - .set REG_DMA3DAD, REG_BASE + OFFSET_REG_DMA3DAD - .set REG_DMA3DAD_L, REG_BASE + OFFSET_REG_DMA3DAD_L - .set REG_DMA3DAD_H, REG_BASE + OFFSET_REG_DMA3DAD_H - .set REG_DMA3CNT, REG_BASE + OFFSET_REG_DMA3CNT - .set REG_DMA3CNT_L, REG_BASE + OFFSET_REG_DMA3CNT_L - .set REG_DMA3CNT_H, REG_BASE + OFFSET_REG_DMA3CNT_H - - .set REG_TM0CNT, REG_BASE + OFFSET_REG_TM0CNT - .set REG_TM0CNT_L, REG_BASE + OFFSET_REG_TM0CNT_L - .set REG_TM0CNT_H, REG_BASE + OFFSET_REG_TM0CNT_H - .set REG_TM1CNT, REG_BASE + OFFSET_REG_TM1CNT - .set REG_TM1CNT_L, REG_BASE + OFFSET_REG_TM1CNT_L - .set REG_TM1CNT_H, REG_BASE + OFFSET_REG_TM1CNT_H - .set REG_TM2CNT, REG_BASE + OFFSET_REG_TM2CNT - .set REG_TM2CNT_L, REG_BASE + OFFSET_REG_TM2CNT_L - .set REG_TM2CNT_H, REG_BASE + OFFSET_REG_TM2CNT_H - .set REG_TM3CNT, REG_BASE + OFFSET_REG_TM3CNT - .set REG_TM3CNT_L, REG_BASE + OFFSET_REG_TM3CNT_L - .set REG_TM3CNT_H, REG_BASE + OFFSET_REG_TM3CNT_H - - .set REG_SIOCNT, REG_BASE + OFFSET_REG_SIOCNT - .set REG_SIODATA8, REG_BASE + OFFSET_REG_SIODATA8 - .set REG_SIODATA32, REG_BASE + OFFSET_REG_SIODATA32 - .set REG_SIOMLT_SEND, REG_BASE + OFFSET_REG_SIOMLT_SEND - .set REG_SIOMLT_RECV, REG_BASE + OFFSET_REG_SIOMLT_RECV - .set REG_SIOMULTI0, REG_BASE + OFFSET_REG_SIOMULTI0 - .set REG_SIOMULTI1, REG_BASE + OFFSET_REG_SIOMULTI1 - .set REG_SIOMULTI2, REG_BASE + OFFSET_REG_SIOMULTI2 - .set REG_SIOMULTI3, REG_BASE + OFFSET_REG_SIOMULTI3 - - .set REG_KEYINPUT, REG_BASE + OFFSET_REG_KEYINPUT - .set REG_KEYCNT, REG_BASE + OFFSET_REG_KEYCNT - - .set REG_RCNT, REG_BASE + OFFSET_REG_RCNT - - .set REG_JOYCNT, REG_BASE + OFFSET_REG_JOYCNT - .set REG_JOYSTAT, REG_BASE + OFFSET_REG_JOYSTAT - .set REG_JOY_RECV, REG_BASE + OFFSET_REG_JOY_RECV - .set REG_JOY_RECV_L, REG_BASE + OFFSET_REG_JOY_RECV_L - .set REG_JOY_RECV_H, REG_BASE + OFFSET_REG_JOY_RECV_H - .set REG_JOY_TRANS, REG_BASE + OFFSET_REG_JOY_TRANS - .set REG_JOY_TRANS_L, REG_BASE + OFFSET_REG_JOY_TRANS_L - .set REG_JOY_TRANS_H, REG_BASE + OFFSET_REG_JOY_TRANS_H - - .set REG_IME, REG_BASE + OFFSET_REG_IME - .set REG_IE, REG_BASE + OFFSET_REG_IE - .set REG_IF, REG_BASE + OFFSET_REG_IF - - .set REG_WAITCNT, REG_BASE + OFFSET_REG_WAITCNT - -@ DMA register constants - - .set DMA_DEST_INC, 0x0000 - .set DMA_DEST_DEC, 0x0020 - .set DMA_DEST_FIXED, 0x0040 - .set DMA_DEST_RELOAD, 0x0060 - .set DMA_SRC_INC, 0x0000 - .set DMA_SRC_DEC, 0x0080 - .set DMA_SRC_FIXED, 0x0100 - .set DMA_REPEAT, 0x0200 - .set DMA_16BIT, 0x0000 - .set DMA_32BIT, 0x0400 - .set DMA_DREQ_ON, 0x0800 - .set DMA_START_NOW, 0x0000 - .set DMA_START_VBLANK, 0x1000 - .set DMA_START_HBLANK, 0x2000 - .set DMA_START_SPECIAL, 0x3000 - .set DMA_INTR_ENABLE, 0x4000 - .set DMA_ENABLE, 0x8000 - -@ OAM attribute constants - - .set OAM_OBJ_NORMAL, 0x00000000 - .set OAM_OBJ_BLEND, 0x00000400 - .set OAM_OBJ_WINDOW, 0x00000800 - - .set OAM_AFFINE_NONE, 0x00000000 - .set OAM_AFFINE_NORMAL_SIZE, 0x00000100 - .set OAM_OBJ_DISABLED, 0x00000200 - .set OAM_AFFINE_DOUBLE_SIZE, 0x00000300 - - .set OAM_MOSAIC_OFF, 0x00000000 - .set OAM_MOSAIC_ON, 0x00001000 - - .set OAM_4BPP, 0x00000000 - .set OAM_8BPP, 0x00002000 - - .set OAM_H_FLIP, 0x10000000 - .set OAM_V_FLIP, 0x20000000 - - .set OAM_SQUARE, 0x00000000 - .set OAM_H_RECTANGLE, 0x00004000 - .set OAM_V_RECTANGLE, 0x00008000 - .set OAM_SIZE_0, 0x00000000 - .set OAM_SIZE_1, 0x40000000 - .set OAM_SIZE_2, 0x80000000 - .set OAM_SIZE_3, 0xc0000000 - - .set OAM_SIZE_8x8, OAM_SIZE_0 | OAM_SQUARE - .set OAM_SIZE_16x16, OAM_SIZE_1 | OAM_SQUARE - .set OAM_SIZE_32x32, OAM_SIZE_2 | OAM_SQUARE - .set OAM_SIZE_64x64, OAM_SIZE_3 | OAM_SQUARE - - .set OAM_SIZE_16x8, OAM_SIZE_0 | OAM_H_RECTANGLE - .set OAM_SIZE_32x8, OAM_SIZE_1 | OAM_H_RECTANGLE - .set OAM_SIZE_32x16, OAM_SIZE_2 | OAM_H_RECTANGLE - .set OAM_SIZE_64x32, OAM_SIZE_3 | OAM_H_RECTANGLE - - .set OAM_SIZE_8x16, OAM_SIZE_0 | OAM_V_RECTANGLE - .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE - .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE - .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE - -@ SIO constants - - .set SIO_ENABLE, 0x80 - .set SIO_ERROR, 0x40 diff --git a/sa1/constants/m4a_constants.inc b/sa1/constants/m4a_constants.inc deleted file mode 100644 index 8072c69229..0000000000 --- a/sa1/constants/m4a_constants.inc +++ /dev/null @@ -1,257 +0,0 @@ -#ifndef GUARD_CONSTANTS_M4A_CONSTANTS_INC -#define GUARD_CONSTANTS_M4A_CONSTANTS_INC - - .equiv ID_NUMBER, 0x68736d53 - - .equiv PCM_DMA_BUF_SIZE, 1584 - .equiv MAX_DIRECTSOUND_CHANNELS, 12 - - .equiv C_V, 0x40 - - .equiv TONEDATA_TYPE_CGB, 0x07 - .equiv TONEDATA_TYPE_FIX, 0x08 - .equiv TONEDATA_TYPE_REV, 0x10 - .equiv TONEDATA_TYPE_CMP, 0x20 - .equiv TONEDATA_TYPE_SPL, 0x40 /* key split*/ - .equiv TONEDATA_TYPE_RHY, 0x80 /* rhythm*/ - - .equiv TONEDATA_P_S_PAN, 0xc0 - - .equiv SOUND_CHANNEL_SF_START, 0x80 - .equiv SOUND_CHANNEL_SF_STOP, 0x40 - .equiv SOUND_CHANNEL_SF_SPECIAL, 0x20 - .equiv SOUND_CHANNEL_SF_LOOP, 0x10 - .equiv SOUND_CHANNEL_SF_IEC, 0x04 - .equiv SOUND_CHANNEL_SF_ENV, 0x03 - .equiv SOUND_CHANNEL_SF_ENV_ATTACK, 0x03 - .equiv SOUND_CHANNEL_SF_ENV_DECAY, 0x02 - .equiv SOUND_CHANNEL_SF_ENV_SUSTAIN, 0x01 - .equiv SOUND_CHANNEL_SF_ENV_RELEASE, 0x00 - .equiv SOUND_CHANNEL_SF_ON, (SOUND_CHANNEL_SF_START | SOUND_CHANNEL_SF_STOP | SOUND_CHANNEL_SF_IEC | SOUND_CHANNEL_SF_ENV) - - .equiv CGB_CHANNEL_MO_PIT, 0x02 - .equiv CGB_CHANNEL_MO_VOL, 0x01 - - .equiv WAVE_DATA_FLAG_LOOP, 0xC0 - - .equiv MPT_FLG_VOLSET, 0x01 - .equiv MPT_FLG_VOLCHG, 0x03 - .equiv MPT_FLG_PITSET, 0x04 - .equiv MPT_FLG_PITCHG, 0x0C - .equiv MPT_FLG_START, 0x40 - .equiv MPT_FLG_EXIST, 0x80 - - .macro struct_begin - .struct 0 - .endm - - .macro struct_field name, size -\name: - .struct \name + \size - .endm - - struct_begin - struct_field o_WaveData_type, 2 - struct_field o_WaveData_d1, 1 - struct_field o_WaveData_flags, 1 - struct_field o_WaveData_freq, 4 - struct_field o_WaveData_loopStart, 4 - struct_field o_WaveData_size, 4 - struct_field o_WaveData_data, 0 - struct_field WaveData_size, 0 - - struct_begin - struct_field o_ToneData_type, 1 - struct_field o_ToneData_key, 1 - struct_field o_ToneData_length, 1 - struct_field o_ToneData_pan_sweep, 1 - struct_field o_ToneData_wav, 4 - struct_field o_ToneData_attack, 1 - struct_field o_ToneData_decay, 1 - struct_field o_ToneData_sustain, 1 - struct_field o_ToneData_release, 1 - struct_field ToneData_size, 0 - - struct_begin - struct_field o_SoundInfo_ident, 4 - struct_field o_SoundInfo_pcmDmaCounter, 1 - struct_field o_SoundInfo_reverb, 1 - struct_field o_SoundInfo_maxChans, 1 - struct_field o_SoundInfo_masterVolume, 1 - struct_field o_SoundInfo_freq, 1 - struct_field o_SoundInfo_mode, 1 - struct_field o_SoundInfo_c15, 1 - struct_field o_SoundInfo_pcmDmaPeriod, 1 - struct_field o_SoundInfo_maxLines, 1 - struct_field o_SoundInfo_gap, 3 - struct_field o_SoundInfo_pcmSamplesPerVBlank, 4 - struct_field o_SoundInfo_pcmFreq, 4 - struct_field o_SoundInfo_divFreq, 4 - struct_field o_SoundInfo_cgbChans, 4 - struct_field o_SoundInfo_MPlayMainHead, 4 - struct_field o_SoundInfo_musicPlayerHead, 4 - struct_field o_SoundInfo_CgbSound, 4 - struct_field o_SoundInfo_CgbOscOff, 4 - struct_field o_SoundInfo_MidiKeyToCgbFreq, 4 - struct_field o_SoundInfo_MPlayJumpTable, 4 - struct_field o_SoundInfo_plynote, 4 - struct_field o_SoundInfo_ExtVolPit, 4 - struct_field o_SoundInfo_gap2, 16 - struct_field o_SoundInfo_chans, MAX_DIRECTSOUND_CHANNELS * 64 - struct_field o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2 - struct_field SoundInfo_size, 0 - - struct_begin - struct_field o_SoundChannel_statusFlags, 1 - struct_field o_SoundChannel_type, 1 - struct_field o_SoundChannel_rightVolume, 1 - struct_field o_SoundChannel_leftVolume, 1 - struct_field o_SoundChannel_attack, 1 - struct_field o_SoundChannel_decay, 1 - struct_field o_SoundChannel_sustain, 1 - struct_field o_SoundChannel_release, 1 - struct_field o_SoundChannel_key, 1 - struct_field o_SoundChannel_envelopeVolume, 1 - struct_field o_SoundChannel_envelopeVolumeRight, 1 - struct_field o_SoundChannel_envelopeVolumeLeft, 1 - struct_field o_SoundChannel_pseudoEchoVolume, 1 - struct_field o_SoundChannel_pseudoEchoLength, 1 - struct_field o_SoundChannel_dummy1, 1 - struct_field o_SoundChannel_dummy2, 1 - struct_field o_SoundChannel_gateTime, 1 - struct_field o_SoundChannel_midiKey, 1 - struct_field o_SoundChannel_velocity, 1 - struct_field o_SoundChannel_priority, 1 - struct_field o_SoundChannel_rhythmPan, 1 - struct_field o_SoundChannel_dummy3, 3 - struct_field o_SoundChannel_count, 4 - struct_field o_SoundChannel_fw, 4 - struct_field o_SoundChannel_frequency, 4 - struct_field o_SoundChannel_wav, 4 - struct_field o_SoundChannel_currentPointer, 4 - struct_field o_SoundChannel_track, 4 - struct_field o_SoundChannel_prevChannelPointer, 4 - struct_field o_SoundChannel_nextChannelPointer, 4 - struct_field o_SoundChannel_dummy4, 4 - struct_field o_SoundChannel_xpi, 2 - struct_field o_SoundChannel_xpc, 2 - struct_field SoundChannel_size, 0 - - struct_begin - struct_field o_MusicPlayerTrack_flags, 1 - struct_field o_MusicPlayerTrack_wait, 1 - struct_field o_MusicPlayerTrack_patternLevel, 1 - struct_field o_MusicPlayerTrack_repN, 1 - struct_field o_MusicPlayerTrack_gateTime, 1 - struct_field o_MusicPlayerTrack_key, 1 - struct_field o_MusicPlayerTrack_velocity, 1 - struct_field o_MusicPlayerTrack_runningStatus, 1 - struct_field o_MusicPlayerTrack_keyM, 1 - struct_field o_MusicPlayerTrack_pitM, 1 - struct_field o_MusicPlayerTrack_keyShift, 1 - struct_field o_MusicPlayerTrack_keyShiftX, 1 - struct_field o_MusicPlayerTrack_tune, 1 - struct_field o_MusicPlayerTrack_pitX, 1 - struct_field o_MusicPlayerTrack_bend, 1 - struct_field o_MusicPlayerTrack_bendRange, 1 - struct_field o_MusicPlayerTrack_volMR, 1 - struct_field o_MusicPlayerTrack_volML, 1 - struct_field o_MusicPlayerTrack_vol, 1 - struct_field o_MusicPlayerTrack_volX, 1 - struct_field o_MusicPlayerTrack_pan, 1 - struct_field o_MusicPlayerTrack_panX, 1 - struct_field o_MusicPlayerTrack_modM, 1 - struct_field o_MusicPlayerTrack_mod, 1 - struct_field o_MusicPlayerTrack_modT, 1 - struct_field o_MusicPlayerTrack_lfoSpeed, 1 - struct_field o_MusicPlayerTrack_lfoSpeedC, 1 - struct_field o_MusicPlayerTrack_lfoDelay, 1 - struct_field o_MusicPlayerTrack_lfoDelayC, 1 - struct_field o_MusicPlayerTrack_priority, 1 - struct_field o_MusicPlayerTrack_pseudoEchoVolume, 1 - struct_field o_MusicPlayerTrack_pseudoEchoLength, 1 - struct_field o_MusicPlayerTrack_chan, 4 - struct_field o_MusicPlayerTrack_ToneData_type, 1 - struct_field o_MusicPlayerTrack_ToneData_key, 1 - struct_field o_MusicPlayerTrack_ToneData_length, 1 - struct_field o_MusicPlayerTrack_ToneData_pan_sweep, 1 - struct_field o_MusicPlayerTrack_ToneData_wav, 4 - struct_field o_MusicPlayerTrack_ToneData_attack, 1 - struct_field o_MusicPlayerTrack_ToneData_decay, 1 - struct_field o_MusicPlayerTrack_ToneData_sustain, 1 - struct_field o_MusicPlayerTrack_ToneData_release, 1 - struct_field o_MusicPlayerTrack_gap, 10 - struct_field o_MusicPlayerTrack_unk_3A, 2 - struct_field o_MusicPlayerTrack_unk_3C, 4 - struct_field o_MusicPlayerTrack_cmdPtr, 4 - struct_field o_MusicPlayerTrack_patternStack, 12 - struct_field MusicPlayerTrack_size, 0 - - .equiv o_MusicPlayerTrack_ToneData_keySplitTable, o_MusicPlayerTrack_ToneData_attack - - struct_begin - struct_field o_MusicPlayerInfo_songHeader, 4 - struct_field o_MusicPlayerInfo_status, 4 - struct_field o_MusicPlayerInfo_trackCount, 1 - struct_field o_MusicPlayerInfo_priority, 1 - struct_field o_MusicPlayerInfo_cmd, 1 - struct_field o_MusicPlayerInfo_unk_B, 1 - struct_field o_MusicPlayerInfo_clock, 4 - struct_field o_MusicPlayerInfo_gap, 8 - struct_field o_MusicPlayerInfo_memAccArea, 4 - struct_field o_MusicPlayerInfo_tempoD, 2 - struct_field o_MusicPlayerInfo_tempoU, 2 - struct_field o_MusicPlayerInfo_tempoI, 2 - struct_field o_MusicPlayerInfo_tempoC, 2 - struct_field o_MusicPlayerInfo_fadeOI, 2 - struct_field o_MusicPlayerInfo_fadeOC, 2 - struct_field o_MusicPlayerInfo_fadeOV, 2 - struct_field o_MusicPlayerInfo_padding, 2 - struct_field o_MusicPlayerInfo_tracks, 4 - struct_field o_MusicPlayerInfo_tone, 4 - struct_field o_MusicPlayerInfo_ident, 4 - struct_field o_MusicPlayerInfo_func, 4 - struct_field o_MusicPlayerInfo_intp, 4 - struct_field MusicPlayerInfo_size, 0 - - struct_begin - struct_field o_CgbChannel_statusFlags, 1 - struct_field o_CgbChannel_type, 1 - struct_field o_CgbChannel_rightVolume, 1 - struct_field o_CgbChannel_leftVolume, 1 - struct_field o_CgbChannel_attack, 1 - struct_field o_CgbChannel_decay, 1 - struct_field o_CgbChannel_sustain, 1 - struct_field o_CgbChannel_release, 1 - struct_field o_CgbChannel_key, 1 - struct_field o_CgbChannel_envelopeVolume, 1 - struct_field o_CgbChannel_envelopeGoal, 1 - struct_field o_CgbChannel_envelopeCounter, 1 - struct_field o_CgbChannel_pseudoEchoVolume, 1 - struct_field o_CgbChannel_pseudoEchoLength, 1 - struct_field o_CgbChannel_dummy1, 1 - struct_field o_CgbChannel_dummy2, 1 - struct_field o_CgbChannel_gateTime, 1 - struct_field o_CgbChannel_midiKey, 1 - struct_field o_CgbChannel_velocity, 1 - struct_field o_CgbChannel_priority, 1 - struct_field o_CgbChannel_rhythmPan, 1 - struct_field o_CgbChannel_dummy3, 3 - struct_field o_CgbChannel_dummy5, 1 - struct_field o_CgbChannel_sustainGoal, 1 - struct_field o_CgbChannel_n4, 1 - struct_field o_CgbChannel_pan, 1 - struct_field o_CgbChannel_panMask, 1 - struct_field o_CgbChannel_modify, 1 - struct_field o_CgbChannel_length, 1 - struct_field o_CgbChannel_sweep, 1 - struct_field o_CgbChannel_frequency, 4 - struct_field o_CgbChannel_wavePointer, 4 - struct_field o_CgbChannel_currentPointer, 4 - struct_field o_CgbChannel_track, 4 - struct_field o_CgbChannel_prevChannelPointer, 4 - struct_field o_CgbChannel_nextChannelPointer, 4 - struct_field o_CgbChannel_dummy4, 8 - struct_field CgbChannel_size, 0 - -#endif @ GUARD_CONSTANTS_M4A_CONSTANTS_INC diff --git a/sa1/constants/misc_constants.inc b/sa1/constants/misc_constants.inc deleted file mode 100644 index 19b47bbceb..0000000000 --- a/sa1/constants/misc_constants.inc +++ /dev/null @@ -1,28 +0,0 @@ - .set TRUE, 1 - .set FALSE, 0 - - .set NULL, 0 - - .set DISPLAY_WIDTH, 240 - .set DISPLAY_HEIGHT, 160 - - .set SPRITE_SIZE_8x8, (OAM_SIZE_0 >> 28) | (OAM_SQUARE >> 14) - .set SPRITE_SIZE_16x16, (OAM_SIZE_1 >> 28) | (OAM_SQUARE >> 14) - .set SPRITE_SIZE_32x32, (OAM_SIZE_2 >> 28) | (OAM_SQUARE >> 14) - .set SPRITE_SIZE_64x64, (OAM_SIZE_3 >> 28) | (OAM_SQUARE >> 14) - - .set SPRITE_SIZE_16x8, (OAM_SIZE_0 >> 28) | (OAM_H_RECTANGLE >> 14) - .set SPRITE_SIZE_32x8, (OAM_SIZE_1 >> 28) | (OAM_H_RECTANGLE >> 14) - .set SPRITE_SIZE_32x16, (OAM_SIZE_2 >> 28) | (OAM_H_RECTANGLE >> 14) - .set SPRITE_SIZE_64x32, (OAM_SIZE_3 >> 28) | (OAM_H_RECTANGLE >> 14) - - .set SPRITE_SIZE_8x16, (OAM_SIZE_0 >> 28) | (OAM_V_RECTANGLE >> 14) - .set SPRITE_SIZE_8x32, (OAM_SIZE_1 >> 28) | (OAM_V_RECTANGLE >> 14) - .set SPRITE_SIZE_16x32, (OAM_SIZE_2 >> 28) | (OAM_V_RECTANGLE >> 14) - .set SPRITE_SIZE_32x64, (OAM_SIZE_3 >> 28) | (OAM_V_RECTANGLE >> 14) - - .set TILE_SIZE_4BPP, (8*8 / 2) @ <= 32 (0x20) - .set TILE_SIZE_8BPP, (8*8) @ <= 64 (0x40) - - .set METATILE_WIDTH, 12 - .set METATILE_HEIGHT, 12 diff --git a/sa1/constants/multi_sio_constants.inc b/sa1/constants/multi_sio_constants.inc deleted file mode 100644 index b3a19770e0..0000000000 --- a/sa1/constants/multi_sio_constants.inc +++ /dev/null @@ -1,66 +0,0 @@ -@ Optimize the following settings based on the software specifications - -MULTI_SIO_BLOCK_SIZE = 20 @ Communication Data Block Size (Max. 24 Bytes) - -MULTI_SIO_PLAYERS_MAX = 4 @ Maximum Number of Players - -MULTI_SIO_SYNC_DATA = 0xfefe @ Synchronized Data (0x0000/0xfffa~0xffff prohibited) - -@ Comment out if no space in CPU internal Work RAM -MULTI_SIO_DI_FUNC_FAST = 1 @ SIO Interrupt Prohibit Function High Speed Flag (CPU Internal RAM Execution) - - -MULTI_SIO_TIMER_NO = 3 @ Timer No. -MULTI_SIO_TIMER_INTR_FLAG = (INTR_FLAG_TIMER0 << MULTI_SIO_TIMER_NO) - @ Timer Interrupt Flag -REG_MULTI_SIO_TIMER = (REG_TM0CNT + MULTI_SIO_TIMER_NO * 4) -REG_MULTI_SIO_TIMER_L = REG_MULTI_SIO_TIMER -REG_MULTI_SIO_TIMER_H = (REG_MULTI_SIO_TIMER + 2) - @ Timer Register - - -@ Multi-play Communication Packet Structure Offset - -OFS_MSP_FRAME_COUNTER = 0 @ Frame Counter -OFS_MSP_RECV_ERROR_FLAGS = 1 @ Receive Error Flag -OFS_MSP_CHECK_SUM = 2 @ Checksum -OFS_MSP_DATA = 4 @ Communication Data -OFS_MSP_OVERRUN_CATCH = (OFS_MSP_DATA + MULTI_SIO_BLOCK_SIZE) - @ Overrun Protect Area - -MULTI_SIO_PACKET_SIZE = (OFS_MSP_OVERRUN_CATCH + 4) - @ Structure Size - - -@ Multi-play Communication Work Area Structure Offset - -OFS_MS_TYPE = 0 @ Connection (Master/Slave) -OFS_MS_STATE = 1 @ Communication Function State -OFS_MS_CONNECTED_FLAG = 2 @ Connection History Flag -OFS_MS_RECV_SUCCESS_FLAGS = 3 @ Receive Success Flag - -OFS_MS_SYNC_RECV_FLAG = 4 @ Synchronized Data Receive Confirmation Flag -OFS_MS_SYNC_RECV_ADJUST_COUNTER = 8 @ Synchronization Adjustment Counter - -OFS_MS_SEND_BUF_COUNTER_INIT = 10 @ Send Buffer Counter Initialization - -OFS_MS_SYNC_SEND_FRAME_COUNTER = 11 @ Send Frame Counter -OFS_MS_SYNC_RECV_FRAME_COUNTER = 12 @ Receive Frame Counter - -OFS_MS_SEND_BUF_COUNTER = 20 @ Send Buffer Counter -OFS_MS_RECV_BUF_COUNTER = 24 @ Receive Buffer Counter - -OFS_MS_NEXT_SEND_BUF_P = 40 @ Send Buffer Pointer -OFS_MS_CURRENT_SEND_BUF_P = 44 -OFS_MS_CURRENT_RECV_BUF_P = 48 @ Receive Buffer Pointer -OFS_MS_LAST_RECV_BUF_P = 64 -OFS_MS_RECV_CHECK_BUF_P = 80 - -OFS_MS_SEND_BUF = 96 @ Send Buffer (Double Buffer) -OFS_MS_RECV_BUF = (OFS_MS_SEND_BUF + MULTI_SIO_PACKET_SIZE * 2) - @ Receive Buffer (Triple Buffer) - -MULTI_SIO_AREA_SIZE = (OFS_MS_RECV_BUF + MULTI_SIO_PACKET_SIZE * 3 * MULTI_SIO_PLAYERS_MAX) - @ Structure Size - -OFS_MS_HARD_ERROR = 9 diff --git a/sa1/genctx.py b/sa1/genctx.py deleted file mode 100644 index b84df6c3dc..0000000000 --- a/sa1/genctx.py +++ /dev/null @@ -1,77 +0,0 @@ -import glob -import itertools as it -import sys - -# NOTE(Jace): -# "ImportError: cannot import name 'TopologicalSorter' from 'graphlib'" -# -# If you get the above error message, try uninstalling graphlib and install graphlib-backport instead. -# -# Alternatively you can try updating to a Python version equal to or newer than 3.9, -# and reinstall the module, though I haven't tested that. -# -# The information on graphlib-backport is from: -# https://stackoverflow.com/questions/71119487/cannot-get-topologicalsorter-from-graphlib -from graphlib import TopologicalSorter - -if len(sys.argv) > 1 and sys.argv[1] == '-e': - excluded = sys.argv[1:] -else: - excluded = [] - -depends_on = {} -data = {} - -def search_directories(*patterns): - return it.chain.from_iterable(glob.iglob(pattern,recursive=True) for pattern in patterns) - -for filename in search_directories('./include/**/*.h'): - with open(filename) as header: - header_name = "/".join(filename.split('/')[2:]) - - if not header_name in depends_on: - depends_on[header_name] = set() - - if not header_name.startswith("gba/"): - if header_name != "global.h" \ - and header_name != "config.h" \ - and header_name != "functions.h": - depends_on[header_name].add("global.h") - - else: # header_name.startswith("gba/") - if not header_name.endswith("types.h") \ - and not header_name.endswith("defines.h"): - depends_on[header_name].add("gba/types.h") - elif not header_name.endswith("multiboot.h") \ - and not header_name.endswith("types.h"): - depends_on[header_name].add("gba/multiboot.h") - - data[header_name] = "" - for line in header.readlines(): - if "#include" in line \ - and not line.startswith("//") \ - and '<' not in line: - requires = line.split('"')[1] - depends_on[header_name].add(requires) - continue - - data[header_name] += line - data[header_name] += "\n" - -ts = TopologicalSorter(depends_on) -print_order = tuple(ts.static_order()) - -with open('ctx.c', 'w') as context: - # Since the context is only used for matching anyway, auto-insert - context.write("#define PLATFORM_GBA 1\n\n") - - for header in print_order: - exclude = False - for e in excluded: - if e in header: - exclude = True - break - - if not exclude: - print(header) - context.write(data[header]) diff --git a/sa1/include/platform/ext/gbagfx/LICENSE b/sa1/include/platform/ext/gbagfx/LICENSE deleted file mode 100644 index b66bf81c0f..0000000000 --- a/sa1/include/platform/ext/gbagfx/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 YamaArashi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/sa1/include/platform/ext/gbagfx/global.h b/sa1/include/platform/ext/gbagfx/global.h deleted file mode 100644 index f49fdcceb3..0000000000 --- a/sa1/include/platform/ext/gbagfx/global.h +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) 2015 YamaArashi - -#ifndef GLOBAL_H -#define GLOBAL_H - -#include -#include - -#define ARRAY_COUNT(arr) (sizeof(arr) / sizeof((arr)[0])) - -#ifdef _MSC_VER - -#define FATAL_ERROR(format, ...) \ -do { \ - fprintf(stderr, format, __VA_ARGS__); \ - exit(1); \ -} while (0) - -#define UNUSED - -#else - -#define FATAL_ERROR(format, ...) \ -do { \ - fprintf(stderr, format, ##__VA_ARGS__); \ - exit(1); \ -} while (0) - -#define UNUSED __attribute__((__unused__)) - -#endif // _MSC_VER - -#endif // GLOBAL_H diff --git a/sa1/include/platform/ext/gbagfx/lz.h b/sa1/include/platform/ext/gbagfx/lz.h deleted file mode 100644 index a1d8a5e6ba..0000000000 --- a/sa1/include/platform/ext/gbagfx/lz.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2015 YamaArashi - -#ifndef LZ_H -#define LZ_H - -unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize); -unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize, const int minDistance); - -void LZDecompressUnsafe(unsigned char *src, unsigned char *dest, int *uncompressedSize); - -#endif // LZ_H diff --git a/sa1/include/platform/ext/gbagfx/rl.h b/sa1/include/platform/ext/gbagfx/rl.h deleted file mode 100644 index 8049c6357f..0000000000 --- a/sa1/include/platform/ext/gbagfx/rl.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2016 YamaArashi - -#ifndef RL_H -#define RL_H - -unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize); -unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize); - -void RLDecompressUnsafe(unsigned char *src, unsigned char *dest, int *uncompressedSize); - -#endif // RL_H diff --git a/sa1/include/platform/platform.h b/sa1/include/platform/platform.h deleted file mode 100644 index 0a44b8f1ff..0000000000 --- a/sa1/include/platform/platform.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef GUARD_SA2_PLATFORM_H -#define GUARD_SA2_PLATFORM_H - -#include "gba/types.h" - -/* NOTE: - * "Unsafe" versions included for compatibility. - * This is just here so if someone accidentally calls - * LZUnCompWram, LZUnCompVram, RLUnCompWram orRLUnCompVram, it doesn't fail. - * - * Please do NOT call them directly if you know the size of the compressed data! - * Use Platform_LZDecompress and Platform_RLDecompress instead, and also - * make sure to call Platform_LZFree, Platform_RLFree once the data is not needed - * anymore. - */ -#define ENABLE_RL_LZ_LOGGING 1 -extern unsigned char *Platform_LZDecompress(unsigned char *src, int srcSize); -extern unsigned char *Platform_RLDecompress(unsigned char *src, int srcSize); -extern void Platform_LZFree(unsigned char *dest); -extern void Platform_RLFree(unsigned char *dest); -extern void Platform_LZDecompressUnsafe(unsigned char *src, unsigned char *dest); -extern void Platform_RLDecompressUnsafe(unsigned char *src, unsigned char *dest); - -extern void Platform_QueueAudio(const void *data, u32 numBytes); - -#endif // GUARD_SA2_PLATFORM_H diff --git a/sa1/include/platform/shared/audio/README.txt b/sa1/include/platform/shared/audio/README.txt deleted file mode 100644 index 11d4506a3e..0000000000 --- a/sa1/include/platform/shared/audio/README.txt +++ /dev/null @@ -1,4 +0,0 @@ -The source code in this folder is from: -https://github.com/Kurausukun/pokeemerald/tree/pc_port - -Thanks to camthesaxman, Kurausukun, Pidgey and NT_x86 for allowing us to use the code! diff --git a/sa1/include/platform/shared/audio/cgb_audio.h b/sa1/include/platform/shared/audio/cgb_audio.h deleted file mode 100644 index 65dd77a91e..0000000000 --- a/sa1/include/platform/shared/audio/cgb_audio.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef CGB_AUDIO_H -#define CGB_AUDIO_H - -#include "lib/m4a/m4a_internal.h" - -struct AudioCGB { - u16 ch1Freq; - u8 ch1SweepCounter; - u8 ch1SweepCounterI; - bool8 ch1SweepDir; - u8 ch1SweepShift; - u8 Vol[4]; - u8 VolI[4]; - u8 Len[4]; - u8 LenI[4]; - bool8 LenOn[4]; - u8 EnvCounter[4]; - u8 EnvCounterI[4]; - bool8 EnvDir[4]; - bool8 DAC[4]; - float WAVRAM[32]; - u16 ch4LFSR[2]; - float outBuffer[PCM_DMA_BUF_SIZE * 2]; -}; - -void cgb_audio_init(u32 rate); -void cgb_set_sweep(u8 sweep); -void cgb_set_wavram(); -void cgb_toggle_length(u8 channel, bool8 state); -void cgb_set_length(u8 channel, u8 length); -void cgb_set_envelope(u8 channel, u8 envelope); -void cgb_trigger_note(u8 channel); -void cgb_audio_generate(u16 samplesPerFrame); -float *cgb_get_buffer(); - -#endif diff --git a/sa1/include/platform/shared/audio/cgb_tables.h b/sa1/include/platform/shared/audio/cgb_tables.h deleted file mode 100644 index 0966471aea..0000000000 --- a/sa1/include/platform/shared/audio/cgb_tables.h +++ /dev/null @@ -1,2100 +0,0 @@ -#ifndef CGB_TABLES_H -#define CGB_TABLES_H - -const int16_t PU0[32] - = { 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; - -const int16_t PU1[32] - = { 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; - -const int16_t PU2[32] = { 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1 }; - -const int16_t PU3[32] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1 }; - -int16_t WAV[32] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1 }; - -const float freqTable[2048] = { 32, - 32.0156326331216, - 32.0312805474096, - 32.0469437652812, - 32.0626223091976, - 32.0783162016642, - 32.0940254652302, - 32.109750122489, - 32.1254901960784, - 32.1412457086807, - 32.1570166830226, - 32.1728031418753, - 32.188605108055, - 32.2044226044226, - 32.220255653884, - 32.2361042793901, - 32.251968503937, - 32.2678483505662, - 32.2837438423645, - 32.2996550024643, - 32.3155818540434, - 32.3315244203256, - 32.3474827245805, - 32.3634567901235, - 32.3794466403162, - 32.3954522985665, - 32.4114737883284, - 32.4275111331024, - 32.4435643564356, - 32.4596334819217, - 32.4757185332012, - 32.4918195339613, - 32.5079365079365, - 32.5240694789082, - 32.5402184707051, - 32.5563835072032, - 32.572564612326, - 32.5887618100448, - 32.6049751243781, - 32.6212045793927, - 32.6374501992032, - 32.6537120079721, - 32.6699900299103, - 32.6862842892768, - 32.7025948103792, - 32.7189216175736, - 32.7352647352647, - 32.751624187906, - 32.768, - 32.784392196098, - 32.8008008008008, - 32.8172258387581, - 32.8336673346693, - 32.8501253132832, - 32.8665997993982, - 32.8830908178625, - 32.8995983935743, - 32.9161225514817, - 32.9326633165829, - 32.9492207139266, - 32.9657947686117, - 32.9823855057876, - 32.9989929506546, - 33.0156171284635, - 33.0322580645161, - 33.0489157841654, - 33.0655903128153, - 33.0822816759213, - 33.0989898989899, - 33.1157150075796, - 33.1324570273003, - 33.1492159838139, - 33.165991902834, - 33.1827848101266, - 33.1995947315096, - 33.2164216928535, - 33.2332657200811, - 33.2501268391679, - 33.2670050761421, - 33.2839004570848, - 33.3008130081301, - 33.3177427554652, - 33.3346897253306, - 33.3516539440204, - 33.3686354378819, - 33.3856342333164, - 33.4026503567788, - 33.4196838347782, - 33.4367346938776, - 33.4538029606942, - 33.4708886618999, - 33.4879918242207, - 33.5051124744376, - 33.5222506393862, - 33.539406345957, - 33.5565796210957, - 33.5737704918033, - 33.5909789851358, - 33.6082051282051, - 33.6254489481786, - 33.6427104722793, - 33.6599897277863, - 33.6772867420349, - 33.6946015424164, - 33.7119341563786, - 33.7292846114256, - 33.7466529351184, - 33.7640391550747, - 33.7814432989691, - 33.7988653945333, - 33.8163054695562, - 33.8337635518844, - 33.8512396694215, - 33.8687338501292, - 33.8862461220269, - 33.9037765131919, - 33.9213250517598, - 33.9388917659244, - 33.9564766839378, - 33.9740798341109, - 33.9917012448133, - 34.0093409444733, - 34.0269989615784, - 34.0446753246753, - 34.0623700623701, - 34.0800832033281, - 34.0978147762747, - 34.1155648099948, - 34.1333333333333, - 34.1511203751954, - 34.1689259645464, - 34.1867501304121, - 34.2045929018789, - 34.222454308094, - 34.2403343782654, - 34.2582331416623, - 34.2761506276151, - 34.2940868655154, - 34.3120418848168, - 34.330015715034, - 34.3480083857442, - 34.3660199265863, - 34.3840503672613, - 34.4020997375328, - 34.4201680672269, - 34.4382553862323, - 34.4563617245005, - 34.4744871120463, - 34.4926315789474, - 34.5107951553449, - 34.5289778714436, - 34.5471797575119, - 34.5654008438819, - 34.5836411609499, - 34.6019007391763, - 34.6201796090861, - 34.6384778012685, - 34.6567953463776, - 34.6751322751323, - 34.6934886183166, - 34.7118644067797, - 34.7302596714361, - 34.7486744432662, - 34.7671087533156, - 34.7855626326964, - 34.8040361125863, - 34.8225292242295, - 34.8410419989367, - 34.8595744680851, - 34.8781266631187, - 34.8966986155485, - 34.9152903569526, - 34.9339019189765, - 34.9525333333333, - 34.9711846318036, - 34.989855846236, - 35.008547008547, - 35.0272581507215, - 35.0459893048128, - 35.0647405029427, - 35.0835117773019, - 35.10230316015, - 35.1211146838156, - 35.1399463806971, - 35.1587982832618, - 35.1776704240472, - 35.1965628356606, - 35.2154755507792, - 35.2344086021505, - 35.2533620225928, - 35.2723358449946, - 35.2913301023156, - 35.3103448275862, - 35.3293800539084, - 35.3484358144552, - 35.3675121424717, - 35.3866090712743, - 35.4057266342518, - 35.4248648648649, - 35.4440237966468, - 35.4632034632035, - 35.4824038982133, - 35.501625135428, - 35.5208672086721, - 35.5401301518438, - 35.5594139989148, - 35.5787187839305, - 35.5980445410103, - 35.6173913043478, - 35.636759108211, - 35.6561479869423, - 35.6755579749592, - 35.6949891067538, - 35.7144414168937, - 35.7339149400218, - 35.7534097108565, - 35.7729257641921, - 35.792463134899, - 35.8120218579235, - 35.8316019682887, - 35.8512035010941, - 35.8708264915161, - 35.8904709748083, - 35.9101369863014, - 35.9298245614035, - 35.9495337356007, - 35.9692645444566, - 35.9890170236134, - 36.0087912087912, - 36.0285871357889, - 36.048404840484, - 36.0682443588332, - 36.0881057268722, - 36.1079889807162, - 36.1278941565601, - 36.1478212906784, - 36.167770419426, - 36.187741579238, - 36.2077348066298, - 36.2277501381979, - 36.2477876106195, - 36.267847260653, - 36.2879291251384, - 36.3080332409972, - 36.3281596452328, - 36.3483083749307, - 36.3684794672586, - 36.388672959467, - 36.4088888888889, - 36.4291272929405, - 36.4493882091212, - 36.4696716750139, - 36.4899777282851, - 36.5103064066852, - 36.5306577480491, - 36.5510317902956, - 36.5714285714286, - 36.5918481295366, - 36.6122905027933, - 36.6327557294578, - 36.6532438478747, - 36.6737548964745, - 36.6942889137738, - 36.7148459383753, - 36.7354260089686, - 36.7560291643298, - 36.7766554433221, - 36.7973048848961, - 36.8179775280899, - 36.8386734120292, - 36.859392575928, - 36.8801350590884, - 36.9009009009009, - 36.9216901408451, - 36.9425028184893, - 36.9633389734913, - 36.9841986455982, - 37.0050818746471, - 37.025988700565, - 37.0469191633691, - 37.0678733031674, - 37.0888511601585, - 37.1098527746319, - 37.1308781869688, - 37.1519274376417, - 37.173000567215, - 37.1940976163451, - 37.2152186257808, - 37.2363636363636, - 37.2575326890279, - 37.2787258248009, - 37.2999430848036, - 37.3211845102506, - 37.3424501424501, - 37.363740022805, - 37.3850541928123, - 37.4063926940639, - 37.4277555682467, - 37.4491428571429, - 37.4705546026301, - 37.4919908466819, - 37.5134516313681, - 37.5349369988545, - 37.556446991404, - 37.5779816513761, - 37.5995410212278, - 37.6211251435132, - 37.6427340608845, - 37.664367816092, - 37.6860264519839, - 37.7077100115075, - 37.7294185377087, - 37.7511520737327, - 37.7729106628242, - 37.7946943483276, - 37.8165031736872, - 37.838337182448, - 37.8601964182553, - 37.8820809248555, - 37.903990746096, - 37.9259259259259, - 37.9478865083961, - 37.9698725376593, - 37.991884057971, - 38.0139211136891, - 38.0359837492745, - 38.0580720092915, - 38.0801859384079, - 38.1023255813953, - 38.1244909831297, - 38.1466821885914, - 38.1688992428655, - 38.1911421911422, - 38.2134110787172, - 38.2357059509918, - 38.2580268534734, - 38.2803738317757, - 38.3027469316189, - 38.3251461988304, - 38.3475716793446, - 38.3700234192037, - 38.3925014645577, - 38.4150058616647, - 38.4375366568915, - 38.4600938967136, - 38.4826776277158, - 38.5052878965922, - 38.527924750147, - 38.5505882352941, - 38.5732783990583, - 38.5959952885748, - 38.6187389510902, - 38.6415094339623, - 38.6643067846608, - 38.6871310507674, - 38.7099822799764, - 38.7328605200946, - 38.755765819042, - 38.7786982248521, - 38.801657785672, - 38.824644549763, - 38.8476585655009, - 38.870699881376, - 38.8937685459941, - 38.916864608076, - 38.9399881164587, - 38.9631391200951, - 38.9863176680547, - 39.0095238095238, - 39.0327575938058, - 39.0560190703218, - 39.0793082886106, - 39.1026252983294, - 39.1259701492537, - 39.1493428912784, - 39.1727435744172, - 39.1961722488038, - 39.2196289646918, - 39.2431137724551, - 39.2666267225884, - 39.2901678657074, - 39.3137372525495, - 39.3373349339736, - 39.360960960961, - 39.3846153846154, - 39.4082982561636, - 39.4320096269555, - 39.4557495484648, - 39.4795180722892, - 39.5033152501507, - 39.5271411338963, - 39.5509957754979, - 39.5748792270531, - 39.5987915407855, - 39.6227327690447, - 39.6467029643073, - 39.6707021791768, - 39.694730466384, - 39.7187878787879, - 39.7428744693754, - 39.7669902912621, - 39.7911353976928, - 39.8153098420413, - 39.8395136778115, - 39.8637469586375, - 39.8880097382836, - 39.9123020706455, - 39.9366240097502, - 39.9609756097561, - 39.9853569249542, - 40.009768009768, - 40.0342089187538, - 40.0586797066015, - 40.0831804281346, - 40.1077111383109, - 40.1322718922229, - 40.156862745098, - 40.1814837522992, - 40.2061349693252, - 40.2308164518109, - 40.2555282555283, - 40.280270436386, - 40.3050430504305, - 40.3298461538462, - 40.3546798029557, - 40.3795440542206, - 40.4044389642417, - 40.4293645897594, - 40.4543209876543, - 40.4793082149475, - 40.504326328801, - 40.5293753865182, - 40.5544554455446, - 40.5795665634675, - 40.6047087980174, - 40.6298822070676, - 40.6550868486352, - 40.6803227808814, - 40.7055900621118, - 40.7308887507769, - 40.7562189054726, - 40.7815805849409, - 40.8069738480697, - 40.8323987538941, - 40.857855361596, - 40.8833437305053, - 40.9088639200999, - 40.9344159900062, - 40.96, - 40.9856160100063, - 41.0112640801001, - 41.0369442705072, - 41.062656641604, - 41.0884012539185, - 41.1141781681305, - 41.1399874450722, - 41.1658291457287, - 41.1917033312382, - 41.2176100628931, - 41.2435494021397, - 41.2695214105793, - 41.2955261499685, - 41.3215636822194, - 41.3476340694006, - 41.3737373737374, - 41.3998736576121, - 41.4260429835651, - 41.4522454142948, - 41.4784810126582, - 41.504749841672, - 41.531051964512, - 41.5573874445149, - 41.5837563451777, - 41.6101587301587, - 41.6365946632783, - 41.6630642085188, - 41.6895674300254, - 41.7161043921069, - 41.7426751592357, - 41.7692797960484, - 41.7959183673469, - 41.8225909380983, - 41.8492975734355, - 41.8760383386582, - 41.9028132992327, - 41.9296225207934, - 41.9564660691421, - 41.9833440102498, - 42.0102564102564, - 42.0372033354715, - 42.0641848523748, - 42.0912010276172, - 42.1182519280206, - 42.1453376205788, - 42.1724581724582, - 42.1996136509981, - 42.2268041237113, - 42.254029658285, - 42.2812903225807, - 42.3085861846352, - 42.3359173126615, - 42.3632837750485, - 42.3906856403622, - 42.4181229773463, - 42.4455958549223, - 42.4731043421905, - 42.5006485084306, - 42.5282284231019, - 42.5558441558442, - 42.5834957764782, - 42.6111833550065, - 42.6389069616135, - 42.6666666666667, - 42.6944625407166, - 42.722294654498, - 42.7501630789302, - 42.7780678851175, - 42.8060091443501, - 42.8339869281046, - 42.8620013080445, - 42.890052356021, - 42.9181401440733, - 42.9462647444299, - 42.9744262295082, - 43.002624671916, - 43.0308601444517, - 43.0591327201051, - 43.0874424720579, - 43.1157894736842, - 43.1441737985517, - 43.1725955204216, - 43.2010547132498, - 43.2295514511873, - 43.2580858085809, - 43.2866578599736, - 43.3152676801057, - 43.3439153439153, - 43.3726009265387, - 43.4013245033113, - 43.4300861497681, - 43.4588859416446, - 43.4877239548772, - 43.5166002656043, - 43.5455149501661, - 43.5744680851064, - 43.6034597471723, - 43.6324900133156, - 43.6615589606929, - 43.6906666666667, - 43.7198132088059, - 43.7489986648865, - 43.7782231128925, - 43.807486631016, - 43.8367892976589, - 43.8661311914324, - 43.8955123911587, - 43.9249329758713, - 43.9543930248156, - 43.9838926174497, - 44.0134318334453, - 44.0430107526882, - 44.0726294552791, - 44.1022880215343, - 44.1319865319865, - 44.1617250673855, - 44.1915037086986, - 44.221322537112, - 44.2511816340311, - 44.2810810810811, - 44.3110209601082, - 44.34100135318, - 44.3710223425863, - 44.4010840108401, - 44.431186440678, - 44.4613297150611, - 44.4915139171758, - 44.5217391304348, - 44.5520054384772, - 44.5823129251701, - 44.6126616746086, - 44.6430517711172, - 44.6734832992502, - 44.7039563437926, - 44.7344709897611, - 44.7650273224044, - 44.7956254272044, - 44.8262653898769, - 44.8569472963724, - 44.8876712328767, - 44.9184372858122, - 44.9492455418381, - 44.9800960878518, - 45.010989010989, - 45.0419243986254, - 45.0729023383769, - 45.1039229181005, - 45.1349862258953, - 45.1660923501034, - 45.1972413793103, - 45.2284334023465, - 45.2596685082873, - 45.2909467864547, - 45.3222683264177, - 45.3536332179931, - 45.3850415512465, - 45.4164934164934, - 45.4479889042996, - 45.4795281054823, - 45.5111111111111, - 45.5427380125087, - 45.5744089012517, - 45.6061238691719, - 45.6378830083566, - 45.6696864111498, - 45.7015341701534, - 45.7334263782275, - 45.7653631284916, - 45.7973445143256, - 45.8293706293706, - 45.8614415675297, - 45.8935574229692, - 45.9257182901191, - 45.9579242636746, - 45.9901754385965, - 46.0224719101124, - 46.0548137737175, - 46.0872011251758, - 46.1196340605208, - 46.1521126760563, - 46.184637068358, - 46.2172073342736, - 46.2498235709245, - 46.2824858757062, - 46.3151943462898, - 46.3479490806223, - 46.3807501769285, - 46.4135977337111, - 46.446491849752, - 46.4794326241135, - 46.5124201561391, - 46.5454545454545, - 46.5785358919687, - 46.6116642958748, - 46.6448398576513, - 46.6780626780627, - 46.7113328581611, - 46.7446504992867, - 46.7780157030692, - 46.8114285714286, - 46.8448892065761, - 46.8783977110157, - 46.9119541875447, - 46.945558739255, - 46.9792114695341, - 47.012912482066, - 47.0466618808327, - 47.0804597701149, - 47.1143062544932, - 47.1482014388489, - 47.1821454283657, - 47.2161383285303, - 47.2501802451334, - 47.2842712842713, - 47.3184115523466, - 47.3526011560694, - 47.3868402024584, - 47.4211287988423, - 47.4554670528602, - 47.4898550724638, - 47.5242929659173, - 47.5587808417997, - 47.5933188090051, - 47.6279069767442, - 47.6625454545455, - 47.6972343522562, - 47.7319737800437, - 47.7667638483965, - 47.8016046681255, - 47.836496350365, - 47.8714390065741, - 47.906432748538, - 47.9414776883687, - 47.9765739385066, - 48.0117216117216, - 48.0469208211144, - 48.0821716801174, - 48.1174743024963, - 48.1528288023512, - 48.1882352941176, - 48.2236938925681, - 48.259204712813, - 48.2947678703021, - 48.330383480826, - 48.3660516605166, - 48.4017725258493, - 48.4375461936438, - 48.4733727810651, - 48.5092524056255, - 48.5451851851852, - 48.581171237954, - 48.6172106824926, - 48.6533036377134, - 48.6894502228826, - 48.7256505576208, - 48.7619047619048, - 48.7982129560685, - 48.8345752608048, - 48.8709917971663, - 48.9074626865672, - 48.9439880507842, - 48.9805680119582, - 49.0172026925954, - 49.0538922155689, - 49.0906367041199, - 49.1274362818591, - 49.1642910727682, - 49.2012012012012, - 49.2381667918858, - 49.2751879699248, - 49.3122648607976, - 49.3493975903615, - 49.3865862848531, - 49.4238310708899, - 49.4611320754717, - 49.4984894259819, - 49.535903250189, - 49.5733736762481, - 49.6109008327025, - 49.6484848484849, - 49.6861258529189, - 49.7238239757208, - 49.7615793470008, - 49.7993920972644, - 49.8372623574145, - 49.8751902587519, - 49.9131759329779, - 49.9512195121951, - 49.9893211289092, - 50.0274809160305, - 50.0656990068755, - 50.1039755351682, - 50.1423106350421, - 50.1807044410413, - 50.2191570881226, - 50.2576687116564, - 50.296239447429, - 50.3348694316436, - 50.3735588009224, - 50.4123076923077, - 50.451116243264, - 50.4899845916795, - 50.5289128758674, - 50.5679012345679, - 50.6069498069498, - 50.6460587326121, - 50.6852281515855, - 50.7244582043344, - 50.7637490317583, - 50.8031007751938, - 50.8425135764158, - 50.8819875776397, - 50.9215229215229, - 50.9611197511664, - 51.0007782101167, - 51.0404984423676, - 51.0802805923617, - 51.1201248049922, - 51.160031225605, - 51.2, - 51.2400312744331, - 51.2801251956182, - 51.3202819107283, - 51.3605015673981, - 51.4007843137255, - 51.4411302982732, - 51.4815396700707, - 51.5220125786164, - 51.5625491738788, - 51.6031496062992, - 51.6438140267928, - 51.6845425867508, - 51.7253354380426, - 51.7661927330174, - 51.8071146245059, - 51.8481012658228, - 51.889152810768, - 51.9302694136292, - 51.9714512291832, - 52.0126984126984, - 52.0540111199365, - 52.0953895071542, - 52.1368337311058, - 52.1783439490446, - 52.2199203187251, - 52.2615629984051, - 52.3032721468476, - 52.3450479233227, - 52.3868904876099, - 52.4288, - 52.470776621297, - 52.5128205128205, - 52.5549318364074, - 52.5971107544141, - 52.6393574297189, - 52.6816720257235, - 52.7240547063556, - 52.7665056360709, - 52.809024979855, - 52.8516129032258, - 52.8942695722357, - 52.9369951534734, - 52.9797898140663, - 53.0226537216829, - 53.0655870445344, - 53.1085899513776, - 53.1516626115166, - 53.1948051948052, - 53.2380178716491, - 53.2813008130081, - 53.3246541903987, - 53.3680781758958, - 53.4115729421353, - 53.4551386623165, - 53.4987755102041, - 53.5424836601307, - 53.5862632869992, - 53.6301145662848, - 53.6740376740377, - 53.7180327868852, - 53.7621000820345, - 53.8062397372742, - 53.8504519309778, - 53.8947368421053, - 53.9390946502058, - 53.9835255354201, - 54.0280296784831, - 54.0726072607261, - 54.1172584640793, - 54.1619834710744, - 54.206782464847, - 54.2516556291391, - 54.2966031483016, - 54.3416252072969, - 54.3867219917012, - 54.4318936877076, - 54.477140482128, - 54.522462562396, - 54.5678601165695, - 54.6133333333333, - 54.6588824020017, - 54.7045075125209, - 54.750208855472, - 54.7959866220736, - 54.8418410041841, - 54.8877721943049, - 54.9337803855826, - 54.9798657718121, - 55.0260285474391, - 55.072268907563, - 55.1185870479394, - 55.1649831649832, - 55.2114574557709, - 55.2580101180438, - 55.304641350211, - 55.3513513513514, - 55.3981403212172, - 55.4450084602369, - 55.4919559695174, - 55.5389830508475, - 55.5860899067006, - 55.6332767402377, - 55.6805437553101, - 55.7278911564626, - 55.7753191489362, - 55.8228279386712, - 55.8704177323103, - 55.9180887372014, - 55.9658411614005, - 56.0136752136752, - 56.0615911035073, - 56.1095890410959, - 56.1576692373608, - 56.2058319039451, - 56.2540772532189, - 56.3024054982818, - 56.3508168529665, - 56.3993115318417, - 56.4478897502153, - 56.4965517241379, - 56.5452976704055, - 56.594127806563, - 56.6430423509075, - 56.6920415224914, - 56.7411255411255, - 56.790294627383, - 56.8395490026019, - 56.8888888888889, - 56.9383145091225, - 56.9878260869565, - 57.0374238468233, - 57.0871080139373, - 57.1368788142982, - 57.1867364746946, - 57.2366812227074, - 57.2867132867133, - 57.336832895888, - 57.3870402802102, - 57.4373356704645, - 57.4877192982456, - 57.5381913959614, - 57.5887521968366, - 57.6394019349165, - 57.6901408450704, - 57.7409691629956, - 57.7918871252205, - 57.8428949691086, - 57.8939929328622, - 57.9451812555261, - 57.9964601769912, - 58.0478299379982, - 58.0992907801418, - 58.150842945874, - 58.202486678508, - 58.2542222222222, - 58.3060498220641, - 58.3579697239537, - 58.4099821746881, - 58.4620874219447, - 58.5142857142857, - 58.5665773011618, - 58.6189624329159, - 58.6714413607878, - 58.7240143369176, - 58.7766816143498, - 58.8294434470377, - 58.8823000898473, - 58.9352517985612, - 58.988298829883, - 59.0414414414414, - 59.0946798917944, - 59.1480144404332, - 59.2014453477868, - 59.254972875226, - 59.3085972850679, - 59.3623188405797, - 59.4161378059837, - 59.470054446461, - 59.5240690281562, - 59.5781818181818, - 59.6323930846224, - 59.6867030965392, - 59.7411121239745, - 59.7956204379562, - 59.8502283105023, - 59.9049360146252, - 59.9597438243367, - 60.014652014652, - 60.0696608615949, - 60.1247706422018, - 60.1799816345271, - 60.2352941176471, - 60.2907083716651, - 60.3462246777164, - 60.4018433179724, - 60.4575645756458, - 60.5133887349954, - 60.5693160813309, - 60.6253469010176, - 60.6814814814815, - 60.7377201112141, - 60.7940630797774, - 60.8505106778087, - 60.907063197026, - 60.9637209302326, - 61.0204841713222, - 61.0773532152843, - 61.134328358209, - 61.1914098972923, - 61.2485981308411, - 61.3058933582788, - 61.3632958801498, - 61.4208059981256, - 61.4784240150094, - 61.5361502347418, - 61.593984962406, - 61.6519285042333, - 61.7099811676083, - 61.7681432610745, - 61.8264150943396, - 61.8847969782814, - 61.9432892249527, - 62.0018921475875, - 62.0606060606061, - 62.1194312796209, - 62.1783681214421, - 62.2374169040836, - 62.2965779467681, - 62.3558515699334, - 62.4152380952381, - 62.4747378455672, - 62.5343511450382, - 62.5940783190067, - 62.6539196940727, - 62.7138755980861, - 62.7739463601533, - 62.8341323106424, - 62.89443378119, - 62.954851104707, - 63.0153846153846, - 63.0760346487007, - 63.1368015414258, - 63.1976856316297, - 63.2586872586873, - 63.319806763285, - 63.3810444874275, - 63.4424007744434, - 63.5038759689923, - 63.5654704170708, - 63.6271844660194, - 63.6890184645287, - 63.7509727626459, - 63.8130477117819, - 63.8752436647174, - 63.9375609756098, - 64, - 64.0625610948192, - 64.1252446183953, - 64.1880509304603, - 64.2509803921569, - 64.3140333660451, - 64.37721021611, - 64.440511307768, - 64.503937007874, - 64.5674876847291, - 64.6311637080868, - 64.6949654491609, - 64.7588932806324, - 64.8229475766568, - 64.8871287128713, - 64.9514370664024, - 65.015873015873, - 65.0804369414101, - 65.1451292246521, - 65.2099502487562, - 65.2749003984064, - 65.3399800598205, - 65.4051896207585, - 65.4705294705295, - 65.536, - 65.6016016016016, - 65.6673346693387, - 65.7331995987964, - 65.7991967871486, - 65.8653266331658, - 65.9315895372234, - 65.9979859013092, - 66.0645161290323, - 66.1311806256307, - 66.1979797979798, - 66.2649140546006, - 66.331983805668, - 66.3991894630193, - 66.4665314401623, - 66.5340101522843, - 66.6016260162602, - 66.6693794506612, - 66.7372708757637, - 66.8053007135576, - 66.8734693877551, - 66.9417773237998, - 67.0102249488753, - 67.078812691914, - 67.1475409836066, - 67.2164102564103, - 67.2854209445585, - 67.3545734840699, - 67.4238683127572, - 67.4933058702369, - 67.5628865979382, - 67.6326109391125, - 67.702479338843, - 67.7724922440538, - 67.8426501035197, - 67.9129533678757, - 67.9834024896266, - 68.0539979231568, - 68.1247401247401, - 68.1956295525494, - 68.2666666666667, - 68.3378519290928, - 68.4091858037578, - 68.4806687565308, - 68.5523012552301, - 68.6240837696335, - 68.6960167714885, - 68.7681007345226, - 68.8403361344538, - 68.9127234490011, - 68.9852631578947, - 69.0579557428872, - 69.1308016877637, - 69.2038014783527, - 69.276955602537, - 69.3502645502646, - 69.4237288135593, - 69.4973488865324, - 69.5711252653928, - 69.6450584484591, - 69.7191489361702, - 69.7933972310969, - 69.8678038379531, - 69.9423692636073, - 70.017094017094, - 70.0919786096257, - 70.1670235546039, - 70.2422293676313, - 70.3175965665236, - 70.3931256713212, - 70.4688172043011, - 70.5446716899892, - 70.6206896551724, - 70.6968716289105, - 70.7732181425486, - 70.8497297297297, - 70.9264069264069, - 71.0032502708559, - 71.0802603036876, - 71.157437567861, - 71.2347826086957, - 71.3122959738847, - 71.3899782135076, - 71.4678298800436, - 71.5458515283843, - 71.624043715847, - 71.7024070021882, - 71.7809419496166, - 71.859649122807, - 71.9385290889133, - 72.0175824175824, - 72.0968096809681, - 72.1762114537445, - 72.2557883131202, - 72.3355408388521, - 72.4154696132597, - 72.4955752212389, - 72.5758582502769, - 72.6563192904656, - 72.7369589345172, - 72.8177777777778, - 72.8987764182425, - 72.9799554565702, - 73.0613154960981, - 73.1428571428571, - 73.2245810055866, - 73.3064876957494, - 73.3885778275476, - 73.4708520179372, - 73.5533108866442, - 73.6359550561798, - 73.718785151856, - 73.8018018018018, - 73.8850056369786, - 73.9683972911964, - 74.0519774011299, - 74.1357466063348, - 74.2197055492639, - 74.3038548752835, - 74.3881952326901, - 74.4727272727273, - 74.5574516496018, - 74.6423690205011, - 74.72748004561, - 74.8127853881279, - 74.8982857142857, - 74.9839816933639, - 75.0698739977091, - 75.1559633027523, - 75.2422502870264, - 75.3287356321839, - 75.415420023015, - 75.5023041474654, - 75.5893886966551, - 75.6766743648961, - 75.764161849711, - 75.8518518518518, - 75.9397450753187, - 76.0278422273782, - 76.116144018583, - 76.2046511627907, - 76.2933643771828, - 76.3822843822844, - 76.4714119019837, - 76.5607476635514, - 76.6502923976608, - 76.7400468384075, - 76.8300117233294, - 76.9201877934272, - 77.0105757931845, - 77.1011764705882, - 77.1919905771496, - 77.2830188679245, - 77.3742621015348, - 77.4657210401891, - 77.5573964497041, - 77.6492890995261, - 77.7413997627521, - 77.833729216152, - 77.9262782401902, - 78.0190476190476, - 78.1120381406436, - 78.2052505966587, - 78.2986857825568, - 78.3923444976077, - 78.4862275449102, - 78.5803357314149, - 78.6746698679472, - 78.7692307692308, - 78.864019253911, - 78.9590361445783, - 79.0542822677925, - 79.1497584541063, - 79.2454655380895, - 79.3414043583535, - 79.4375757575758, - 79.5339805825243, - 79.6306196840826, - 79.7274939172749, - 79.8246041412911, - 79.9219512195122, - 80.019536019536, - 80.1173594132029, - 80.2154222766218, - 80.3137254901961, - 80.4122699386503, - 80.5110565110565, - 80.610086100861, - 80.7093596059113, - 80.8088779284834, - 80.9086419753086, - 81.008652657602, - 81.1089108910891, - 81.2094175960347, - 81.3101736972705, - 81.4111801242236, - 81.5124378109453, - 81.6139476961395, - 81.715710723192, - 81.8177278401998, - 81.92, - 82.0225281602002, - 82.125313283208, - 82.228356336261, - 82.3316582914573, - 82.4352201257862, - 82.5390428211587, - 82.6431273644388, - 82.7474747474748, - 82.8520859671302, - 82.9569620253165, - 83.0621039290241, - 83.1675126903553, - 83.2731893265565, - 83.3791348600509, - 83.4853503184713, - 83.5918367346939, - 83.698595146871, - 83.8056265984655, - 83.9129321382842, - 84.0205128205128, - 84.1283697047497, - 84.2365038560411, - 84.3449163449163, - 84.4536082474227, - 84.5625806451613, - 84.671834625323, - 84.7813712807245, - 84.8911917098446, - 85.0012970168612, - 85.1116883116883, - 85.222366710013, - 85.3333333333333, - 85.4445893089961, - 85.556135770235, - 85.6679738562091, - 85.7801047120419, - 85.8925294888598, - 86.005249343832, - 86.1182654402102, - 86.2315789473684, - 86.3451910408432, - 86.4591029023747, - 86.5733157199472, - 86.6878306878307, - 86.8026490066225, - 86.9177718832891, - 87.0332005312085, - 87.1489361702128, - 87.2649800266312, - 87.3813333333333, - 87.497997329773, - 87.6149732620321, - 87.7322623828648, - 87.8498659517426, - 87.9677852348993, - 88.0860215053763, - 88.2045760430686, - 88.3234501347709, - 88.442645074224, - 88.5621621621622, - 88.68200270636, - 88.8021680216802, - 88.9226594301221, - 89.0434782608696, - 89.1646258503401, - 89.2861035422343, - 89.4079126875853, - 89.5300546448087, - 89.6525307797538, - 89.7753424657534, - 89.8984910836763, - 90.021978021978, - 90.1458046767538, - 90.2699724517906, - 90.3944827586207, - 90.5193370165746, - 90.6445366528354, - 90.7700831024931, - 90.8959778085992, - 91.0222222222222, - 91.1488178025035, - 91.2757660167131, - 91.4030683403068, - 91.5307262569833, - 91.6587412587413, - 91.7871148459384, - 91.9158485273492, - 92.0449438202247, - 92.1744022503516, - 92.3042253521127, - 92.4344146685472, - 92.5649717514124, - 92.6958981612447, - 92.8271954674221, - 92.958865248227, - 93.0909090909091, - 93.2233285917497, - 93.3561253561254, - 93.4893009985735, - 93.6228571428572, - 93.7567954220315, - 93.89111747851, - 94.025824964132, - 94.1609195402299, - 94.2964028776978, - 94.4322766570605, - 94.5685425685426, - 94.7052023121387, - 94.8422575976845, - 94.9797101449275, - 95.1175616835994, - 95.2558139534884, - 95.3944687045124, - 95.533527696793, - 95.6729927007299, - 95.812865497076, - 95.9531478770132, - 96.0938416422287, - 96.2349486049927, - 96.3764705882353, - 96.5184094256259, - 96.6607669616519, - 96.8035450516987, - 96.9467455621302, - 97.0903703703704, - 97.2344213649852, - 97.3789004457652, - 97.5238095238095, - 97.6691505216095, - 97.8149253731343, - 97.9611360239163, - 98.1077844311377, - 98.2548725637181, - 98.4024024024024, - 98.5503759398496, - 98.6987951807229, - 98.8476621417798, - 98.9969788519637, - 99.1467473524962, - 99.2969696969697, - 99.4476479514416, - 99.5987841945289, - 99.7503805175038, - 99.9024390243902, - 100.054961832061, - 100.207951070336, - 100.361408882083, - 100.515337423313, - 100.669738863287, - 100.824615384615, - 100.979969183359, - 101.135802469136, - 101.292117465224, - 101.448916408669, - 101.606201550388, - 101.76397515528, - 101.922239502333, - 102.080996884735, - 102.240249609984, - 102.4, - 102.560250391236, - 102.721003134796, - 102.882260596546, - 103.044025157233, - 103.206299212598, - 103.369085173502, - 103.532385466035, - 103.696202531646, - 103.860538827258, - 104.025396825397, - 104.190779014308, - 104.356687898089, - 104.52312599681, - 104.690095846645, - 104.8576, - 105.025641025641, - 105.194221508828, - 105.363344051447, - 105.533011272142, - 105.703225806452, - 105.873990306947, - 106.045307443366, - 106.217179902755, - 106.38961038961, - 106.562601626016, - 106.736156351792, - 106.910277324633, - 107.084967320261, - 107.26022913257, - 107.436065573771, - 107.612479474548, - 107.789473684211, - 107.96705107084, - 108.145214521452, - 108.323966942149, - 108.503311258278, - 108.683250414594, - 108.863787375415, - 109.044925124792, - 109.226666666667, - 109.409015025042, - 109.591973244147, - 109.77554438861, - 109.959731543624, - 110.144537815126, - 110.329966329966, - 110.516020236088, - 110.702702702703, - 110.890016920474, - 111.077966101695, - 111.266553480475, - 111.455782312925, - 111.645655877342, - 111.836177474403, - 112.02735042735, - 112.219178082192, - 112.41166380789, - 112.604810996564, - 112.798623063683, - 112.993103448276, - 113.188255613126, - 113.384083044983, - 113.580589254766, - 113.777777777778, - 113.975652173913, - 114.174216027875, - 114.373472949389, - 114.573426573427, - 114.77408056042, - 114.975438596491, - 115.177504393673, - 115.380281690141, - 115.583774250441, - 115.787985865724, - 115.992920353982, - 116.198581560284, - 116.404973357016, - 116.612099644128, - 116.819964349376, - 117.028571428571, - 117.237924865832, - 117.448028673835, - 117.658886894075, - 117.870503597122, - 118.082882882883, - 118.296028880866, - 118.509945750452, - 118.724637681159, - 118.940108892922, - 119.156363636364, - 119.373406193078, - 119.591240875912, - 119.80987202925, - 120.029304029304, - 120.249541284404, - 120.470588235294, - 120.692449355433, - 120.915129151292, - 121.138632162662, - 121.362962962963, - 121.588126159555, - 121.814126394052, - 122.040968342644, - 122.268656716418, - 122.497196261682, - 122.7265917603, - 122.956848030019, - 123.187969924812, - 123.419962335217, - 123.652830188679, - 123.886578449906, - 124.121212121212, - 124.356736242884, - 124.593155893536, - 124.830476190476, - 125.068702290076, - 125.307839388145, - 125.547892720307, - 125.78886756238, - 126.030769230769, - 126.273603082852, - 126.517374517375, - 126.762088974855, - 127.007751937985, - 127.254368932039, - 127.501945525292, - 127.750487329435, - 128, - 128.250489236791, - 128.501960784314, - 128.75442043222, - 129.007874015748, - 129.262327416174, - 129.517786561265, - 129.774257425743, - 130.031746031746, - 130.290258449304, - 130.549800796813, - 130.810379241517, - 131.072, - 131.334669338677, - 131.598393574297, - 131.863179074447, - 132.129032258065, - 132.39595959596, - 132.663967611336, - 132.933062880325, - 133.20325203252, - 133.474541751527, - 133.74693877551, - 134.020449897751, - 134.295081967213, - 134.570841889117, - 134.847736625514, - 135.125773195876, - 135.404958677686, - 135.685300207039, - 135.966804979253, - 136.24948024948, - 136.533333333333, - 136.818371607516, - 137.10460251046, - 137.392033542977, - 137.680672268908, - 137.970526315789, - 138.261603375527, - 138.553911205074, - 138.847457627119, - 139.142250530786, - 139.43829787234, - 139.735607675906, - 140.034188034188, - 140.334047109208, - 140.635193133047, - 140.937634408602, - 141.241379310345, - 141.546436285097, - 141.852813852814, - 142.160520607375, - 142.469565217391, - 142.779956427015, - 143.091703056769, - 143.404814004376, - 143.719298245614, - 144.035164835165, - 144.352422907489, - 144.671081677704, - 144.991150442478, - 145.312638580931, - 145.635555555556, - 145.95991091314, - 146.285714285714, - 146.612975391499, - 146.941704035874, - 147.27191011236, - 147.603603603604, - 147.936794582393, - 148.27149321267, - 148.607709750567, - 148.945454545455, - 149.284738041002, - 149.625570776256, - 149.967963386728, - 150.311926605505, - 150.657471264368, - 151.004608294931, - 151.353348729792, - 151.703703703704, - 152.055684454756, - 152.409302325581, - 152.764568764569, - 153.121495327103, - 153.480093676815, - 153.840375586854, - 154.202352941176, - 154.566037735849, - 154.931442080378, - 155.298578199052, - 155.667458432304, - 156.038095238095, - 156.410501193317, - 156.784688995215, - 157.16067146283, - 157.538461538462, - 157.918072289157, - 158.299516908213, - 158.682808716707, - 159.067961165049, - 159.45498783455, - 159.843902439024, - 160.234718826406, - 160.627450980392, - 161.022113022113, - 161.418719211823, - 161.817283950617, - 162.217821782178, - 162.620347394541, - 163.024875621891, - 163.431421446384, - 163.84, - 164.250626566416, - 164.663316582915, - 165.078085642317, - 165.49494949495, - 165.913924050633, - 166.335025380711, - 166.758269720102, - 167.183673469388, - 167.611253196931, - 168.041025641026, - 168.473007712082, - 168.907216494845, - 169.343669250646, - 169.782383419689, - 170.223376623377, - 170.666666666667, - 171.11227154047, - 171.560209424084, - 172.010498687664, - 172.463157894737, - 172.918205804749, - 173.375661375661, - 173.835543766578, - 174.297872340426, - 174.762666666667, - 175.229946524064, - 175.699731903485, - 176.172043010753, - 176.646900269542, - 177.124324324324, - 177.60433604336, - 178.086956521739, - 178.572207084469, - 179.060109289618, - 179.550684931507, - 180.043956043956, - 180.539944903581, - 181.038674033149, - 181.540166204986, - 182.044444444444, - 182.551532033426, - 183.061452513966, - 183.574229691877, - 184.089887640449, - 184.608450704225, - 185.129943502825, - 185.654390934844, - 186.181818181818, - 186.712250712251, - 187.245714285714, - 187.78223495702, - 188.32183908046, - 188.864553314121, - 189.410404624277, - 189.959420289855, - 190.511627906977, - 191.067055393586, - 191.625730994152, - 192.187683284457, - 192.752941176471, - 193.321533923304, - 193.89349112426, - 194.46884272997, - 195.047619047619, - 195.629850746269, - 196.215568862275, - 196.804804804805, - 197.397590361446, - 197.993957703928, - 198.593939393939, - 199.197568389058, - 199.804878048781, - 200.415902140673, - 201.030674846626, - 201.649230769231, - 202.271604938272, - 202.897832817337, - 203.527950310559, - 204.16199376947, - 204.8, - 205.442006269592, - 206.088050314465, - 206.738170347003, - 207.392405063291, - 208.050793650794, - 208.713375796178, - 209.380191693291, - 210.051282051282, - 210.726688102894, - 211.406451612903, - 212.090614886731, - 212.779220779221, - 213.472312703583, - 214.169934640523, - 214.872131147541, - 215.578947368421, - 216.290429042904, - 217.006622516556, - 217.727574750831, - 218.453333333333, - 219.183946488294, - 219.919463087248, - 220.659932659933, - 221.405405405405, - 222.15593220339, - 222.91156462585, - 223.672354948805, - 224.438356164384, - 225.209621993127, - 225.986206896552, - 226.768166089965, - 227.555555555556, - 228.348432055749, - 229.146853146853, - 229.950877192982, - 230.760563380282, - 231.575971731449, - 232.397163120567, - 233.224199288256, - 234.057142857143, - 234.89605734767, - 235.741007194245, - 236.592057761733, - 237.449275362319, - 238.312727272727, - 239.182481751825, - 240.058608058608, - 240.941176470588, - 241.830258302583, - 242.725925925926, - 243.628252788104, - 244.537313432836, - 245.453183520599, - 246.375939849624, - 247.305660377358, - 248.242424242424, - 249.186311787072, - 250.137404580153, - 251.095785440613, - 252.061538461538, - 253.034749034749, - 254.015503875969, - 255.003891050584, - 256, - 257.003921568627, - 258.015748031496, - 259.03557312253, - 260.063492063492, - 261.099601593625, - 262.144, - 263.196787148594, - 264.258064516129, - 265.327935222672, - 266.406504065041, - 267.49387755102, - 268.590163934426, - 269.695473251029, - 270.809917355372, - 271.933609958506, - 273.066666666667, - 274.20920502092, - 275.361344537815, - 276.523206751055, - 277.694915254237, - 278.876595744681, - 280.068376068376, - 281.270386266094, - 282.48275862069, - 283.705627705628, - 284.939130434783, - 286.183406113537, - 287.438596491228, - 288.704845814978, - 289.982300884956, - 291.271111111111, - 292.571428571429, - 293.883408071749, - 295.207207207207, - 296.542986425339, - 297.890909090909, - 299.251141552511, - 300.623853211009, - 302.009216589862, - 303.407407407407, - 304.818604651163, - 306.242990654206, - 307.680751173709, - 309.132075471698, - 310.597156398104, - 312.07619047619, - 313.569377990431, - 315.076923076923, - 316.599033816425, - 318.135922330097, - 319.687804878049, - 321.254901960784, - 322.837438423645, - 324.435643564356, - 326.049751243781, - 327.68, - 329.326633165829, - 330.989898989899, - 332.670050761421, - 334.367346938775, - 336.082051282051, - 337.814432989691, - 339.564766839378, - 341.333333333333, - 343.120418848168, - 344.926315789474, - 346.751322751323, - 348.595744680851, - 350.459893048128, - 352.344086021505, - 354.248648648649, - 356.173913043478, - 358.120218579235, - 360.087912087912, - 362.077348066298, - 364.088888888889, - 366.122905027933, - 368.179775280899, - 370.25988700565, - 372.363636363636, - 374.491428571429, - 376.64367816092, - 378.820809248555, - 381.023255813953, - 383.251461988304, - 385.505882352941, - 387.786982248521, - 390.095238095238, - 392.431137724551, - 394.795180722892, - 397.187878787879, - 399.609756097561, - 402.061349693252, - 404.543209876543, - 407.055900621118, - 409.6, - 412.176100628931, - 414.784810126582, - 417.426751592357, - 420.102564102564, - 422.812903225807, - 425.558441558442, - 428.339869281046, - 431.157894736842, - 434.013245033113, - 436.906666666667, - 439.838926174497, - 442.810810810811, - 445.823129251701, - 448.876712328767, - 451.972413793103, - 455.111111111111, - 458.293706293706, - 461.521126760563, - 464.794326241135, - 468.114285714286, - 471.482014388489, - 474.898550724638, - 478.36496350365, - 481.882352941176, - 485.451851851852, - 489.074626865672, - 492.751879699248, - 496.484848484849, - 500.274809160305, - 504.123076923077, - 508.031007751938, - 512, - 516.031496062992, - 520.126984126984, - 524.288, - 528.516129032258, - 532.813008130081, - 537.180327868852, - 541.619834710744, - 546.133333333333, - 550.72268907563, - 555.389830508475, - 560.136752136752, - 564.965517241379, - 569.878260869565, - 574.877192982456, - 579.964601769912, - 585.142857142857, - 590.414414414414, - 595.781818181818, - 601.247706422018, - 606.814814814815, - 612.485981308411, - 618.264150943396, - 624.152380952381, - 630.153846153846, - 636.271844660194, - 642.509803921569, - 648.871287128713, - 655.36, - 661.979797979798, - 668.734693877551, - 675.628865979381, - 682.666666666667, - 689.852631578947, - 697.191489361702, - 704.688172043011, - 712.347826086956, - 720.175824175824, - 728.177777777778, - 736.359550561798, - 744.727272727273, - 753.287356321839, - 762.046511627907, - 771.011764705882, - 780.190476190476, - 789.590361445783, - 799.219512195122, - 809.086419753086, - 819.2, - 829.569620253165, - 840.205128205128, - 851.116883116883, - 862.315789473684, - 873.813333333333, - 885.621621621622, - 897.753424657534, - 910.222222222222, - 923.042253521127, - 936.228571428571, - 949.797101449275, - 963.764705882353, - 978.149253731343, - 992.969696969697, - 1008.24615384615, - 1024, - 1040.25396825397, - 1057.03225806452, - 1074.36065573771, - 1092.26666666667, - 1110.77966101695, - 1129.93103448276, - 1149.75438596491, - 1170.28571428571, - 1191.56363636364, - 1213.62962962963, - 1236.52830188679, - 1260.30769230769, - 1285.01960784314, - 1310.72, - 1337.4693877551, - 1365.33333333333, - 1394.3829787234, - 1424.69565217391, - 1456.35555555556, - 1489.45454545455, - 1524.09302325581, - 1560.38095238095, - 1598.43902439024, - 1638.4, - 1680.41025641026, - 1724.63157894737, - 1771.24324324324, - 1820.44444444444, - 1872.45714285714, - 1927.52941176471, - 1985.93939393939, - 2048, - 2114.06451612903, - 2184.53333333333, - 2259.86206896552, - 2340.57142857143, - 2427.25925925926, - 2520.61538461538, - 2621.44, - 2730.66666666667, - 2849.39130434783, - 2978.90909090909, - 3120.7619047619, - 3276.8, - 3449.26315789474, - 3640.88888888889, - 3855.05882352941, - 4096, - 4369.06666666667, - 4681.14285714286, - 5041.23076923077, - 5461.33333333333, - 5957.81818181818, - 6553.6, - 7281.77777777778, - 8192, - 9362.28571428571, - 10922.6666666667, - 13107.2, - 16384, - 21845.3333333333, - 32768, - 65536 }; - -const float freqTableNSE[256] = { - 524288, 262144, 131072, 87381.3333333333, 65536, 52428.8, 43690.6666666667, 37449.1428571429, - 524288, 262144, 131072, 87381.3333333333, 65536, 52428.8, 43690.6666666667, 37449.1428571429, - 262144, 131072, 65536, 43690.6666666667, 32768, 26214.4, 21845.3333333333, 18724.5714285714, - 262144, 131072, 65536, 43690.6666666667, 32768, 26214.4, 21845.3333333333, 18724.5714285714, - 131072, 65536, 32768, 21845.3333333333, 16384, 13107.2, 10922.6666666667, 9362.28571428571, - 131072, 65536, 32768, 21845.3333333333, 16384, 13107.2, 10922.6666666667, 9362.28571428571, - 65536, 32768, 16384, 10922.6666666667, 8192, 6553.6, 5461.33333333333, 4681.14285714286, - 65536, 32768, 16384, 10922.6666666667, 8192, 6553.6, 5461.33333333333, 4681.14285714286, - 32768, 16384, 8192, 5461.33333333333, 4096, 3276.8, 2730.66666666667, 2340.57142857143, - 32768, 16384, 8192, 5461.33333333333, 4096, 3276.8, 2730.66666666667, 2340.57142857143, - 16384, 8192, 4096, 2730.66666666667, 2048, 1638.4, 1365.33333333333, 1170.28571428571, - 16384, 8192, 4096, 2730.66666666667, 2048, 1638.4, 1365.33333333333, 1170.28571428571, - 8192, 4096, 2048, 1365.33333333333, 1024, 819.2, 682.666666666667, 585.142857142857, - 8192, 4096, 2048, 1365.33333333333, 1024, 819.2, 682.666666666667, 585.142857142857, - 4096, 2048, 1024, 682.666666666667, 512, 409.6, 341.333333333333, 292.571428571429, - 4096, 2048, 1024, 682.666666666667, 512, 409.6, 341.333333333333, 292.571428571429, - 2048, 1024, 512, 341.333333333333, 256, 204.8, 170.666666666667, 146.285714285714, - 2048, 1024, 512, 341.333333333333, 256, 204.8, 170.666666666667, 146.285714285714, - 1024, 512, 256, 170.666666666667, 128, 102.4, 85.3333333333333, 73.1428571428571, - 1024, 512, 256, 170.666666666667, 128, 102.4, 85.3333333333333, 73.1428571428571, - 512, 256, 128, 85.3333333333333, 64, 51.2, 42.6666666666667, 36.5714285714286, - 512, 256, 128, 85.3333333333333, 64, 51.2, 42.6666666666667, 36.5714285714286, - 256, 128, 64, 42.6666666666667, 32, 25.6, 21.3333333333333, 18.2857142857143, - 256, 128, 64, 42.6666666666667, 32, 25.6, 21.3333333333333, 18.2857142857143, - 128, 64, 32, 21.3333333333333, 16, 12.8, 10.6666666666667, 9.14285714285714, - 128, 64, 32, 21.3333333333333, 16, 12.8, 10.6666666666667, 9.14285714285714, - 64, 32, 16, 10.6666666666667, 8, 6.4, 5.33333333333333, 4.57142857142857, - 64, 32, 16, 10.6666666666667, 8, 6.4, 5.33333333333333, 4.57142857142857, - 32, 16, 8, 5.33333333333333, 4, 3.2, 2.66666666666667, 2.28571428571429, - 32, 16, 8, 5.33333333333333, 4, 3.2, 2.66666666666667, 2.28571428571429, - 16, 8, 4, 2.66666666666667, 2, 1.6, 1.33333333333333, 1.14285714285714, - 16, 8, 4, 2.66666666666667, 2, 1.6, 1.33333333333333, 1.14285714285714, -}; - -#endif diff --git a/sa1/include/platform/shared/dma.h b/sa1/include/platform/shared/dma.h deleted file mode 100644 index d45b07121b..0000000000 --- a/sa1/include/platform/shared/dma.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef GUARD_PLATFORM_SHARED_DMA_H -#define GUARD_PLATFORM_SHARED_DMA_H - -#define DMA_DEST_MASK 0x0060 -#define DMA_SRC_MASK 0x0180 - -#define DMA_COUNT 4 - -typedef struct DMATransfer { - union { - const void *src; - const u16 *src16; - const u32 *src32; - }; - union { - void *dst; - vu16 *dst16; - vu32 *dst32; - }; - u32 size; - u16 control; -} DMATransfer; - -extern struct DMATransfer DMAList[DMA_COUNT]; - -typedef enum { DMA_NOW, DMA_VBLANK, DMA_HBLANK, DMA_SPECIAL } DmaStartTypes; - -void RunDMAs(DmaStartTypes type); - -#endif // GUARD_PLATFORM_SHARED_DMA_H \ No newline at end of file diff --git a/sa1/include/platform/shared/input.h b/sa1/include/platform/shared/input.h deleted file mode 100644 index 7d1866e551..0000000000 --- a/sa1/include/platform/shared/input.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUARD_PLATFORM_SHARED_INPUT_H -#define GUARD_PLATFORM_SHARED_INPUT_H - -typedef u32 SharedKeys; - -#define KEY_SPEEDUP (1 << 16) -#define SPEEDUP_SCALE 5.0f - -#ifdef _WIN32 -SharedKeys GetXInputKeys(); -#endif // _WIN32 - -#endif // GUARD_PLATFORM_SHARED_INPUT_H diff --git a/sa1/include/platform/shared/opengl.h b/sa1/include/platform/shared/opengl.h deleted file mode 100644 index dc643c216e..0000000000 --- a/sa1/include/platform/shared/opengl.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef GUARD_PLATFORM_SHARED_OPENGL_H -#define GUARD_PLATFORM_SHARED_OPENGL_H - -#include "sprite.h" // for Sprite - -void OpenGL_OnInit(); -void OpenGL_DisplaySprite(Sprite *sprite, u8 oamPaletteNum); -void OpenGL_Render(void *tempBufferPixels, int windowWidth, int windowHeight); - -#endif // GUARD_PLATFORM_SHARED_OPENGL_H diff --git a/sa1/scripts/disasm.cfg b/sa1/scripts/disasm.cfg deleted file mode 100644 index 4371fc5c1e..0000000000 --- a/sa1/scripts/disasm.cfg +++ /dev/null @@ -1,2222 +0,0 @@ -arm_func 0x08000000 sub_8000000 -arm_func 0x080000c0 sub_80000C0 -thumb_func 0x080003ec sub_80003EC -thumb_func 0x0800089c sub_800089C -thumb_func 0x08000980 sub_8000980 -thumb_func 0x08000c54 sub_8000C54 -thumb_func 0x08000d34 sub_8000D34 -thumb_func 0x08000f44 sub_8000F44 -thumb_func 0x0800116c sub_800116C -thumb_func 0x08001224 sub_8001224 -thumb_func 0x08001314 sub_8001314 -thumb_func 0x080013f8 sub_80013F8 -thumb_func 0x08001494 sub_8001494 -thumb_func 0x080014a8 TasksInit -thumb_func 0x08001588 sub_8001588 -thumb_func 0x08001620 sub_8001620 -thumb_func 0x080016ac sub_80016AC -thumb_func 0x08001780 sub_8001780 -thumb_func 0x080017e8 sub_80017E8 -thumb_func 0x08001864 sub_8001864 -thumb_func 0x08001930 sub_8001930 -thumb_func 0x08001954 sub_8001954 -thumb_func 0x080019c0 sub_80019C0 -thumb_func 0x08001aa4 sub_8001AA4 -thumb_func 0x08001ac8 sub_8001AC8 -thumb_func 0x08002570 sub_8002570 -thumb_func 0x08002580 sub_8002580 -thumb_func 0x0800258c sub_800258C -thumb_func 0x0800258e sub_800258E -thumb_func 0x080025b0 sub_80025B0 -thumb_func 0x08002658 sub_8002658 -thumb_func 0x080027e4 sub_80027E4 -thumb_func 0x08002888 sub_8002888 -thumb_func 0x08002958 sub_8002958 -thumb_func 0x08002e58 sub_8002E58 -thumb_func 0x08002f84 sub_8002F84 -thumb_func 0x080031e8 sub_80031E8 -thumb_func 0x08003288 sub_8003288 -thumb_func 0x0800338c sub_800338C -thumb_func 0x0800344c sub_800344C -thumb_func 0x0800348c sub_800348C -thumb_func 0x080034cc sub_80034CC -thumb_func 0x08003660 sub_8003660 -thumb_func 0x08003710 sub_8003710 -thumb_func 0x080037d0 sub_80037D0 -thumb_func 0x08003a2c sub_8003A2C -thumb_func 0x08003d84 sub_8003D84 -thumb_func 0x08004158 sub_8004158 -thumb_func 0x08004454 sub_8004454 -thumb_func 0x080047fc sub_80047FC -thumb_func 0x08004894 sub_8004894 -thumb_func 0x08004a84 sub_8004A84 -thumb_func 0x08004b9c sub_8004B9C -thumb_func 0x08004efc sub_8004EFC -thumb_func 0x08005170 sub_8005170 -thumb_func 0x080053f0 sub_80053F0 -thumb_func 0x08005674 sub_8005674 -thumb_func 0x08005cfc sub_8005CFC -thumb_func 0x08006194 sub_8006194 -thumb_func 0x08006518 sub_8006518 -thumb_func 0x08006680 sub_8006680 -thumb_func 0x080067a0 sub_80067A0 -thumb_func 0x0800681c sub_800681C -thumb_func 0x080068a0 sub_80068A0 -thumb_func 0x08006a74 sub_8006A74 -thumb_func 0x08006a88 sub_8006A88 -thumb_func 0x08006ae8 sub_8006AE8 -thumb_func 0x08006b54 sub_8006B54 -thumb_func 0x08006c0c sub_8006C0C -thumb_func 0x08006c34 sub_8006C34 -thumb_func 0x08006c60 MultiSioInit -thumb_func 0x08006d54 sub_8006D54 -thumb_func 0x08006e6c sub_8006E6C -thumb_func 0x08006f3c sub_8006F3C -thumb_func 0x080070a8 sub_80070A8 -thumb_func 0x080070c0 sub_80070C0 -thumb_func 0x08007110 sub_8007110 -thumb_func 0x0800762c sub_800762C -thumb_func 0x080076a4 sub_80076A4 -thumb_func 0x080076f8 sub_80076F8 -thumb_func 0x08007838 sub_8007838 -thumb_func 0x08007954 sub_8007954 -thumb_func 0x08007990 sub_8007990 -thumb_func 0x080079a0 sub_80079A0 -thumb_func 0x080079e8 sub_80079E8 -thumb_func 0x08007bcc sub_8007BCC -thumb_func 0x08007c94 sub_8007C94 -thumb_func 0x08007d30 sub_8007D30 -thumb_func 0x08007e3c sub_8007E3C -thumb_func 0x08008744 sub_8008744 -thumb_func 0x08008784 sub_8008784 -thumb_func 0x080088a8 sub_80088A8 -thumb_func 0x08008cec sub_8008CEC -thumb_func 0x080095b4 sub_80095B4 -thumb_func 0x080095cc sub_80095CC -thumb_func 0x080096b0 Coll_Player_Platform -thumb_func 0x080097e4 sub_80097E4 -thumb_func 0x0800a372 sub_800A372 -thumb_func 0x0800a378 sub_800A378 -thumb_func 0x0800a390 sub_800A390 -thumb_func 0x0800a392 sub_800A392 -thumb_func 0x0800a3a8 sub_800A3A8 -thumb_func 0x0800a6a4 sub_800A6A4 -thumb_func 0x0800a768 sub_800A768 -thumb_func 0x0800a850 sub_800A850 -thumb_func 0x0800abec sub_800ABEC -thumb_func 0x0800afdc sub_800AFDC -thumb_func 0x0800b1d4 sub_800B1D4 -thumb_func 0x0800b2bc sub_800B2BC -thumb_func 0x0800b4f8 sub_800B4F8 -thumb_func 0x0800b798 sub_800B798 -thumb_func 0x0800b8b4 sub_800B8B4 -thumb_func 0x0800ba5c sub_800BA5C -thumb_func 0x0800bcbc sub_800BCBC -thumb_func 0x0800bf10 sub_800BF10 -thumb_func 0x0800bfec sub_800BFEC -thumb_func 0x0800c0e0 sub_800C0E0 -thumb_func 0x0800c1e8 sub_800C1E8 -thumb_func 0x0800c2b8 sub_800C2B8 -thumb_func 0x0800c394 sub_800C394 -thumb_func 0x0800c558 sub_800C558 -thumb_func 0x0800c714 sub_800C714 -thumb_func 0x0800c760 sub_800C760 -thumb_func 0x0800c848 sub_800C848 -thumb_func 0x0800c934 sub_800C934 -thumb_func 0x0800cbbc sub_800CBBC -thumb_func 0x0800ce34 sub_800CE34 -thumb_func 0x0800cf04 sub_800CF04 -thumb_func 0x0800cf90 sub_800CF90 -thumb_func 0x0800cfb8 sub_800CFB8 -thumb_func 0x0800d098 sub_800D098 -thumb_func 0x0800d11c sub_800D11C -thumb_func 0x0800d198 sub_800D198 -thumb_func 0x0800d268 sub_800D268 -thumb_func 0x0800d364 sub_800D364 -thumb_func 0x0800d3c4 sub_800D3C4 -thumb_func 0x0800d40c sub_800D40C -thumb_func 0x0800d434 sub_800D434 -thumb_func 0x0800d450 sub_800D450 -thumb_func 0x0800d498 sub_800D498 -thumb_func 0x0800d4b0 sub_800D4B0 -thumb_func 0x0800d4e0 sub_800D4E0 -thumb_func 0x0800d71c sub_800D71C -thumb_func 0x0800d7ec sub_800D7EC -thumb_func 0x0800d878 sub_800D878 -thumb_func 0x0800d8fc sub_800D8FC -thumb_func 0x0800db6c sub_800DB6C -thumb_func 0x0800dcfc sub_800DCFC -thumb_func 0x0800de44 sub_800DE44 -thumb_func 0x0800dee4 sub_800DEE4 -thumb_func 0x0800df88 sub_800DF88 -thumb_func 0x0800e008 sub_800E008 -thumb_func 0x0800e020 sub_800E020 -thumb_func 0x0800e044 sub_800E044 -thumb_func 0x0800e060 sub_800E060 -thumb_func 0x0800e0c4 sub_800E0C4 -thumb_func 0x0800e128 sub_800E128 -thumb_func 0x0800e220 sub_800E220 -thumb_func 0x0800e34c sub_800E34C -thumb_func 0x0800e470 sub_800E470 -thumb_func 0x0800e648 sub_800E648 -thumb_func 0x0800e798 sub_800E798 -thumb_func 0x0800e868 sub_800E868 -thumb_func 0x0800e934 sub_800E934 -thumb_func 0x0800eb4c sub_800EB4C -thumb_func 0x0800f058 sub_800F058 -thumb_func 0x0800f318 sub_800F318 -thumb_func 0x0800f5f0 sub_800F5F0 -thumb_func 0x0800f9bc sub_800F9BC -thumb_func 0x0800fbf8 sub_800FBF8 -thumb_func 0x0800fcfc sub_800FCFC -thumb_func 0x0800fd9c sub_800FD9C -thumb_func 0x0800feb0 sub_800FEB0 -thumb_func 0x0800fef4 sub_800FEF4 -thumb_func 0x0800ff38 sub_800FF38 -thumb_func 0x0800ff68 sub_800FF68 -thumb_func 0x0800ff94 sub_800FF94 -thumb_func 0x0800ffe0 sub_800FFE0 -thumb_func 0x08010020 sub_8010020 -thumb_func 0x08010048 sub_8010048 -thumb_func 0x08010060 sub_8010060 -thumb_func 0x080100a8 sub_80100A8 -thumb_func 0x080102a8 sub_80102A8 -thumb_func 0x080103c4 sub_80103C4 -thumb_func 0x08010580 sub_8010580 -thumb_func 0x080105d4 sub_80105D4 -thumb_func 0x080105f8 sub_80105F8 -thumb_func 0x0801061c sub_801061C -thumb_func 0x08010b6c sub_8010B6C -thumb_func 0x08010cb4 sub_8010CB4 -thumb_func 0x08010e90 sub_8010E90 -thumb_func 0x08010f00 sub_8010F00 -thumb_func 0x08010f70 sub_8010F70 -thumb_func 0x08010fdc sub_8010FDC -thumb_func 0x0801104c sub_801104C -thumb_func 0x08011104 sub_8011104 -thumb_func 0x0801123c sub_801123C -thumb_func 0x080114a0 sub_80114A0 -thumb_func 0x0801166c sub_801166C -thumb_func 0x08011684 sub_8011684 -thumb_func 0x080116a0 sub_80116A0 -thumb_func 0x080116d8 sub_80116D8 -thumb_func 0x0801171c sub_801171C -thumb_func 0x08011738 sub_8011738 -thumb_func 0x0801176c sub_801176C -thumb_func 0x080117a8 sub_80117A8 -thumb_func 0x08011b7c sub_8011B7C -thumb_func 0x08011c94 sub_8011C94 -thumb_func 0x08011d88 sub_8011D88 -thumb_func 0x08011da0 sub_8011DA0 -thumb_func 0x08011db8 sub_8011DB8 -thumb_func 0x08011e08 sub_8011E08 -thumb_func 0x08011e54 sub_8011E54 -thumb_func 0x080122e4 sub_80122E4 -thumb_func 0x080123e4 sub_80123E4 -thumb_func 0x080124c4 sub_80124C4 -thumb_func 0x0801252c sub_801252C -thumb_func 0x080125c0 sub_80125C0 -thumb_func 0x080126b4 sub_80126B4 -thumb_func 0x08012728 sub_8012728 -thumb_func 0x080127dc sub_80127DC -thumb_func 0x08012848 sub_8012848 -thumb_func 0x080128c0 sub_80128C0 -thumb_func 0x08012a38 sub_8012A38 -thumb_func 0x08012ba8 sub_8012BA8 -thumb_func 0x08012ca8 sub_8012CA8 -thumb_func 0x08012d98 sub_8012D98 -thumb_func 0x08012ea4 sub_8012EA4 -thumb_func 0x08012f6c sub_8012F6C -thumb_func 0x08012fc4 sub_8012FC4 -thumb_func 0x08012fe8 sub_8012FE8 -thumb_func 0x08013078 sub_8013078 -thumb_func 0x080130bc sub_80130BC -thumb_func 0x080130f0 sub_80130F0 -thumb_func 0x08013400 sub_8013400 -thumb_func 0x08013df0 sub_8013DF0 -thumb_func 0x08014144 sub_8014144 -thumb_func 0x0801473c sub_801473C -thumb_func 0x08014d0c sub_8014D0C -thumb_func 0x08015024 sub_8015024 -thumb_func 0x080151ac sub_80151AC -thumb_func 0x080152c8 sub_80152C8 -thumb_func 0x08015674 sub_8015674 -thumb_func 0x08015754 sub_8015754 -thumb_func 0x080157a8 sub_80157A8 -thumb_func 0x08015810 sub_8015810 -thumb_func 0x080158d4 sub_80158D4 -thumb_func 0x08015c5c sub_8015C5C -thumb_func 0x08015d88 sub_8015D88 -thumb_func 0x08015f60 sub_8015F60 -thumb_func 0x08015ffc sub_8015FFC -thumb_func 0x0801615c sub_801615C -thumb_func 0x0801623c sub_801623C -thumb_func 0x08016490 sub_8016490 -thumb_func 0x08016650 sub_8016650 -thumb_func 0x0801685c sub_801685C -thumb_func 0x080168f0 sub_80168F0 -thumb_func 0x08016a14 sub_8016A14 -thumb_func 0x08016b6c sub_8016B6C -thumb_func 0x08016d80 sub_8016D80 -thumb_func 0x08016e54 sub_8016E54 -thumb_func 0x08016f44 sub_8016F44 -thumb_func 0x08017054 sub_8017054 -thumb_func 0x080171bc sub_80171BC -thumb_func 0x08017244 sub_8017244 -thumb_func 0x080172cc sub_80172CC -thumb_func 0x08017400 sub_8017400 -thumb_func 0x0801749c sub_801749C -thumb_func 0x080174dc sub_80174DC -thumb_func 0x08017540 sub_8017540 -thumb_func 0x080175d8 sub_80175D8 -thumb_func 0x0801766c sub_801766C -thumb_func 0x0801769c sub_801769C -thumb_func 0x08017750 sub_8017750 -thumb_func 0x08017800 sub_8017800 -thumb_func 0x0801796c sub_801796C -thumb_func 0x08017a30 sub_8017A30 -thumb_func 0x08017b54 sub_8017B54 -thumb_func 0x08017c04 sub_8017C04 -thumb_func 0x08017f10 sub_8017F10 -thumb_func 0x080181f8 sub_80181F8 -thumb_func 0x0801827c sub_801827C -thumb_func 0x080182fc sub_80182FC -thumb_func 0x08018318 sub_8018318 -thumb_func 0x08018380 sub_8018380 -thumb_func 0x080183d4 sub_80183D4 -thumb_func 0x08018538 sub_8018538 -thumb_func 0x0801874c sub_801874C -thumb_func 0x08018ae0 sub_8018AE0 -thumb_func 0x08018ecc sub_8018ECC -thumb_func 0x08019348 sub_8019348 -thumb_func 0x080196fc sub_80196FC -thumb_func 0x08019c14 sub_8019C14 -thumb_func 0x08019db0 sub_8019DB0 -thumb_func 0x0801a1a4 sub_801A1A4 -thumb_func 0x0801a38c sub_801A38C -thumb_func 0x0801a574 sub_801A574 -thumb_func 0x0801a728 sub_801A728 -thumb_func 0x0801a794 sub_801A794 -thumb_func 0x0801ab34 sub_801AB34 -thumb_func 0x0801b06c sub_801B06C -thumb_func 0x0801b0b8 sub_801B0B8 -thumb_func 0x0801b1b4 sub_801B1B4 -thumb_func 0x0801b574 sub_801B574 -thumb_func 0x0801b6f4 sub_801B6F4 -thumb_func 0x0801bacc sub_801BACC -thumb_func 0x0801bcc4 sub_801BCC4 -thumb_func 0x0801bd64 sub_801BD64 -thumb_func 0x0801c130 sub_801C130 -thumb_func 0x0801c2fc sub_801C2FC -thumb_func 0x0801c3a0 sub_801C3A0 -thumb_func 0x0801c420 sub_801C420 -thumb_func 0x0801c4ec sub_801C4EC -thumb_func 0x0801c5c4 sub_801C5C4 -thumb_func 0x0801c69c sub_801C69C -thumb_func 0x0801c704 sub_801C704 -thumb_func 0x0801c770 sub_801C770 -thumb_func 0x0801c810 sub_801C810 -thumb_func 0x0801c8d4 sub_801C8D4 -thumb_func 0x0801c9d8 sub_801C9D8 -thumb_func 0x0801cb80 sub_801CB80 -thumb_func 0x0801cd80 sub_801CD80 -thumb_func 0x0801cf08 sub_801CF08 -thumb_func 0x0801d0cc sub_801D0CC -thumb_func 0x0801d200 sub_801D200 -thumb_func 0x0801d34c sub_801D34C -thumb_func 0x0801d3dc sub_801D3DC -thumb_func 0x0801d4fc sub_801D4FC -thumb_func 0x0801d680 sub_801D680 -thumb_func 0x0801d7f8 sub_801D7F8 -thumb_func 0x0801d8e4 sub_801D8E4 -thumb_func 0x0801d9f0 sub_801D9F0 -thumb_func 0x0801da88 sub_801DA88 -thumb_func 0x0801db40 sub_801DB40 -thumb_func 0x0801dc84 sub_801DC84 -thumb_func 0x0801ddec sub_801DDEC -thumb_func 0x0801e034 sub_801E034 -thumb_func 0x0801e190 sub_801E190 -thumb_func 0x0801e2c0 sub_801E2C0 -thumb_func 0x0801e3dc sub_801E3DC -thumb_func 0x0801e46c sub_801E46C -thumb_func 0x0801e59c sub_801E59C -thumb_func 0x0801e608 sub_801E608 -thumb_func 0x0801e7c8 sub_801E7C8 -thumb_func 0x0801ec28 sub_801EC28 -thumb_func 0x0801f044 sub_801F044 -thumb_func 0x0801f0e8 sub_801F0E8 -thumb_func 0x0801f180 sub_801F180 -thumb_func 0x0801f298 sub_801F298 -thumb_func 0x0801f680 sub_801F680 -thumb_func 0x0801fa28 sub_801FA28 -thumb_func 0x0801fab8 sub_801FAB8 -thumb_func 0x0801fe00 sub_801FE00 -thumb_func 0x0801fe84 sub_801FE84 -thumb_func 0x0801fed0 sub_801FED0 -thumb_func 0x0801ff70 sub_801FF70 -thumb_func 0x0801ffc4 sub_801FFC4 -thumb_func 0x080200b0 sub_80200B0 -thumb_func 0x08020190 sub_8020190 -thumb_func 0x0802035c sub_802035C -thumb_func 0x08020528 sub_8020528 -thumb_func 0x08020644 sub_8020644 -thumb_func 0x08020958 sub_8020958 -thumb_func 0x08020a4c sub_8020A4C -thumb_func 0x08020b4c sub_8020B4C -thumb_func 0x08020c44 sub_8020C44 -thumb_func 0x08020d44 sub_8020D44 -thumb_func 0x08020e98 sub_8020E98 -thumb_func 0x08020f2c sub_8020F2C -thumb_func 0x08021208 sub_8021208 -thumb_func 0x080214ec sub_80214EC -thumb_func 0x08021608 sub_8021608 -thumb_func 0x08021838 sub_8021838 -thumb_func 0x08021908 sub_8021908 -thumb_func 0x080219a0 sub_80219A0 -thumb_func 0x08021ae4 sub_8021AE4 -thumb_func 0x08021ca0 sub_8021CA0 -thumb_func 0x08021d94 sub_8021D94 -thumb_func 0x08021f50 sub_8021F50 -thumb_func 0x080220fc sub_80220FC -thumb_func 0x080221a8 sub_80221A8 -thumb_func 0x08022354 sub_8022354 -thumb_func 0x08022400 sub_8022400 -thumb_func 0x08022500 sub_8022500 -thumb_func 0x08022594 sub_8022594 -thumb_func 0x08022640 sub_8022640 -thumb_func 0x08022804 sub_8022804 -thumb_func 0x080228d0 sub_80228D0 -thumb_func 0x08022ab4 sub_8022AB4 -thumb_func 0x08022e14 sub_8022E14 -thumb_func 0x08023180 sub_8023180 -thumb_func 0x0802326c sub_802326C -thumb_func 0x080234d0 sub_80234D0 -thumb_func 0x08023698 sub_8023698 -thumb_func 0x080238fc sub_80238FC -thumb_func 0x08023aa4 sub_8023AA4 -thumb_func 0x08023b08 sub_8023B08 -thumb_func 0x08023c88 sub_8023C88 -thumb_func 0x08023ed0 sub_8023ED0 -thumb_func 0x08023efc sub_8023EFC -thumb_func 0x08023f30 sub_8023F30 -thumb_func 0x08023f94 sub_8023F94 -thumb_func 0x08023ff8 sub_8023FF8 -thumb_func 0x0802417c sub_802417C -thumb_func 0x08024448 sub_8024448 -thumb_func 0x08024574 sub_8024574 -thumb_func 0x0802473c sub_802473C -thumb_func 0x0802492c sub_802492C -thumb_func 0x08024b30 sub_8024B30 -thumb_func 0x08024bc8 sub_8024BC8 -thumb_func 0x08024d8c sub_8024D8C -thumb_func 0x08024ea0 sub_8024EA0 -thumb_func 0x08025400 sub_8025400 -thumb_func 0x080255f0 sub_80255F0 -thumb_func 0x08025714 sub_8025714 -thumb_func 0x08025754 sub_8025754 -thumb_func 0x080257a0 sub_80257A0 -thumb_func 0x080258ac sub_80258AC -thumb_func 0x08025920 sub_8025920 -thumb_func 0x08025980 sub_8025980 -thumb_func 0x080259f0 sub_80259F0 -thumb_func 0x08025be0 sub_8025BE0 -thumb_func 0x08025cc4 sub_8025CC4 -thumb_func 0x08025d80 sub_8025D80 -thumb_func 0x08025e6c sub_8025E6C -thumb_func 0x0802611c sub_802611C -thumb_func 0x080264c8 sub_80264C8 -thumb_func 0x08026c44 sub_8026C44 -thumb_func 0x08026ed0 sub_8026ED0 -thumb_func 0x08027100 sub_8027100 -thumb_func 0x080271e4 sub_80271E4 -thumb_func 0x080272d0 sub_80272D0 -thumb_func 0x080273e4 sub_80273E4 -thumb_func 0x080274ac sub_80274AC -thumb_func 0x08027600 sub_8027600 -thumb_func 0x08027714 sub_8027714 -thumb_func 0x08027918 sub_8027918 -thumb_func 0x08027970 sub_8027970 -thumb_func 0x08027a84 sub_8027A84 -thumb_func 0x08028034 sub_8028034 -thumb_func 0x0802816c sub_802816C -thumb_func 0x08028388 sub_8028388 -thumb_func 0x08028518 sub_8028518 -thumb_func 0x080286b0 sub_80286B0 -thumb_func 0x0802888c sub_802888C -thumb_func 0x08028910 sub_8028910 -thumb_func 0x08028a1c sub_8028A1C -thumb_func 0x08028aac sub_8028AAC -thumb_func 0x08028c84 sub_8028C84 -thumb_func 0x08028ce4 sub_8028CE4 -thumb_func 0x08028f20 sub_8028F20 -thumb_func 0x08029070 sub_8029070 -thumb_func 0x08029194 sub_8029194 -thumb_func 0x080294a8 sub_80294A8 -thumb_func 0x080297e8 sub_80297E8 -thumb_func 0x08029860 sub_8029860 -thumb_func 0x080298c0 sub_80298C0 -thumb_func 0x08029908 sub_8029908 -thumb_func 0x080299b0 sub_80299B0 -thumb_func 0x08029a50 sub_8029A50 -thumb_func 0x08029ac4 sub_8029AC4 -thumb_func 0x08029b74 sub_8029B74 -thumb_func 0x08029cdc sub_8029CDC -thumb_func 0x08029e0c sub_8029E0C -thumb_func 0x08029ea8 sub_8029EA8 -thumb_func 0x08029f30 sub_8029F30 -thumb_func 0x08029fa4 sub_8029FA4 -thumb_func 0x0802a068 sub_802A068 -thumb_func 0x0802a134 sub_802A134 -thumb_func 0x0802a248 sub_802A248 -thumb_func 0x0802a4c4 sub_802A4C4 -thumb_func 0x0802a560 sub_802A560 -thumb_func 0x0802a688 sub_802A688 -thumb_func 0x0802a890 sub_802A890 -thumb_func 0x0802a988 sub_802A988 -thumb_func 0x0802aa48 sub_802AA48 -thumb_func 0x0802aaf0 sub_802AAF0 -thumb_func 0x0802aba0 sub_802ABA0 -thumb_func 0x0802ac50 sub_802AC50 -thumb_func 0x0802acf0 sub_802ACF0 -thumb_func 0x0802ad9c sub_802AD9C -thumb_func 0x0802ae40 sub_802AE40 -thumb_func 0x0802b008 sub_802B008 -thumb_func 0x0802b07c sub_802B07C -thumb_func 0x0802b18c sub_802B18C -thumb_func 0x0802b214 sub_802B214 -thumb_func 0x0802b3e4 sub_802B3E4 -thumb_func 0x0802b5dc sub_802B5DC -thumb_func 0x0802b66c sub_802B66C -thumb_func 0x0802b884 sub_802B884 -thumb_func 0x0802bbf0 sub_802BBF0 -thumb_func 0x0802bc6c sub_802BC6C -thumb_func 0x0802be0c sub_802BE0C -thumb_func 0x0802bedc sub_802BEDC -thumb_func 0x0802c04c sub_802C04C -thumb_func 0x0802c0cc sub_802C0CC -thumb_func 0x0802c2dc sub_802C2DC -thumb_func 0x0802c488 sub_802C488 -thumb_func 0x0802c56c sub_802C56C -thumb_func 0x0802c6c4 sub_802C6C4 -thumb_func 0x0802c89c sub_802C89C -thumb_func 0x0802c934 sub_802C934 -thumb_func 0x0802ca90 sub_802CA90 -thumb_func 0x0802d158 sub_802D158 -thumb_func 0x0802d190 sub_802D190 -thumb_func 0x0802d1d8 sub_802D1D8 -thumb_func 0x0802d20c sub_802D20C -thumb_func 0x0802d238 sub_802D238 -thumb_func 0x0802d2f4 sub_802D2F4 -thumb_func 0x0802d37c sub_802D37C -thumb_func 0x0802d3e4 sub_802D3E4 -thumb_func 0x0802d450 sub_802D450 -thumb_func 0x0802d464 sub_802D464 -thumb_func 0x0802d4c4 sub_802D4C4 -thumb_func 0x0802d508 sub_802D508 -thumb_func 0x0802d560 sub_802D560 -thumb_func 0x0802d58c sub_802D58C -thumb_func 0x0802d5ec sub_802D5EC -thumb_func 0x0802d66c sub_802D66C -thumb_func 0x0802d680 sub_802D680 -thumb_func 0x0802d748 sub_802D748 -thumb_func 0x0802d870 sub_802D870 -thumb_func 0x0802d908 sub_802D908 -thumb_func 0x0802d960 sub_802D960 -thumb_func 0x0802db4c sub_802DB4C -thumb_func 0x0802dc3c sub_802DC3C -thumb_func 0x0802ddcc sub_802DDCC -thumb_func 0x0802defc sub_802DEFC -thumb_func 0x0802e130 sub_802E130 -thumb_func 0x0802e290 sub_802E290 -thumb_func 0x0802e3dc sub_802E3DC -thumb_func 0x0802e500 sub_802E500 -thumb_func 0x0802e714 sub_802E714 -thumb_func 0x0802e868 sub_802E868 -thumb_func 0x0802ea8c sub_802EA8C -thumb_func 0x0802ecfc sub_802ECFC -thumb_func 0x0802ef94 sub_802EF94 -thumb_func 0x0802f0d0 sub_802F0D0 -thumb_func 0x0802f168 sub_802F168 -thumb_func 0x0802f4a8 sub_802F4A8 -thumb_func 0x0802f56c sub_802F56C -thumb_func 0x0802f644 sub_802F644 -thumb_func 0x0802f804 sub_802F804 -thumb_func 0x0802f9f8 sub_802F9F8 -thumb_func 0x0802fb2c sub_802FB2C -thumb_func 0x0802fc14 sub_802FC14 -thumb_func 0x0802fe88 sub_802FE88 -thumb_func 0x08030120 sub_8030120 -thumb_func 0x0803020c sub_803020C -thumb_func 0x08030364 sub_8030364 -thumb_func 0x08030414 sub_8030414 -thumb_func 0x0803053c sub_803053C -thumb_func 0x080305a0 sub_80305A0 -thumb_func 0x08030778 sub_8030778 -thumb_func 0x080308a4 sub_80308A4 -thumb_func 0x080309cc sub_80309CC -thumb_func 0x08030a60 sub_8030A60 -thumb_func 0x08030ca4 sub_8030CA4 -thumb_func 0x08030ee4 sub_8030EE4 -thumb_func 0x080311d4 sub_80311D4 -thumb_func 0x08031480 sub_8031480 -thumb_func 0x0803170c sub_803170C -thumb_func 0x08031998 sub_8031998 -thumb_func 0x08031ab4 sub_8031AB4 -thumb_func 0x08031d88 sub_8031D88 -thumb_func 0x08031ed0 sub_8031ED0 -thumb_func 0x08031f74 sub_8031F74 -thumb_func 0x08031fc8 sub_8031FC8 -thumb_func 0x080321c0 sub_80321C0 -thumb_func 0x08032370 sub_8032370 -thumb_func 0x080327c4 sub_80327C4 -thumb_func 0x08032af8 sub_8032AF8 -thumb_func 0x08032d44 sub_8032D44 -thumb_func 0x08032f58 sub_8032F58 -thumb_func 0x0803330c sub_803330C -thumb_func 0x0803341c sub_803341C -thumb_func 0x08033480 sub_8033480 -thumb_func 0x080335c0 sub_80335C0 -thumb_func 0x08033730 sub_8033730 -thumb_func 0x08033878 sub_8033878 -thumb_func 0x08033924 sub_8033924 -thumb_func 0x080339bc sub_80339BC -thumb_func 0x08033aa0 sub_8033AA0 -thumb_func 0x08034098 sub_8034098 -thumb_func 0x080342a0 sub_80342A0 -thumb_func 0x080343e0 sub_80343E0 -thumb_func 0x08034478 sub_8034478 -thumb_func 0x08034644 sub_8034644 -thumb_func 0x08034718 sub_8034718 -thumb_func 0x0803491c sub_803491C -thumb_func 0x08034b7c sub_8034B7C -thumb_func 0x08034ca0 sub_8034CA0 -thumb_func 0x08034ee0 sub_8034EE0 -thumb_func 0x08035010 sub_8035010 -thumb_func 0x08035354 sub_8035354 -thumb_func 0x0803540c sub_803540C -thumb_func 0x080354f4 sub_80354F4 -thumb_func 0x08035588 sub_8035588 -thumb_func 0x08035768 sub_8035768 -thumb_func 0x0803582c sub_803582C -thumb_func 0x0803596c sub_803596C -thumb_func 0x08035aac sub_8035AAC -thumb_func 0x08035b44 sub_8035B44 -thumb_func 0x08035d18 sub_8035D18 -thumb_func 0x08035dd4 sub_8035DD4 -thumb_func 0x08035f70 sub_8035F70 -thumb_func 0x08036150 sub_8036150 -thumb_func 0x0803623c sub_803623C -thumb_func 0x08036478 sub_8036478 -thumb_func 0x080365ac sub_80365AC -thumb_func 0x0803673c sub_803673C -thumb_func 0x08036810 sub_8036810 -thumb_func 0x08036994 sub_8036994 -thumb_func 0x08036b94 sub_8036B94 -thumb_func 0x08036cf4 sub_8036CF4 -thumb_func 0x08036e20 sub_8036E20 -thumb_func 0x08036f9c sub_8036F9C -thumb_func 0x080370b4 sub_80370B4 -thumb_func 0x0803711c sub_803711C -thumb_func 0x080373fc sub_80373FC -thumb_func 0x0803753c sub_803753C -thumb_func 0x0803775c sub_803775C -thumb_func 0x0803803c sub_803803C -thumb_func 0x08038154 sub_8038154 -thumb_func 0x08038420 sub_8038420 -thumb_func 0x08038554 sub_8038554 -thumb_func 0x0803891c sub_803891C -thumb_func 0x08038b38 sub_8038B38 -thumb_func 0x08038bc8 sub_8038BC8 -thumb_func 0x08038c20 sub_8038C20 -thumb_func 0x08038d2c sub_8038D2C -thumb_func 0x08038e34 sub_8038E34 -thumb_func 0x08038f04 sub_8038F04 -thumb_func 0x08039074 sub_8039074 -thumb_func 0x08039108 sub_8039108 -thumb_func 0x0803918c sub_803918C -thumb_func 0x08039264 sub_8039264 -thumb_func 0x0803967c sub_803967C -thumb_func 0x080397a8 sub_80397A8 -thumb_func 0x08039940 sub_8039940 -thumb_func 0x08039a64 sub_8039A64 -thumb_func 0x0803a170 sub_803A170 -thumb_func 0x0803a1d8 sub_803A1D8 -thumb_func 0x0803a46c sub_803A46C -thumb_func 0x0803a54c sub_803A54C -thumb_func 0x0803a594 sub_803A594 -thumb_func 0x0803a950 sub_803A950 -thumb_func 0x0803ab60 sub_803AB60 -thumb_func 0x0803b534 sub_803B534 -thumb_func 0x0803b55e sub_803B55E -thumb_func 0x0803bc64 sub_803BC64 -thumb_func 0x0803be0c sub_803BE0C -thumb_func 0x0803beb8 sub_803BEB8 -thumb_func 0x0803bfe8 sub_803BFE8 -thumb_func 0x0803c130 sub_803C130 -thumb_func 0x0803c1ac sub_803C1AC -thumb_func 0x0803c3e0 sub_803C3E0 -thumb_func 0x0803c5a8 sub_803C5A8 -thumb_func 0x0803c648 sub_803C648 -thumb_func 0x0803c784 sub_803C784 -thumb_func 0x0803cb48 sub_803CB48 -thumb_func 0x0803cb7c sub_803CB7C -thumb_func 0x0803cbc0 sub_803CBC0 -thumb_func 0x0803cd34 sub_803CD34 -thumb_func 0x0803ce00 sub_803CE00 -thumb_func 0x0803ce2c sub_803CE2C -thumb_func 0x0803ce54 sub_803CE54 -thumb_func 0x0803cf9c sub_803CF9C -thumb_func 0x0803d290 sub_803D290 -thumb_func 0x0803d590 sub_803D590 -thumb_func 0x0803d66c sub_803D66C -thumb_func 0x0803d724 sub_803D724 -thumb_func 0x0803dbd4 sub_803DBD4 -thumb_func 0x0803dc48 sub_803DC48 -thumb_func 0x0803dc84 sub_803DC84 -thumb_func 0x0803e094 sub_803E094 -thumb_func 0x0803e0e4 sub_803E0E4 -thumb_func 0x0803e410 sub_803E410 -thumb_func 0x0803e6c4 sub_803E6C4 -thumb_func 0x0803e78c sub_803E78C -thumb_func 0x0803e878 sub_803E878 -thumb_func 0x0803ea24 sub_803EA24 -thumb_func 0x0803eac0 sub_803EAC0 -thumb_func 0x0803ed84 sub_803ED84 -thumb_func 0x0803ee84 sub_803EE84 -thumb_func 0x0803f400 sub_803F400 -thumb_func 0x0803f52c sub_803F52C -thumb_func 0x0803f644 sub_803F644 -thumb_func 0x0803f65c sub_803F65C -thumb_func 0x0803f714 sub_803F714 -thumb_func 0x0803f770 sub_803F770 -thumb_func 0x0803f7a8 sub_803F7A8 -thumb_func 0x0803f8a0 sub_803F8A0 -thumb_func 0x0803f8c0 sub_803F8C0 -thumb_func 0x0803fa74 sub_803FA74 -thumb_func 0x0803fc64 sub_803FC64 -thumb_func 0x0803fd5c sub_803FD5C -thumb_func 0x0803fe44 sub_803FE44 -thumb_func 0x080400b4 sub_80400B4 -thumb_func 0x08040160 sub_8040160 -thumb_func 0x08040198 sub_8040198 -thumb_func 0x0804021c sub_804021C -thumb_func 0x080403dc sub_80403DC -thumb_func 0x080404a0 sub_80404A0 -thumb_func 0x08040570 sub_8040570 -thumb_func 0x080405e4 sub_80405E4 -thumb_func 0x0804061c sub_804061C -thumb_func 0x08040648 sub_8040648 -thumb_func 0x080406cc sub_80406CC -thumb_func 0x080407bc sub_80407BC -thumb_func 0x080408c0 sub_80408C0 -thumb_func 0x08040944 sub_8040944 -thumb_func 0x080409f8 sub_80409F8 -thumb_func 0x08040b10 sub_8040B10 -thumb_func 0x08040c1c sub_8040C1C -thumb_func 0x08040d5c sub_8040D5C -thumb_func 0x08041188 sub_8041188 -thumb_func 0x080415f4 sub_80415F4 -thumb_func 0x08041adc sub_8041ADC -thumb_func 0x08041fc8 sub_8041FC8 -thumb_func 0x08041fe0 sub_8041FE0 -thumb_func 0x08042000 sub_8042000 -thumb_func 0x0804202c sub_804202C -thumb_func 0x08042104 sub_8042104 -thumb_func 0x080421ac sub_80421AC -thumb_func 0x0804221c sub_804221C -thumb_func 0x08042428 sub_8042428 -thumb_func 0x080425c4 sub_80425C4 -thumb_func 0x0804269c sub_804269C -thumb_func 0x08042770 sub_8042770 -thumb_func 0x08042848 sub_8042848 -thumb_func 0x08042900 sub_8042900 -thumb_func 0x08042a68 sub_8042A68 -thumb_func 0x08042b90 sub_8042B90 -thumb_func 0x08042cec sub_8042CEC -thumb_func 0x08042e3c sub_8042E3C -thumb_func 0x08042ec4 sub_8042EC4 -thumb_func 0x08042f6c sub_8042F6C -thumb_func 0x08043088 sub_8043088 -thumb_func 0x08043194 sub_8043194 -thumb_func 0x080432b8 sub_80432B8 -thumb_func 0x080433dc sub_80433DC -thumb_func 0x08043460 sub_8043460 -thumb_func 0x08043578 sub_8043578 -thumb_func 0x08043688 sub_8043688 -thumb_func 0x08043798 sub_8043798 -thumb_func 0x080438a0 sub_80438A0 -thumb_func 0x08043970 sub_8043970 -thumb_func 0x08043a2c sub_8043A2C -thumb_func 0x08043ad8 sub_8043AD8 -thumb_func 0x08043ba8 sub_8043BA8 -thumb_func 0x08043c98 sub_8043C98 -thumb_func 0x08043d40 sub_8043D40 -thumb_func 0x08043ddc sub_8043DDC -thumb_func 0x08043ec0 sub_8043EC0 -thumb_func 0x080440a4 sub_80440A4 -thumb_func 0x08044250 sub_8044250 -thumb_func 0x08044434 sub_8044434 -thumb_func 0x080445a0 sub_80445A0 -thumb_func 0x08044670 sub_8044670 -thumb_func 0x08044750 sub_8044750 -thumb_func 0x080447d8 sub_80447D8 -thumb_func 0x080448d0 sub_80448D0 -thumb_func 0x080449d8 sub_80449D8 -thumb_func 0x08044a6c sub_8044A6C -thumb_func 0x08044d74 sub_8044D74 -thumb_func 0x08044e48 sub_8044E48 -thumb_func 0x08044f7c sub_8044F7C -thumb_func 0x0804516c sub_804516C -thumb_func 0x0804521c sub_804521C -thumb_func 0x08045304 sub_8045304 -thumb_func 0x0804571c sub_804571C -thumb_func 0x0804597c sub_804597C -thumb_func 0x08045b38 sub_8045B38 -thumb_func 0x08045cfc sub_8045CFC -thumb_func 0x08045df0 sub_8045DF0 -thumb_func 0x08046008 sub_8046008 -thumb_func 0x080462fc sub_80462FC -thumb_func 0x08046af4 sub_8046AF4 -thumb_func 0x08046cb8 sub_8046CB8 -thumb_func 0x08046cc4 sub_8046CC4 -thumb_func 0x08046cec sub_8046CEC -thumb_func 0x08046d50 sub_8046D50 -thumb_func 0x08046d9c sub_8046D9C -thumb_func 0x08046de8 sub_8046DE8 -thumb_func 0x08046e34 sub_8046E34 -thumb_func 0x08046e80 sub_8046E80 -thumb_func 0x08046eb0 sub_8046EB0 -thumb_func 0x08046ee0 sub_8046EE0 -thumb_func 0x08046fac sub_8046FAC -thumb_func 0x08047018 sub_8047018 -thumb_func 0x080470ac sub_80470AC -thumb_func 0x080470e8 sub_80470E8 -thumb_func 0x08047134 sub_8047134 -thumb_func 0x080471d4 sub_80471D4 -thumb_func 0x08047224 sub_8047224 -thumb_func 0x0804726c sub_804726C -thumb_func 0x08047280 sub_8047280 -thumb_func 0x080472ac sub_80472AC -thumb_func 0x080472b8 sub_80472B8 -thumb_func 0x080473ac sub_80473AC -thumb_func 0x08047508 sub_8047508 -thumb_func 0x0804756c sub_804756C -thumb_func 0x080475fc sub_80475FC -thumb_func 0x08047668 sub_8047668 -thumb_func 0x08047714 sub_8047714 -thumb_func 0x08047774 sub_8047774 -thumb_func 0x0804780c sub_804780C -thumb_func 0x080478e0 sub_80478E0 -thumb_func 0x0804792c sub_804792C -thumb_func 0x08047990 sub_8047990 -thumb_func 0x08047a3c sub_8047A3C -thumb_func 0x08047b04 sub_8047B04 -thumb_func 0x08047ba0 sub_8047BA0 -thumb_func 0x08047d04 sub_8047D04 -thumb_func 0x08047e18 sub_8047E18 -thumb_func 0x08047e94 sub_8047E94 -thumb_func 0x08047f2c sub_8047F2C -thumb_func 0x08048024 sub_8048024 -thumb_func 0x08048060 sub_8048060 -thumb_func 0x080480c4 sub_80480C4 -thumb_func 0x08048110 sub_8048110 -thumb_func 0x08048148 sub_8048148 -thumb_func 0x080481b8 sub_80481B8 -thumb_func 0x08048230 sub_8048230 -thumb_func 0x080484cc sub_80484CC -thumb_func 0x08048524 sub_8048524 -thumb_func 0x080485cc sub_80485CC -thumb_func 0x08048650 sub_8048650 -thumb_func 0x080486e8 sub_80486E8 -thumb_func 0x08048980 sub_8048980 -thumb_func 0x08048adc sub_8048ADC -thumb_func 0x08048b38 sub_8048B38 -thumb_func 0x08048c3c sub_8048C3C -thumb_func 0x08048cb0 sub_8048CB0 -thumb_func 0x08048d74 sub_8048D74 -thumb_func 0x08048e34 sub_8048E34 -thumb_func 0x08049000 sub_8049000 -thumb_func 0x080491c4 sub_80491C4 -thumb_func 0x08049284 sub_8049284 -thumb_func 0x080492e4 sub_80492E4 -thumb_func 0x08049370 sub_8049370 -thumb_func 0x0804948c sub_804948C -thumb_func 0x080494e8 sub_80494E8 -thumb_func 0x080495f0 sub_80495F0 -thumb_func 0x080497ac sub_80497AC -thumb_func 0x08049854 sub_8049854 -thumb_func 0x08049898 sub_8049898 -thumb_func 0x080499cc sub_80499CC -thumb_func 0x08049a34 sub_8049A34 -thumb_func 0x08049ab8 sub_8049AB8 -thumb_func 0x08049bac sub_8049BAC -thumb_func 0x08049c0c sub_8049C0C -thumb_func 0x08049d7c sub_8049D7C -thumb_func 0x08049e3c sub_8049E3C -thumb_func 0x08049fd0 sub_8049FD0 -thumb_func 0x0804a0b8 sub_804A0B8 -thumb_func 0x0804a1b8 sub_804A1B8 -thumb_func 0x0804a20c sub_804A20C -thumb_func 0x0804a254 sub_804A254 -thumb_func 0x0804a278 sub_804A278 -thumb_func 0x0804a2fc sub_804A2FC -thumb_func 0x0804a37c sub_804A37C -thumb_func 0x0804a498 sub_804A498 -thumb_func 0x0804a54c sub_804A54C -thumb_func 0x0804a5d8 sub_804A5D8 -thumb_func 0x0804a71c sub_804A71C -thumb_func 0x0804a830 sub_804A830 -thumb_func 0x0804a848 sub_804A848 -thumb_func 0x0804a854 sub_804A854 -thumb_func 0x0804a8a8 sub_804A8A8 -thumb_func 0x0804aac4 sub_804AAC4 -thumb_func 0x0804ac4c sub_804AC4C -thumb_func 0x0804ad0c sub_804AD0C -thumb_func 0x0804ae14 sub_804AE14 -thumb_func 0x0804af00 sub_804AF00 -thumb_func 0x0804afcc sub_804AFCC -thumb_func 0x0804b0d8 sub_804B0D8 -thumb_func 0x0804b1fc sub_804B1FC -thumb_func 0x0804b2bc sub_804B2BC -thumb_func 0x0804b32c sub_804B32C -thumb_func 0x0804b370 sub_804B370 -thumb_func 0x0804b420 sub_804B420 -thumb_func 0x0804b570 sub_804B570 -thumb_func 0x0804b5cc sub_804B5CC -thumb_func 0x0804b678 sub_804B678 -thumb_func 0x0804b71c sub_804B71C -thumb_func 0x0804b7c8 sub_804B7C8 -thumb_func 0x0804b86c sub_804B86C -thumb_func 0x0804b994 sub_804B994 -thumb_func 0x0804babc sub_804BABC -thumb_func 0x0804bb98 sub_804BB98 -thumb_func 0x0804bd70 sub_804BD70 -thumb_func 0x0804be7c sub_804BE7C -thumb_func 0x0804bf70 sub_804BF70 -thumb_func 0x0804c02c sub_804C02C -thumb_func 0x0804c12c sub_804C12C -thumb_func 0x0804c1c0 sub_804C1C0 -thumb_func 0x0804c2e8 sub_804C2E8 -thumb_func 0x0804c3cc sub_804C3CC -thumb_func 0x0804c40c InitWaterPalettes -thumb_func 0x0804c598 sub_804C598 -thumb_func 0x0804c5d8 sub_804C5D8 -thumb_func 0x0804c668 sub_804C668 -thumb_func 0x0804c894 sub_804C894 -thumb_func 0x0804c8ac sub_804C8AC -thumb_func 0x0804ca60 sub_804CA60 -thumb_func 0x0804cb20 sub_804CB20 -thumb_func 0x0804cc14 sub_804CC14 -thumb_func 0x0804ccac sub_804CCAC -thumb_func 0x0804cd00 sub_804CD00 -thumb_func 0x0804cd2c sub_804CD2C -thumb_func 0x0804cd80 sub_804CD80 -thumb_func 0x0804cdf8 sub_804CDF8 -thumb_func 0x0804cedc sub_804CEDC -thumb_func 0x0804cf1c sub_804CF1C -thumb_func 0x0804cf5c sub_804CF5C -thumb_func 0x0804cf88 sub_804CF88 -thumb_func 0x0804cfa0 sub_804CFA0 -thumb_func 0x0804cfe0 sub_804CFE0 -thumb_func 0x0804d02c sub_804D02C -thumb_func 0x0804d060 sub_804D060 -thumb_func 0x0804d13c sub_804D13C -thumb_func 0x0804d178 sub_804D178 -thumb_func 0x0804d308 sub_804D308 -thumb_func 0x0804d4a0 sub_804D4A0 -thumb_func 0x0804d600 sub_804D600 -thumb_func 0x0804d698 sub_804D698 -thumb_func 0x0804d730 sub_804D730 -thumb_func 0x0804d860 sub_804D860 -thumb_func 0x0804d8e8 sub_804D8E8 -thumb_func 0x0804d9f4 sub_804D9F4 -thumb_func 0x0804da7c sub_804DA7C -thumb_func 0x0804db78 sub_804DB78 -thumb_func 0x0804dddc sub_804DDDC -thumb_func 0x0804deb8 sub_804DEB8 -thumb_func 0x0804df50 sub_804DF50 -thumb_func 0x0804e028 sub_804E028 -thumb_func 0x0804e110 sub_804E110 -thumb_func 0x0804e198 sub_804E198 -thumb_func 0x0804e220 sub_804E220 -thumb_func 0x0804e304 sub_804E304 -thumb_func 0x0804e38c sub_804E38C -thumb_func 0x0804e474 sub_804E474 -thumb_func 0x0804e4fc sub_804E4FC -thumb_func 0x0804e594 sub_804E594 -thumb_func 0x0804e8d4 sub_804E8D4 -thumb_func 0x0804eb04 sub_804EB04 -thumb_func 0x0804eb90 sub_804EB90 -thumb_func 0x0804ec60 sub_804EC60 -thumb_func 0x0804ed80 sub_804ED80 -thumb_func 0x0804ee20 sub_804EE20 -thumb_func 0x0804eea8 sub_804EEA8 -thumb_func 0x0804ef18 sub_804EF18 -thumb_func 0x0804efa0 sub_804EFA0 -thumb_func 0x0804f020 sub_804F020 -thumb_func 0x0804f09c sub_804F09C -thumb_func 0x0804f1d4 sub_804F1D4 -thumb_func 0x0804f4bc sub_804F4BC -thumb_func 0x0804f630 sub_804F630 -thumb_func 0x0804f7f4 sub_804F7F4 -thumb_func 0x0804f9b0 sub_804F9B0 -thumb_func 0x0804fa08 sub_804FA08 -thumb_func 0x0804fa70 sub_804FA70 -thumb_func 0x0804fa9c sub_804FA9C -thumb_func 0x0804fac8 sub_804FAC8 -thumb_func 0x0804fb30 sub_804FB30 -thumb_func 0x0804fb7c sub_804FB7C -thumb_func 0x0804fba8 sub_804FBA8 -thumb_func 0x0804fbe4 sub_804FBE4 -thumb_func 0x0804fc28 sub_804FC28 -thumb_func 0x0804fc78 sub_804FC78 -thumb_func 0x0804fca4 sub_804FCA4 -thumb_func 0x0804fcec sub_804FCEC -thumb_func 0x0804fd54 sub_804FD54 -thumb_func 0x0804fdd4 sub_804FDD4 -thumb_func 0x0804fe54 sub_804FE54 -thumb_func 0x08050194 sub_8050194 -thumb_func 0x080504dc sub_80504DC -thumb_func 0x08050888 sub_8050888 -thumb_func 0x080518e8 sub_80518E8 -thumb_func 0x080519e8 sub_80519E8 -thumb_func 0x08051c44 sub_8051C44 -thumb_func 0x08051e38 sub_8051E38 -thumb_func 0x080520b8 sub_80520B8 -thumb_func 0x08052150 sub_8052150 -thumb_func 0x08052340 sub_8052340 -thumb_func 0x080523d4 sub_80523D4 -thumb_func 0x080523f8 sub_80523F8 -thumb_func 0x08052424 sub_8052424 -thumb_func 0x08052468 sub_8052468 -thumb_func 0x08052474 sub_8052474 -thumb_func 0x080524f0 sub_80524F0 -thumb_func 0x08052578 sub_8052578 -thumb_func 0x080525e0 sub_80525E0 -thumb_func 0x0805265c sub_805265C -thumb_func 0x080526c4 sub_80526C4 -thumb_func 0x08052724 sub_8052724 -thumb_func 0x08052780 sub_8052780 -thumb_func 0x080527dc sub_80527DC -thumb_func 0x08052838 sub_8052838 -thumb_func 0x080528ac sub_80528AC -thumb_func 0x08052aa4 sub_8052AA4 -thumb_func 0x08052b84 sub_8052B84 -thumb_func 0x08052c84 sub_8052C84 -thumb_func 0x08052d64 sub_8052D64 -thumb_func 0x08052e40 sub_8052E40 -thumb_func 0x08052ef0 sub_8052EF0 -thumb_func 0x08052f78 sub_8052F78 -thumb_func 0x080530cc sub_80530CC -thumb_func 0x0805321c sub_805321C -thumb_func 0x08053370 sub_8053370 -thumb_func 0x0805345c sub_805345C -thumb_func 0x08053520 sub_8053520 -thumb_func 0x080535c8 sub_80535C8 -thumb_func 0x080535fc sub_80535FC -thumb_func 0x08053674 sub_8053674 -thumb_func 0x080536b0 sub_80536B0 -thumb_func 0x080536e4 sub_80536E4 -thumb_func 0x080538bc sub_80538BC -thumb_func 0x08053a90 sub_8053A90 -thumb_func 0x08053bac sub_8053BAC -thumb_func 0x08053d18 sub_8053D18 -thumb_func 0x08054068 sub_8054068 -thumb_func 0x080541a4 sub_80541A4 -thumb_func 0x080541f0 sub_80541F0 -thumb_func 0x0805423c sub_805423C -thumb_func 0x080543a4 sub_80543A4 -thumb_func 0x08054494 sub_8054494 -thumb_func 0x08054540 sub_8054540 -thumb_func 0x0805463c sub_805463C -thumb_func 0x080546f8 sub_80546F8 -thumb_func 0x080547dc sub_80547DC -thumb_func 0x0805488c sub_805488C -thumb_func 0x08054954 sub_8054954 -thumb_func 0x080549fc sub_80549FC -thumb_func 0x08054a80 sub_8054A80 -thumb_func 0x080550f8 sub_80550F8 -thumb_func 0x08055458 sub_8055458 -thumb_func 0x08055730 sub_8055730 -thumb_func 0x08055798 sub_8055798 -thumb_func 0x08055904 sub_8055904 -thumb_func 0x08055998 sub_8055998 -thumb_func 0x08055aa0 sub_8055AA0 -thumb_func 0x08055b18 sub_8055B18 -thumb_func 0x08055c50 sub_8055C50 -thumb_func 0x08055dd0 sub_8055DD0 -thumb_func 0x08056084 sub_8056084 -thumb_func 0x08056100 sub_8056100 -thumb_func 0x0805618c sub_805618C -thumb_func 0x08056218 sub_8056218 -thumb_func 0x08056348 sub_8056348 -thumb_func 0x0805648c sub_805648C -thumb_func 0x080565c4 sub_80565C4 -thumb_func 0x08056714 sub_8056714 -thumb_func 0x0805676c sub_805676C -thumb_func 0x08056970 sub_8056970 -thumb_func 0x08056ac8 sub_8056AC8 -thumb_func 0x08056ce0 sub_8056CE0 -thumb_func 0x08056d30 sub_8056D30 -thumb_func 0x08056d80 sub_8056D80 -thumb_func 0x08056dd0 sub_8056DD0 -thumb_func 0x08056e64 sub_8056E64 -thumb_func 0x08056ec4 sub_8056EC4 -thumb_func 0x08056f1c sub_8056F1C -thumb_func 0x08056f80 sub_8056F80 -thumb_func 0x08056fd0 sub_8056FD0 -thumb_func 0x08056fe4 sub_8056FE4 -thumb_func 0x080573d4 sub_80573D4 -thumb_func 0x08057888 sub_8057888 -thumb_func 0x08057c3c sub_8057C3C -thumb_func 0x08057d30 sub_8057D30 -thumb_func 0x08058360 sub_8058360 -thumb_func 0x08058830 sub_8058830 -thumb_func 0x080595dc sub_80595DC -thumb_func 0x080597dc sub_80597DC -thumb_func 0x08059f9c sub_8059F9C -thumb_func 0x0805a060 sub_805A060 -thumb_func 0x0805a54c sub_805A54C -thumb_func 0x0805a798 sub_805A798 -thumb_func 0x0805a9a4 sub_805A9A4 -thumb_func 0x0805aaf8 sub_805AAF8 -thumb_func 0x0805ac00 sub_805AC00 -thumb_func 0x0805acd8 sub_805ACD8 -thumb_func 0x0805adf0 sub_805ADF0 -thumb_func 0x0805ae84 sub_805AE84 -thumb_func 0x0805af24 sub_805AF24 -thumb_func 0x0805afc4 sub_805AFC4 -thumb_func 0x0805b11c sub_805B11C -thumb_func 0x0805b1e0 sub_805B1E0 -thumb_func 0x0805b324 sub_805B324 -thumb_func 0x0805b52c sub_805B52C -thumb_func 0x0805b694 sub_805B694 -thumb_func 0x0805b7e4 sub_805B7E4 -thumb_func 0x0805b858 sub_805B858 -thumb_func 0x0805b880 sub_805B880 -thumb_func 0x0805b8c0 sub_805B8C0 -thumb_func 0x0805b930 sub_805B930 -thumb_func 0x0805b984 sub_805B984 -thumb_func 0x0805b9e8 sub_805B9E8 -thumb_func 0x0805bb48 sub_805BB48 -thumb_func 0x0805bc00 sub_805BC00 -thumb_func 0x0805bc94 sub_805BC94 -thumb_func 0x0805c448 sub_805C448 -thumb_func 0x0805c594 sub_805C594 -thumb_func 0x0805c6b0 sub_805C6B0 -thumb_func 0x0805c740 sub_805C740 -thumb_func 0x0805c83c sub_805C83C -thumb_func 0x0805c900 sub_805C900 -thumb_func 0x0805c994 sub_805C994 -thumb_func 0x0805d048 sub_805D048 -thumb_func 0x0805d4f0 sub_805D4F0 -thumb_func 0x0805d720 sub_805D720 -thumb_func 0x0805d81c sub_805D81C -thumb_func 0x0805d8ec sub_805D8EC -thumb_func 0x0805d9e4 sub_805D9E4 -thumb_func 0x0805db04 sub_805DB04 -thumb_func 0x0805dbf0 sub_805DBF0 -thumb_func 0x0805dd10 sub_805DD10 -thumb_func 0x0805de0c sub_805DE0C -thumb_func 0x0805df2c sub_805DF2C -thumb_func 0x0805e018 sub_805E018 -thumb_func 0x0805e1e8 sub_805E1E8 -thumb_func 0x0805e400 sub_805E400 -thumb_func 0x0805e698 sub_805E698 -thumb_func 0x0805e888 sub_805E888 -thumb_func 0x0805e9b4 sub_805E9B4 -thumb_func 0x0805eae8 sub_805EAE8 -thumb_func 0x0805f288 sub_805F288 -thumb_func 0x0805f950 sub_805F950 -thumb_func 0x0805fad4 sub_805FAD4 -thumb_func 0x0805fc88 sub_805FC88 -thumb_func 0x0805fd54 sub_805FD54 -thumb_func 0x0805fdb0 sub_805FDB0 -thumb_func 0x0805fde4 sub_805FDE4 -thumb_func 0x0805fe48 sub_805FE48 -thumb_func 0x0805feac sub_805FEAC -thumb_func 0x08060088 sub_8060088 -thumb_func 0x0806012c sub_806012C -thumb_func 0x080604ec sub_80604EC -thumb_func 0x0806070c sub_806070C -thumb_func 0x08060874 sub_8060874 -thumb_func 0x08060c88 sub_8060C88 -thumb_func 0x08060dac sub_8060DAC -thumb_func 0x08061144 sub_8061144 -thumb_func 0x080613d0 sub_80613D0 -thumb_func 0x08061480 sub_8061480 -thumb_func 0x08061894 sub_8061894 -thumb_func 0x08061948 sub_8061948 -thumb_func 0x08061e84 sub_8061E84 -thumb_func 0x08062140 sub_8062140 -thumb_func 0x08062540 sub_8062540 -thumb_func 0x080628a4 sub_80628A4 -thumb_func 0x08062a80 sub_8062A80 -thumb_func 0x08062b38 sub_8062B38 -thumb_func 0x08062c28 sub_8062C28 -thumb_func 0x08062cb4 sub_8062CB4 -thumb_func 0x08062e18 sub_8062E18 -thumb_func 0x08062edc sub_8062EDC -thumb_func 0x08062f90 sub_8062F90 -thumb_func 0x080631e8 sub_80631E8 -thumb_func 0x080632b4 sub_80632B4 -thumb_func 0x080634ec sub_80634EC -thumb_func 0x08063638 sub_8063638 -thumb_func 0x08063824 sub_8063824 -thumb_func 0x080638b0 sub_80638B0 -thumb_func 0x08063918 sub_8063918 -thumb_func 0x08063b8c sub_8063B8C -thumb_func 0x08063c4c sub_8063C4C -thumb_func 0x08063d0c sub_8063D0C -thumb_func 0x08063dcc sub_8063DCC -thumb_func 0x08063e8c sub_8063E8C -thumb_func 0x080640c8 sub_80640C8 -thumb_func 0x08064fa0 sub_8064FA0 -thumb_func 0x08064ff8 sub_8064FF8 -thumb_func 0x08065058 sub_8065058 -thumb_func 0x0806515c sub_806515C -thumb_func 0x08065258 sub_8065258 -thumb_func 0x08065444 sub_8065444 -thumb_func 0x0806562c sub_806562C -thumb_func 0x080656a4 sub_80656A4 -thumb_func 0x0806571c sub_806571C -thumb_func 0x08065794 sub_8065794 -thumb_func 0x08065884 sub_8065884 -thumb_func 0x08065f5c sub_8065F5C -thumb_func 0x080661a8 sub_80661A8 -thumb_func 0x080662d0 sub_80662D0 -thumb_func 0x0806636c sub_806636C -thumb_func 0x080663ec sub_80663EC -thumb_func 0x08066478 sub_8066478 -thumb_func 0x08066520 sub_8066520 -thumb_func 0x08066628 sub_8066628 -thumb_func 0x080666e0 sub_80666E0 -thumb_func 0x08066768 sub_8066768 -thumb_func 0x080669a0 sub_80669A0 -thumb_func 0x08066a5c sub_8066A5C -thumb_func 0x08066acc sub_8066ACC -thumb_func 0x08066ba4 sub_8066BA4 -thumb_func 0x08066c78 sub_8066C78 -thumb_func 0x08066d64 sub_8066D64 -thumb_func 0x08066df4 sub_8066DF4 -thumb_func 0x08066e34 sub_8066E34 -thumb_func 0x08066ebc sub_8066EBC -thumb_func 0x08066f14 sub_8066F14 -thumb_func 0x08066f30 sub_8066F30 -thumb_func 0x08066f90 sub_8066F90 -thumb_func 0x08066fdc sub_8066FDC -thumb_func 0x08067020 sub_8067020 -thumb_func 0x08067084 sub_8067084 -thumb_func 0x080670f8 sub_80670F8 -thumb_func 0x080677c4 sub_80677C4 -thumb_func 0x08067824 sub_8067824 -thumb_func 0x08067928 sub_8067928 -thumb_func 0x080679e4 sub_80679E4 -thumb_func 0x08067b9c sub_8067B9C -thumb_func 0x08067c24 sub_8067C24 -thumb_func 0x08067e68 sub_8067E68 -thumb_func 0x08067f9c sub_8067F9C -thumb_func 0x08068004 sub_8068004 -thumb_func 0x0806806c sub_806806C -thumb_func 0x08068148 sub_8068148 -thumb_func 0x08068214 sub_8068214 -thumb_func 0x08068360 sub_8068360 -thumb_func 0x080683d8 sub_80683D8 -thumb_func 0x080684b4 sub_80684B4 -thumb_func 0x080684f4 sub_80684F4 -thumb_func 0x080685c8 sub_80685C8 -thumb_func 0x08068688 sub_8068688 -thumb_func 0x080688e4 sub_80688E4 -thumb_func 0x08068948 sub_8068948 -thumb_func 0x08068b10 sub_8068B10 -thumb_func 0x08068bb0 sub_8068BB0 -thumb_func 0x08068c98 sub_8068C98 -thumb_func 0x08068cd4 sub_8068CD4 -thumb_func 0x08068d0c sub_8068D0C -thumb_func 0x08069100 sub_8069100 -thumb_func 0x08069464 sub_8069464 -thumb_func 0x080694e8 sub_80694E8 -thumb_func 0x080695e8 sub_80695E8 -thumb_func 0x08069634 sub_8069634 -thumb_func 0x0806968c sub_806968C -thumb_func 0x08069710 sub_8069710 -thumb_func 0x080698f4 sub_80698F4 -thumb_func 0x08069964 sub_8069964 -thumb_func 0x08069994 sub_8069994 -thumb_func 0x08069c94 sub_8069C94 -thumb_func 0x08069ee4 sub_8069EE4 -thumb_func 0x08069fdc sub_8069FDC -thumb_func 0x0806a02c sub_806A02C -thumb_func 0x0806a150 sub_806A150 -thumb_func 0x0806a1a4 sub_806A1A4 -thumb_func 0x0806a400 sub_806A400 -thumb_func 0x0806a508 sub_806A508 -thumb_func 0x0806a5bc sub_806A5BC -thumb_func 0x0806a66c sub_806A66C -thumb_func 0x0806a6dc sub_806A6DC -thumb_func 0x0806aa44 sub_806AA44 -thumb_func 0x0806abd4 sub_806ABD4 -thumb_func 0x0806ad44 sub_806AD44 -thumb_func 0x0806af04 sub_806AF04 -thumb_func 0x0806afa4 sub_806AFA4 -thumb_func 0x0806b290 sub_806B290 -thumb_func 0x0806b534 sub_806B534 -thumb_func 0x0806b5a4 sub_806B5A4 -thumb_func 0x0806b670 sub_806B670 -thumb_func 0x0806b81c sub_806B81C -thumb_func 0x0806bbc0 sub_806BBC0 -thumb_func 0x0806bd24 sub_806BD24 -thumb_func 0x0806bdc4 sub_806BDC4 -thumb_func 0x0806bf04 sub_806BF04 -thumb_func 0x0806bf78 sub_806BF78 -thumb_func 0x0806c0c0 sub_806C0C0 -thumb_func 0x0806c2a4 sub_806C2A4 -thumb_func 0x0806c43c sub_806C43C -thumb_func 0x0806c510 sub_806C510 -thumb_func 0x0806c6d0 sub_806C6D0 -thumb_func 0x0806c9a0 sub_806C9A0 -thumb_func 0x0806cbd0 sub_806CBD0 -thumb_func 0x0806cd2c sub_806CD2C -thumb_func 0x0806ce68 sub_806CE68 -thumb_func 0x0806d124 sub_806D124 -thumb_func 0x0806d2b8 sub_806D2B8 -thumb_func 0x0806d4c8 sub_806D4C8 -thumb_func 0x0806d5e8 sub_806D5E8 -thumb_func 0x0806d804 sub_806D804 -thumb_func 0x0806d9ac sub_806D9AC -thumb_func 0x0806da80 sub_806DA80 -thumb_func 0x0806db60 sub_806DB60 -thumb_func 0x0806dc70 sub_806DC70 -thumb_func 0x0806dd80 sub_806DD80 -thumb_func 0x0806e064 sub_806E064 -thumb_func 0x0806e190 sub_806E190 -thumb_func 0x0806e374 sub_806E374 -thumb_func 0x0806e4e0 sub_806E4E0 -thumb_func 0x0806e590 sub_806E590 -thumb_func 0x0806e7e0 sub_806E7E0 -thumb_func 0x0806e990 sub_806E990 -thumb_func 0x0806eab8 sub_806EAB8 -thumb_func 0x0806ed3c sub_806ED3C -thumb_func 0x0806eea4 sub_806EEA4 -thumb_func 0x0806f0e0 sub_806F0E0 -thumb_func 0x0806f2f0 sub_806F2F0 -thumb_func 0x0806fab0 sub_806FAB0 -thumb_func 0x0806fbdc sub_806FBDC -thumb_func 0x0806fe2c sub_806FE2C -thumb_func 0x0806ffa8 sub_806FFA8 -thumb_func 0x08070044 sub_8070044 -thumb_func 0x080701f4 sub_80701F4 -thumb_func 0x0807033c sub_807033C -thumb_func 0x0807051c sub_807051C -thumb_func 0x080706f0 sub_80706F0 -thumb_func 0x0807085c sub_807085C -thumb_func 0x0807090c sub_807090C -thumb_func 0x08070acc sub_8070ACC -thumb_func 0x08070cb4 sub_8070CB4 -thumb_func 0x08070e94 sub_8070E94 -thumb_func 0x0807101c sub_807101C -thumb_func 0x08071160 sub_8071160 -thumb_func 0x08071288 sub_8071288 -thumb_func 0x08071344 sub_8071344 -thumb_func 0x08071440 sub_8071440 -thumb_func 0x08071558 sub_8071558 -thumb_func 0x08071640 sub_8071640 -thumb_func 0x08071734 sub_8071734 -thumb_func 0x080719b8 sub_80719B8 -thumb_func 0x08071bfc sub_8071BFC -thumb_func 0x08071ddc sub_8071DDC -thumb_func 0x08071e8c sub_8071E8C -thumb_func 0x08071f44 sub_8071F44 -thumb_func 0x08072188 sub_8072188 -thumb_func 0x080723c0 sub_80723C0 -thumb_func 0x08072578 sub_8072578 -thumb_func 0x080727b4 sub_80727B4 -thumb_func 0x08072964 sub_8072964 -thumb_func 0x08072a1c sub_8072A1C -thumb_func 0x08072ad0 sub_8072AD0 -thumb_func 0x08072be0 sub_8072BE0 -thumb_func 0x08072e68 sub_8072E68 -thumb_func 0x08072f7c sub_8072F7C -thumb_func 0x08073270 sub_8073270 -thumb_func 0x08073364 sub_8073364 -thumb_func 0x08073608 sub_8073608 -thumb_func 0x080737a8 sub_80737A8 -thumb_func 0x08073998 sub_8073998 -thumb_func 0x08073ac0 sub_8073AC0 -thumb_func 0x08073cc4 sub_8073CC4 -thumb_func 0x08073e94 sub_8073E94 -thumb_func 0x08073f84 sub_8073F84 -thumb_func 0x080741e8 sub_80741E8 -thumb_func 0x080742e0 sub_80742E0 -thumb_func 0x08074510 sub_8074510 -thumb_func 0x0807473c sub_807473C -thumb_func 0x08074928 sub_8074928 -thumb_func 0x08074b80 sub_8074B80 -thumb_func 0x08074c50 sub_8074C50 -thumb_func 0x08074cfc sub_8074CFC -thumb_func 0x08074e10 sub_8074E10 -thumb_func 0x08074ecc sub_8074ECC -thumb_func 0x08074fb0 sub_8074FB0 -thumb_func 0x080750c0 sub_80750C0 -thumb_func 0x080751d8 sub_80751D8 -thumb_func 0x080752a4 sub_80752A4 -thumb_func 0x080753d0 sub_80753D0 -thumb_func 0x0807561c sub_807561C -thumb_func 0x08075a84 sub_8075A84 -thumb_func 0x08075af0 sub_8075AF0 -thumb_func 0x08075c08 sub_8075C08 -thumb_func 0x08075efc sub_8075EFC -thumb_func 0x08076524 sub_8076524 -thumb_func 0x08076730 sub_8076730 -thumb_func 0x08076810 sub_8076810 -thumb_func 0x08076940 sub_8076940 -thumb_func 0x08076a4c sub_8076A4C -thumb_func 0x08076b58 sub_8076B58 -thumb_func 0x08076c64 sub_8076C64 -thumb_func 0x08076d70 sub_8076D70 -thumb_func 0x08076e7c sub_8076E7C -thumb_func 0x08076f88 sub_8076F88 -thumb_func 0x08077550 sub_8077550 -thumb_func 0x08077674 sub_8077674 -thumb_func 0x08077760 sub_8077760 -thumb_func 0x08077918 sub_8077918 -thumb_func 0x080779ec sub_80779EC -thumb_func 0x08077b24 sub_8077B24 -thumb_func 0x08077c5c sub_8077C5C -thumb_func 0x08077e9c sub_8077E9C -thumb_func 0x08077fa4 sub_8077FA4 -thumb_func 0x080780b4 sub_80780B4 -thumb_func 0x080781e4 sub_80781E4 -thumb_func 0x0807834c sub_807834C -thumb_func 0x0807847c sub_807847C -thumb_func 0x080789c4 sub_80789C4 -thumb_func 0x08078af4 sub_8078AF4 -thumb_func 0x08078c34 sub_8078C34 -thumb_func 0x08078da4 sub_8078DA4 -thumb_func 0x08079124 sub_8079124 -thumb_func 0x08079298 sub_8079298 -thumb_func 0x08079414 sub_8079414 -thumb_func 0x080795c4 sub_80795C4 -thumb_func 0x08079948 sub_8079948 -thumb_func 0x08079a98 sub_8079A98 -thumb_func 0x08079c64 sub_8079C64 -thumb_func 0x08079e78 sub_8079E78 -thumb_func 0x0807a1d0 sub_807A1D0 -thumb_func 0x0807a2f8 sub_807A2F8 -thumb_func 0x0807a424 sub_807A424 -thumb_func 0x0807a564 sub_807A564 -thumb_func 0x0807a660 sub_807A660 -thumb_func 0x0807a8c4 sub_807A8C4 -thumb_func 0x0807aa28 sub_807AA28 -thumb_func 0x0807ab14 sub_807AB14 -thumb_func 0x0807ac7c sub_807AC7C -thumb_func 0x0807b0a0 sub_807B0A0 -thumb_func 0x0807b434 sub_807B434 -thumb_func 0x0807b45a sub_807B45A -thumb_func 0x0807bc64 sub_807BC64 -thumb_func 0x0807bca0 sub_807BCA0 -thumb_func 0x0807be28 sub_807BE28 -thumb_func 0x0807c948 sub_807C948 -thumb_func 0x0807c966 sub_807C966 -thumb_func 0x0807c970 sub_807C970 -thumb_func 0x0807c9ce sub_807C9CE -thumb_func 0x0807ca5a sub_807CA5A -thumb_func 0x0807cbf4 sub_807CBF4 -thumb_func 0x0807ccfc sub_807CCFC -thumb_func 0x0807d0b0 sub_807D0B0 -thumb_func 0x0807d190 sub_807D190 -thumb_func 0x0807d3e8 sub_807D3E8 -thumb_func 0x0807d4ec sub_807D4EC -thumb_func 0x0807e168 sub_807E168 -thumb_func 0x0807e16a sub_807E16A -thumb_func 0x0807e2de sub_807E2DE -thumb_func 0x0807e388 sub_807E388 -thumb_func 0x0807e488 sub_807E488 -thumb_func 0x0807e914 sub_807E914 -thumb_func 0x0807ea84 sub_807EA84 -thumb_func 0x0807ebd8 sub_807EBD8 -thumb_func 0x0807ee34 sub_807EE34 -thumb_func 0x0807ef48 sub_807EF48 -thumb_func 0x0807f224 sub_807F224 -thumb_func 0x0807f2ec sub_807F2EC -thumb_func 0x0807f4f0 sub_807F4F0 -thumb_func 0x0807fb2c sub_807FB2C -thumb_func 0x0807fc1c sub_807FC1C -thumb_func 0x08080520 sub_8080520 -thumb_func 0x080805c8 sub_80805C8 -thumb_func 0x08080730 sub_8080730 -thumb_func 0x08080864 sub_8080864 -thumb_func 0x08080b78 sub_8080B78 -thumb_func 0x08081288 sub_8081288 -thumb_func 0x080813f0 sub_80813F0 -thumb_func 0x08081500 sub_8081500 -thumb_func 0x080815f8 sub_80815F8 -thumb_func 0x08081800 sub_8081800 -thumb_func 0x08081910 sub_8081910 -thumb_func 0x08081a08 sub_8081A08 -thumb_func 0x08081c04 sub_8081C04 -thumb_func 0x08081f50 sub_8081F50 -thumb_func 0x080821ac sub_80821AC -thumb_func 0x08082258 sub_8082258 -thumb_func 0x08082880 sub_8082880 -thumb_func 0x08082948 sub_8082948 -thumb_func 0x08083020 sub_8083020 -thumb_func 0x080836c8 sub_80836C8 -thumb_func 0x080837f0 sub_80837F0 -thumb_func 0x08083e74 sub_8083E74 -thumb_func 0x08084184 sub_8084184 -thumb_func 0x08084330 sub_8084330 -thumb_func 0x080843b8 sub_80843B8 -thumb_func 0x08084554 sub_8084554 -thumb_func 0x080845c8 sub_80845C8 -thumb_func 0x080848b8 sub_80848B8 -thumb_func 0x08084924 sub_8084924 -thumb_func 0x080849d0 sub_80849D0 -thumb_func 0x08084efc sub_8084EFC -thumb_func 0x08085568 sub_8085568 -thumb_func 0x08085700 sub_8085700 -thumb_func 0x08085bac sub_8085BAC -thumb_func 0x080865c4 sub_80865C4 -thumb_func 0x08086710 sub_8086710 -thumb_func 0x08087104 sub_8087104 -thumb_func 0x080871a4 sub_80871A4 -thumb_func 0x0808768c sub_808768C -thumb_func 0x08087938 sub_8087938 -thumb_func 0x08088468 sub_8088468 -thumb_func 0x080885bc sub_80885BC -thumb_func 0x080886c4 sub_80886C4 -thumb_func 0x08088824 sub_8088824 -thumb_func 0x08088fe8 sub_8088FE8 -thumb_func 0x08089068 sub_8089068 -thumb_func 0x080891c8 sub_80891C8 -thumb_func 0x08089504 sub_8089504 -thumb_func 0x08089a30 sub_8089A30 -thumb_func 0x08089bf0 sub_8089BF0 -thumb_func 0x08089de0 sub_8089DE0 -thumb_func 0x08089fb4 sub_8089FB4 -thumb_func 0x0808a1b4 sub_808A1B4 -thumb_func 0x0808a394 sub_808A394 -thumb_func 0x0808a4b4 sub_808A4B4 -thumb_func 0x0808a78c sub_808A78C -thumb_func 0x0808a900 sub_808A900 -thumb_func 0x0808aa60 sub_808AA60 -thumb_func 0x0808ac48 sub_808AC48 -thumb_func 0x0808ae60 sub_808AE60 -thumb_func 0x0808b064 sub_808B064 -thumb_func 0x0808b270 sub_808B270 -thumb_func 0x0808b7a0 sub_808B7A0 -thumb_func 0x0808bb44 sub_808BB44 -thumb_func 0x0808bc90 sub_808BC90 -thumb_func 0x0808be08 sub_808BE08 -thumb_func 0x0808c038 sub_808C038 -thumb_func 0x0808c748 sub_808C748 -thumb_func 0x0808c7b4 sub_808C7B4 -thumb_func 0x0808c920 sub_808C920 -thumb_func 0x0808d9e4 sub_808D9E4 -thumb_func 0x0808db9c sub_808DB9C -thumb_func 0x0808de50 sub_808DE50 -thumb_func 0x0808dfe0 sub_808DFE0 -thumb_func 0x0808e4f4 sub_808E4F4 -thumb_func 0x0808e77c sub_808E77C -thumb_func 0x0808e8a0 sub_808E8A0 -thumb_func 0x0808ea80 sub_808EA80 -thumb_func 0x0808ec84 sub_808EC84 -thumb_func 0x0808f0c8 sub_808F0C8 -thumb_func 0x0808f1ec sub_808F1EC -thumb_func 0x0808f288 sub_808F288 -thumb_func 0x0808f710 sub_808F710 -thumb_func 0x0808f7a4 sub_808F7A4 -thumb_func 0x0808f9ac sub_808F9AC -thumb_func 0x0808fe70 sub_808FE70 -thumb_func 0x08090028 sub_8090028 -thumb_func 0x08090334 sub_8090334 -thumb_func 0x080904f8 sub_80904F8 -thumb_func 0x08090740 sub_8090740 -thumb_func 0x080907dc sub_80907DC -thumb_func 0x0809096c sub_809096C -thumb_func 0x08090e04 sub_8090E04 -thumb_func 0x08090f08 sub_8090F08 -thumb_func 0x08091034 sub_8091034 -thumb_func 0x08091118 sub_8091118 -thumb_func 0x0809141c sub_809141C -thumb_func 0x080914f8 sub_80914F8 -thumb_func 0x080915f0 sub_80915F0 -thumb_func 0x08091700 sub_8091700 -thumb_func 0x080917f0 sub_80917F0 -thumb_func 0x08091a78 sub_8091A78 -thumb_func 0x08091c40 sub_8091C40 -thumb_func 0x08091e88 sub_8091E88 -thumb_func 0x0809221c sub_809221C -thumb_func 0x080923e8 sub_80923E8 -thumb_func 0x08092454 sub_8092454 -thumb_func 0x08092564 sub_8092564 -thumb_func 0x08092600 sub_8092600 -thumb_func 0x08092760 sub_8092760 -thumb_func 0x080929a0 sub_80929A0 -thumb_func 0x08092f30 sub_8092F30 -thumb_func 0x080930e0 sub_80930E0 -thumb_func 0x080931c0 sub_80931C0 -thumb_func 0x080932bc sub_80932BC -thumb_func 0x080934f4 sub_80934F4 -thumb_func 0x08093718 sub_8093718 -thumb_func 0x0809380c sub_809380C -thumb_func 0x080938a8 sub_80938A8 -thumb_func 0x080939b0 sub_80939B0 -thumb_func 0x08093b88 sub_8093B88 -thumb_func 0x08093d88 sub_8093D88 -thumb_func 0x08093f60 sub_8093F60 -thumb_func 0x08094194 sub_8094194 -thumb_func 0x08094234 sub_8094234 -thumb_func 0x08094308 sub_8094308 -thumb_func 0x080949b8 sub_80949B8 -thumb_func 0x08094a4c sub_8094A4C -thumb_func 0x08094fd0 sub_8094FD0 -thumb_func 0x080950c4 sub_80950C4 -thumb_func 0x08095158 sub_8095158 -thumb_func 0x08095224 sub_8095224 -thumb_func 0x0809549c sub_809549C -thumb_func 0x08095678 sub_8095678 -thumb_func 0x0809570c sub_809570C -thumb_func 0x080959ac sub_80959AC -thumb_func 0x08095e90 sub_8095E90 -thumb_func 0x08096128 sub_8096128 -thumb_func 0x080963a0 sub_80963A0 -thumb_func 0x08096724 sub_8096724 -thumb_func 0x080968b4 sub_80968B4 -thumb_func 0x080969c8 sub_80969C8 -thumb_func 0x08096d2c sub_8096D2C -thumb_func 0x08096d98 sub_8096D98 -thumb_func 0x08096da8 sub_8096DA8 -thumb_func 0x080971ca sub_80971CA -thumb_func 0x080971e8 sub_80971E8 -thumb_func 0x08097208 sub_8097208 -thumb_func 0x08097238 sub_8097238 -thumb_func 0x08097250 sub_8097250 -thumb_func 0x08097252 sub_8097252 -thumb_func 0x0809726c sub_809726C -thumb_func 0x0809726e sub_809726E -thumb_func 0x080972c8 sub_80972C8 -thumb_func 0x080973fc sub_80973FC -thumb_func 0x080976a0 sub_80976A0 -thumb_func 0x080976b0 sub_80976B0 -thumb_func 0x080976f4 sub_80976F4 -thumb_func 0x08097724 sub_8097724 -thumb_func 0x08097964 sub_8097964 -thumb_func 0x08097980 sub_8097980 -thumb_func 0x080979b4 sub_80979B4 -thumb_func 0x08097a1c sub_8097A1C -thumb_func 0x08097a38 sub_8097A38 -thumb_func 0x08097a58 m4aSoundInit -thumb_func 0x08097ad0 sub_8097AD0 -thumb_func 0x08097adc sub_8097ADC -thumb_func 0x08097b08 sub_8097B08 -thumb_func 0x08097b54 sub_8097B54 -thumb_func 0x08097ba8 sub_8097BA8 -thumb_func 0x08097c10 sub_8097C10 -thumb_func 0x08097c3c sub_8097C3C -thumb_func 0x08097c48 sub_8097C48 -thumb_func 0x08097c74 sub_8097C74 -thumb_func 0x08097ca4 sub_8097CA4 -thumb_func 0x08097ccc sub_8097CCC -thumb_func 0x08097d14 sub_8097D14 -thumb_func 0x08097e30 sub_8097E30 -thumb_func 0x08097e44 sub_8097E44 -thumb_func 0x08097e58 sub_8097E58 -thumb_func 0x08097f50 sub_8097F50 -thumb_func 0x08097ff4 m4aSoundMode -thumb_func 0x0809808c sub_809808C -thumb_func 0x080980e0 sub_80980E0 -thumb_func 0x0809815c sub_809815C -thumb_func 0x08098198 sub_8098198 -thumb_func 0x08098210 sub_8098210 -thumb_func 0x080982f4 sub_80982F4 -thumb_func 0x08098334 sub_8098334 -thumb_func 0x080983fc sub_80983FC -thumb_func 0x08098558 sub_8098558 -thumb_func 0x080985a8 sub_80985A8 -thumb_func 0x08098610 sub_8098610 -thumb_func 0x08098a5c sub_8098A5C -thumb_func 0x08098a84 sub_8098A84 -thumb_func 0x08098aec sub_8098AEC -thumb_func 0x08098b60 sub_8098B60 -thumb_func 0x08098bc8 sub_8098BC8 -thumb_func 0x08098be8 sub_8098BE8 -thumb_func 0x08098c5c sub_8098C5C -thumb_func 0x08098cd0 sub_8098CD0 -thumb_func 0x08098e28 sub_8098E28 -thumb_func 0x08098e48 sub_8098E48 -thumb_func 0x08098e5c sub_8098E5C -thumb_func 0x08098f4c sub_8098F4C -thumb_func 0x08098fe4 IdentifyFlash -thumb_func 0x0809909c SetFlashTimerIntr -thumb_func 0x080990d4 sub_80990D4 -thumb_func 0x0809917c sub_809917C -thumb_func 0x080991c4 sub_80991C4 -thumb_func 0x080991fc sub_80991FC -thumb_func 0x080992ac sub_80992AC -thumb_func 0x08099358 sub_8099358 -thumb_func 0x080993cc sub_80993CC -thumb_func 0x08099440 sub_8099440 -thumb_func 0x08099484 sub_8099484 -thumb_func 0x080994cc sub_80994CC -thumb_func 0x08099540 sub_8099540 -thumb_func 0x080995dc sub_80995DC -thumb_func 0x08099614 sub_8099614 -thumb_func 0x0809975c sub_809975C -thumb_func 0x08099774 sub_8099774 -thumb_func 0x08099818 sub_8099818 -thumb_func 0x08099888 sub_8099888 -thumb_func 0x0809990c sub_809990C -thumb_func 0x08099998 sub_8099998 -thumb_func 0x08099a10 sub_8099A10 -thumb_func 0x08099ad0 sub_8099AD0 -thumb_func 0x08099ad4 sub_8099AD4 -thumb_func 0x08099ad8 sub_8099AD8 -thumb_func 0x08099adc sub_8099ADC -thumb_func 0x08099ae0 sub_8099AE0 -thumb_func 0x08099ae8 sub_8099AE8 -thumb_func 0x08099aec sub_8099AEC -thumb_func 0x08099af4 sub_8099AF4 -thumb_func 0x08099af8 sub_8099AF8 -thumb_func 0x08099b10 sub_8099B10 -thumb_func 0x08099b14 sub_8099B14 -thumb_func 0x08099b1c sub_8099B1C -thumb_func 0x08099b3c sub_8099B3C -thumb_func 0x08099b40 sub_8099B40 -thumb_func 0x08099b44 sub_8099B44 -thumb_func 0x08099b48 sub_8099B48 -thumb_func 0x08099b4c sub_8099B4C -thumb_func 0x08099b50 sub_8099B50 -thumb_func 0x08099b58 sub_8099B58 -thumb_func 0x08099b78 sub_8099B78 -thumb_func 0x08099c0c sub_8099C0C -thumb_func 0x08099c10 sub_8099C10 -thumb_func 0x08099ce0 sub_8099CE0 -thumb_func 0x08099d58 sub_8099D58 -thumb_func 0x08099e18 sub_8099E18 -thumb_func 0x08099f60 sub_8099F60 -thumb_func 0x0809a038 sub_809A038 -thumb_func 0x0809a2a4 sub_809A2A4 -thumb_func 0x0809a2d4 sub_809A2D4 -thumb_func 0x0809a30c sub_809A30C -thumb_func 0x0809a5b4 sub_809A5B4 -thumb_func 0x0809a73c sub_809A73C -thumb_func 0x0809a83c sub_809A83C -thumb_func 0x0809a868 sub_809A868 -thumb_func 0x0809a8b4 sub_809A8B4 -thumb_func 0x0809a900 sub_809A900 -thumb_func 0x0809a94c sub_809A94C -thumb_func 0x0809a998 sub_809A998 -thumb_func 0x0809a9e4 sub_809A9E4 -thumb_func 0x0809aa30 sub_809AA30 -thumb_func 0x0809aaac sub_809AAAC -thumb_func 0x0809ab20 sub_809AB20 -thumb_func 0x0809ab48 sub_809AB48 -thumb_func 0x0809abb4 sub_809ABB4 -thumb_func 0x0809ac6c sub_809AC6C -thumb_func 0x0809ace8 sub_809ACE8 -thumb_func 0x0809ae64 sub_809AE64 -thumb_func 0x0809ae90 sub_809AE90 -thumb_func 0x0809aec4 sub_809AEC4 -thumb_func 0x0809b028 sub_809B028 -thumb_func 0x0809b114 sub_809B114 -thumb_func 0x0809b1f8 sub_809B1F8 -thumb_func 0x0809b220 sub_809B220 -thumb_func 0x0809b268 sub_809B268 -thumb_func 0x0809b2b0 sub_809B2B0 -thumb_func 0x0809b2f8 sub_809B2F8 -thumb_func 0x0809b340 sub_809B340 -thumb_func 0x0809b388 sub_809B388 -thumb_func 0x0809b3d0 sub_809B3D0 -thumb_func 0x0809b430 sub_809B430 -thumb_func 0x0809b498 sub_809B498 -thumb_func 0x0809b4bc sub_809B4BC -thumb_func 0x0809b4d4 sub_809B4D4 -thumb_func 0x0809b500 sub_809B500 -thumb_func 0x0809b534 sub_809B534 -thumb_func 0x0809b5a4 sub_809B5A4 -thumb_func 0x0809b5bc sub_809B5BC -thumb_func 0x0809b61c sub_809B61C - -arm_func 0x080000FC sub_80000FC - -thumb_func 0x08001364 sub_8001364 -thumb_func 0x080019B4 sub_80019B4 -thumb_func 0x08002778 sub_8002778 -thumb_func 0x080032F4 sub_80032F4 -thumb_func 0x080035F4 sub_80035F4 -thumb_func 0x08004AF0 sub_8004AF0 -thumb_func 0x08006950 sub_8006950 -thumb_func 0x0800876C sub_800876C -thumb_func 0x08009670 sub_8009670 -thumb_func 0x0800CE98 sub_800CE98 -thumb_func 0x0800D3E0 sub_800D3E0 -thumb_func 0x0800E404 sub_800E404 -thumb_func 0x080115D4 sub_80115D4 -thumb_func 0x080116BC sub_80116BC -thumb_func 0x08011DD0 sub_8011DD0 -thumb_func 0x080122D0 sub_80122D0 -thumb_func 0x080128AC sub_80128AC -thumb_func 0x08012C34 sub_8012C34 -thumb_func 0x08015728 sub_8015728 -thumb_func 0x08015E6C sub_8015E6C -thumb_func 0x08017334 sub_8017334 -thumb_func 0x080175A8 sub_80175A8 -thumb_func 0x08017658 sub_8017658 -thumb_func 0x080177EC sub_80177EC -thumb_func 0x080178C0 sub_80178C0 -thumb_func 0x080179F4 sub_80179F4 -thumb_func 0x08018428 sub_8018428 -thumb_func 0x08019D18 sub_8019D18 -thumb_func 0x0801A110 sub_801A110 -thumb_func 0x0801A6B8 sub_801A6B8 -thumb_func 0x0801AE88 sub_801AE88 -thumb_func 0x0801B500 sub_801B500 -thumb_func 0x0801BAA0 sub_801BAA0 -thumb_func 0x0801C6E8 sub_801C6E8 -thumb_func 0x0801C980 sub_801C980 -thumb_func 0x0801D3C8 sub_801D3C8 -thumb_func 0x0801DC70 sub_801DC70 -thumb_func 0x0801F164 sub_801F164 -thumb_func 0x0801FDA0 sub_801FDA0 -thumb_func 0x080214D8 sub_80214D8 -thumb_func 0x08021BC0 sub_8021BC0 -thumb_func 0x08021E70 sub_8021E70 -thumb_func 0x08022068 sub_8022068 -thumb_func 0x080222C0 sub_80222C0 -thumb_func 0x0802316C sub_802316C -thumb_func 0x080238E0 sub_80238E0 -thumb_func 0x08024B1C sub_8024B1C -thumb_func 0x08025008 sub_8025008 -thumb_func 0x080255DC sub_80255DC -thumb_func 0x080256D4 sub_80256D4 -thumb_func 0x08025884 sub_8025884 -thumb_func 0x08025F3C sub_8025F3C -thumb_func 0x0802784C sub_802784C -thumb_func 0x08027948 sub_8027948 -thumb_func 0x08027D88 sub_8027D88 -thumb_func 0x08028C70 sub_8028C70 -thumb_func 0x0802C224 sub_802C224 -thumb_func 0x0802D274 sub_802D274 -thumb_func 0x0802D33C sub_802D33C -thumb_func 0x0802D578 sub_802D578 -thumb_func 0x0802D6B4 sub_802D6B4 -thumb_func 0x0802EF08 sub_802EF08 -thumb_func 0x08030724 sub_8030724 -thumb_func 0x08030814 sub_8030814 -thumb_func 0x08031CB4 sub_8031CB4 -thumb_func 0x08034208 sub_8034208 -thumb_func 0x080352C0 sub_80352C0 -thumb_func 0x080357FC sub_80357FC -thumb_func 0x080358C8 sub_80358C8 -thumb_func 0x08036CC4 sub_8036CC4 -thumb_func 0x08036D90 sub_8036D90 -thumb_func 0x080371C8 sub_80371C8 -thumb_func 0x0803A2F8 sub_803A2F8 -thumb_func 0x0803A530 sub_803A530 -thumb_func 0x0803A5D0 sub_803A5D0 -thumb_func 0x0803B570 sub_803B570 -thumb_func 0x0803C184 sub_803C184 -thumb_func 0x0803C93C sub_803C93C -thumb_func 0x0803CE44 sub_803CE44 -thumb_func 0x0803D888 sub_803D888 -thumb_func 0x0803DCCC sub_803DCCC -thumb_func 0x0803F6C4 sub_803F6C4 -thumb_func 0x0803F808 sub_803F808 -thumb_func 0x0803F920 sub_803F920 -thumb_func 0x0803FF84 sub_803FF84 -thumb_func 0x08040278 sub_8040278 -thumb_func 0x08040488 sub_8040488 -thumb_func 0x08040638 sub_8040638 -thumb_func 0x080408AC sub_80408AC -thumb_func 0x080409E4 sub_80409E4 -thumb_func 0x08042020 sub_8042020 -thumb_func 0x08045418 sub_8045418 -thumb_func 0x08045AD8 sub_8045AD8 -thumb_func 0x08046FE8 sub_8046FE8 -thumb_func 0x08047064 sub_8047064 -thumb_func 0x08047150 sub_8047150 -thumb_func 0x08047328 sub_8047328 -thumb_func 0x0804784C sub_804784C -thumb_func 0x08047FA0 sub_8047FA0 -thumb_func 0x080490E8 sub_80490E8 -thumb_func 0x08049208 sub_8049208 -thumb_func 0x08049348 sub_8049348 -thumb_func 0x0804A2B8 sub_804A2B8 -thumb_func 0x0804A320 sub_804A320 -thumb_func 0x0804A3B8 sub_804A3B8 -thumb_func 0x0804BE68 sub_804BE68 -thumb_func 0x0804C3FC sub_804C3FC -thumb_func 0x0804C910 sub_804C910 -thumb_func 0x0804CC68 sub_804CC68 -thumb_func 0x0804CD5C sub_804CD5C -thumb_func 0x0804CFC0 sub_804CFC0 -thumb_func 0x0804D100 sub_804D100 -thumb_func 0x0804DDC4 sub_804DDC4 -thumb_func 0x0804DF38 sub_804DF38 -thumb_func 0x0804F73C sub_804F73C -thumb_func 0x0804F834 sub_804F834 -thumb_func 0x0804FA38 sub_804FA38 -thumb_func 0x0804FAF0 sub_804FAF0 -thumb_func 0x0804FB5C sub_804FB5C -thumb_func 0x0804FDB8 sub_804FDB8 -thumb_func 0x0804FE20 sub_804FE20 -thumb_func 0x08050A88 sub_8050A88 -thumb_func 0x0805202C sub_805202C -thumb_func 0x080523C0 sub_80523C0 -thumb_func 0x080536D4 sub_80536D4 -thumb_func 0x08054A28 sub_8054A28 -thumb_func 0x08055C38 sub_8055C38 -thumb_func 0x08056CB4 sub_8056CB4 -thumb_func 0x08056E24 sub_8056E24 -thumb_func 0x08056F30 sub_8056F30 -thumb_func 0x08056FA0 sub_8056FA0 -thumb_func 0x08057B74 sub_8057B74 -thumb_func 0x0805803C sub_805803C -thumb_func 0x0805BC60 sub_805BC60 -thumb_func 0x0805D684 sub_805D684 -thumb_func 0x0805E758 sub_805E758 -thumb_func 0x0805FF0C sub_805FF0C -thumb_func 0x0806182C sub_806182C -thumb_func 0x080629E8 sub_80629E8 -thumb_func 0x08064244 sub_8064244 -thumb_func 0x08065328 sub_8065328 -thumb_func 0x08065538 sub_8065538 -thumb_func 0x08065810 sub_8065810 -thumb_func 0x08066DC8 sub_8066DC8 -thumb_func 0x08066E58 sub_8066E58 -thumb_func 0x08067050 sub_8067050 -thumb_func 0x08067B14 sub_8067B14 -thumb_func 0x08067F38 sub_8067F38 -thumb_func 0x08068448 sub_8068448 -thumb_func 0x08068538 sub_8068538 -thumb_func 0x08068620 sub_8068620 -thumb_func 0x08068A78 sub_8068A78 -thumb_func 0x080693D0 sub_80693D0 -thumb_func 0x0806954C sub_806954C -thumb_func 0x08069E50 sub_8069E50 -thumb_func 0x0806A124 sub_806A124 -thumb_func 0x0806A680 sub_806A680 -thumb_func 0x0806AF58 sub_806AF58 -thumb_func 0x0806B620 sub_806B620 -thumb_func 0x0806BF38 sub_806BF38 -thumb_func 0x0806C5A8 sub_806C5A8 -thumb_func 0x0806DC5C sub_806DC5C -thumb_func 0x0806FA84 sub_806FA84 -thumb_func 0x080700D4 sub_80700D4 -thumb_func 0x080709A0 sub_80709A0 -thumb_func 0x080713E8 sub_80713E8 -thumb_func 0x080717BC sub_80717BC -thumb_func 0x08071F28 sub_8071F28 -thumb_func 0x08072AB4 sub_8072AB4 -thumb_func 0x080734C0 sub_80734C0 -thumb_func 0x08074364 sub_8074364 -thumb_func 0x08074CE8 sub_8074CE8 -thumb_func 0x080750AC sub_80750AC -thumb_func 0x08075608 sub_8075608 -thumb_func 0x0807650C sub_807650C -thumb_func 0x0807689C sub_807689C -thumb_func 0x0807753C sub_807753C -thumb_func 0x08077D1C sub_8077D1C -thumb_func 0x08078338 sub_8078338 -thumb_func 0x080789B0 sub_80789B0 -thumb_func 0x08079110 sub_8079110 -thumb_func 0x0807A7C8 sub_807A7C8 -thumb_func 0x0807BDC4 sub_807BDC4 -thumb_func 0x0807BE4C sub_807BE4C -thumb_func 0x0807CB28 sub_807CB28 -thumb_func 0x0807D17C sub_807D17C -thumb_func 0x0807EA70 sub_807EA70 -thumb_func 0x0807EE20 sub_807EE20 -thumb_func 0x0807F2D8 sub_807F2D8 -thumb_func 0x0807F968 sub_807F968 -thumb_func 0x0808071C sub_808071C -thumb_func 0x080813DC sub_80813DC -thumb_func 0x08082198 sub_8082198 -thumb_func 0x08082ED8 sub_8082ED8 -thumb_func 0x080836B4 sub_80836B4 -thumb_func 0x08083E60 sub_8083E60 -thumb_func 0x08085038 sub_8085038 -thumb_func 0x08086420 sub_8086420 -thumb_func 0x08086884 sub_8086884 -thumb_func 0x0808730C sub_808730C -thumb_func 0x08088368 sub_8088368 -thumb_func 0x08088810 sub_8088810 -thumb_func 0x08089A14 sub_8089A14 -thumb_func 0x0808A5F0 sub_808A5F0 -thumb_func 0x0808B230 sub_808B230 -thumb_func 0x0808B428 sub_808B428 -thumb_func 0x0808BC7C sub_808BC7C -thumb_func 0x0808C024 sub_808C024 -thumb_func 0x0808CC68 sub_808CC68 -thumb_func 0x0808DE18 sub_808DE18 -thumb_func 0x0808E398 sub_808E398 -thumb_func 0x0808E768 sub_808E768 -thumb_func 0x0808F0B4 sub_808F0B4 -thumb_func 0x0808F274 sub_808F274 -thumb_func 0x0808FE5C sub_808FE5C -thumb_func 0x080907AC sub_80907AC -thumb_func 0x08090DF0 sub_8090DF0 -thumb_func 0x080916C8 sub_80916C8 -thumb_func 0x08092200 sub_8092200 -thumb_func 0x080925EC sub_80925EC -thumb_func 0x08092F14 sub_8092F14 -thumb_func 0x080931AC sub_80931AC -thumb_func 0x08093704 sub_8093704 -thumb_func 0x08093894 sub_8093894 -thumb_func 0x08093F4C sub_8093F4C -thumb_func 0x08095488 sub_8095488 -thumb_func 0x08095D28 sub_8095D28 -thumb_func 0x08096104 sub_8096104 -thumb_func 0x0809656C sub_809656C -thumb_func 0x08096890 sub_8096890 -thumb_func 0x08096B20 sub_8096B20 -thumb_func 0x08096E2C sub_8096E2C -thumb_func 0x080971CC sub_80971CC -thumb_func 0x08097298 sub_8097298 -thumb_func 0x080972F8 sub_80972F8 -thumb_func 0x08097448 sub_8097448 -thumb_func 0x08097924 sub_8097924 -thumb_func 0x0809798C sub_809798C -thumb_func 0x08097BDC sub_8097BDC -thumb_func 0x08097C84 sub_8097C84 -thumb_func 0x080984B0 sub_80984B0 -thumb_func 0x08098EA4 sub_8098EA4 -thumb_func 0x08099078 sub_8099078 -thumb_func 0x08099288 sub_8099288 -thumb_func 0x08099328 sub_8099328 -thumb_func 0x08099738 sub_8099738 -thumb_func 0x08099B5C sub_8099B5C -thumb_func 0x0809AB70 sub_809AB70 - -thumb_func 0x08001370 sub_8001370 -thumb_func 0x08003300 sub_8003300 -thumb_func 0x08004AFC sub_8004AFC -thumb_func 0x08006A08 sub_8006A08 -thumb_func 0x08009684 sub_8009684 -thumb_func 0x08012C70 sub_8012C70 -thumb_func 0x080175C4 sub_80175C4 -thumb_func 0x08018440 sub_8018440 -thumb_func 0x08019D9C sub_8019D9C -thumb_func 0x0801A70C sub_801A70C -thumb_func 0x0801C9AC sub_801C9AC -thumb_func 0x08025190 sub_8025190 -thumb_func 0x08025898 sub_8025898 -thumb_func 0x08027868 sub_8027868 -thumb_func 0x0802795C sub_802795C -thumb_func 0x08028020 sub_8028020 -thumb_func 0x0802D2A8 sub_802D2A8 -thumb_func 0x0802D6FC sub_802D6FC -thumb_func 0x0802EF24 sub_802EF24 -thumb_func 0x08030740 sub_8030740 -thumb_func 0x08030850 sub_8030850 -thumb_func 0x08031CD0 sub_8031CD0 -thumb_func 0x08034224 sub_8034224 -thumb_func 0x08035818 sub_8035818 -thumb_func 0x08035904 sub_8035904 -thumb_func 0x08036CE0 sub_8036CE0 -thumb_func 0x08036DCC sub_8036DCC -thumb_func 0x0803A5EC sub_803A5EC -thumb_func 0x0803B7AC sub_803B7AC -thumb_func 0x0803C198 sub_803C198 -thumb_func 0x0803C974 sub_803C974 -thumb_func 0x0803CE48 sub_803CE48 -thumb_func 0x0803D940 sub_803D940 -thumb_func 0x0803DD00 sub_803DD00 -thumb_func 0x0803F700 sub_803F700 -thumb_func 0x0803F854 sub_803F854 -thumb_func 0x0803F92C sub_803F92C -thumb_func 0x0804550C sub_804550C -thumb_func 0x08047088 sub_8047088 -thumb_func 0x08047190 sub_8047190 -thumb_func 0x08047354 sub_8047354 -thumb_func 0x08047890 sub_8047890 -thumb_func 0x08047FE4 sub_8047FE4 -thumb_func 0x0804A354 sub_804A354 -thumb_func 0x0804A3C0 sub_804A3C0 -thumb_func 0x0804C960 sub_804C960 -thumb_func 0x0804CC94 sub_804CC94 -thumb_func 0x0804CD60 sub_804CD60 -thumb_func 0x0804F760 sub_804F760 -thumb_func 0x0804F860 sub_804F860 -thumb_func 0x0804FA54 sub_804FA54 -thumb_func 0x0804FB10 sub_804FB10 -thumb_func 0x0804FE3C sub_804FE3C -thumb_func 0x08050FB4 sub_8050FB4 -thumb_func 0x080536D8 sub_80536D8 -thumb_func 0x08054A54 sub_8054A54 -thumb_func 0x08056F54 sub_8056F54 -thumb_func 0x08058344 sub_8058344 -thumb_func 0x0805FF38 sub_805FF38 -thumb_func 0x08061830 sub_8061830 -thumb_func 0x080645E4 sub_80645E4 -thumb_func 0x08065814 sub_8065814 -thumb_func 0x08066DCC sub_8066DCC -thumb_func 0x08066E5C sub_8066E5C -thumb_func 0x08067054 sub_8067054 -thumb_func 0x0806844C sub_806844C -thumb_func 0x0806853C sub_806853C -thumb_func 0x08068624 sub_8068624 -thumb_func 0x08069550 sub_8069550 -thumb_func 0x0806A68C sub_806A68C -thumb_func 0x080734E4 sub_80734E4 -thumb_func 0x0807692C sub_807692C -thumb_func 0x0807F98C sub_807F98C -thumb_func 0x08085554 sub_8085554 -thumb_func 0x080865A8 sub_80865A8 -thumb_func 0x08086B4C sub_8086B4C -thumb_func 0x080875C4 sub_80875C4 -thumb_func 0x0808838C sub_808838C -thumb_func 0x0808B254 sub_808B254 -thumb_func 0x0808B5AC sub_808B5AC -thumb_func 0x0808DE34 sub_808DE34 -thumb_func 0x080907C0 sub_80907C0 -thumb_func 0x080916DC sub_80916DC -thumb_func 0x080971D0 sub_80971D0 -thumb_func 0x080972B4 sub_80972B4 -thumb_func 0x08097304 sub_8097304 -thumb_func 0x080979A0 sub_80979A0 -thumb_func 0x08098EB8 sub_8098EB8 -thumb_func 0x08099B60 sub_8099B60 - -thumb_func 0x08001380 sub_8001380 -thumb_func 0x08003310 sub_8003310 -thumb_func 0x08004B0C sub_8004B0C -thumb_func 0x08018490 sub_8018490 -thumb_func 0x0801C9C0 sub_801C9C0 -thumb_func 0x080278C8 sub_80278C8 -thumb_func 0x0802D2BC sub_802D2BC -thumb_func 0x0802EF60 sub_802EF60 -thumb_func 0x08030754 sub_8030754 -thumb_func 0x08030870 sub_8030870 -thumb_func 0x08031D0C sub_8031D0C -thumb_func 0x08034238 sub_8034238 -thumb_func 0x08035938 sub_8035938 -thumb_func 0x08036DEC sub_8036DEC -thumb_func 0x0803A600 sub_803A600 -thumb_func 0x0803B944 sub_803B944 -thumb_func 0x0803D9F8 sub_803D9F8 -thumb_func 0x0803DD78 sub_803DD78 -thumb_func 0x0803F968 sub_803F968 -thumb_func 0x0804A35C sub_804A35C -thumb_func 0x0804C9D4 sub_804C9D4 -thumb_func 0x0804CCA0 sub_804CCA0 -thumb_func 0x0804F788 sub_804F788 -thumb_func 0x0804F888 sub_804F888 -thumb_func 0x08051344 sub_8051344 -thumb_func 0x080648D4 sub_80648D4 -thumb_func 0x08066DD0 sub_8066DD0 -thumb_func 0x0806856C sub_806856C -thumb_func 0x08068628 sub_8068628 -thumb_func 0x08069598 sub_8069598 -thumb_func 0x0806A698 sub_806A698 -thumb_func 0x08086CC0 sub_8086CC0 -thumb_func 0x08087678 sub_8087678 -thumb_func 0x08097318 sub_8097318 -thumb_func 0x08098ECC sub_8098ECC -thumb_func 0x08099B64 sub_8099B64 - -thumb_func 0x08001390 sub_8001390 -thumb_func 0x08003324 sub_8003324 -thumb_func 0x08004B20 sub_8004B20 -thumb_func 0x080184D0 sub_80184D0 -thumb_func 0x08031D54 sub_8031D54 -thumb_func 0x0803424C sub_803424C -thumb_func 0x0803A614 sub_803A614 -thumb_func 0x0803BAD4 sub_803BAD4 -thumb_func 0x0803DB2C sub_803DB2C -thumb_func 0x0803DDBC sub_803DDBC -thumb_func 0x0803F9A8 sub_803F9A8 -thumb_func 0x0804F78C sub_804F78C -thumb_func 0x0804F8D4 sub_804F8D4 -thumb_func 0x08051604 sub_8051604 -thumb_func 0x08064BB4 sub_8064BB4 -thumb_func 0x08068570 sub_8068570 -thumb_func 0x0806862C sub_806862C -thumb_func 0x0806959C sub_806959C -thumb_func 0x08087054 sub_8087054 -thumb_func 0x0809732C sub_809732C -thumb_func 0x08098EE0 sub_8098EE0 -thumb_func 0x08099B68 sub_8099B68 - -thumb_func 0x080013A0 sub_80013A0 -thumb_func 0x08003340 sub_8003340 -thumb_func 0x08004B3C sub_8004B3C -thumb_func 0x0803426C sub_803426C -thumb_func 0x0803A650 sub_803A650 -thumb_func 0x0803DE00 sub_803DE00 -thumb_func 0x0803FA1C sub_803FA1C -thumb_func 0x0804F790 sub_804F790 -thumb_func 0x0804F8D8 sub_804F8D8 -thumb_func 0x08064E84 sub_8064E84 -thumb_func 0x0809735C sub_809735C -thumb_func 0x08098EF4 sub_8098EF4 -thumb_func 0x08099B6C sub_8099B6C - -thumb_func 0x080013B0 sub_80013B0 -thumb_func 0x0800334C sub_800334C -thumb_func 0x08004B48 sub_8004B48 -thumb_func 0x0803A6EC sub_803A6EC -thumb_func 0x0803DE44 sub_803DE44 -thumb_func 0x0804F7B0 sub_804F7B0 -thumb_func 0x0804F8DC sub_804F8DC -thumb_func 0x08097370 sub_8097370 -thumb_func 0x08098F08 sub_8098F08 -thumb_func 0x08099B70 sub_8099B70 - -thumb_func 0x080013BC sub_80013BC -thumb_func 0x0800336C sub_800336C -thumb_func 0x08004B68 sub_8004B68 -thumb_func 0x0803A7D4 sub_803A7D4 -thumb_func 0x0803DE88 sub_803DE88 -thumb_func 0x0804F7B4 sub_804F7B4 -thumb_func 0x0804F934 sub_804F934 -thumb_func 0x08097384 sub_8097384 -thumb_func 0x08098F14 sub_8098F14 - -thumb_func 0x080013C8 sub_80013C8 -thumb_func 0x08003374 sub_8003374 -thumb_func 0x08004B70 sub_8004B70 -thumb_func 0x0803A870 sub_803A870 -thumb_func 0x0803DEA8 sub_803DEA8 -thumb_func 0x0804F7C0 sub_804F7C0 -thumb_func 0x0804F95C sub_804F95C -thumb_func 0x08097398 sub_8097398 -thumb_func 0x08098F20 sub_8098F20 - -thumb_func 0x080013D4 sub_80013D4 -thumb_func 0x08003380 sub_8003380 -thumb_func 0x08004B8C sub_8004B8C -thumb_func 0x0803A8AC sub_803A8AC -thumb_func 0x0803DEC8 sub_803DEC8 -thumb_func 0x0804F7C4 sub_804F7C4 -thumb_func 0x0804F984 sub_804F984 -thumb_func 0x080973AC sub_80973AC -thumb_func 0x08098F34 sub_8098F34 - -thumb_func 0x080013E4 sub_80013E4 -thumb_func 0x0803A8CC sub_803A8CC -thumb_func 0x0803DF58 sub_803DF58 -thumb_func 0x0804F7C8 sub_804F7C8 -thumb_func 0x0804F990 sub_804F990 -thumb_func 0x080973B8 sub_80973B8 - -thumb_func 0x0803A900 sub_803A900 -thumb_func 0x0803DF64 sub_803DF64 -thumb_func 0x0804F7CC sub_804F7CC -thumb_func 0x080973D0 sub_80973D0 - -thumb_func 0x0803DF70 sub_803DF70 -thumb_func 0x0804F7D0 sub_804F7D0 -thumb_func 0x080973E4 sub_80973E4 - -thumb_func 0x0803DFC0 sub_803DFC0 -thumb_func 0x0804F7DC sub_804F7DC - -thumb_func 0x0803E004 sub_803E004 -thumb_func 0x0804F7E8 sub_804F7E8 - -arm_func 0x080001CC sub_80001CC - -arm_func 0x0800020C sub_800020C - diff --git a/sa1/scripts/extract_credits_data.py b/sa1/scripts/extract_credits_data.py deleted file mode 100644 index c1a35ffd3e..0000000000 --- a/sa1/scripts/extract_credits_data.py +++ /dev/null @@ -1,72 +0,0 @@ -rom_start = 0x08000000 -#credits_start = 0x086815B4 # US ROM -#credits_end = 0x08683F74 # US ROM -credits_start = 0x086886B8 # EU ROM -credits_end = 0x0868B078 # EU ROM - -num_entries = int((credits_end - credits_start) / 0x20) - -escape_chars = ['\\', '\/', '"'] - -def get_entry_name(rom): - # 25 is a fixed size - # Empty entries contain 25 ' ' characters, others are filled with ' ' at the end. - # Noticably lines that contain "" have two less ' ' and instead fill space using '\x000'. - # Maybe it's a small bug in Dimps' / SEGA's conversion tool? - entry_name = rom.read(25) - - result = "\"" - - for char_hex in entry_name: - if char_hex == 0: - result += "\\x000" - else: - char = str(f"{char_hex:c}") - if char in escape_chars: - result += "\\" - result += char - result += "\"" - - return result - -def convert_entries(rom, lines): - i = 0 - while i < num_entries: - length = rom.read(1)[0] - unk1 = rom.read(1)[0] - unk2 = rom.read(1)[0] - lines.append(" ") # no linebreak! - entry = ["{", - f" { str(length) },", - f" { str(unk1) },", - f" { str(unk2) },", - " ", get_entry_name(rom), "," - " {" - f" { str(rom.read(2)[1]) }," # skip C-String null-terminator - f" { str(rom.read(1)[0]) }," - f" { str(rom.read(1)[0]) }" - " } " - "},\n"] - for line in entry: - lines.append(line) - i += 1 - - return lines - -with open("baserom_sa1.gba", "rb") as rom, \ - open("src/data/sa1/credits.c", "w") as credits_c: - rom.seek(credits_start - rom_start) - - print("Printing ", num_entries, " entries") - - lines = [] - lines.append("#include \"data/sa1/credits.h\"\n") - lines.append("\n") - lines.append(f"#define NUM_ENTRIES {num_entries}\n") - lines.append("\n") - lines.append("const CreditsString sCreditsEntries[NUM_ENTRIES] = ") - lines.append("{\n") - lines = convert_entries(rom, lines) - lines.append("};\n") - - credits_c.writelines(lines) diff --git a/sa1/scripts/extract_rom_data.py b/sa1/scripts/extract_rom_data.py deleted file mode 100644 index 9b2683d2dc..0000000000 --- a/sa1/scripts/extract_rom_data.py +++ /dev/null @@ -1,59 +0,0 @@ -rom_start = 0x08000000 -end_of_code = 0x0809B670 -end_of_data = 0x087ff04B - -addresses = set() - -with open('asm/code.s') as code: - for line in code.readlines(): - line = line.strip() - if ".4byte 0x08" in line: - address = int(line.split("0x0")[1], 16) - if address >= end_of_code and address < end_of_data: - addresses.add(address) - -addresses_with_size = [] -sorted_addresses = sorted(addresses) - -def upper_addr(addr): - return "0x" + hex(addr).split('0x')[1].upper() - -def format_memory_addr(addr): - return "0x0" + hex(addr).split("0x")[1].upper() - -def to_var_name(addr): - without_hex = addr.split("0x")[1] - return f"gUnknown_{without_hex}" - - -for i in range(len(sorted_addresses)): - address = sorted_addresses[i] - if i + 1 < len(sorted_addresses): - next_address = sorted_addresses[i + 1] - else: - next_address = end_of_data - - addresses_with_size.append((address, format_memory_addr(address), upper_addr(next_address - address))) - -summed = 0 - -with open("data/sa1/new_data.s", "w") as data_file: - data_file.write(' .section .rodata\n') - data_file.write('\n') - for raw_addr, addr, size in addresses_with_size: - summed += int(size, 16) - var = to_var_name(addr) - data_file.write(f""" .global {var} -{var}: - .incbin "data/sa1/baserom_sa1.gba", 0x{f"{(raw_addr - rom_start):08x}".upper()}, {size} - -""") - -print(hex(summed)) -with open("asm/new_code.s", "w") as new_rom: - existing_code = "".join(open("asm/code.s").readlines()) - for _, addr, __ in addresses_with_size: - var = to_var_name(addr) - existing_code = existing_code.replace(addr, to_var_name(addr)) - - new_rom.write(existing_code) diff --git a/sa1/scripts/extract_rom_sym.py b/sa1/scripts/extract_rom_sym.py deleted file mode 100644 index 6046d3abcf..0000000000 --- a/sa1/scripts/extract_rom_sym.py +++ /dev/null @@ -1,43 +0,0 @@ -ewram_syms = {} -iwram_syms = {} - -replace = {} - -# because of the task system, any pointers below this are probably -# task related, we can worry about anything which is left later -min_iwram = 0x30004B0 - -with open("asm/code.s") as code_file: - for line in code_file.readlines(): - line = line.strip() - if "0x030" in line and ":" not in line: - addr = line.split("0x03")[1].split(" ")[0] - if int(f"0x03{addr}", 16) >= min_iwram: - iwram_syms[f"0x00{addr}"] = f"gUnknown_03{addr}" - replace[f"0x03{addr}"] = f"gUnknown_03{addr}" - - if "0x020" in line and ":" not in line: - addr = line.split("0x02")[1].split(" ")[0] - ewram_syms[f"0x00{addr}"] = f"gUnknown_02{addr}" - replace[f"0x02{addr}"] = f"gUnknown_02{addr}" - - code_file.seek(0) - code_content = code_file.read() - - for addr, sym in replace.items(): - code_content = code_content.replace(addr, sym) - - with open("asm/new_code.s", "w") as new_code: - new_code.write(code_content) - - with open("sym_iwram.txt", "w") as iwram_sym_file: - keys = sorted(iwram_syms.keys()) - for addr in keys: - sym = iwram_syms[addr] - iwram_sym_file.write(f". = {addr}; {sym} = .;\n") - - with open("sym_ewram.txt", "w") as ewram_sym_file: - keys = sorted(ewram_syms.keys()) - for addr in keys: - sym = ewram_syms[addr] - ewram_sym_file.write(f". = {addr}; {sym} = .;\n") diff --git a/sa1/scripts/extract_ui_graphics_data.py b/sa1/scripts/extract_ui_graphics_data.py deleted file mode 100644 index d7dbe9d975..0000000000 --- a/sa1/scripts/extract_ui_graphics_data.py +++ /dev/null @@ -1,293 +0,0 @@ -import os, sys - -rom_start = 0x08000000 -rom_end = 0x08800000 # SA1 is only 8MB! - -#graphic_table_start = ??? # US ROM -graphic_table_start = 0x08687B3C # EU ROM -graphic_table_end = 0 - -table_entry_count = 0 -table_entry_size = 0x1C - -graphic_offsets = [] -palette_offsets = [] - -autogen_disclaimer = f"""This file was created using './{sys.argv[0]}'. - If you want to change a name or some other property, - please change it in there and run the script again, - so that they are adjusted in all auto-generated files!""" - -def graphic_entry_address(index): - return (graphic_table_start + (index * table_entry_size)) - -def tiledata_label(named): - return f"gUiGraphics{named.infix}{named.name}" - -def palette_label(named): - return f"gUiPalette{named.infix}{named.name}" - -class Graphic: - def __init__(self, index, folder, infix, name, width): - self.index = index # in-game index - self.infix = infix # infix for C labels - self.name = name # name for files and C labels - self.width = width # image width in pixels (keep it multiple of 8!) - - if (len(folder) == 0): - address = graphic_entry_address(index) - self.folder = f"_{address:X}" - else: - self.folder = folder - -# index, folder, label infix, name, width -graphic_names = [ - Graphic( 0, "stage_ui", "", "AsciiChars", 8), - Graphic( 1, "icon_lives", "1UpIcon", "Sonic", 16), - Graphic( 2, "icon_lives", "1UpIcon", "Tails", 16), - Graphic( 3, "icon_lives", "1UpIcon", "Knuckles", 16), - Graphic( 4, "icon_lives", "1UpIcon", "Amy", 16), - Graphic( 5, "icon_ring", "", "HudRing", 32), - Graphic( 6, "stage_intro", "StageIntro", "Sonic", 32), - Graphic( 7, "stage_intro", "StageIntro", "Tails", 32), - Graphic( 8, "stage_intro", "StageIntro", "Knuckles", 32), - Graphic( 9, "stage_intro", "StageIntro", "Amy", 32), - Graphic(10, "stage_intro", "StageIntro", "char_names", 32), - Graphic(11, "stage_result", "StageResult", "Sonic", 32), - Graphic(12, "stage_result", "StageResult", "Tails", 32), - Graphic(13, "stage_result", "StageResult", "Knuckles", 32), - Graphic(14, "stage_result", "StageResult", "Amy", 32), - Graphic(15, "stage_result", "StageResult", "Act12", 8), - Graphic(16, "stage_result", "StageResult", "HeadlineBack", 32), - Graphic(17, "stage_intro", "StageNames", "Japanese0", 8), - Graphic(18, "stage_intro", "StageNames", "Japanese1", 8), - Graphic(19, "stage_intro", "StageName", "NeoGreenHillZone", 32), - Graphic(20, "stage_intro", "StageName", "SecretBaseZone", 32), - Graphic(21, "stage_intro", "StageName", "CasinoParadiseZone", 32), - Graphic(22, "stage_intro", "StageName", "IceMountainZone", 32), - Graphic(23, "stage_intro", "StageName", "AngelIslandZone", 32), - Graphic(24, "stage_intro", "StageName", "EggRocketZone", 32), - Graphic(25, "stage_intro", "StageName", "CosmicAngelZone", 32), - Graphic(26, "stage_intro", "StageName", "XZone", 32), - Graphic(27, "stage_intro", "StageName", "TheMoonZone", 32), - Graphic(28, "stage_intro", "StageName", "ForestChaoGarden", 32), - Graphic(29, "stage_intro", "StageName", "FactoryChaoGarden", 32), - Graphic(30, "stage_intro", "StageName", "PinballChaoGarden", 32), - Graphic(31, "stage_intro", "StageName", "SpaceChaoGarden", 32), - Graphic(32, "stage_ui", "", "TimerDigits", 16), - Graphic(33, "stage_ui", "", "OK", 32), - Graphic(34, "stage_result", "", "GotThroughTexts", 32), - Graphic(35, "options_overlays", "Overlay", "EnterName", 256), - Graphic(36, "options_overlays", "Overlay", "Characters", 160), - Graphic(37, "options_overlays", "Overlay", "RedCorner", 8), - Graphic(38, "options_overlays", "Overlay", "Cursors", 16), - Graphic(39, "character_select", "CharSelect", "ZigZag", 32), - Graphic(40, "character_select", "CharSelect", "Arrow", 32), - Graphic(41, "character_select", "CharSelect", "Names", 32), - Graphic(42, "character_select", "CharSelect", "SelectACharacter", 32), - Graphic(43, "character_select", "CharSelect", "BlackBox", 32), - Graphic(44, "character_select", "CharSelect", "OK", 32), - Graphic(45, "character_select", "CharSelect", "BlackBox2", 32), - Graphic(46, "special_stage", "SpecialStage", "46", 64), - Graphic(47, "special_stage", "SpecialStage", "TextGotRings0", 32), - Graphic(48, "special_stage", "SpecialStage", "TextGotRings1", 32), - Graphic(49, "special_stage", "SpecialStage", "TextGotRings2", 32), - Graphic(50, "special_stage", "SpecialStage", "TextStart", 32), - Graphic(51, "special_stage", "SpecialStage", "TextGotAChaosEmerald", 32), - Graphic(52, "special_stage", "SpecialStage", "TextSpecialStage", 32), - Graphic(53, "special_stage", "SpecialStage", "53", 32), - Graphic(54, "special_stage", "SpecialStage", "ChaosEmerald", 32), - Graphic(55, "unknown", "", "Transparent0", 8), - Graphic(56, "unknown", "", "Transparent1", 8), - Graphic(57, "unknown", "", "Transparent2", 8), - Graphic(58, "unknown", "", "Transparent3", 8), - Graphic(59, "unknown", "", "Transparent4", 8), - Graphic(60, "unknown", "", "Transparent5", 8), - Graphic(61, "sound_test", "SoundTest", "Background", 64), - Graphic(62, "sound_test", "SoundTest", "Box2", 8), - Graphic(63, "sound_test", "SoundTest", "Box3", 8), - Graphic(64, "sound_test", "SoundTest", "Box4", 8), -] - -# Create LUT named -> game-index -graphic_names_lut = [] -for named in graphic_names: - graphic_names_lut.append(named.index) - - -graphic_ctype = "UiGraphics" -graphic_cstruct = """ -typedef struct """ + graphic_ctype + """ { - const u8 *tiles; - const u16 *palette; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; -} """ + graphic_ctype + """; - -"""; - - -def is_gba_pointer(value): - return ((value >= rom_start) and (value < rom_end)) - -def read32(rom): - word_bytes = rom.read(4) - word = ((word_bytes[3] << 24) | (word_bytes[2] << 16) | (word_bytes[1] << 8) | (word_bytes[0] << 0)) - return word - -def find_table_end_ptr(rom): - graphic_base_offset = (graphic_table_start - rom_start) - entry_valid = True - num_entries = 0 - - while (entry_valid): - rom.seek(graphic_base_offset + (num_entries * table_entry_size)) - graphic_ptr = read32(rom) - palette_ptr = read32(rom) - - if (is_gba_pointer(graphic_ptr) and is_gba_pointer(palette_ptr)): - # cache offsets to data and palettes - graphic_offsets.append(graphic_ptr - rom_start) - palette_offsets.append(palette_ptr - rom_start) - num_entries += 1 - else: - entry_valid = False - - # Add "one past last" offset, to streamline calculating the data size - graphic_offsets.append(palette_ptr - rom_start + 0x20) - - return (graphic_table_start + num_entries * table_entry_size), num_entries - -def get_named_graphic(index): - named = {} - - for named_entry in graphic_names: - if (named_entry.index == index): - named = named_entry - break - - return named - -def fill_graphic_names_table_with_unnamed(): - i = 0 - while(i < table_entry_count): - if not (i in graphic_names_lut): - address = graphic_entry_address(i) - graphic_names.append(Graphic(i, "", f"_0{address:X}", "gfx", 8)) - i += 1 - -header_path = "data/sa1/ui_graphics.h"; -def write_header(ui_graphics_h): - header_guard = "SA1_UI_GRAPHICS_H"; - ui_graphics_h.write(f"#ifndef {header_guard}\n") - ui_graphics_h.write(f"#define {header_guard}\n") - ui_graphics_h.write("#include \"global.h\"\n") - ui_graphics_h.write(f"\n/* {autogen_disclaimer} */\n") - ui_graphics_h.write(graphic_cstruct) - - for named in graphic_names: - ui_graphics_h.write(f"extern const u8 {tiledata_label(named)}[];\n") - ui_graphics_h.write(f"extern const u16 {palette_label(named)}[];\n\n") - - ui_graphics_h.write(f"#endif // {header_guard}\n") - -def write_graphic_data(rom, graphic_data_c): - graphic_data_c.write("#include \"global.h\"\n") - graphic_data_c.write(f"#include \"{header_path}\"\n") - graphic_data_c.write(f"\n/* {autogen_disclaimer} */\n\n") - - i = 0 - base_export_path = "graphics/sa1/ui/" - try: - os.mkdir(base_export_path) - except FileExistsError: - # silently ignore "file exists" error - pass - - while(i < table_entry_count): - named = get_named_graphic(i) - - if (named.folder[0] == '_'): - graphic_folder_path = f"{base_export_path}{named.index}{named.folder}/" - else: - graphic_folder_path = f"{base_export_path}{named.folder}/" - - try: - os.mkdir(graphic_folder_path) - except FileExistsError: - # silently ignore "file exists" error - pass - - file_base = f"{graphic_folder_path}{named.name}" - with open(file_base + ".4bpp", "wb") as graphic_bin, \ - open(file_base + ".gbapal", "wb") as palette_bin: - graphic_bin_size = palette_offsets[i] - graphic_offsets[i] - palette_bin_size = 32 # graphic_offsets[i + 1] - palette_offsets[i] - - # Export binary data - print(file_base) - rom.seek(graphic_offsets[i]) - graphic_bin.write(rom.read(graphic_bin_size)) - rom.seek(palette_offsets[i]) - palette_bin.write(rom.read(palette_bin_size)) - - # Convert exported binary data to .PNG / .PAL - flags = f"-object -palette {file_base}.gbapal -width {named.width / 8}" - os.system(f"tools/gbagfx/gbagfx {file_base}.4bpp {file_base}.png {flags}") - os.system(f"tools/gbagfx/gbagfx {file_base}.gbapal {file_base}.pal") - os.system(f"rm {file_base}.4bpp {file_base}.gbapal") - - graphic_data_c.write(f"// {i} - 0x08{graphic_offsets[i]:X} | 0x08{palette_offsets[i]:X}\n") - graphic_data_c.write(f"const u8 {tiledata_label(named)}[] = INCBIN_U8(\"{file_base}.4bpp\");\n") - graphic_data_c.write(f"const u16 {palette_label(named)}[] = INCBIN_U16(\"{file_base}.gbapal\");\n\n") - - i += 1 - -def write_graphic_table(rom, graphic_table_c): - #print("LUT:", graphic_names_lut) - - graphic_table_c.write(f"\n/* {autogen_disclaimer} */\n\n") - graphic_table_c.write(f"// 0x{graphic_table_start:X} -> 0x{graphic_table_end:X}\n") - graphic_table_c.write(f"const {graphic_ctype} gUiGraphics[] = {{\n") - i = 0 - - table_base = (graphic_table_start - rom_start) - while(i < table_entry_count): - named = get_named_graphic(i) - - # Set ROM offset, skip pointers (2 * 4 bytes) - entry_offset = table_base + (i * table_entry_size) - rom.seek(entry_offset + (2 * 4)) - - graphic_table_c.write(" {\n") - graphic_table_c.write(f" // {i} - 0x08{entry_offset:X}\n") - graphic_table_c.write(f" .tiles = {tiledata_label(named)},\n") - graphic_table_c.write(f" .palette = {palette_label(named)},\n") - graphic_table_c.write(f" .unk8 = {read32(rom)},\n") - graphic_table_c.write(f" .unkC = {read32(rom)},\n") - graphic_table_c.write(f" .unk10 = {read32(rom)},\n") - graphic_table_c.write(f" .unk14 = {read32(rom)},\n") - graphic_table_c.write(f" .unk18 = {read32(rom)},\n") - graphic_table_c.write(" },\n") - i += 1 - graphic_table_c.write("};\n") - -with open("baserom_sa1.gba", "rb") as rom, \ - open("include/" + header_path, "w") as ui_graphics_h, \ - open("src/data/sa1/ui_graphics_data.c", "w") as graphic_data_c, \ - open("src/data/sa1/ui_graphics_table.c", "w") as graphic_table_c: - graphic_table_end, table_entry_count = find_table_end_ptr(rom) - - graphic_table_c.write("#include \"global.h\"\n") - graphic_table_c.write(f"#include \"{header_path}\"\n") - - fill_graphic_names_table_with_unnamed() - - # Print data file - write_graphic_data(rom, graphic_data_c) - write_graphic_table(rom, graphic_table_c) - - write_header(ui_graphics_h) diff --git a/sa1/scripts/progress.py b/sa1/scripts/progress.py deleted file mode 100644 index 43b7d8b45a..0000000000 --- a/sa1/scripts/progress.py +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import json -import git -import os -import re - -def collect_non_matching_funcs(): - result = [] - for root, dirs, files in os.walk('src'): - for file in files: - if file.endswith('.c'): - with open(os.path.join(root, file), 'r') as f: - data = f.read() - lines = data.split("\n") - for i in range(len(lines)): - line = lines[i] - if "NONMATCH" in line: - # if "unused_" in line.lower(): - # continue - matcher = r'(NONMATCH|ASM_FUNC)\(".*",\W*\w*\W*(\w*).*\)' - match = re.findall(matcher, line) - if match: - result.append(match[0]) - else: - if i < len(lines) - 1: - line = lines[i + 1] - match = re.findall(r'\W*\w*\W*(\w*).*\)', line) - if match: - result.append(('NONMATCH', match[0])) - return result - - -def parse_map(non_matching_funcs, map_file): - src = 0 - asm = 0 - src_data = 0 - data = 0 - non_matching = 0 - - with open(map_file, 'r') as map: - # Skip to the linker script section - line = map.readline() - while not line.startswith('Linker script and memory map'): - line = map.readline() - while not line.lower().startswith('rom'): - line = map.readline() - if not line: - raise Exception('Reached end of map without rom keyword') - - prev_symbol = None - prev_addr = 0 - for line in map: - if line.startswith(' .'): - arr = line.split() - section = arr[0] - size = int(arr[2], 16) - filepath = arr[3] - if filepath.startswith('build'): - # build/*/(asm|data|sound|src|...)/*/ - # ^ ^ ^ - # 0 1 2 3 - dir = filepath.split("/")[2] - else: - # (asm|data|sound|src|...)/*/ - # ^ - # 0 1 - dir = filepath.split('/')[0] - - if section == '.text': - if dir == 'src': - src += size - elif dir == 'asm': - if filepath.find("asm/src/") != -1 or filepath.find("asm/lib/") != -1: - src += size - else: - asm += size - elif dir == 'data': - # scripts - src_data += size - elif dir == '..': - # libc - src += size - elif section == '.rodata': - if dir == 'src': - src_data += size - elif dir == 'data': - data += size - - elif line.startswith(' '): - arr = line.split() - if len(arr) == 2 and arr[1] != '': # It is actually a symbol - - if prev_symbol in non_matching_funcs: - # non_matching_funcs.remove(prev_symbol) - # Calculate the length for non matching function - non_matching += int(arr[0], 16) - prev_addr - - prev_symbol = arr[1] - prev_addr = int(arr[0], 16) - elif line.strip() == '': - # End of linker script section - break - - src -= non_matching - asm += non_matching - - return (src, asm, src_data, data) - - -def main(): - parser = argparse.ArgumentParser() - - parser = argparse.ArgumentParser(description="Computes current progress throughout the whole project.") - parser.add_argument("format", nargs="?", default="text", choices=["text", "csv", "shield-json"]) - parser.add_argument("-m", "--matching", dest='matching', action='store_true', - help="Output matching progress instead of decompilation progress") - parser.add_argument("-f", "--file", dest='map_file', default="sa1.map") - args = parser.parse_args() - - matching = args.matching - - non_matching_funcs = [] - funcs = collect_non_matching_funcs() - if matching: - # Remove all non matching funcs from count - non_matching_funcs = [x[1] for x in funcs] - else: - # Only remove ASM_FUNC functions from count - for func in funcs: - if func[0] == 'ASM_FUNC': - non_matching_funcs.append(func[1]) - - (src, asm, src_data, data) = parse_map(non_matching_funcs, args.map_file) - - total = src + asm - data_total = src_data + data - - src_percent = 100 * src / total - asm_percent = 100 * asm / total - - src_data_percent = 100 * src_data / data_total - data_percent = 100 * data / data_total - - - if args.format == 'csv': - version = 2 - git_object = git.Repo(search_parent_directories=True).head.object - timestamp = str(git_object.committed_date) - git_hash = git_object.hexsha - - csv_list = [str(version), timestamp, git_hash, str(src), - str(total), str(src_data), str(data_total)] - - print(','.join(csv_list)) - - elif args.format == 'shield-json': - # https://shields.io/endpoint - print(json.dumps({ - "schemaVersion": 1, - "label": "progress" if not args.matching else "matching", - "message": f"{src_percent:.3g}%", - "color": 'yellow' if src_percent < 100 else "green", - })) - - elif args.format == 'text': - adjective = "decompiled" if not args.matching else "matched" - - print("src: {:>9} / {:>8} total bytes {:<10} {:>9.4f}%".format(src, total, adjective, round(src_percent, 4))) - # print() - print("data: {:>9} / {:>8} total bytes analysed {:>9.4f}%".format(src_data, data_total, round(src_data_percent, 4))) - - else: - print("Unknown format argument: " + args.format) - - -if __name__ == '__main__': - main() diff --git a/sa1/scripts/sonicn.cfg b/sa1/scripts/sonicn.cfg deleted file mode 100644 index c2e475d377..0000000000 --- a/sa1/scripts/sonicn.cfg +++ /dev/null @@ -1,2341 +0,0 @@ -# Sonic N v1.0.1 - 2903EPO -# -# sonicn.app -# SHA-256: 0x6b0894c0b5171e6ce16a2f67e6c096231a62252cd4a377b3bc536ef9aaf79e26 -# -# Code Binary is located at 0x7C in sonicn.app and -# needs to be exported for addresses to line up. -# -# List is incomplete - -# Global-Context-Var-Offsets inside context -# data_label 0x00000098 IO / REG_BASE / REG_DISPCNT -# data_label 0x00000798 VRAM -# data_label 0x00039958 gFlags -# data_label 0x0003995C gFlagsPreVBlank -# data_label 0x00039960 gCurTask -# data_label 0x00039964 gNextTask -# data_label 0x00039968 gTaskPtrs -# data_label 0x0003A57C gNumTasks -# data_label 0x0003C790 gRefSpriteTables @ SA2: 0x03002794 -# data_label 0x0003D566 gDispCnt -# data_label 0x0003D568 gBgCntRegs -# data_label 0x0003D5A0 gUnknown_03002280 (u8 [4][4]) -# data_label 0x0003D5B0 gUnknown_03004D80 (u8 [4][4]) -# data_label 0x0003D5C4 gUnknown_030026F4 in SA2 -# data_label 0x0003DC94 gUnknown_03004D50 -# data_label 0x0003DC95 gUnknown_03001948 -# data_label 0x0003DCB9 gMultiSioSend -# data_label 0x0003DCCD gMultiSioRecv -# data_label 0x0003DD24 gMultiSioEnabled -# data_label 0x0003F148 gCurrentLevel -# data_label 0x0003E5F0 gCamera -# data_label 0x0003F585 gGameMode - -# Functions -# arm_func 0x10000000 sub_10000000 # Calls a func that returns 0 -arm_func 0x10000004 sub_10000004 -arm_func 0x10000038 sub_10000038 -arm_func 0x10000054 sub_10000054 -arm_func 0x10000070 sub_10000070 -arm_func 0x1000008C sub_1000008C -arm_func 0x100000E4 sub_100000E4 -arm_func 0x10000100 sub_10000100 -arm_func 0x10000218 sub_10000218 -arm_func 0x10000234 sub_10000234 -arm_func 0x1000044C sub_1000044C -arm_func 0x10000494 sub_10000494 -arm_func 0x100004E4 sub_100004E4 -arm_func 0x10000530 sub_10000530 -arm_func 0x10000A94 sub_10000A94 -arm_func 0x10000BA0 sub_10000BA0 -arm_func 0x10000C8C sub_10000C8C -arm_func 0x10000D98 sub_10000D98 -arm_func 0x10000E80 sub_10000E80 -arm_func 0x10000FB8 sub_10000FB8 -arm_func 0x100010A0 sub_100010A0 -arm_func 0x100011D8 sub_100011D8 -arm_func 0x1000124C sub_1000124C -arm_func 0x100012FC sub_100012FC -arm_func 0x100013B8 sub_100013B8 -arm_func 0x10001468 sub_10001468 -arm_func 0x10001524 sub_10001524 -arm_func 0x100015D0 sub_100015D0 -arm_func 0x100016A0 sub_100016A0 -arm_func 0x1000174C sub_1000174C -arm_func 0x1000181C sub_1000181C -arm_func 0x10001850 sub_10001850 -arm_func 0x1000194C sub_1000194C -arm_func 0x10001A78 sub_10001A78 -arm_func 0x100020BC sub_100020BC -arm_func 0x10002700 sub_10002700 -arm_func 0x10002960 sub_10002960 -arm_func 0x10002BC0 sub_10002BC0 -arm_func 0x10002BC4 nullsub_10002BC4 -arm_func 0x10002BC8 nullsub_10002BC8 -arm_func 0x10002BCC nullsub_10002BCC -arm_func 0x10002BD0 nullsub_10002BD0 -arm_func 0x10002BD4 sub_10002BD4 -arm_func 0x10002C98 sub_10002C98 -arm_func 0x10002DCC sub_10002DCC -arm_func 0x10002E2C sub_10002E2C -arm_func 0x10002E7C sub_10002E7C -arm_func 0x10002F0C sub_10002F0C -arm_func 0x10003100 sub_10003100 -arm_func 0x10003108 sub_10003108 -arm_func 0x10003110 sub_10003110 -arm_func 0x10003118 sub_10003118 -arm_func 0x10003120 sub_10003120 -arm_func 0x100031B0 sub_100031B0 -arm_func 0x100031C4 sub_100031C4 -arm_func 0x10003248 sub_10003248 -arm_func 0x100040B8 sub_100040B8 -arm_func 0x10004108 sub_10004108 -arm_func 0x10004138 sub_10004138 -arm_func 0x10004144 sub_10004144 -arm_func 0x10004144 sub_10004144 -arm_func 0x100041D8 sub_100041D8 -arm_func 0x100043E4 sub_100043E4 -arm_func 0x10004498 sub_10004498 -arm_func 0x10004508 sub_10004508 -arm_func 0x10004544 sub_10004544 -arm_func 0x100047C8 sub_100047C8 -arm_func 0x10009080 sub_10009080 -arm_func 0x1000923C sub_1000923C -arm_func 0x10009250 sub_10009250 -arm_func 0x10009350 sub_10009350 -arm_func 0x100093D4 sub_100093D4 -arm_func 0x100096F8 sub_100096F8 -arm_func 0x1000A0C4 sub_1000A0C4 -arm_func 0x1000A378 sub_1000A378 -arm_func 0x1000A39C sub_1000A39C -arm_func 0x1000A3D0 sub_1000A3D0 -arm_func 0x1000A51C sub_1000A51C -arm_func 0x1000A72C sub_1000A72C -arm_func 0x1000A830 EwramInitHeap -arm_func 0x1000A850 EwramMalloc -arm_func 0x1000A8EC EwramFree -arm_func 0x1000A9A0 sub_1000A9A0 -arm_func 0x1000A9A4 GameMain # prev. AgbMain? -arm_func 0x1000A9C8 EngineInit -arm_func 0x1000B050 EngineLoop -arm_func 0x1000B188 UpdateScreenDma -arm_func 0x1000B58C ClearOamBufferDma -arm_func 0x1000B6D8 UpdateScreenCpuSet -arm_func 0x1000B9E8 ClearOamBufferCpuSet -arm_func 0x1000BAD0 VBlankIntrWait -arm_func 0x1000BCB4 HBlankIntr -arm_func 0x1000BD34 VCountIntr -arm_func 0x1000BD48 sub_1000BD48 -arm_func 0x1000BD5C sub_1000BD5C -arm_func 0x1000BD70 sub_1000BD70 -arm_func 0x1000BD84 sub_1000BD84 -arm_func 0x1000BD98 sub_1000BD98 -arm_func 0x1000BDAC sub_1000BDAC -arm_func 0x1000BDC0 sub_1000BDC0 -arm_func 0x1000BDD4 KeypadIntr -arm_func 0x1000BDE8 GamepakIntr -arm_func 0x1000BDFC DummyFunc -arm_func 0x1000BE00 sub_1000BE00 # Extended ProcessVramGraphicsCopyQueue -arm_func 0x1000C09C GetInput -arm_func 0x1000C248 sub_1000C248 -arm_func 0x1000C390 sub_1000C390 -arm_func 0x1000C3D4 sub_1000C3D4 -arm_func 0x1000C434 sub_1000C434 -arm_func 0x1000C448 sub_1000C448 -arm_func 0x1000C45C sub_1000C45C -arm_func 0x1000C4EC sub_1000C4EC -arm_func 0x1000C4F0 sub_1000C4F0 -arm_func 0x1000C534 sub_1000C534 -arm_func 0x1000C57C sub_1000C57C -arm_func 0x1000C5C4 sub_1000C5C4 -arm_func 0x1000C760 sub_1000C760 -arm_func 0x1000C9F0 sub_1000C9F0 # SA2: sub_8002B20 -arm_func 0x1000DD04 sub_1000DD04 -arm_func 0x1000DE24 sub_1000DE24 -arm_func 0x1000E0DC sub_1000E0DC -arm_func 0x1000E3F4 sub_1000E3F4 -arm_func 0x1000E570 sub_1000E570 # SA2: sub_80039E4 -arm_func 0x1000ED2C sub_1000ED2C -arm_func 0x1000EF04 sub_1000EF04 -arm_func 0x1000EFCC sub_1000EFCC # SA2: sub_8004010 -arm_func 0x1000F31C sub_1000F31C -arm_func 0x1000F3C4 UpdateSpriteAnimation -arm_func 0x1000F67C animCmd_GetTiles -arm_func 0x1000F6F4 animCmd_GetPalette -arm_func 0x1000F7A4 animCmd_JumpBack -arm_func 0x1000F7BC animCmd_End -arm_func 0x1000F7D0 animCmd_PlaySoundEffect -arm_func 0x1000F7F4 animCmd_AddHitbox -arm_func 0x1000F8EC animCmd_TranslateSprite -arm_func 0x1000F920 animCmd_8 -arm_func 0x1000F934 animCmd_SetIdAndVariant -arm_func 0x1000F970 animCmd_10 -arm_func 0x1000F984 animCmd_SetSpritePriority -arm_func 0x1000F9B0 animCmd_SetOamOrder -arm_func 0x1000F9D0 sub_1000F9D0 -arm_func 0x1000FAEC sub_1000FAEC -arm_func 0x1000FECC sub_1000FECC -arm_func 0x10010558 sub_10010558 -arm_func 0x10010CD8 DisplaySprite -arm_func 0x1001110C sub_1001110C -arm_func 0x10011658 OamMalloc -arm_func 0x1001174C CopyOamBufferToOam - -# Task module -arm_func 0x10011A3C TasksInit -arm_func 0x10011C58 TaskGetNextSlot -arm_func 0x10011C90 TaskCreate # differs from SA1 -arm_func 0x10011E7C TasksDestroyInPriorityRange -arm_func 0x10011F80 TaskDestroy -arm_func 0x10012178 TasksExec -arm_func 0x100127E4 sub_100127E4 -arm_func 0x10012D5C sub_10012D5C -arm_func 0x10012F48 TaskMainDummy1 -arm_func 0x10012F4C TaskMainDummy2 -arm_func 0x10012F50 TaskMainDummy3 - -arm_func 0x10012F54 sub_10012F54 -arm_func 0x100130E0 sub_100130E0 -arm_func 0x10013630 sub_10013630 -arm_func 0x10013714 sub_10013714 -arm_func 0x1001380C sub_1001380C -arm_func 0x100138EC sub_100138EC -arm_func 0x10013CC4 sub_10013CC4 -arm_func 0x100140B8 sub_100140B8 -arm_func 0x100144AC sub_100144AC -arm_func 0x10014EA0 sub_10014EA0 -arm_func 0x100155C8 sub_100155C8 -arm_func 0x10015AD4 sub_10015AD4 -arm_func 0x10015BD4 sub_10015BD4 -arm_func 0x10015DB0 sub_10015DB0 -arm_func 0x10015E5C sub_10015E5C -arm_func 0x10015E90 VramMalloc -arm_func 0x10015FE0 sub_10015FE0 -arm_func 0x10016028 sub_10016028 -arm_func 0x1001602C sub_1001602C -arm_func 0x10016034 sub_10016034 -arm_func 0x1001603C sub_1001603C -arm_func 0x10016040 sub_10016040 -arm_func 0x10016044 sub_10016044 -arm_func 0x1001604C sub_1001604C -arm_func 0x10016054 sub_10016054 -arm_func 0x10016058 sub_10016058 -arm_func 0x1001605C sub_1001605C -arm_func 0x10016060 sub_10016060 -arm_func 0x10016064 sub_10016064 -arm_func 0x10016068 MultiSioMain -arm_func 0x10016070 sub_10016070 -arm_func 0x10016074 sub_10016074 -arm_func 0x1001607C sub_1001607C -arm_func 0x10016080 sub_10016080 -arm_func 0x100161D4 sub_100161D4 -arm_func 0x10016234 sub_10016234 -arm_func 0x10016388 sub_10016388 -arm_func 0x10016390 sub_10016390 -arm_func 0x10016398 sub_10016398 -arm_func 0x1001639C sub_1001639C -arm_func 0x100163A4 sub_100163A4 -arm_func 0x100163A8 sub_100163A8 -arm_func 0x100163B8 sub_100163B8 -arm_func 0x100163BC sub_100163BC -arm_func 0x100163FC sub_100163FC -arm_func 0x10016578 sub_10016578 -arm_func 0x10016610 sub_10016610 -arm_func 0x1001662C sub_1001662C -arm_func 0x10016644 sub_10016644 -arm_func 0x10016760 sub_10016760 -arm_func 0x10016858 sub_10016858 -arm_func 0x10016C2C sub_10016C2C -arm_func 0x10016DE4 sub_10016DE4 -arm_func 0x10016DE8 sub_10016DE8 -arm_func 0x10016DEC sub_10016DEC -arm_func 0x10016DF0 sub_10016DF0 -arm_func 0x10016DF8 sub_10016DF8 -arm_func 0x10016DFC sub_10016DFC -arm_func 0x10016E00 sub_10016E00 -arm_func 0x10016E24 sub_10016E24 -arm_func 0x10016E38 sub_10016E38 -arm_func 0x10016E90 sub_10016E90 -arm_func 0x10016EEC sub_10016EEC -arm_func 0x10016F00 sub_10016F00 -arm_func 0x10016F14 sub_10016F14 -arm_func 0x1001703C sub_1001703C -arm_func 0x100170B0 BigGameInitMaybe -arm_func 0x10017FD4 sub_10017FD4 -arm_func 0x1001823C sub_1001823C -arm_func 0x10018334 sub_10018334 -arm_func 0x100187D0 sub_100187D0 -arm_func 0x10018B4C sub_10018B4C -arm_func 0x10018BA8 sub_10018BA8 -arm_func 0x10018CF0 sub_10018CF0 -arm_func 0x10018D14 sub_10018D14 -arm_func 0x10018D8C sub_10018D8C -arm_func 0x10018DA0 sub_10018DA0 -arm_func 0x10019124 PlaySong # Input: R0 = ctx, R1 = songId -arm_func 0x100191A0 sub_100191A0 -arm_func 0x10019200 sub_10019200 -arm_func 0x10019268 sub_10019268 -arm_func 0x10019280 sub_10019280 -arm_func 0x100192A4 sub_100192A4 -arm_func 0x100192CC sub_100192CC -arm_func 0x100192FC sub_100192FC -arm_func 0x10019314 sub_10019314 -arm_func 0x100193A0 sub_100193A0 -arm_func 0x100193D8 sub_100193D8 -arm_func 0x10019408 sub_10019408 -arm_func 0x10019410 sub_10019410 -arm_func 0x10019424 sub_10019424 -arm_func 0x10019514 sub_10019514 -arm_func 0x10019688 sub_10019688 -arm_func 0x100196C0 sub_100196C0 -arm_func 0x100196FC sub_100196FC -arm_func 0x10019738 sub_10019738 -arm_func 0x10019774 sub_10019774 -arm_func 0x1001984C sub_1001984C -arm_func 0x10019AE4 sub_10019AE4 -arm_func 0x10019BC0 sub_10019BC0 -arm_func 0x10019C30 sub_10019C30 -arm_func 0x10019C84 sub_10019C84 -arm_func 0x10019C88 sub_10019C88 -arm_func 0x10019CAC sub_10019CAC -arm_func 0x10019E50 sub_10019E50 -arm_func 0x10019EDC sub_10019EDC -arm_func 0x10019F44 sub_10019F44 -arm_func 0x1001A038 sub_1001A038 -arm_func 0x1001A0BC sub_1001A0BC -arm_func 0x1001A128 sub_1001A128 -arm_func 0x1001A3F8 sub_1001A3F8 -arm_func 0x1001A45C sub_1001A45C -arm_func 0x1001A55C Task_1001A55C -arm_func 0x1001A774 Task_1001A774 -arm_func 0x1001A9F8 TaskDestructor_1001A9F8 -arm_func 0x1001AA70 sub_1001AA70 -arm_func 0x1001AB8C sub_1001AB8C -arm_func 0x1001AD64 sub_1001AD64 -arm_func 0x1001AE8C sub_1001AE8C -arm_func 0x1001B054 sub_1001B054 -arm_func 0x1001B174 sub_1001B174 -arm_func 0x1001B31C sub_1001B31C -arm_func 0x1001B40C sub_1001B40C -arm_func 0x1001B5B0 sub_1001B5B0 -arm_func 0x1001B71C sub_1001B71C -arm_func 0x1001B794 sub_1001B794 -arm_func 0x1001B7BC sub_1001B7BC -arm_func 0x1001B8BC sub_1001B8BC -arm_func 0x1001B950 sub_1001B950 -arm_func 0x1001BCD8 sub_1001BCD8 -arm_func 0x1001BCDC sub_1001BCDC -arm_func 0x1001BCE0 sub_1001BCE0 -arm_func 0x1001BCE4 sub_1001BCE4 -arm_func 0x1001BCE8 sub_1001BCE8 -arm_func 0x1001BCEC sub_1001BCEC -arm_func 0x1001BCF0 sub_1001BCF0 -arm_func 0x1001BCF4 sub_1001BCF4 -arm_func 0x1001BDD8 sub_1001BDD8 -arm_func 0x1001BF1C sub_1001BF1C -arm_func 0x1001C088 sub_1001C088 -arm_func 0x1001C1AC sub_1001C1AC -arm_func 0x1001C1F8 sub_1001C1F8 -arm_func 0x1001C20C sub_1001C20C -arm_func 0x1001C230 sub_1001C230 -arm_func 0x1001C378 sub_1001C378 -arm_func 0x1001C4D8 sub_1001C4D8 -arm_func 0x1001C634 sub_1001C634 -arm_func 0x1001C77C sub_1001C77C -arm_func 0x1001C8FC sub_1001C8FC -arm_func 0x1001CA5C sub_1001CA5C -arm_func 0x1001CE40 sub_1001CE40 -arm_func 0x1001D188 sub_1001D188 -arm_func 0x1001D4F8 sub_1001D4F8 -arm_func 0x1001D608 sub_1001D608 -arm_func 0x1001D660 sub_1001D660 -arm_func 0x1001D7B0 sub_1001D7B0 -arm_func 0x1001D9F0 sub_1001D9F0 -arm_func 0x1001DA28 sub_1001DA28 -arm_func 0x1001DABC sub_1001DABC -arm_func 0x1001DF28 sub_1001DF28 -arm_func 0x1001E048 sub_1001E048 -arm_func 0x1001E150 sub_1001E150 -arm_func 0x1001E33C sub_1001E33C -arm_func 0x1001E470 sub_1001E470 -arm_func 0x1001E6D8 sub_1001E6D8 -arm_func 0x1001E710 sub_1001E710 -arm_func 0x1001E844 sub_1001E844 -arm_func 0x1001EA54 sub_1001EA54 -arm_func 0x1001EB50 sub_1001EB50 -arm_func 0x1001ED4C sub_1001ED4C -arm_func 0x1001EE74 sub_1001EE74 -arm_func 0x1001EFAC sub_1001EFAC -arm_func 0x1001F088 sub_1001F088 -arm_func 0x1001F0E0 sub_1001F0E0 -arm_func 0x1001F240 sub_1001F240 -arm_func 0x1001F26C sub_1001F26C -arm_func 0x1001F280 sub_1001F280 -arm_func 0x1001F284 sub_1001F284 -arm_func 0x1001F378 sub_1001F378 -arm_func 0x1001F380 sub_1001F380 -arm_func 0x1001F384 sub_1001F384 -arm_func 0x1001F388 sub_1001F388 -arm_func 0x1001F38C sub_1001F38C -arm_func 0x1001F390 sub_1001F390 -arm_func 0x1001F394 sub_1001F394 -arm_func 0x1001F398 sub_1001F398 -arm_func 0x1001F39C sub_1001F39C -arm_func 0x1001F3A4 sub_1001F3A4 -arm_func 0x1001F3A8 sub_1001F3A8 -arm_func 0x1001F3AC sub_1001F3AC -arm_func 0x1001F3B0 sub_1001F3B0 -arm_func 0x1001F3B4 sub_1001F3B4 -arm_func 0x1001F3B8 sub_1001F3B8 -arm_func 0x1001F3BC sub_1001F3BC -arm_func 0x1001F3C0 sub_1001F3C0 -arm_func 0x1001F3C4 sub_1001F3C4 -arm_func 0x1001F3C8 sub_1001F3C8 -arm_func 0x1001F3CC sub_1001F3CC -arm_func 0x1001F3D0 sub_1001F3D0 -arm_func 0x1001F3D4 sub_1001F3D4 -arm_func 0x1001F3D8 sub_1001F3D8 -arm_func 0x1001F3DC sub_1001F3DC -arm_func 0x1001F3E0 sub_1001F3E0 -arm_func 0x1001F3E4 sub_1001F3E4 -arm_func 0x1001F3E8 sub_1001F3E8 -arm_func 0x1001F3EC sub_1001F3EC -arm_func 0x1001F3F0 sub_1001F3F0 -arm_func 0x1001F3F4 sub_1001F3F4 -arm_func 0x1001F3F8 sub_1001F3F8 -arm_func 0x1001F3FC sub_1001F3FC -arm_func 0x1001F400 sub_1001F400 -arm_func 0x1001F404 sub_1001F404 -arm_func 0x1001FEFC sub_1001FFEC -arm_func 0x1001FFCC Task_1001FFCC -arm_func 0x1001FFD0 sub_1001FFD0 -arm_func 0x1002015C sub_1002015C -arm_func 0x10020968 sub_10020968 -arm_func 0x10020D10 sub_10020D10 -arm_func 0x1002105C sub_1002105C -arm_func 0x100212D8 sub_100212D8 -arm_func 0x10021560 sub_10021560 -arm_func 0x100215CC sub_100215CC -arm_func 0x100217A4 sub_100217A4 -arm_func 0x100219BC sub_100219BC -arm_func 0x10021AD4 sub_10021AD4 -arm_func 0x10021C00 sub_10021C00 -arm_func 0x10021D64 sub_10021D64 -arm_func 0x10021F3C sub_10021F3C -arm_func 0x10021FCC sub_10021FCC -arm_func 0x1002212C sub_1002212C -arm_func 0x100222E4 sub_100222E4 -arm_func 0x100225F8 sub_100225F8 -arm_func 0x100226C4 sub_100226C4 -arm_func 0x100228F0 sub_100228F0 -arm_func 0x10022ADC sub_10022ADC -arm_func 0x10022B90 sub_10022B90 -arm_func 0x10022C7C sub_10022C7C -arm_func 0x10022F9C sub_10022F9C -arm_func 0x100232D0 sub_100232D0 -arm_func 0x100233D0 sub_100233D0 -arm_func 0x10023B54 Task_10023B54 -arm_func 0x10023D40 sub_10023D40 -arm_func 0x10023D78 sub_10023D78 -arm_func 0x1002431C sub_1002431C -arm_func 0x10024C88 sub_10024C88 -arm_func 0x100252C8 sub_100252C8 -arm_func 0x10025328 sub_10025328 -arm_func 0x100254C0 sub_100254C0 -arm_func 0x10025890 sub_10025890 -arm_func 0x10025E28 sub_10025E28 -arm_func 0x10026398 sub_10026398 -arm_func 0x1002653C sub_1002653C -arm_func 0x10026704 sub_10026704 -arm_func 0x10026BA4 sub_10026BA4 -arm_func 0x10027098 sub_10027098 -arm_func 0x100274A4 sub_100274A4 -arm_func 0x1002751C sub_1002751C -arm_func 0x1002779C sub_1002779C -arm_func 0x10027834 sub_10027834 -arm_func 0x100278F0 sub_100278F0 -arm_func 0x10027998 sub_10027998 -arm_func 0x10027A5C sub_10027A5C -arm_func 0x10027AC0 CreateDustCloud -arm_func 0x10027B98 Task_DustCloud -arm_func 0x10027C74 sub_10027C74 -arm_func 0x10027E3C sub_10027E3C -arm_func 0x10027EAC sub_10027EAC -arm_func 0x10028044 sub_10028044 -arm_func 0x10028198 sub_10028198 -arm_func 0x10028318 sub_10028318 -arm_func 0x10028368 sub_10028368 -arm_func 0x10028500 sub_10028500 -arm_func 0x1002852C sub_1002852C -arm_func 0x100287D4 sub_100287D4 -arm_func 0x100288B8 sub_100288B8 -arm_func 0x100289F4 sub_100289F4 -arm_func 0x10028A54 sub_10028A54 -arm_func 0x100294C8 sub_100294C8 -arm_func 0x100294CC sub_100294CC -arm_func 0x100298FC sub_100298FC -arm_func 0x10029BFC sub_10029BFC -arm_func 0x10029D84 sub_10029D84 -arm_func 0x10029ED0 sub_10029ED0 -arm_func 0x1002A064 sub_1002A064 -arm_func 0x1002A214 sub_1002A214 -arm_func 0x1002A518 sub_1002A518 -arm_func 0x1002A57C sub_1002A57C -arm_func 0x1002A6C4 sub_1002A6C4 -arm_func 0x1002A758 sub_1002A758 -arm_func 0x1002A844 sub_1002A844 -arm_func 0x1002ABCC sub_1002ABCC -arm_func 0x1002AC30 sub_1002AC30 -arm_func 0x1002AC58 sub_1002AC58 -arm_func 0x1002AD2C sub_1002AD2C -arm_func 0x1002ADEC sub_1002ADEC -arm_func 0x1002AF60 sub_1002AF60 -arm_func 0x1002AFA0 sub_1002AFA0 -arm_func 0x1002B074 sub_1002B074 -arm_func 0x1002B120 sub_1002B120 -arm_func 0x1002B1B0 sub_1002B1B0 -arm_func 0x1002B278 sub_1002B278 -arm_func 0x1002B3CC sub_1002B3CC -arm_func 0x1002B518 sub_1002B518 -arm_func 0x1002B59C sub_1002B59C -arm_func 0x1002B5C4 sub_1002B5C4 -arm_func 0x1002B630 sub_1002B630 -arm_func 0x1002B6F8 sub_1002B6F8 -arm_func 0x1002B890 sub_1002B890 -arm_func 0x1002B894 sub_1002B894 -arm_func 0x1002B9A0 sub_1002B9A0 - - -# Bosses -# Boss 1 -arm_func 0x1002B9A8 CreateEntity_EggHammerTank_Intro @ 021 Boss 1 Intro -arm_func 0x1002BC14 sub_1002BC14 -arm_func 0x1002BE28 sub_1002BE28 -arm_func 0x1002BF60 sub_1002BF60 -arm_func 0x1002C0B8 sub_1002C0B8 -arm_func 0x1002C24C sub_1002C24C -arm_func 0x1002C2A4 CreateEntity_EggHammerTank @ 022 Boss 1 -arm_func 0x1002C550 Task_EggHammerTankMain -arm_func 0x1002C610 sub_1002C610 -arm_func 0x1002CB14 sub_1002CB14 -arm_func 0x1002D59C sub_1002D59C -arm_func 0x1002DA1C sub_1002DA1C -arm_func 0x1002DE04 TaskDestructor_EggHammerTank -arm_func 0x1002DEB0 CreateEHTArm -arm_func 0x1002E008 Task_EHTArm -arm_func 0x1002E0C0 Task_1002E0C0 -arm_func 0x1002E270 Task_1002E270 -arm_func 0x1002E4EC TaskDestructor_EHTArm -arm_func 0x1002E524 CreateEHTHammer -arm_func 0x1002E67C Task_EHTHammerMain -arm_func 0x1002E90C sub_1002E90C -arm_func 0x1002EB48 sub_1002EB48 -arm_func 0x1002EDC8 TaskDestructor_EHTHammer - -# Boss 2 -arm_func 0x1002EE00 sub_1002EE00 -arm_func 0x1002EFB8 sub_1002EFB8 -arm_func 0x1002F0CC sub_1002F0CC -arm_func 0x1002F134 sub_1002F134 -arm_func 0x1002F1FC sub_1002F1FC -arm_func 0x1002F288 CreateEntity_EggPress @ 023 Boss 2 -arm_func 0x1002F508 Task_EggPress -arm_func 0x1002F658 sub_1002F658 -arm_func 0x1002F878 sub_1002F878 -arm_func 0x1002FA14 sub_1002FA14 -arm_func 0x1002FCBC sub_1002FCBC -arm_func 0x1002FE3C sub_1002FE3C -arm_func 0x1002FFB8 sub_1002FFB8 -arm_func 0x10030100 sub_10030100 -arm_func 0x1003039C sub_1003039C -arm_func 0x10030514 sub_10030514 -arm_func 0x100307D0 sub_100307D0 -arm_func 0x10030C10 sub_10030C10 -arm_func 0x10030FA8 TaskDestructor_EggPress - -# Boss 3 -arm_func 0x10031000 sub_10031000 -arm_func 0x100311B4 sub_100311B4 -arm_func 0x10031308 sub_10031308 -arm_func 0x1003141C sub_1003141C -arm_func 0x10031484 sub_10031484 -arm_func 0x10031508 sub_10031508 -arm_func 0x10031594 CreateEntity_EggBall @ 024 Boss 3 -arm_func 0x10031A2C Task_EggBallSetup -arm_func 0x10031B7C sub_10031B7C -arm_func 0x10031CC4 sub_10031CC4 -arm_func 0x10031F28 Task_10031F28 -arm_func 0x100321B4 sub_100321B4 -arm_func 0x100328AC sub_100328AC -arm_func 0x10032CF0 TaskDestructor_EggBallSetup -arm_func 0x10032D48 Task_10032D48 -arm_func 0x10032EF4 Task_10032EF4 -arm_func 0x10033090 Task_10033090 -arm_func 0x10033234 Task_10033234 -arm_func 0x10033488 TaskDestructor_10033488 -arm_func 0x100334C0 Task_100334C0 -arm_func 0x10033558 Task_10033558 -arm_func 0x100337A8 TaskDestructor_100337A8 - -# Boss 4 -arm_func 0x100337EC sub_100337EC -arm_func 0x10033990 sub_10033990 -arm_func 0x10033AA4 sub_10033AA4 -arm_func 0x10033B0C sub_10033B0C -arm_func 0x10033BAC sub_10033BAC -arm_func 0x10033C38 CreateEntity_EggSpider @ 025 Boss 4 -arm_func 0x10034004 Task_10034004 -arm_func 0x100342DC sub_100342DC -arm_func 0x10034EBC sub_10034EBC -arm_func 0x100352C0 TaskDestructor_100352C0 -arm_func 0x10035318 sub_10035318 -arm_func 0x100354F8 Task_100354F8 - -# Boss 5 -arm_func 0x100358A0 CreateEntity_MechaKnuckles @ 026 Boss 5 -arm_func 0x10035A18 sub_10035A18 -arm_func 0x10035A70 sub_10035A70 -arm_func 0x100365A4 sub_100365A4 -arm_func 0x10036698 sub_10036698 -arm_func 0x100367B0 sub_100367B0 -arm_func 0x100367E4 sub_100367E4 -arm_func 0x100368D0 sub_100368D0 -arm_func 0x1003691C sub_1003691C -arm_func 0x10036A34 sub_10036A34 -arm_func 0x10036A38 sub_10036A38 -arm_func 0x10036A48 sub_10036A48 -arm_func 0x10036A4C sub_10036A4C -arm_func 0x10036A68 sub_10036A68 -arm_func 0x10036A90 sub_10036A90 -arm_func 0x10036B08 sub_10036B08 -arm_func 0x10036B0C sub_10036B0C -arm_func 0x10036B54 sub_10036B54 -arm_func 0x10036B5C sub_10036B5C -arm_func 0x10036B78 sub_10036B78 -arm_func 0x10036B7C sub_10036B7C -arm_func 0x10036C38 sub_10036C38 -arm_func 0x10036C3C sub_10036C3C -arm_func 0x10036C58 sub_10036C58 -arm_func 0x10036C5C sub_10036C5C -arm_func 0x10036C90 sub_10036C90 -arm_func 0x10036C94 sub_10036C94 -arm_func 0x10036CC8 sub_10036CC8 -arm_func 0x10036CD0 sub_10036CD0 -arm_func 0x10036CF8 sub_10036CF8 -arm_func 0x10036D00 sub_10036D00 -arm_func 0x10036D1C sub_10036D1C -arm_func 0x10036D20 sub_10036D20 -arm_func 0x10036D3C sub_10036D3C -arm_func 0x10036D40 sub_10036D40 -arm_func 0x10036D74 sub_10036D74 -arm_func 0x10036D78 sub_10036D78 -arm_func 0x10036D94 sub_10036D94 -arm_func 0x10036E00 sub_10036E00 -arm_func 0x10036E34 sub_10036E34 -arm_func 0x10036E78 sub_10036E78 -arm_func 0x10036EB4 sub_10036EB4 -arm_func 0x10036EE0 sub_10036EE0 -arm_func 0x10036F34 sub_10036F34 -arm_func 0x10036FAC sub_10036FAC -arm_func 0x10037004 sub_10037004 -arm_func 0x10037008 sub_10037008 -arm_func 0x10037044 sub_10037044 -arm_func 0x10037048 sub_10037048 -arm_func 0x100370CC sub_100370CC -arm_func 0x10037154 sub_10037154 -arm_func 0x10037208 sub_10037208 -arm_func 0x10037234 sub_10037234 -arm_func 0x100372E8 sub_100372E8 -arm_func 0x10037314 sub_10037314 -arm_func 0x100373B0 sub_100373B0 -arm_func 0x1003756C sub_1003756C -arm_func 0x10037AB0 sub_10037AB0 -arm_func 0x10037B08 sub_10037B08 -arm_func 0x10037DBC sub_10037DBC -arm_func 0x10037FD0 sub_10037FD0 -arm_func 0x10038008 sub_10038008 - -arm_func 0x10038494 CreateEntity_EggSnake @ 027 Boss 6 -arm_func 0x10038710 sub_10038710 -arm_func 0x10038954 sub_10038954 -arm_func 0x1003970C sub_1003970C -arm_func 0x100399B0 sub_100399B0 -arm_func 0x10039F4C sub_10039F4C -arm_func 0x10039FA4 sub_10039FA4 -arm_func 0x1003A0F0 sub_1003A0F0 -arm_func 0x1003A1F8 sub_1003A1F8 -arm_func 0x1003A3F4 sub_1003A3F4 -arm_func 0x1003A42C sub_1003A42C -arm_func 0x1003A680 sub_1003A680 -arm_func 0x1003A8F8 sub_1003A8F8 -arm_func 0x1003AA18 sub_1003AA18 -arm_func 0x1003AA18 sub_1003AA18 -arm_func 0x1003ACB8 sub_1003ACB8 -arm_func 0x1003B838 sub_1003B838 -arm_func 0x1003B870 Task_1003B870 - -# Extra Boss -arm_func 0x1003BAEC CreateEntity_SuperEggRobot @ 031 Extra Boss -arm_func 0x1003BC04 sub_1003BC04 -arm_func 0x1003BC68 sub_1003BC68 -arm_func 0x1003D434 sub_1003D434 -arm_func 0x1003D710 sub_1003D710 -arm_func 0x1003DE74 sub_1003DE74 -arm_func 0x1003E43C sub_1003E43C -arm_func 0x1003E870 sub_1003E870 -arm_func 0x1003ECDC sub_1003ECDC -arm_func 0x1003EE98 sub_1003EE98 -arm_func 0x1003F244 sub_1003F244 -arm_func 0x1003F53C sub_1003F53C -arm_func 0x1003F834 sub_1003F834 -arm_func 0x1003F91C sub_1003F91C - -# Sonic 1 Boss -arm_func 0x100403D4 CreateEntity_EggWrecker @ 028 Boss Egg Wrecker (Green Hill) -arm_func 0x10040608 sub_10040608 -arm_func 0x100407DC sub_100407DC -arm_func 0x10040A40 sub_10040A40 -arm_func 0x100411B0 sub_100411B0 -arm_func 0x10041208 sub_10041208 -arm_func 0x10041850 Task_10041850 -arm_func 0x100419DC sub_100419DC -arm_func 0x10041B80 sub_10041B80 -arm_func 0x10041D50 sub_10041D50 -arm_func 0x10041ED0 sub_10041ED0 -arm_func 0x1004211C sub_1004211C -arm_func 0x10042280 TaskDestructor_10042280 - -# Sonic 2 Boss -arm_func 0x100422B8 sub_100422B8 -arm_func 0x1004284C CreateEntity_EggDrillster @ 029 Boss Egg Drillster (Emerald Hill) -arm_func 0x10042AAC sub_10042AAC -arm_func 0x10042C3C sub_10042C3C -arm_func 0x10042E00 sub_10042E00 -arm_func 0x100434CC sub_100434CC -arm_func 0x10043524 sub_10043524 -arm_func 0x10043994 sub_10043994 -arm_func 0x10043B14 sub_10043B14 -arm_func 0x10043DD4 Task_10043DD4 -arm_func 0x1004403C sub_1004403C -arm_func 0x100441D8 TaskDestructor_100441D8 - -arm_func 0x10044210 sub_10044210 -arm_func 0x10044264 sub_10044264 -arm_func 0x100444B4 sub_100444B4 -arm_func 0x10044608 sub_10044608 -arm_func 0x10044758 sub_10044758 -arm_func 0x100448AC sub_100448AC -arm_func 0x10044AAC sub_10044AAC -arm_func 0x10044B5C sub_10044B5C -arm_func 0x10044BC4 sub_10044BC4 -arm_func 0x10044C48 sub_10044C48 -arm_func 0x10044CD4 sub_10044CD4 -arm_func 0x10044E00 CreateEntity_EggX @ 030 Final Boss -arm_func 0x100450E0 sub_100450E0 -arm_func 0x10045318 sub_10045318 -arm_func 0x100455AC sub_100455AC - -arm_func 0x100466A0 sub_100466A0 -arm_func 0x100466F8 sub_100466F8 -arm_func 0x10046A5C sub_10046A5C - -arm_func 0x1004714C sub_1004714C -arm_func 0x10047654 sub_10047654 -arm_func 0x10047720 sub_10047720 -arm_func 0x10047848 sub_10047848 -arm_func 0x10047970 sub_10047970 -arm_func 0x10047AEC sub_10047AEC -arm_func 0x10047C98 sub_10047C98 -arm_func 0x10047D58 sub_10047D58 -arm_func 0x10047E08 sub_10047E08 -arm_func 0x10047E90 sub_10047E90 -arm_func 0x10047F8C sub_10047F8C -arm_func 0x10048410 sub_10048410 -arm_func 0x10048468 sub_10048468 -arm_func 0x10048660 sub_10048660 -arm_func 0x1004886C sub_1004886C -arm_func 0x10048A10 sub_10048A10 -arm_func 0x10049824 sub_10049824 -arm_func 0x10049B14 sub_10049B14 -arm_func 0x10049CA4 sub_10049CA4 -arm_func 0x10049CDC sub_10049CDC - -# Enemies -arm_func 0x10049D14 CreateEntity_Drisame @ 018 Drisame -arm_func 0x10049E90 sub_10049E90 -arm_func 0x1004A384 sub_1004A384 -arm_func 0x1004A580 sub_1004A580 -arm_func 0x1004A8DC sub_1004A8DC -arm_func 0x1004AAB8 sub_1004AAB8 -arm_func 0x1004ACE4 sub_1004ACE4 -arm_func 0x1004AD48 CreateEntity_GamiGami @ 002 GamiGami -arm_func 0x1004AEE0 sub_1004AEE0 -arm_func 0x1004B214 sub_1004B214 -arm_func 0x1004B660 sub_1004B660 -arm_func 0x1004B7B8 CreateEntity_Hanabii @ 008 Hanabii -arm_func 0x1004B90C sub_1004B90C -arm_func 0x1004BC98 sub_1004BC98 -arm_func 0x1004C0A0 sub_1004C0A0 -arm_func 0x1004C244 sub_1004C244 -arm_func 0x1004C3F8 sub_1004C3F8 -arm_func 0x1004C430 CreateEntity_Oct @ 014 Oct -arm_func 0x1004C584 Task_OctMain -arm_func 0x1004C7D4 sub_1004C7D4 -arm_func 0x1004CAE8 sub_1004CAE8 -arm_func 0x1004CE3C sub_1004CE3C -arm_func 0x1004D1CC sub_1004D1CC -arm_func 0x1004D314 CreateEntity_Fireball @ 007 Fireball -arm_func 0x1004D3B4 Task_FireballMain -arm_func 0x1004D684 sub_1004D684 -arm_func 0x1004D914 sub_1004D914 -arm_func 0x1004DB60 sub_1004DB60 -arm_func 0x1004DCBC sub_1004DCBC -arm_func 0x1004DE2C CreateEntity_KeroKero @ 004 KeroKero -arm_func 0x1004DF90 sub_1004DF90 -arm_func 0x1004E3B8 sub_1004E3B8 -arm_func 0x1004E670 sub_1004E670 -arm_func 0x1004E9E4 CreateEntity_Kiki @ 000 Kiki -arm_func 0x1004EB34 sub_1004EB34 -arm_func 0x1004ED60 sub_1004ED60 -arm_func 0x1004F12C sub_1004F12C -arm_func 0x1004F390 sub_1004F390 -arm_func 0x1004F4CC sub_1004F4CC -arm_func 0x1004F608 sub_1004F608 -arm_func 0x1004F7F4 sub_1004F7F4 -arm_func 0x1004F82C CreateEntity_Kuraa @ 019 Kuraa -arm_func 0x1004F980 sub_1004F980 -arm_func 0x1004FC34 sub_1004FC34 -arm_func 0x1004FF88 CreateEntity_Mirror @ 012 Mirror -arm_func 0x10050104 sub_10050104 -arm_func 0x100504C8 sub_100504C8 -arm_func 0x1005086C sub_1005086C -arm_func 0x100509AC CreateEntity_Mole @ 015 Mole -arm_func 0x10050B20 sub_10050B20 -arm_func 0x10050CD8 sub_10050CD8 -arm_func 0x10050EAC sub_10050EAC -arm_func 0x10050FD4 CreateEntity_PenMk1 @ 020 Pen -arm_func 0x10051158 sub_10051158 -arm_func 0x100514B8 sub_100514B8 -arm_func 0x1005197C sub_1005197C -arm_func 0x10051ECC sub_10051ECC -arm_func 0x10052024 CreateEntity_Pierrot @ 010 Pierrot -arm_func 0x10052170 Task_Pierrot -arm_func 0x100526B0 CreateEntity_Leon @ 011 Leon -arm_func 0x10052830 sub_10052830 -arm_func 0x10052C44 sub_10052C44 -arm_func 0x10052EBC sub_10052EBC -arm_func 0x10053260 CreateEntity_Rhinotank @ 003 Rhinotank -arm_func 0x100533B8 sub_100533B8 -arm_func 0x10053850 sub_10053850 -arm_func 0x10053C24 sub_10053C24 -arm_func 0x10053E98 CreateEntity_Senbon @ 005 Senbon -arm_func 0x1005401C sub_1005401C -arm_func 0x10054340 sub_10054340 -arm_func 0x10054684 CreateEntity_Buzzer @ 001 Buzzer -arm_func 0x10054840 sub_10054840 -arm_func 0x10054C0C sub_10054C0C -arm_func 0x10054E8C sub_10054E8C -arm_func 0x10055254 sub_10055254 -arm_func 0x100553B0 CreateEntity_Slot @ 009 Slot -arm_func 0x10055538 sub_10055538 -arm_func 0x1005588C sub_1005588C -arm_func 0x10055BE0 sub_10055BE0 -arm_func 0x10055F78 sub_10055F78 -arm_func 0x10056290 CreateEntity_Tentou @ 006 Tentou -arm_func 0x1005647C sub_1005647C -arm_func 0x10056860 sub_10056860 -arm_func 0x10056BEC sub_10056BEC -arm_func 0x1005715C sub_1005715C -arm_func 0x100572B4 sub_100572B4 -arm_func 0x100572EC CreateEntity_Wamu @ 013 Wamu -arm_func 0x100575DC sub_100575DC -arm_func 0x1005827C sub_1005827C -arm_func 0x100582E0 CreateEntity_Yukimaru_Wall @ 017 Yukimaru on a wall -arm_func 0x10058550 sub_10058550 -arm_func 0x100588E8 sub_100588E8 -arm_func 0x10058BC8 sub_10058BC8 -arm_func 0x10058F60 sub_10058F60 -arm_func 0x10059368 sub_10059368 -arm_func 0x100594B8 sub_100594B8 -arm_func 0x10059510 CreateEntity_Yukimaru @ 016 Yukimaru - -arm_func 0x10059748 sub_10059748 -arm_func 0x10059AE0 sub_10059AE0 -arm_func 0x10059F20 sub_10059F20 -arm_func 0x1005A080 sub_1005A080 -arm_func 0x1005A0D8 sub_1005A0D8 -arm_func 0x1005AAA0 sub_1005AAA0 -arm_func 0x1005AB44 sub_1005AB44 -arm_func 0x1005ABD8 sub_1005ABD8 -arm_func 0x1005ABDC sub_1005ABDC -arm_func 0x1005ADA8 sub_1005ADA8 -arm_func 0x1005AF30 sub_1005AF30 -arm_func 0x1005B1F4 sub_1005B1F4 -arm_func 0x1005B334 sub_1005B334 -arm_func 0x1005B474 sub_1005B474 -arm_func 0x1005B888 sub_1005B888 -arm_func 0x1005BA94 sub_1005BA94 -arm_func 0x1005BBC4 sub_1005BBC4 -arm_func 0x1005BC34 sub_1005BC34 -arm_func 0x1005BC5C sub_1005BC5C -arm_func 0x1005BD0C sub_1005BD0C -arm_func 0x1005BDC0 sub_1005BDC0 -arm_func 0x1005BE7C sub_1005BE7C -arm_func 0x1005BF3C sub_1005BF3C -arm_func 0x1005C0CC sub_1005C0CC -arm_func 0x1005C0D0 sub_1005C0D0 -arm_func 0x1005C20C sub_1005C20C -arm_func 0x1005C210 sub_1005C210 -arm_func 0x1005C45C sub_1005C45C -arm_func 0x1005C460 sub_1005C460 -arm_func 0x1005C524 sub_1005C524 -arm_func 0x1005C528 sub_1005C528 -arm_func 0x1005C60C sub_1005C60C -arm_func 0x1005C6D0 sub_1005C6D0 -arm_func 0x1005C760 sub_1005C760 -arm_func 0x1005C82C sub_1005C82C -arm_func 0x1005C8D8 sub_1005C8D8 -arm_func 0x1005CAF0 sub_1005CAF0 -arm_func 0x1005CBB0 sub_1005CBB0 -arm_func 0x1005CCD0 sub_1005CCD0 -arm_func 0x1005CE74 sub_1005CE74 -arm_func 0x1005CFB4 sub_1005CFB4 -arm_func 0x1005D110 sub_1005D110 -arm_func 0x1005D25C sub_1005D25C -arm_func 0x1005D410 sub_1005D410 -arm_func 0x1005D5B0 sub_1005D5B0 -arm_func 0x1005D734 sub_1005D734 -arm_func 0x1005D748 sub_1005D748 -arm_func 0x1005D7E4 sub_1005D7E4 -arm_func 0x1005D940 sub_1005D940 -arm_func 0x1005DA54 sub_1005DA54 -arm_func 0x1005DA6C sub_1005DA6C -arm_func 0x1005DB7C sub_1005DB7C -arm_func 0x1005E088 sub_1005E088 -arm_func 0x1005E26C sub_1005E26C -arm_func 0x1005E2B8 sub_1005E2B8 -arm_func 0x1005E36C sub_1005E36C -arm_func 0x1005F21C sub_1005F21C -arm_func 0x1005F64C sub_1005F64C -arm_func 0x1005F8D0 sub_1005F8D0 -arm_func 0x1005FB60 sub_1005FB60 - -arm_func 0x1006028C sub_1006028C -arm_func 0x10060410 sub_10060410 -arm_func 0x10060590 sub_10060590 -arm_func 0x10060770 sub_10060770 -arm_func 0x10060948 sub_10060948 -arm_func 0x100609FC sub_100609FC -arm_func 0x10060ABC sub_10060ABC -arm_func 0x10060E80 sub_10060E80 -arm_func 0x10061114 sub_10061114 -arm_func 0x1006132C sub_1006132C -arm_func 0x1006160C sub_1006160C -arm_func 0x100616C8 sub_100616C8 -arm_func 0x10061E18 sub_10061E18 -arm_func 0x10061E1C sub_10061E1C -arm_func 0x10061FE8 sub_10061FE8 -arm_func 0x100620C8 sub_100620C8 -arm_func 0x100624EC sub_100624EC -arm_func 0x1006272C sub_1006272C -arm_func 0x10062748 sub_10062748 -arm_func 0x10062764 sub_10062764 -arm_func 0x10062790 sub_10062790 -arm_func 0x100627A4 sub_100627A4 -arm_func 0x10062F74 sub_10062F74 -arm_func 0x10063768 sub_10063768 -arm_func 0x10064100 sub_10064100 - - -arm_func 0x100650B4 sub_100650B4 -arm_func 0x10065188 sub_10065188 -arm_func 0x100652C4 sub_100652C4 -arm_func 0x10065380 sub_10065380 -arm_func 0x10065534 sub_10065534 -arm_func 0x100656D8 sub_100656D8 -arm_func 0x10065814 sub_10065814 -arm_func 0x100662C0 sub_100662C0 -arm_func 0x10066420 sub_10066420 -arm_func 0x10066424 sub_10066424 -arm_func 0x10066438 sub_10066438 -arm_func 0x10066500 sub_10066500 -arm_func 0x10066C98 sub_10066C98 -arm_func 0x10066CFC sub_10066CFC -arm_func 0x10067238 sub_10067238 -arm_func 0x1006755C sub_1006755C -arm_func 0x100675BC sub_100675BC -arm_func 0x10067680 sub_10067680 -arm_func 0x100676FC sub_100676FC -arm_func 0x10067778 sub_10067778 -arm_func 0x100678C0 sub_100678C0 -arm_func 0x10067A08 sub_10067A08 -arm_func 0x10067A84 sub_10067A84 -arm_func 0x10067AFC sub_10067AFC -arm_func 0x10067B3C sub_10067B3C -arm_func 0x10067B7C sub_10067B7C -arm_func 0x10067D90 sub_10067D90 -arm_func 0x10067E94 sub_10067E94 -arm_func 0x10067E9C sub_10067E9C -arm_func 0x10067EA4 sub_10067EA4 -arm_func 0x10067F34 sub_10067F34 -arm_func 0x10067FB0 sub_10067FB0 -arm_func 0x100680DC sub_100680DC -arm_func 0x100681E0 sub_100681E0 -arm_func 0x10068270 sub_10068270 -arm_func 0x100682C8 sub_100682C8 -arm_func 0x10068A08 sub_10068A08 -arm_func 0x10068AEC sub_10068AEC -arm_func 0x10068BF0 sub_10068BF0 -arm_func 0x10068D20 sub_10068D20 -arm_func 0x10068F40 sub_10068F40 -arm_func 0x100691CC sub_100691CC -arm_func 0x100693F4 sub_100693F4 -arm_func 0x10069668 sub_10069668 -arm_func 0x100696FC sub_100696FC -arm_func 0x100697A8 sub_100697A8 -arm_func 0x10069854 sub_10069854 -arm_func 0x1006990C sub_1006990C -arm_func 0x100699CC sub_100699CC -arm_func 0x10069A60 sub_10069A60 -arm_func 0x10069B30 sub_10069B30 -arm_func 0x10069B44 sub_10069B44 -arm_func 0x10069BA8 sub_10069BA8 -arm_func 0x10069C20 sub_10069C20 -arm_func 0x10069D10 sub_10069D10 -arm_func 0x10069D6C sub_10069D6C -arm_func 0x10069DF0 sub_10069DF0 -arm_func 0x1006A1B8 sub_1006A1B8 -arm_func 0x1006A454 sub_1006A454 -arm_func 0x1006A468 sub_1006A468 -arm_func 0x1006A5C8 sub_1006A5C8 -arm_func 0x1006A64C sub_1006A64C - -# Only function referencing table of CreateEntity_ funcs -arm_func 0x1006A838 sub_1006A838 - -# Only function referencing table of Enemy creation funcs -arm_func 0x1006A978 sub_1006A978 - -arm_func 0x1006AAB8 sub_1006AAB8 -arm_func 0x1006B0E0 sub_1006B0E0 -arm_func 0x1006BEB4 sub_1006BEB4 - -# Used by multiple IAs: IceBlock, Decoration, Checkpoint, StageGoal, ... -# and many Enemies. -arm_func 0x1006BF2C TaskDestructor_EntitiesCommon -arm_func 0x1006BF64 sub_1006BF64 - - -# Interactables -arm_func 0x1006c064 CreateEntity_CraneClaw @ 080 -arm_func 0x1006C230 sub_1006C230 -arm_func 0x1006C5AC sub_1006C5AC -arm_func 0x1006C8F0 sub_1006C8F0 -arm_func 0x1006CC7C sub_1006CC7C -arm_func 0x1006CFB4 sub_1006CFB4 -arm_func 0x1006D1CC sub_1006D1CC -arm_func 0x1006D440 sub_1006D440 -arm_func 0x1006D738 sub_1006D738 -arm_func 0x1006D9E0 CreateEntity_Lift @ 088 -arm_func 0x1006DB60 sub_1006DB60 -arm_func 0x1006DEBC sub_1006DEBC -arm_func 0x1006E24C sub_1006E24C -arm_func 0x1006E58C sub_1006E58C -arm_func 0x1006E89C sub_1006E89C -arm_func 0x1006E900 sub_1006E900 -arm_func 0x1006e958 CreateEntity_BumperRound_LinearMov @ 049 -arm_func 0x1006EB3C sub_1006EB3C -arm_func 0x1006EE1C sub_1006EE1C -arm_func 0x1006f3f4 CreateEntity_Spring_Normal_Up @ 008 -arm_func 0x1006F58C sub_1006F58C -arm_func 0x1006F6F0 sub_1006F6F0 -arm_func 0x1006f87c CreateEntity_Spring_Normal_Down @ 009 -arm_func 0x1006F9B8 sub_1006F9B8 -arm_func 0x1006FB1C sub_1006FB1C -arm_func 0x1006fca8 CreateEntity_Spring_Horizontal @ 010 - Left -arm_func 0x1006fca8 CreateEntity_Spring_Horizontal @ 011 - Right -arm_func 0x1006FE24 sub_1006FE24 -arm_func 0x1006FF50 sub_1006FF50 -arm_func 0x100700a8 CreateEntity_Spring_Big_Up @ 012 - Up-Left -arm_func 0x100700a8 CreateEntity_Spring_Big_Up @ 013 - Up-Right -arm_func 0x10070224 sub_10070224 -arm_func 0x10070350 sub_10070350 -arm_func 0x100704a8 CreateEntity_Spring_Small_Up @ 014 - Up-Left -arm_func 0x100704a8 CreateEntity_Spring_Small_Up @ 015 - Up-Right -arm_func 0x100705F8 sub_100705F8 -arm_func 0x10070724 sub_10070724 -arm_func 0x1007087C sub_1007087C -arm_func 0x100708B4 sub_100708B4 -arm_func 0x10070B84 sub_10070B84 -arm_func 0x10070CC0 sub_10070CC0 -arm_func 0x10070F80 sub_10070F80 -arm_func 0x100719ec CreateEntity_MovingSpring @ 081 Moving Spring -arm_func 0x10071C3C sub_10071C3C -arm_func 0x10071F28 sub_10071F28 -arm_func 0x10072294 sub_10072294 -arm_func 0x100727d0 CreateEntity_HalfPipeStart @ 028 -arm_func 0x100728b8 CreateEntity_HalfPipeEnd @ 029 -arm_func 0x100729A0 sub_100729A0 -arm_func 0x10072C20 sub_10072C20 -arm_func 0x100730c4 CreateEntity_WallBumper @ 071 -arm_func 0x1007316C sub_1007316C -arm_func 0x10073428 CreateEntity_BumperTriHorizontal @ 051 -arm_func 0x1007357c CreateEntity_BumperTriVertical @ 052 -arm_func 0x100736d8 CreateEntity_BumperTriBig @ 053 -arm_func 0x10073848 sub_10073848 -arm_func 0x10073A48 sub_10073A48 -arm_func 0x10073CF0 sub_10073CF0 -arm_func 0x10073EF0 sub_10073EF0 -arm_func 0x100741A0 sub_100741A0 -arm_func 0x10074390 sub_10074390 -arm_func 0x10075174 CreateEntity_PartyBalloon @ 059 -arm_func 0x100752FC sub_100752FC -arm_func 0x1007561C sub_1007561C -arm_func 0x1007575C sub_1007575C -arm_func 0x10075794 CreateEntity_ConveyorBelt @ 069 Also used for snow in Ice Paradise -arm_func 0x10075874 sub_10075874 -arm_func 0x10075B8C sub_10075B8C -arm_func 0x10075d7c CreateEntity_Interactable099 @ 099 -arm_func 0x10075FE4 sub_10075FE4 -arm_func 0x10076170 sub_10076170 -arm_func 0x100761a8 CreateEntity_PlatformCrumbling @ 024 -arm_func 0x10076328 sub_10076328 -arm_func 0x100765C0 sub_100765C0 -arm_func 0x100768A4 sub_100768A4 -arm_func 0x10076C58 sub_10076C58 -arm_func 0x10076F4C sub_10076F4C -arm_func 0x10076f84 CreateEntity_AirBubbles @ 094 -arm_func 0x100770C8 sub_100770C8 -arm_func 0x10077414 sub_10077414 -arm_func 0x10077774 sub_10077774 -arm_func 0x10077A70 sub_10077A70 -arm_func 0x10077C18 sub_10077C18 -arm_func 0x10077C50 sub_10077C50 -arm_func 0x10077c94 CreateEntity_Lava @ 105 -arm_func 0x10077F38 sub_10077F38 -arm_func 0x100782ec CreateEntity_Booster @ 031 -arm_func 0x10078438 CreateEntity_Booster_SlightLeft @ 032 -arm_func 0x10078588 CreateEntity_Booster_SlightRight @ 033 -arm_func 0x100786d8 CreateEntity_Booster_Wall @ 047 -arm_func 0x10078818 CreateEntity_Booster_Steep @ 100 -arm_func 0x10078964 CreateEntity_Booster_Steep2 @ 101 -arm_func 0x10078AB0 sub_10078AB0 -arm_func 0x10078E90 sub_10078E90 -arm_func 0x10078ec8 CreateEntity_Platform_Square @ 055 -arm_func 0x1007920C sub_1007920C -arm_func 0x1007a148 CreateEntity_BarrelOfDoomMini @ 057 -arm_func 0x1007aa44 CreateEntity_SEGA_SONIC_Letter @ 058 -arm_func 0x1007A294 sub_1007A294 -arm_func 0x1007A7CC sub_1007A7CC -arm_func 0x1007A804 sub_1007A804 -arm_func 0x1007ABE4 sub_1007ABE4 -arm_func 0x1007AF44 sub_1007AF44 -arm_func 0x1007af7c CreateEntity_PanelGate_Vertical @ 063 -arm_func 0x1007B0C4 sub_1007B0C4 -arm_func 0x1007B274 sub_1007B274 -arm_func 0x1007b548 CreateEntity_PanelGate_Horizontal @ 064 -arm_func 0x1007B69C sub_1007B69C -arm_func 0x1007B84C sub_1007B84C -arm_func 0x1007BB24 sub_1007BB24 -arm_func 0x1007BB5C sub_1007BB5C -arm_func 0x1007bf4c CreateEntity_Interactable085 @ 085 -arm_func 0x1007C180 sub_1007C180 -arm_func 0x1007c630 CreateEntity_Interactable089 @ 089 -arm_func 0x1007C804 sub_1007C804 -arm_func 0x1007CB50 sub_1007CB50 -arm_func 0x1007cb88 CreateEntity_Interactable034 @ 034 -arm_func 0x1007CC70 sub_1007CC70 -arm_func 0x1007ce74 CreateEntity_MiniLoop_Base @ 035 -arm_func 0x1007CF5C sub_1007CF5C -arm_func 0x1007d128 CreateEntity_Interactable039 @ 039 -arm_func 0x1007D210 sub_1007D210 -arm_func 0x1007d3a4 CreateEntity_MarbleTrack_Unk @ 066 -arm_func 0x1007D488 sub_1007D488 -arm_func 0x1007d9f8 CreateEntity_SpikedBarrel_ChaoHunt @ 103 -arm_func 0x1007DB28 sub_1007DB28 -arm_func 0x1007DC50 sub_1007DC50 -arm_func 0x1007dc88 CreateEntity_UnderwaterLavaPlatform @ 098 -arm_func 0x1007DDFC sub_1007DDFC -arm_func 0x1007E180 sub_1007E180 -arm_func 0x1007E69C sub_1007E69C -arm_func 0x1007e6f4 CreateEntity_Flipper @ 054 -arm_func 0x1007E84C sub_1007E84C -arm_func 0x1007F304 sub_1007F304 -arm_func 0x1007f478 CreateEntity_Flipper_Vertical @ 056 -arm_func 0x1007F5B8 sub_1007F5B8 -arm_func 0x1007F99C sub_1007F99C -arm_func 0x1007FB14 sub_1007FB14 -arm_func 0x1007fb4c CreateEntity_WaterBridge @ 040 -arm_func 0x1007FCA0 sub_1007FCA0 -arm_func 0x10080074 sub_10080074 -arm_func 0x100800ac CreateEntity_WaterBridgeSplash @ 043 -arm_func 0x100801C0 sub_100801C0 -arm_func 0x100802F0 sub_100802F0 -arm_func 0x10080328 CreateEntity_Carousel @ 074 -arm_func 0x100804E4 sub_100804E4 -arm_func 0x1008099C sub_1008099C -arm_func 0x10081344 sub_10081344 -arm_func 0x100815BC sub_100815BC -arm_func 0x10081614 CreateEntity_SmallFallBlock @ 104 (X-Zone) -arm_func 0x1008175C sub_1008175C -arm_func 0x10081AD4 sub_10081AD4 -arm_func 0x10081E8C sub_10081E8C -arm_func 0x1008220C sub_1008220C -arm_func 0x10082244 CreateEntity_SwingingHook @ 076 -arm_func 0x1008263C sub_1008263C -arm_func 0x10083194 sub_10083194 -arm_func 0x100831f8 CreateEntity_Interactable109 @ 109 -arm_func 0x100832E4 sub_100832E4 -arm_func 0x10083688 CreateEntity_GrindRail_Start @ 019 -arm_func 0x100837B4 sub_100837B4 -arm_func 0x10083ae8 CreateEntity_GrindRail_End @ 020 -arm_func 0x10083C14 Task_GrindRail_End -arm_func 0x10083FEC sub_10083FEC -arm_func 0x1008405C sub_1008405C -arm_func 0x100840ec CreateEntity_Spikes_Up @ 001 -arm_func 0x10084224 CreateEntity_Spikes_Down @ 002 -arm_func 0x10084358 Task_Spikes_Up -arm_func 0x100845E0 sub_100845E0 -arm_func 0x10084868 CreateEntity_Spikes_Horizontal @ 003 - Left -arm_func 0x10084868 CreateEntity_Spikes_Horizontal @ 004 - Right -arm_func 0x100849EC sub_100849EC -arm_func 0x10084dbc CreateEntity_Spikes_HidingUp @ 005 -arm_func 0x10084EE8 sub_10084EE8 -arm_func 0x10085098 CreateEntity_Spikes_HidingDown @ 006 -arm_func 0x100851C4 sub_100851C4 -arm_func 0x10085374 sub_10085374 -arm_func 0x100853AC sub_100853AC -arm_func 0x10085674 sub_10085674 -arm_func 0x10085A38 sub_10085A38 -arm_func 0x10085dd8 CreateEntity_Platform_Spiked @ 061 -arm_func 0x10086038 sub_10086038 -arm_func 0x10086A60 sub_10086A60 -arm_func 0x10086cbc CreateEntity_BumperHexagon @ 048 -arm_func 0x10086E58 sub_10086E58 -arm_func 0x100870CC sub_100870CC -arm_func 0x1008736C sub_1008736C -arm_func 0x100873A4 sub_100873A4 -arm_func 0x10087630 CreateEntity_InclineRamp @ 026 -arm_func 0x10087798 sub_10087798 -arm_func 0x10087be0 CreateEntity_IceBlock @ 095 -arm_func 0x10087D14 sub_10087D14 -arm_func 0x1008839C sub_1008839C -arm_func 0x100887E4 sub_100887E4 -arm_func 0x1008883C sub_1008883C -arm_func 0x10088ccc CreateEntity_IronBall @ 082 -arm_func 0x10088ED8 sub_10088ED8 -arm_func 0x10089230 sub_10089230 -arm_func 0x10089268 CreateEntity_HangBar @ 083 -arm_func 0x10089310 sub_10089310 -arm_func 0x100898bc CreateEntity_BounceBlock @ 025 -arm_func 0x10089A2C sub_10089A2C -arm_func 0x10089B98 sub_10089B98 -arm_func 0x10089D88 sub_10089D88 -arm_func 0x10089DC0 sub_10089DC0 -arm_func 0x10089f4c CreateEntity_Decoration @ 016 -arm_func 0x1008A080 sub_1008A080 -arm_func 0x1008A514 sub_1008A514 -arm_func 0x1008A764 sub_1008A764 -arm_func 0x1008ABAC sub_1008ABAC -arm_func 0x1008ac04 CreateEntity_HookRail @ 075 Hook-Rail -arm_func 0x1008ADF0 Task_HookRail -arm_func 0x1008B0F0 sub_1008B0F0 -arm_func 0x1008B610 sub_1008B610 -arm_func 0x1008B910 sub_1008B910 -arm_func 0x1008BF54 sub_1008BF54 -arm_func 0x1008C0B4 sub_1008C0B4 -arm_func 0x1008C210 sub_1008C210 -arm_func 0x1008C500 sub_1008C500 -arm_func 0x1008C9D4 sub_1008C9D4 -arm_func 0x1008CB34 TaskDestructor_HookRail -arm_func 0x1008cb6c CreateEntity_Shrubbery @ 030 -arm_func 0x1008CC38 sub_1008CC38 -arm_func 0x1008CED4 sub_1008CED4 -arm_func 0x1008CFF0 sub_1008CFF0 -arm_func 0x1008D104 sub_1008D104 -arm_func 0x1008d13c CreateEntity_Checkpoint @ 007 -arm_func 0x1008D2CC sub_1008D2CC -arm_func 0x1008D658 sub_1008D658 -arm_func 0x1008D7D0 sub_1008D7D0 -arm_func 0x1008d910 CreateEntity_MiniLoop_StartBoost @ 036 -arm_func 0x1008d9f8 CreateEntity_MiniLoop_Exit @ 037 -arm_func 0x1008DAE0 sub_1008DAE0 -arm_func 0x1008DC64 sub_1008DC64 -arm_func 0x1008ddf8 CreateEntity_MarbleTrack_Dir @ 065 -arm_func 0x1008DF0C sub_1008DF0C -arm_func 0x1008e4a4 CreateEntity_SwingRope @ 078 -arm_func 0x1008E57C Task_SwingRope -arm_func 0x1008ec80 CreateEntity_Interactable113 @ 113 -arm_func 0x1008ED28 sub_1008ED28 -arm_func 0x1008efa8 CreateEntity_StageGoal @ 000 -arm_func 0x1008F12C sub_1008F12C -arm_func 0x1008F824 sub_1008F824 -arm_func 0x1008F8AC sub_1008F8AC -arm_func 0x1008FE74 sub_1008FE74 -arm_func 0x1008FF70 sub_1008FF70 -arm_func 0x1009044C sub_1009044C -arm_func 0x10090508 sub_10090508 -arm_func 0x100905f0 CreateEntity_Track @ 106 -arm_func 0x100906F4 Task_Track -arm_func 0x10090c90 CreateEntity_TrackAirCorner @ 112 -arm_func 0x10090DF4 sub_10090DF4 -arm_func 0x10090fb8 CreateEntity_PipeEntrance @ 110 -arm_func 0x10091358 sub_10091358 -arm_func 0x10091744 sub_10091744 -arm_func 0x10091974 sub_10091974 -arm_func 0x10091CC4 sub_10091CC4 -arm_func 0x10091d08 CreateEntity_PipeExit @ 111 -arm_func 0x10092074 sub_10092074 -arm_func 0x10092324 sub_10092324 -arm_func 0x100925CC sub_100925CC -arm_func 0x100927F4 sub_100927F4 -arm_func 0x10092838 CreateEntity_RedFlag @ 042 -arm_func 0x10092998 sub_10092998 -arm_func 0x10092B60 sub_10092B60 -arm_func 0x10092E0C sub_10092E0C -arm_func 0x10092f74 CreateEntity_WallPole_Left @ 044 -arm_func 0x1009310c CreateEntity_WallPole_Right @ 045 -arm_func 0x100932A4 sub_100932A4 -arm_func 0x10093420 sub_10093420 -arm_func 0x100936AC sub_100936AC -arm_func 0x10093854 sub_10093854 -arm_func 0x1009388C sub_1009388C -arm_func 0x100939F8 sub_100939F8 -arm_func 0x10093B5C sub_10093B5C -arm_func 0x10093d14 CreateEntity_MarbleTrack_Entrance @ 067 -arm_func 0x10093E74 sub_10093E74 -arm_func 0x100944C8 sub_100944C8 -arm_func 0x10094500 CreateEntity_Flipper_SmallBlue @ 073 -arm_func 0x100946D0 sub_100946D0 -arm_func 0x10094C44 sub_10094C44 -arm_func 0x10094c7c CreateEntity_MarbleTrack_Exit @ 068 -arm_func 0x10094DE0 sub_10094DE0 -arm_func 0x1009537C sub_1009537C -arm_func 0x100953b4 CreateEntity_MiniLoop_Entrance @ 038 -arm_func 0x1009549C sub_1009549C -arm_func 0x10095634 CreateEntity_Toggle_PlayerLayer @ 017 -arm_func 0x10095634 CreateEntity_Toggle_PlayerLayer @ 018 -arm_func 0x10095760 sub_10095760 -arm_func 0x10095a18 CreateEntity_RunWheel @ 086 -arm_func 0x10095B80 sub_10095B80 -arm_func 0x10095E60 sub_10095E60 -arm_func 0x10096180 sub_10096180 -arm_func 0x100967D8 sub_100967D8 -arm_func 0x10096810 CreateEntity_BumperRound_CircularMov@ 050 -arm_func 0x100969AC sub_100969AC -arm_func 0x10096D00 sub_10096D00 -arm_func 0x100970A8 sub_100970A8 -arm_func 0x10097358 CreateEntity_FerrisWheel @ 091 -arm_func 0x100975E0 Task_FerrisWheel -arm_func 0x10097C70 TaskDestructor_FerrisWheel -arm_func 0x10097ca8 CreateEntity_Toggle_PlayerVisibility@ 070 (data[0]: 0 = Visible, 1 = Invisible) -arm_func 0x10097D54 Task_Toggle_PlayerVisibility -arm_func 0x10097f64 CreateEntity_SecurityGate @ 077 -arm_func 0x100980A8 sub_100980A8 -arm_func 0x10098308 sub_10098308 -arm_func 0x100984EC sub_100984EC -arm_func 0x1009873C sub_1009873C -arm_func 0x10098774 CreateEntity_PlatformThin @ 021 -arm_func 0x1009899C sub_1009899C -arm_func 0x10098e98 CreateEntity_PlatformThin_Falling @ 022 -arm_func 0x1009903C Task_PlatformThin_Falling -arm_func 0x10099390 sub_10099390 -arm_func 0x10099734 sub_10099734 -arm_func 0x10099B00 sub_10099B00 -arm_func 0x10099b38 CreateEntity_ShipSwing @ 060 -arm_func 0x10099D68 Task_ShipSwing -arm_func 0x1009A3C0 sub_1009A3C0 -arm_func 0x1009a424 CreateEntity_SpecialSpring @ 102 -arm_func 0x1009A580 Task_SpecialSpring -arm_func 0x1009A95C Task_1009A95C -arm_func 0x1009ACF4 sub_1009ACF4 -arm_func 0x1009ad2c CreateEntity_Interactable096 @ 096 -arm_func 0x1009ADD4 Task_Interactable096 -arm_func 0x1009aff8 CreateEntity_Interactable107 @ 107 -arm_func 0x1009B0DC sub_1009B0DC -arm_func 0x1009b664 CreateEntity_SteamExhaust @ 079 -arm_func 0x1009B7D8 sub_1009B7D8 -arm_func 0x1009BBDC sub_1009BBDC -arm_func 0x1009C0B4 sub_1009C0B4 -arm_func 0x1009c10c CreateEntity_BoulderSpawner @ 092 -arm_func 0x1009C1B4 sub_1009C1B4 -arm_func 0x1009C44C sub_1009C44C -arm_func 0x1009C90C sub_1009C90C -arm_func 0x1009CB38 sub_1009CB38 -arm_func 0x1009CF80 sub_1009CF80 -arm_func 0x1009CFB8 sub_1009CFB8 -arm_func 0x1009d010 CreateEntity_SkatingStone @ 084 -arm_func 0x1009D1BC sub_1009D1BC -arm_func 0x1009D530 sub_1009D530 -arm_func 0x1009E39C sub_1009E39C -arm_func 0x1009E678 sub_1009E678 -arm_func 0x1009EAE0 sub_1009EAE0 -arm_func 0x1009EB38 sub_1009EB38 -arm_func 0x1009eb90 CreateEntity_Torch @ 087 (Cosmic Angel: Antigravity field elements) -arm_func 0x1009ED24 sub_1009ED24 -arm_func 0x1009EE4C sub_1009EE4C -arm_func 0x1009ee84 CreateEntity_Waterfall @ 027 (Only particles, used for "Sand Falls" as well) -arm_func 0x1009F20C sub_1009F20C -arm_func 0x1009F878 sub_1009F878 -arm_func 0x100A0180 sub_100A0180 -arm_func 0x100a01b8 CreateEntity_Bowl @ 062 -arm_func 0x100A034C sub_100A034C -arm_func 0x100A074C sub_100A074C -arm_func 0x100A1018 sub_100A1018 -arm_func 0x100A126C sub_100A126C -arm_func 0x100a12a4 CreateEntity_ToBeContinuedText @ 041 -arm_func 0x100A133C sub_100A133C -arm_func 0x100A152C sub_100A152C -arm_func 0x100A15D0 sub_100A15D0 -arm_func 0x100a1634 CreateEntity_SpikedBarrel @ 093 -arm_func 0x100A1834 sub_100A1834 -arm_func 0x100A1F70 sub_100A1F70 -arm_func 0x100a1fa8 CreateEntity_Trampoline @ 023 -arm_func 0x100A2160 sub_100A2160 -arm_func 0x100A22C0 sub_100A22C0 -arm_func 0x100A2454 sub_100A2454 -arm_func 0x100A248C sub_100A248C -arm_func 0x100a25e0 CreateEntity_Spring_Hiding @ 108 -arm_func 0x100A271C sub_100A271C -arm_func 0x100A2868 sub_100A2868 -arm_func 0x100A2A08 sub_100A2A08 -arm_func 0x100A2A40 sub_100A2A40 -arm_func 0x100a2c38 CreateEntity_BreakableWall @ 114 -arm_func 0x100A2DB8 sub_100A2DB8 -arm_func 0x100A3194 sub_100A3194 -arm_func 0x100A35AC sub_100A35AC -arm_func 0x100a35e4 CreateEntity_TeleportOrb @ 072 (Casino Paradise) -arm_func 0x100A36C4 sub_100A36C4 -arm_func 0x100a3c30 CreateEntity_ForcedIceSlide @ 046 -arm_func 0x100A3DC0 sub_100A3DC0 -arm_func 0x100A42FC sub_100A42FC -arm_func 0x100a4334 CreateEntity_PlayerFloat @ 090 (data[0]: 0 = Whirlwind, 1 = Antigravity) -arm_func 0x100A454C sub_100A454C -arm_func 0x100a4c6c CreateEntity_Interactable097 @ 097 -arm_func 0x100A4DF0 sub_100A4DF0 - - - - -arm_func 0x100A4F18 sub_100A4F18 -arm_func 0x100A4F50 sub_100A4F50 -arm_func 0x100A5024 sub_100A5024 -arm_func 0x100A5138 sub_100A5138 -arm_func 0x100A5170 sub_100A5170 -arm_func 0x100A53A0 sub_100A53A0 -arm_func 0x100A53F8 sub_100A53F8 -arm_func 0x100A5AE0 sub_100A5AE0 -arm_func 0x100A6044 sub_100A6044 -arm_func 0x100A614C sub_100A614C -arm_func 0x100A6228 sub_100A6228 -arm_func 0x100A62C8 sub_100A62C8 -arm_func 0x100A6350 sub_100A6350 -arm_func 0x100A67A0 sub_100A67A0 -arm_func 0x100A6978 sub_100A6978 -arm_func 0x100A6A60 sub_100A6A60 -arm_func 0x100A6DEC sub_100A6DEC -arm_func 0x100A6DF0 sub_100A6DF0 -arm_func 0x100A6E54 sub_100A6E54 -arm_func 0x100A703C sub_100A703C -arm_func 0x100A70CC sub_100A70CC -arm_func 0x100A70F8 sub_100A70F8 -arm_func 0x100A7124 sub_100A7124 -arm_func 0x100A72D0 sub_100A72D0 -arm_func 0x100A72D4 sub_100A72D4 -arm_func 0x100A7348 sub_100A7348 -arm_func 0x100A74A4 sub_100A74A4 -arm_func 0x100A75D0 sub_100A75D0 -arm_func 0x100A7828 sub_100A7828 -arm_func 0x100A78AC sub_100A78AC -arm_func 0x100A7904 sub_100A7904 -arm_func 0x100A79B8 sub_100A79B8 -arm_func 0x100A7B14 sub_100A7B14 -arm_func 0x100A7BD0 sub_100A7BD0 -arm_func 0x100A7C50 sub_100A7C50 -arm_func 0x100A7F5C sub_100A7F5C -arm_func 0x100A811C sub_100A811C -arm_func 0x100A820C sub_100A820C -arm_func 0x100A839C sub_100A839C -arm_func 0x100A8410 GameInit -arm_func 0x100A8690 sub_100A8690 -arm_func 0x100A87F4 sub_100A87F4 -arm_func 0x100A8840 sub_100A8840 -arm_func 0x100A886C Task_100A886C -arm_func 0x100A8880 TaskDestructor_100A8880 -arm_func 0x100A8884 sub_100A8884 -arm_func 0x100A8EE0 sub_100A8EE0 -arm_func 0x100A8F04 sub_100A8F04 -arm_func 0x100A8F4C sub_100A8F4C -arm_func 0x100A8FA8 sub_100A8FA8 -arm_func 0x100A96C0 sub_100A96C0 -arm_func 0x100A9734 sub_100A9734 -arm_func 0x100A97F4 sub_100A97F4 -arm_func 0x100A9990 sub_100A9990 -arm_func 0x100A9A44 sub_100A9A44 -arm_func 0x100A9A84 sub_100A9A84 -arm_func 0x100A9D10 sub_100A9D10 -arm_func 0x100A9E28 sub_100A9E28 -arm_func 0x100A9EFC sub_100A9EFC -arm_func 0x100AA2B8 sub_100AA2B8 -arm_func 0x100AA360 sub_100AA360 -arm_func 0x100AA4F0 sub_100AA4F0 -arm_func 0x100AA598 sub_100AA598 -arm_func 0x100AA630 sub_100AA630 -arm_func 0x100AA6A4 sub_100AA6A4 -arm_func 0x100AAF64 sub_100AAF64 -arm_func 0x100AB138 sub_100AB138 -arm_func 0x100AB1EC sub_100AB1EC -arm_func 0x100AB258 sub_100AB258 -arm_func 0x100AB264 sub_100AB264 -arm_func 0x100AB2A8 sub_100AB2A8 -arm_func 0x100AB474 sub_100AB474 -arm_func 0x100AB518 sub_100AB518 -arm_func 0x100AB6D8 sub_100AB6D8 -arm_func 0x100AB734 sub_100AB734 -arm_func 0x100AC040 sub_100AC040 -arm_func 0x100AF68C sub_100AF68C -arm_func 0x100AF950 sub_100AF950 -arm_func 0x100AF954 sub_100AF954 -arm_func 0x100AF958 sub_100AF958 -arm_func 0x100AF95C sub_100AF95C -arm_func 0x100AF960 sub_100AF960 -arm_func 0x100AF964 sub_100AF964 -arm_func 0x100AF968 sub_100AF968 -arm_func 0x100AF96C sub_100AF96C -arm_func 0x100af970 CreateEntity_ItemBox_ChaoHunt @ 115 -arm_func 0x100AF974 sub_100AF974 -arm_func 0x100AF978 sub_100AF978 -arm_func 0x100AF97C sub_100AF97C -arm_func 0x100AF980 sub_100AF980 -arm_func 0x100AF984 sub_100AF984 -arm_func 0x100AF988 sub_100AF988 -arm_func 0x100AF98C sub_100AF98C -arm_func 0x100AF990 sub_100AF990 -arm_func 0x100AF994 sub_100AF994 -arm_func 0x100AF998 sub_100AF998 -arm_func 0x100AF99C sub_100AF99C -arm_func 0x100AF9A0 sub_100AF9A0 -arm_func 0x100AF9A4 sub_100AF9A4 -arm_func 0x100AF9A8 sub_100AF9A8 -arm_func 0x100AF9AC sub_100AF9AC -arm_func 0x100AF9B0 sub_100AF9B0 -arm_func 0x100AF9B4 sub_100AF9B4 -arm_func 0x100AF9B8 sub_100AF9B8 -arm_func 0x100AF9BC sub_100AF9BC -arm_func 0x100AF9C4 sub_100AF9C4 -arm_func 0x100AF9CC sub_100AF9CC -arm_func 0x100AF9D0 sub_100AF9D0 -arm_func 0x100AF9D4 sub_100AF9D4 -arm_func 0x100AF9D8 sub_100AF9D8 -arm_func 0x100AF9E0 sub_100AF9E0 -arm_func 0x100AF9E8 sub_100AF9E8 -arm_func 0x100AF9EC sub_100AF9EC -arm_func 0x100AF9F4 sub_100AF9F4 -arm_func 0x100AF9F8 sub_100AF9F8 -arm_func 0x100AF9FC sub_100AF9FC -arm_func 0x100AFA00 sub_100AFA00 -arm_func 0x100AFA04 sub_100AFA04 -arm_func 0x100AFA08 sub_100AFA08 -arm_func 0x100AFA0C sub_100AFA0C -arm_func 0x100AFA10 sub_100AFA10 -arm_func 0x100AFA14 sub_100AFA14 -arm_func 0x100AFA18 sub_100AFA18 -arm_func 0x100AFA1C sub_100AFA1C -arm_func 0x100AFA20 sub_100AFA20 -arm_func 0x100AFE3C sub_100AFE3C -arm_func 0x100AFF34 sub_100AFF34 -arm_func 0x100B002C sub_100B002C -arm_func 0x100B0128 sub_100B0128 -arm_func 0x100B0224 sub_100B0224 -arm_func 0x100B0540 sub_100B0540 -arm_func 0x100B0838 sub_100B0838 -arm_func 0x100B0F08 sub_100B0F08 -arm_func 0x100B1420 sub_100B1420 -arm_func 0x100B1918 sub_100B1918 -arm_func 0x100B1DF0 sub_100B1DF0 -arm_func 0x100B2028 sub_100B2028 -arm_func 0x100B20DC sub_100B20DC -arm_func 0x100B21A0 sub_100B21A0 -arm_func 0x100B21A4 sub_100B21A4 -arm_func 0x100B2280 sub_100B2280 -arm_func 0x100B2458 sub_100B2458 -arm_func 0x100B2624 sub_100B2624 -arm_func 0x100B2790 sub_100B2790 -arm_func 0x100B2950 sub_100B2950 -arm_func 0x100B2B00 sub_100B2B00 -arm_func 0x100B2C98 sub_100B2C98 -arm_func 0x100B2DB0 sub_100B2DB0 -arm_func 0x100B2EC8 sub_100B2EC8 -arm_func 0x100B2FE0 sub_100B2FE0 -arm_func 0x100B3108 sub_100B3108 -arm_func 0x100B3834 sub_100B3834 -arm_func 0x100B3A58 sub_100B3A58 -arm_func 0x100B3D98 sub_100B3D98 -arm_func 0x100B3DC4 sub_100B3DC4 -arm_func 0x100B3DE0 sub_100B3DE0 -arm_func 0x100B3EB8 sub_100B3EB8 -arm_func 0x100B3ED4 sub_100B3ED4 -arm_func 0x100B3FAC sub_100B3FAC -arm_func 0x100B3FE4 sub_100B3FE4 -arm_func 0x100B4000 Task_100B4000 -arm_func 0x100B40D8 sub_100B40D8 -arm_func 0x100B413C sub_100B413C -arm_func 0x100B4214 sub_100B4214 -arm_func 0x100B4380 Task_100B4380 -arm_func 0x100B461C Task_100B461C -arm_func 0x100B48FC Task_100B48FC -arm_func 0x100B4988 Task_100B4988 -arm_func 0x100B4A24 Task_100B4A24 -arm_func 0x100B4A94 TaskDestructor_100B4A94 -arm_func 0x100B4B68 sub_100B4B68 -arm_func 0x100B4D0C sub_100B4D0C -arm_func 0x100B4D60 sub_100B4D60 -arm_func 0x100B500C sub_100B500C -arm_func 0x100B506C sub_100B506C -arm_func 0x100B5580 sub_100B5580 -arm_func 0x100B5744 sub_100B5744 -arm_func 0x100B58B8 sub_100B58B8 -arm_func 0x100B58E4 sub_100B58E4 -arm_func 0x100B5910 sub_100B5910 -arm_func 0x100B593C sub_100B593C -arm_func 0x100B59B0 sub_100B59B0 -arm_func 0x100B5BB4 sub_100B5BB4 -arm_func 0x100B5CE8 sub_100B5CE8 -arm_func 0x100B5E80 sub_100B5E80 -arm_func 0x100B5F14 sub_100B5F14 -arm_func 0x100B606C sub_100B606C -arm_func 0x100B62C8 sub_100B62C8 -arm_func 0x100B64B0 sub_100B64B0 -arm_func 0x100B6698 sub_100B6698 -arm_func 0x100B6888 sub_100B6888 -arm_func 0x100B6910 sub_100B6910 -arm_func 0x100B69FC sub_100B69FC - -arm_func 0x100B6C5C sub_100B6C5C -arm_func 0x100B6C9C sub_100B6C9C -arm_func 0x100B6D2C sub_100B6D2C -arm_func 0x100BAF68 sub_100BAF68 -arm_func 0x100BB028 sub_100BB028 -arm_func 0x100BB4AC sub_100BB4AC -arm_func 0x100BB5B0 sub_100BB5B0 -arm_func 0x100BB75C sub_100BB75C -arm_func 0x100BBA08 sub_100BBA08 -arm_func 0x100BBB08 sub_100BBB08 -arm_func 0x100BBC48 sub_100BBC48 -arm_func 0x100BBEA8 sub_100BBEA8 -arm_func 0x100BBF80 sub_100BBF80 -arm_func 0x100BC290 sub_100BC290 -arm_func 0x100BC590 sub_100BC590 -arm_func 0x100BC6C0 sub_100BC6C0 -arm_func 0x100BC770 sub_100BC770 -arm_func 0x100BCA10 sub_100BCA10 -arm_func 0x100BCB68 sub_100BCB68 -arm_func 0x100BCE7C sub_100BCE7C -arm_func 0x100BD26C sub_100BD26C -arm_func 0x100BDD24 sub_100BDD24 -arm_func 0x100BE028 sub_100BE028 -arm_func 0x100BE074 sub_100BE074 -arm_func 0x100BE15C sub_100BE15C -arm_func 0x100BE230 sub_100BE230 -arm_func 0x100BE348 sub_100BE348 -arm_func 0x100BE454 sub_100BE454 -arm_func 0x100BE61C sub_100BE61C -arm_func 0x100BE7DC sub_100BE7DC -arm_func 0x100BE958 sub_100BE958 -arm_func 0x100BEC94 sub_100BEC94 -arm_func 0x100BEE18 sub_100BEE18 -arm_func 0x100BEE50 sub_100BEE50 -arm_func 0x100BEF40 sub_100BEF40 -arm_func 0x100BF1B4 sub_100BF1B4 -arm_func 0x100BF1EC sub_100BF1EC -arm_func 0x100BF240 sub_100BF240 -arm_func 0x100BF294 sub_100BF294 -arm_func 0x100BF370 sub_100BF370 -arm_func 0x100BF46C sub_100BF46C -arm_func 0x100BF4A4 sub_100BF4A4 -arm_func 0x100BF5B8 sub_100BF5B8 -arm_func 0x100BF6CC sub_100BF6CC -arm_func 0x100BF884 sub_100BF884 -arm_func 0x100C0C78 sub_100C0C78 -arm_func 0x100C10E4 sub_100C10E4 -arm_func 0x100C11F8 sub_100C11F8 -arm_func 0x100C127C sub_100C127C -arm_func 0x100C130C sub_100C130C -arm_func 0x100C1444 sub_100C1444 -arm_func 0x100C1978 sub_100C1978 -arm_func 0x100C1ED8 sub_100C1ED8 -arm_func 0x100C219C sub_100C219C -arm_func 0x100C22E4 sub_100C22E4 -arm_func 0x100C25B4 sub_100C25B4 -arm_func 0x100C29A0 sub_100C29A0 -arm_func 0x100C2B08 sub_100C2B08 -arm_func 0x100C2D60 sub_100C2D60 -arm_func 0x100C33E0 sub_100C33E0 -arm_func 0x100C3518 sub_100C3518 -arm_func 0x100C3674 sub_100C3674 -arm_func 0x100C37F4 sub_100C37F4 -arm_func 0x100C3934 sub_100C3934 -arm_func 0x100C3A68 sub_100C3A68 -arm_func 0x100C3D00 sub_100C3D00 -arm_func 0x100C3FAC sub_100C3FAC -arm_func 0x100C4038 sub_100C4038 -arm_func 0x100C41B4 sub_100C41B4 -arm_func 0x100C4338 sub_100C4338 -arm_func 0x100C46E0 sub_100C46E0 -arm_func 0x100C4A78 sub_100C4A78 -arm_func 0x100C4B8C sub_100C4B8C -arm_func 0x100C4C80 sub_100C4C80 -arm_func 0x100C4E40 sub_100C4E40 -arm_func 0x100C5E1C sub_100C5E1C -arm_func 0x100C5E54 sub_100C5E54 -arm_func 0x100C5F30 sub_100C5F30 -arm_func 0x100C62C0 sub_100C62C0 -arm_func 0x100C639C sub_100C639C -arm_func 0x100C68CC sub_100C68CC -arm_func 0x100C6E58 sub_100C6E58 -arm_func 0x100C7548 sub_100C7548 -arm_func 0x100C7C74 sub_100C7C74 -arm_func 0x100C7D44 sub_100C7D44 -arm_func 0x100C7DF0 sub_100C7DF0 -arm_func 0x100C7EDC sub_100C7EDC -arm_func 0x100C7FB0 sub_100C7FB0 -arm_func 0x100C8024 sub_100C8024 -arm_func 0x100C8104 sub_100C8104 -arm_func 0x100C817C sub_100C817C -arm_func 0x100C81FC sub_100C81FC -arm_func 0x100C8294 sub_100C8294 -arm_func 0x100C8300 sub_100C8300 -arm_func 0x100C838C sub_100C838C -arm_func 0x100C8470 sub_100C8470 -arm_func 0x100C852C sub_100C852C -arm_func 0x100C85C0 sub_100C85C0 -arm_func 0x100C85C4 sub_100C85C4 -arm_func 0x100C864C sub_100C864C -arm_func 0x100C86D0 sub_100C86D0 -arm_func 0x100C875C sub_100C8810 -arm_func 0x100C8810 sub_100C8810 -arm_func 0x100C8968 sub_100C8968 -arm_func 0x100C9570 sub_100C9570 -arm_func 0x100C9604 sub_100C9604 -arm_func 0x100C96B4 sub_100C96B4 -arm_func 0x100C9F38 sub_100C9F38 -arm_func 0x100C9F98 sub_100C9F98 -arm_func 0x100CA204 sub_100CA204 -arm_func 0x100CA5A4 sub_100CA5A4 -arm_func 0x100CA64C sub_100CA64C -arm_func 0x100CA728 sub_100CA728 -arm_func 0x100CA7CC sub_100CA7CC -arm_func 0x100CA900 sub_100CA900 -arm_func 0x100CA9D4 sub_100CA9D4 -arm_func 0x100CAB5C sub_100CAB5C -arm_func 0x100CACE4 sub_100CACE4 -arm_func 0x100CAD1C sub_100CAD1C -arm_func 0x100CADCC sub_100CADCC -arm_func 0x100CB644 sub_100CB644 -arm_func 0x100CB66C sub_100CB66C -arm_func 0x100CB6FC sub_100CB6FC -arm_func 0x100CB7AC sub_100CB7AC -arm_func 0x100CB874 sub_100CB874 -arm_func 0x100CB8AC sub_100CB8AC -arm_func 0x100CBA38 sub_100CBA38 -arm_func 0x100CBA74 sub_100CBA74 -arm_func 0x100CBA98 sub_100CBA98 -arm_func 0x100CBB14 sub_100CBB14 -arm_func 0x100CBB28 sub_100CBB28 -arm_func 0x100CBC5C Task_100CBC5C -arm_func 0x100CBC9C sub_100CBC9C -arm_func 0x100CBCF8 Task_100CBCF8 -arm_func 0x100CBD34 Task_100CBD34 -arm_func 0x100CBD84 Task_100CBD84 -arm_func 0x100CBEA4 sub_100CBEA4 -arm_func 0x100CBF78 sub_100CBF78 -arm_func 0x100CBFC8 sub_100CBFC8 -arm_func 0x100CC104 sub_100CC104 -arm_func 0x100CC518 sub_100CC518 -arm_func 0x100CC530 sub_100CC530 -arm_func 0x100CC598 sub_100CC598 -arm_func 0x100CC7F4 sub_100CC7F4 -arm_func 0x100CC890 sub_100CC890 -arm_func 0x100CC944 sub_100CC944 -arm_func 0x100CCA00 sub_100CCA00 -arm_func 0x100CCAA0 sub_100CCAA0 -arm_func 0x100CCB84 sub_100CCB84 -arm_func 0x100CCBD4 sub_100CCBD4 -arm_func 0x100CCD70 sub_100CCD70 -arm_func 0x100CCF00 sub_100CCF00 -arm_func 0x100CD458 sub_100CD458 -arm_func 0x100CD53C sub_100CD53C -arm_func 0x100CD708 sub_100CD708 -arm_func 0x100CD70C sub_100CD70C -arm_func 0x100CDA8C sub_100CDA8C -arm_func 0x100CDC24 sub_100CDC24 -arm_func 0x100CDD4C sub_100CDD4C -arm_func 0x100CDE68 sub_100CDE68 -arm_func 0x100CDF8C sub_100CDF8C -arm_func 0x100CE090 sub_100CE090 -arm_func 0x100CE180 sub_100CE180 -arm_func 0x100CE27C sub_100CE27C -arm_func 0x100CE364 sub_100CE364 -arm_func 0x100CE5F4 sub_100CE5F4 -arm_func 0x100CE6A4 sub_100CE6A4 -arm_func 0x100CE854 sub_100CE854 -arm_func 0x100CE934 sub_100CE934 -arm_func 0x100CEB78 sub_100CEB78 -arm_func 0x100CEC34 sub_100CEC34 -arm_func 0x100CECB0 sub_100CECB0 -arm_func 0x100CF0B8 sub_100CF0B8 -arm_func 0x100CF178 sub_100CF178 - -arm_func 0x100CFFAC sub_100CFFAC -arm_func 0x100D0168 sub_100D0168 -arm_func 0x100D0234 sub_100D0234 -arm_func 0x100D031C sub_100D031C -arm_func 0x100D0330 sub_100D0330 -arm_func 0x100D0430 sub_100D0430 -arm_func 0x100D0538 sub_100D0538 -arm_func 0x100D0738 sub_100D0738 -arm_func 0x100D0878 sub_100D0878 -arm_func 0x100D0A38 sub_100D0A38 -arm_func 0x100D0B7C sub_100D0B7C -arm_func 0x100D0D14 sub_100D0D14 -arm_func 0x100D0DAC sub_100D0DAC -arm_func 0x100D0FCC sub_100D0FCC -arm_func 0x100D10C0 sub_100D10C0 -arm_func 0x100D1160 sub_100D1160 -arm_func 0x100D1340 sub_100D1340 -arm_func 0x100D1C74 sub_100D1C74 -arm_func 0x100D1CAC sub_100D1CAC -arm_func 0x100D1CB4 sub_100D1CB4 -arm_func 0x100D1DA8 sub_100D1DA8 -arm_func 0x100D2544 sub_100D2544 -arm_func 0x100D2E64 sub_100D2E64 -arm_func 0x100D32A0 sub_100D32A0 -arm_func 0x100D32A4 sub_100D32A4 -arm_func 0x100D33EC sub_100D33EC -arm_func 0x100D362C sub_100D362C -arm_func 0x100D37C8 sub_100D37C8 -arm_func 0x100D39B4 sub_100D39B4 -arm_func 0x100D3BD8 sub_100D3BD8 -arm_func 0x100D3DB4 sub_100D3BD4 -arm_func 0x100D3FD8 sub_100D3FD8 -arm_func 0x100D41E0 sub_100D41E0 -arm_func 0x100D440C sub_100D440C -arm_func 0x100D45E8 sub_100D45E8 -arm_func 0x100D48C8 sub_100D48C8 -arm_func 0x100D4D00 sub_100D4D00 -arm_func 0x100D4D98 sub_100D4D98 -arm_func 0x100D5038 sub_100D5038 -arm_func 0x100D5180 sub_100D5180 -arm_func 0x100D5208 sub_100D5208 -arm_func 0x100D5324 sub_100D5324 -arm_func 0x100D54B4 sub_100D54B4 -arm_func 0x100D553C sub_100D553C -arm_func 0x100D5C10 sub_100D5C10 -arm_func 0x100D5D18 sub_100D5D18 -arm_func 0x100D6244 sub_100D6244 -arm_func 0x100D6248 sub_100D6248 -arm_func 0x100D62E0 sub_100D62E0 -arm_func 0x100D63DC sub_100D63DC -arm_func 0x100D64D4 sub_100D64D4 -arm_func 0x100D64D8 sub_100D64D8 -arm_func 0x100D6578 sub_100D6578 -arm_func 0x100D6618 sub_100D6618 -arm_func 0x100D66D8 sub_100D66D8 -arm_func 0x100D7328 sub_100D7328 -arm_func 0x100D7604 sub_100D7604 -arm_func 0x100D78D4 sub_100D78D4 -arm_func 0x100D78D8 sub_100D78D8 -arm_func 0x100D7A0C sub_100D7A0C -arm_func 0x100D7D7C sub_100D7D7C -arm_func 0x100D7FCC sub_100D7FCC -arm_func 0x100D81B0 sub_100D81B0 -arm_func 0x100D860C sub_100D860C -arm_func 0x100D87D4 sub_100D87D4 -arm_func 0x100D87D8 sub_100D87D8 -arm_func 0x100D89A0 sub_100D89A0 -arm_func 0x100D8B9C sub_100D8B9C -arm_func 0x100D8C98 sub_100D8C98 -arm_func 0x100D9498 sub_100D9498 -arm_func 0x100D949C sub_100D949C -arm_func 0x100D9908 sub_100D9908 -arm_func 0x100DA050 sub_100DA050 -arm_func 0x100DA6E0 sub_100DA6E0 -arm_func 0x100DA8D8 sub_100DA8D8 -arm_func 0x100DAA00 sub_100DAA00 -arm_func 0x100DAB18 sub_100DAB18 -arm_func 0x100DAC84 sub_100DAC84 -arm_func 0x100DAD84 sub_100DAD84 -arm_func 0x100DAFD4 sub_100DAFD4 -arm_func 0x100DB144 sub_100DB144 -arm_func 0x100DB998 sub_100DB998 -arm_func 0x100DBFE4 sub_100DBFE4 -arm_func 0x100DC5A8 sub_100DC5A8 -arm_func 0x100DC5C4 sub_100DC5C4 -arm_func 0x100DC6AC sub_100DC6AC -arm_func 0x100DC91C sub_100DC91C -arm_func 0x100DCAA8 sub_100DCAA8 -arm_func 0x100DCD14 sub_100DCD14 -arm_func 0x100DCE34 sub_100DCE34 -arm_func 0x100DD08C sub_100DD08C -arm_func 0x100DD0C4 sub_100DD0C4 -arm_func 0x100DD128 sub_100DD128 -arm_func 0x100DD184 sub_100DD184 -arm_func 0x100DD2A8 sub_100DD2A8 - -# Used by multiple different procs (CreateEntity_EggSpider, ...) -arm_func 0x100DD47C Task_100DD47C - -arm_func 0x100DD4DC sub_100DD4DC -arm_func 0x100DD534 sub_100DD534 -arm_func 0x100DD600 sub_100DD600 -arm_func 0x100DD624 sub_100DD624 -arm_func 0x100DD9DC sub_100DD9DC -arm_func 0x100DDA88 sub_100DDA88 -arm_func 0x100DDB50 sub_100DDB50 -arm_func 0x100DDC14 sub_100DDC14 -arm_func 0x100DDC88 sub_100DDC88 -arm_func 0x100DDDD0 sub_100DDDD0 -arm_func 0x100DDEEC sub_100DDEEC -arm_func 0x100DDF44 sub_100DDF44 -arm_func 0x100DDFAC sub_100DDFAC -arm_func 0x100DDFF8 sub_100DDFF8 -arm_func 0x100DE0D8 sub_100DE0D8 -arm_func 0x100DE190 sub_100DE190 -arm_func 0x100DE210 sub_100DE210 -arm_func 0x100DE288 sub_100DE288 -arm_func 0x100DE2E0 sub_100DE2E0 -arm_func 0x100DE39C sub_100DE39C -arm_func 0x100DE548 sub_100DE548 -arm_func 0x100DE61C sub_100DE61C -arm_func 0x100DE9E4 sub_100DE9E4 -arm_func 0x100DED28 sub_100DED28 -arm_func 0x100DEE2C sub_100DEE2C -arm_func 0x100DF00C sub_100DF00C -arm_func 0x100DF0B8 sub_100DF0B8 -arm_func 0x100DF208 sub_100DF208 -arm_func 0x100DF26C sub_100DF26C -arm_func 0x100DF4DC sub_100DF4DC -arm_func 0x100DF66C sub_100DF66C -arm_func 0x100DF910 sub_100DF910 -arm_func 0x100DF950 sub_100DF950 -arm_func 0x100DF990 sub_100DF990 -arm_func 0x100DFA30 sub_100DFA30 -arm_func 0x100DFC80 sub_100DFC80 -arm_func 0x100DFE04 sub_100DFE04 -arm_func 0x100DFE20 sub_100DFE20 -arm_func 0x100DFEE0 sub_100DFEE0 -arm_func 0x100DFF5C sub_100DFF5C -arm_func 0x100E00EC sub_100E00EC -arm_func 0x100E05E8 sub_100E05E8 -arm_func 0x100E05EC sub_100E05EC -arm_func 0x100E0B10 sub_100E0B10 -arm_func 0x100E108C sub_100E108C -arm_func 0x100E113C sub_100E113C -arm_func 0x100E12FC sub_100E12FC -arm_func 0x100E1888 sub_100E1888 -arm_func 0x100E1AF4 sub_100E1AF4 -arm_func 0x100E1C3C sub_100E1C3C -arm_func 0x100E1C94 sub_100E1C94 -arm_func 0x100E1E58 sub_100E1E58 -arm_func 0x100E1ED4 sub_100E1ED4 -arm_func 0x100E2294 sub_100E2294 -arm_func 0x100E2410 sub_100E2410 -arm_func 0x100E2518 sub_100E2518 -arm_func 0x100E261C sub_100E261C -arm_func 0x100E2770 sub_100E2770 -arm_func 0x100E27C4 sub_100E27C4 -arm_func 0x100E2828 sub_100E2828 -arm_func 0x100E2C6C sub_100E2C6C -arm_func 0x100E2EE8 sub_100E2EE8 -arm_func 0x100E2F14 sub_100E2F14 -arm_func 0x100E3140 sub_100E3140 -arm_func 0x100E32AC sub_100E32AC -arm_func 0x100E33F0 sub_100E33F0 -arm_func 0x100E3488 sub_100E3488 -arm_func 0x100E361C sub_100E361C -arm_func 0x100E37C0 sub_100E37C0 -arm_func 0x100E38A8 sub_100E38A8 -arm_func 0x100E39C0 sub_100E39C0 -arm_func 0x100E39C4 sub_100E39C4 -arm_func 0x100E3B4C sub_100E3B4C -arm_func 0x100E3C90 sub_100E3C90 -arm_func 0x100E3C94 sub_100E3C94 - -arm_func 0x100E40A4 sub_100E40A4 -arm_func 0x100E4254 sub_100E4254 -arm_func 0x100E4268 sub_100E4268 -arm_func 0x100E4270 sub_100E4270 -arm_func 0x100E4278 sub_100E4278 -arm_func 0x100E4398 sub_100E4398 -arm_func 0x100E44B8 sub_100E44B8 -arm_func 0x100E4538 sub_100E4538 -arm_func 0x100E453C sub_100E453C -arm_func 0x100E4540 sub_100E4540 -arm_func 0x100E4544 sub_100E4544 -arm_func 0x100E4548 sub_100E4548 -arm_func 0x100E454C sub_100E454C -arm_func 0x100E4550 sub_100E4550 -arm_func 0x100E4554 sub_100E4554 -arm_func 0x100E4558 sub_100E4558 -arm_func 0x100E455C sub_100E455C -arm_func 0x100E4560 sub_100E4560 -arm_func 0x100E4564 sub_100E4564 -arm_func 0x100E4568 sub_100E4568 -arm_func 0x100E456C sub_100E456C -arm_func 0x100E4570 sub_100E4570 -arm_func 0x100E4574 sub_100E4574 -arm_func 0x100E4578 sub_100E4578 -arm_func 0x100E457C sub_100E457C -arm_func 0x100E4580 sub_100E4580 -arm_func 0x100E4584 sub_100E4584 -arm_func 0x100E4588 sub_100E4588 -arm_func 0x100E458C sub_100E458C -arm_func 0x100E4590 sub_100E4590 -arm_func 0x100E4594 sub_100E4594 -arm_func 0x100E4598 sub_100E4598 -arm_func 0x100E459C sub_100E459C -arm_func 0x100E45A0 sub_100E45A0 -arm_func 0x100E45A4 sub_100E45A4 -arm_func 0x100E45A8 sub_100E45A8 -arm_func 0x100E45AC sub_100E45AC -arm_func 0x100E45B0 sub_100E45B0 -arm_func 0x100E45B4 sub_100E45B4 -arm_func 0x100E45B8 sub_100E45B8 -arm_func 0x100E45BC sub_100E45BC -arm_func 0x100E45C0 sub_100E45C0 -arm_func 0x100E45C4 sub_100E45C4 -arm_func 0x100E45C8 sub_100E45C8 -arm_func 0x100E45CC sub_100E45CC -arm_func 0x100E45D0 sub_100E45D0 -arm_func 0x100E45D4 sub_100E45D4 -arm_func 0x100E45D8 sub_100E45D8 -arm_func 0x100E45DC sub_100E45DC -arm_func 0x100E45E0 sub_100E45E0 -arm_func 0x100E45E4 sub_100E45E4 - -arm_func 0x100E4834 sub_100E4834 -arm_func 0x100E4940 sub_100E4940 -arm_func 0x100E4944 sub_100E4944 -arm_func 0x100E4948 sub_100E4948 -arm_func 0x100E494C sub_100E494C -arm_func 0x100E45D8 sub_100E45D8 -arm_func 0x100E45DC sub_100E45DC -arm_func 0x100E45E0 sub_100E45E0 -arm_func 0x100E45E4 sub_100E45E4 -arm_func 0x100E4834 sub_100E4834 -arm_func 0x100E4D10 sub_100E4D10 -arm_func 0x100E4D74 sub_100E4D74 -arm_func 0x100E5328 sub_100E5328 -arm_func 0x100E584C sub_100E584C -arm_func 0x100E5B3C sub_100E5B3C -arm_func 0x100E5C30 sub_100E5C30 -arm_func 0x100E5CF4 sub_100E5CF4 -arm_func 0x100E5ED8 sub_100E5ED8 -arm_func 0x100E6414 sub_100E6414 -arm_func 0x100E65EC sub_100E65EC -arm_func 0x100E67C8 sub_100E67C8 -arm_func 0x100E693C sub_100E693C - -arm_func 0x100E6A90 sub_100E6A90 -arm_func 0x100E6B74 sub_100E6B74 -arm_func 0x100E6D90 sub_100E6D90 -arm_func 0x100E6F98 sub_100E6F98 -arm_func 0x100E7114 CallGameLoop -arm_func 0x100E719C sub_100E719C -arm_func 0x100E7248 sub_100E7248 -arm_func 0x100E72DC sub_100E72DC - -arm_func 0x100E7DB8 sub_100E7DB8 -arm_func 0x100E7F04 sub_100E7F04 - -arm_func 0x100E84D4 sub_100E84D4 - -arm_func 0x100E8AD0 sub_100E8AD0 -arm_func 0x100E8BEC sub_100E8BEC - -arm_func 0x100EB704 sub_100EB704 -arm_func 0x100EB708 sub_100EB708 -arm_func 0x100EB7C0 sub_100EB7C0 -arm_func 0x100EB7C4 sub_100EB7C4 -arm_func 0x100EB7F0 sub_100EB7F0 -arm_func 0x100EB7F8 CpuFill - -# Params are SAT-R CPU_COPY macro (last param: 16/32 bits) -arm_func 0x100EB830 CpuCopy - -# Maybe an emulation of the GBA behavior? -arm_func 0x100EB868 DmaFill -arm_func 0x100EB8E8 DmaCopy -arm_func 0x100EBD40 SomeVramGraphicsCopyQueueHandling - -arm_func 0x100EBE60 sub_100EBE60 -arm_func 0x100EBFE0 sub_100EBFE0 -arm_func 0x100EC14C sub_100EC14C -arm_func 0x100EC154 sub_100EC154 -arm_func 0x100EC17C sub_100EC17C -arm_func 0x100EC184 sub_100EC184 -arm_func 0x100EC18C sub_100EC18C -arm_func 0x100EC194 sub_100EC194 - -# On GBA m4aSoundMain was called instead -arm_func 0x100EC1E0 SoundMain -arm_func 0x100EC1F0 sub_100EC1F0 -arm_func 0x100EC1F4 old_m4aSongNumStart - - -arm_func 0x100EC290 sub_100EC290 -arm_func 0x100EC294 sub_100EC294 -arm_func 0x100EC298 sub_100EC298 -arm_func 0x100EC29C sub_100EC29C -arm_func 0x100EC2A8 sub_100EC2A8 -arm_func 0x100EC2AC sub_100EC2AC -arm_func 0x100EC2B0 sub_100EC2B0 -arm_func 0x100EC2B4 sub_100EC2B4 -arm_func 0x100EC2B8 sub_100EC2B8 -arm_func 0x100EC2BC sub_100EC2BC -arm_func 0x100EC2C0 sub_100EC2C0 -arm_func 0x100EC2C4 sub_100EC2C4 -arm_func 0x100EC2C8 sub_100EC2C8 -arm_func 0x100EC2D8 sub_100EC2D8 -arm_func 0x100EC2E4 sub_100EC2E4 -arm_func 0x100EC2E8 sub_100EC2E8 -arm_func 0x100EC2EC sub_100EC2EC - -arm_func 0x100EC26C sub_100EC26C -arm_func 0x100EC270 sub_100EC270 - -# These just call VBlankIntrWait. (@ 0x1000BAD0) -# This is BAD for cache misses. (as the address says, lol) -arm_func 0x100EC2F0 CallVBlankIntrWaitCopy -arm_func 0x100EC2F4 CallVBlankIntrWait - -arm_func 0x100EC2F8 CallDiv -arm_func 0x100EC30C sub_100EC30C -arm_func 0x100EC31C CallMod -arm_func 0x100EC328 sub_100EC328 -arm_func 0x100EC330 sub_100EC330 -arm_func 0x100EC36C sub_100EC36C -arm_func 0x100EC374 sub_100EC374 -arm_func 0x100EC450 sub_100EC450 -arm_func 0x100EC454 sub_100EC454 -arm_func 0x100EC458 sub_100EC458 -arm_func 0x100EC45C sub_100EC45C -arm_func 0x100EC460 sub_100EC460 -arm_func 0x100EC468 sub_100EC468 -arm_func 0x100EC46C sub_100EC46C -arm_func 0x100EC4B4 sub_100EC4B4 -arm_func 0x100EC4B8 sub_100EC4B8 -arm_func 0x100EC4BC sub_100EC4BC -arm_func 0x100EC4C0 sub_100EC4C0 -arm_func 0x100EC4C4 sub_100EC4C4 -arm_func 0x100EC4C8 sub_100EC4C8 -arm_func 0x100EC4CC sub_100EC4CC -arm_func 0x100EC4D0 sub_100EC4D0 -arm_func 0x100EC4D4 sub_100EC4D4 -arm_func 0x100EC4D8 sub_100EC4D8 -arm_func 0x100EC4DC sub_100EC4DC -arm_func 0x100EC4E0 sub_100EC4E0 -arm_func 0x100EC4E4 sub_100EC4E4 -arm_func 0x100EC4E8 sub_100EC4E8 -arm_func 0x100EC4F0 sub_100EC4F0 - -arm_func 0x100EC578 sub_100EC578 - -arm_func 0x100EC658 sub_100EC658 -arm_func 0x100EC758 sub_100EC758 -arm_func 0x100EC768 sub_100EC768 -arm_func 0x100EC778 sub_100EC778 - -arm_func 0x100EC828 sub_100EC828 - -arm_func 0x100EC8A8 sub_100EC8A8 -arm_func 0x100EC8B8 sub_100EC8B8 -arm_func 0x100EC8C8 sub_100EC8C8 -arm_func 0x100EC8D8 sub_100EC8D8 -arm_func 0x100EC908 sub_100EC908 -arm_func 0x100EC918 sub_100EC918 -arm_func 0x100EC928 sub_100EC928 -arm_func 0x100EC938 sub_100EC938 -arm_func 0x100EC948 sub_100EC948 -arm_func 0x100EC958 sub_100EC958 -arm_func 0x100EC968 sub_100EC968 -arm_func 0x100EC978 sub_100EC978 -arm_func 0x100EC988 sub_100EC988 -arm_func 0x100EC998 sub_100EC998 -arm_func 0x100EC9A8 sub_100EC9A8 -arm_func 0x100EC9B8 sub_100EC9B8 -arm_func 0x100EC9C8 sub_100EC9C8 -arm_func 0x100EC9D8 sub_100EC9D8 -arm_func 0x100EC9E8 sub_100EC9E8 -arm_func 0x100EC9F8 sub_100EC9F8 -arm_func 0x100ECA08 sub_100ECA08 -arm_func 0x100ECA18 sub_100ECA18 -arm_func 0x100ECA28 sub_100ECA28 -arm_func 0x100ECA38 sub_100ECA38 -arm_func 0x100ECA48 sub_100ECA48 -arm_func 0x100ECA58 sub_100ECA58 -arm_func 0x100ECA68 sub_100ECA68 -arm_func 0x100ECA78 sub_100ECA78 -arm_func 0x100ECA88 sub_100ECA88 -arm_func 0x100ECA98 sub_100ECA98 -arm_func 0x100ECAA8 sub_100ECAA8 -arm_func 0x100ECAB8 sub_100ECAB8 -arm_func 0x100ECAC8 sub_100ECAC8 -arm_func 0x100ECAD8 sub_100ECAD8 -arm_func 0x100ECAE8 sub_100ECAE8 -arm_func 0x100ECAF8 sub_100ECAF8 -arm_func 0x100ECB08 sub_100ECB08 -arm_func 0x100ECB18 sub_100ECB18 -arm_func 0x100ECB28 sub_100ECB28 -arm_func 0x100ECB38 sub_100ECB38 -arm_func 0x100ECB48 sub_100ECB48 -arm_func 0x100ECB58 sub_100ECB58 -arm_func 0x100ECB68 sub_100ECB68 -arm_func 0x100ECB78 sub_100ECB78 -arm_func 0x100ECB88 sub_100ECB88 -arm_func 0x100ECB98 sub_100ECB98 -arm_func 0x100ECBA8 sub_100ECBA8 -arm_func 0x100ECBB8 sub_100ECBB8 -arm_func 0x100ECBC8 sub_100ECBC8 -arm_func 0x100ECBD8 sub_100ECBD8 -arm_func 0x100ECBE8 sub_100ECBE8 -arm_func 0x100ECBF8 sub_100ECBF8 -arm_func 0x100ECC08 sub_100ECC08 -arm_func 0x100ECC18 sub_100ECC18 -arm_func 0x100ECC28 sub_100ECC28 -arm_func 0x100ECC38 sub_100ECC38 -arm_func 0x100ECC48 sub_100ECC48 -arm_func 0x100ECC58 sub_100ECC58 -arm_func 0x100ECC68 sub_100ECC68 -arm_func 0x100ECC78 sub_100ECC78 -arm_func 0x100ECC88 sub_100ECC88 -arm_func 0x100ECC98 sub_100ECC98 -arm_func 0x100ECCA8 sub_100ECCA8 -arm_func 0x100ECCB8 sub_100ECCB8 -arm_func 0x100ECCC8 sub_100ECCC8 -arm_func 0x100ECCD8 sub_100ECCD8 -arm_func 0x100ECCE8 sub_100ECCE8 -arm_func 0x100ECCF8 sub_100ECCF8 -arm_func 0x100ECD08 sub_100ECD08 -arm_func 0x100ECD18 sub_100ECD18 -arm_func 0x100ECD28 sub_100ECD28 -arm_func 0x100ECD38 sub_100ECD38 -arm_func 0x100ECD48 sub_100ECD48 -arm_func 0x100ECD58 sub_100ECD58 -arm_func 0x100ECD68 sub_100ECD68 -arm_func 0x100ECD78 sub_100ECD78 -arm_func 0x100ECD88 sub_100ECD88 -arm_func 0x100ECD98 sub_100ECD98 -arm_func 0x100ECDA8 sub_100ECDA8 -arm_func 0x100ECDB8 sub_100ECDB8 -arm_func 0x100ECDC8 sub_100ECDC8 -arm_func 0x100ECDD8 sub_100ECDD8 -arm_func 0x100ECDE8 sub_100ECDE8 -arm_func 0x100ECDF8 sub_100ECDF8 -arm_func 0x100ECE08 sub_100ECE08 -arm_func 0x100ECE18 sub_100ECE18 -arm_func 0x100ECE28 sub_100ECE28 -arm_func 0x100ECE38 sub_100ECE38 -arm_func 0x100ECE48 sub_100ECE48 -arm_func 0x100ECE58 sub_100ECE58 -arm_func 0x100ECE68 sub_100ECE68 -arm_func 0x100ECE78 sub_100ECE78 -arm_func 0x100ECE88 sub_100ECE88 -arm_func 0x100ECE98 sub_100ECE98 -arm_func 0x100ECEA8 sub_100ECEA8 -arm_func 0x100ECEB8 sub_100ECEB8 -arm_func 0x100ECEC8 sub_100ECEC8 -arm_func 0x100ECED8 sub_100ECED8 -arm_func 0x100ECEE8 sub_100ECEE8 -arm_func 0x100ECEF8 sub_100ECEF8 -arm_func 0x100ECF08 sub_100ECF08 -arm_func 0x100ECF18 sub_100ECF18 -arm_func 0x100ECF28 sub_100ECF28 -arm_func 0x100ECF38 sub_100ECF38 -arm_func 0x100ECF48 sub_100ECF48 -arm_func 0x100ECF58 sub_100ECF58 -arm_func 0x100ECF68 sub_100ECF68 -arm_func 0x100ECF78 sub_100ECF78 -arm_func 0x100ECF88 sub_100ECF88 -arm_func 0x100ECF98 sub_100ECF98 -arm_func 0x100ECFA8 sub_100ECFA8 -arm_func 0x100ECFB8 sub_100ECFB8 -arm_func 0x100ECFC8 sub_100ECFC8 -arm_func 0x100ECFD8 sub_100ECFD8 -arm_func 0x100ECFE8 sub_100ECFE8 -arm_func 0x100ECFF8 sub_100ECFF8 -arm_func 0x100ED008 sub_100ED008 -arm_func 0x100ED018 sub_100ED018 -arm_func 0x100ED028 sub_100ED028 -arm_func 0x100ED038 sub_100ED038 -arm_func 0x100ED048 sub_100ED048 -arm_func 0x100ED058 sub_100ED058 -arm_func 0x100ED068 sub_100ED068 -arm_func 0x100ED078 sub_100ED078 -arm_func 0x100ED088 sub_100ED088 -arm_func 0x100ED098 sub_100ED098 -arm_func 0x100ED0A8 sub_100ED0A8 -arm_func 0x100ED0B8 sub_100ED0B8 -arm_func 0x100ED0C8 sub_100ED0C8 -arm_func 0x100ED0D8 sub_100ED0D8 -arm_func 0x100ED0E8 sub_100ED0E8 -arm_func 0x100ED0F8 sub_100ED0F8 -arm_func 0x100ED108 sub_100ED108 -arm_func 0x100ED118 sub_100ED118 -arm_func 0x100ED128 sub_100ED128 -arm_func 0x100ED138 sub_100ED138 -arm_func 0x100ED148 sub_100ED148 -arm_func 0x100ED158 sub_100ED158 -arm_func 0x100ED168 sub_100ED168 -arm_func 0x100ED178 sub_100ED178 -arm_func 0x100ED188 sub_100ED188 -arm_func 0x100ED198 sub_100ED198 -arm_func 0x100ED1A8 sub_100ED1A8 -arm_func 0x100ED1B8 sub_100ED1B8 -arm_func 0x100ED1C8 sub_100ED1C8 -arm_func 0x100ED1D8 sub_100ED1D8 -arm_func 0x100ED1E8 sub_100ED1E8 -arm_func 0x100ED1F8 sub_100ED1F8 -arm_func 0x100ED208 sub_100ED208 -arm_func 0x100ED218 sub_100ED218 -arm_func 0x100ED228 sub_100ED228 -arm_func 0x100ED238 sub_100ED238 -arm_func 0x100ED248 sub_100ED248 -arm_func 0x100ED258 sub_100ED258 -arm_func 0x100ED25C sub_100ED25C -arm_func 0x100ED260 sub_100ED260 -arm_func 0x100ED264 sub_100ED264 -arm_func 0x100ED26C sub_100ED26C -arm_func 0x100ED274 sub_100ED274 -arm_func 0x100ED27C sub_100ED27C -arm_func 0x100ED284 sub_100ED284 -arm_func 0x100ED28C sub_100ED28C -arm_func 0x100ED294 sub_100ED294 -arm_func 0x100ED29C sub_100ED29C -arm_func 0x100ED2A4 sub_100ED2A4 -arm_func 0x100ED2AC sub_100ED2AC -arm_func 0x100ED2B4 sub_100ED2B4 -arm_func 0x100ED2BC sub_100ED2BC -arm_func 0x100ED2C4 sub_100ED2C4 -arm_func 0x100ED2CC sub_100ED2CC -arm_func 0x100ED2D4 sub_100ED2D4 - -data_label 0x100ED2DC gUnknown_100ED2DC - -# jump_table 0x100ED2EC 908 # gAnimations -data_label 0x100ED2EC gAnimations -data_label 0x10116748 gObjTiles_4bpp # null-pointer -data_label 0x1011674C gObjTiles_8bpp # null-pointer -data_label 0x10116750 gSpriteDimensions - -data_label 0x10123A5C gSpriteTables - -# jump_table 0x10123A74 908 # gSpriteOamData -data_label 0x10123A74 gSpriteOamData -data_label 0x10133550 gSpritePalettes -data_label 0x10137A40 sVblankFuncs # core.c - - -# jump_table 0x1013DD24 116 # gSpriteInits_Interactables -# jump_table 0x1013DEF4 21 # gSpriteInits_Enemies diff --git a/sa1/scripts/sound/SoundDumper.cs b/sa1/scripts/sound/SoundDumper.cs deleted file mode 100644 index 85f79662a5..0000000000 --- a/sa1/scripts/sound/SoundDumper.cs +++ /dev/null @@ -1,1177 +0,0 @@ -// Adapted from https://gist.github.com/Normmatt/e00ea0c5da509568959bde52754f213e -// Key split table is supported in https://gist.github.com/Normmatt/f4e768f0e1c30dea3835098db744297a, but I don't need it here :) - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace dump_sound -{ - class SoundDumper - { - static int MPlayTableAdr = 0x086DD760; - static int NumMPlayers = 4; - static int SongTableAdr = 0x086DD790; - static int NumSongs = 308; - - static int VoiceGroupEndAdr = 0x086DD664; - static int KeySplitEndAdr = 0x086DD6D0; - - static SortedDictionary soundInfo = new SortedDictionary(); - static byte[] rom; - static List voicegroups = new List(); - static List keysplits = new List(); - static List offsets = new List(); - - static Dictionary MML = new Dictionary() - { - {0x80, "W00" }, - {0x81, "W01" }, - {0x82, "W02" }, - {0x83, "W03" }, - {0x84, "W04" }, - {0x85, "W05" }, - {0x86, "W06" }, - {0x87, "W07" }, - {0x88, "W08" }, - {0x89, "W09" }, - {0x8A, "W10" }, - {0x8B, "W11" }, - {0x8C, "W12" }, - {0x8D, "W13" }, - {0x8E, "W14" }, - {0x8F, "W15" }, - {0x90, "W16" }, - {0x91, "W17" }, - {0x92, "W18" }, - {0x93, "W19" }, - {0x94, "W20" }, - {0x95, "W21" }, - {0x96, "W22" }, - {0x97, "W23" }, - {0x98, "W24" }, - {0x99, "W28" }, - {0x9A, "W30" }, - {0x9B, "W32" }, - {0x9C, "W36" }, - {0x9D, "W40" }, - {0x9E, "W42" }, - {0x9F, "W44" }, - {0xA0, "W48" }, - {0xA1, "W52" }, - {0xA2, "W54" }, - {0xA3, "W56" }, - {0xA4, "W60" }, - {0xA5, "W64" }, - {0xA6, "W66" }, - {0xA7, "W68" }, - {0xA8, "W72" }, - {0xA9, "W76" }, - {0xAA, "W78" }, - {0xAB, "W80" }, - {0xAC, "W84" }, - {0xAD, "W88" }, - {0xAE, "W90" }, - {0xAF, "W92" }, - {0xB0, "W96" }, - {0xB1, "FINE" }, - {0xB2, "GOTO" }, - {0xB3, "PATT" }, - {0xB4, "PEND" }, - {0xB5, "REPT" }, - {0xB9, "MEMACC" }, - {0xBA, "PRIO" }, - {0xBB, "TEMPO" }, - {0xBC, "KEYSH" }, - {0xBD, "VOICE" }, - {0xBE, "VOL" }, - {0xBF, "PAN" }, - {0xC0, "BEND" }, - {0xC1, "BENDR" }, - {0xC2, "LFOS" }, - {0xC3, "LFODL" }, - {0xC4, "MOD" }, - {0xC5, "MODT" }, - {0xC8, "TUNE" }, - {0xCD, "XCMD" }, - {0x08, "xIECV" }, - {0x09, "xIECL" }, - {0xCE, "EOT" }, - {0xCF, "TIE" }, - {0xD0, "N01" }, - {0xD1, "N02" }, - {0xD2, "N03" }, - {0xD3, "N04" }, - {0xD4, "N05" }, - {0xD5, "N06" }, - {0xD6, "N07" }, - {0xD7, "N08" }, - {0xD8, "N09" }, - {0xD9, "N10" }, - {0xDA, "N11" }, - {0xDB, "N12" }, - {0xDC, "N13" }, - {0xDD, "N14" }, - {0xDE, "N15" }, - {0xDF, "N16" }, - {0xE0, "N17" }, - {0xE1, "N18" }, - {0xE2, "N19" }, - {0xE3, "N20" }, - {0xE4, "N21" }, - {0xE5, "N22" }, - {0xE6, "N23" }, - {0xE7, "N24" }, - {0xE8, "N28" }, - {0xE9, "N30" }, - {0xEA, "N32" }, - {0xEB, "N36" }, - {0xEC, "N40" }, - {0xED, "N42" }, - {0xEE, "N44" }, - {0xEF, "N48" }, - {0xF0, "N52" }, - {0xF1, "N54" }, - {0xF2, "N56" }, - {0xF3, "N60" }, - {0xF4, "N64" }, - {0xF5, "N66" }, - {0xF6, "N68" }, - {0xF7, "N72" }, - {0xF8, "N76" }, - {0xF9, "N78" }, - {0xFA, "N80" }, - {0xFB, "N84" }, - {0xFC, "N88" }, - {0xFD, "N90" }, - {0xFE, "N92" }, - {0xFF, "N96" }, - }; - - static string[] MemSet = - { - "mem_set", - "mem_add", - "mem_sub", - "mem_mem_set", - "mem_mem_add", - "mem_mem_sub", - "mem_beq", - "mem_bne", - "mem_bhi", - "mem_bhs", - "mem_bls", - "mem_blo", - "mem_mem_beq", - "mem_mem_bne", - "mem_mem_bhi", - "mem_mem_bhs", - "mem_mem_bls", - "mem_mem_blo", - }; - - static string[] Keys = - { - "CnM2", - "CsM2", - "DnM2", - "DsM2", - "EnM2", - "FnM2", - "FsM2", - "GnM2", - "GsM2", - "AnM2", - "AsM2", - "BnM2", - "CnM1", - "CsM1", - "DnM1", - "DsM1", - "EnM1", - "FnM1", - "FsM1", - "GnM1", - "GsM1", - "AnM1", - "AsM1", - "BnM1", - "Cn0", - "Cs0", - "Dn0", - "Ds0", - "En0", - "Fn0", - "Fs0", - "Gn0", - "Gs0", - "An0", - "As0", - "Bn0", - "Cn1", - "Cs1", - "Dn1", - "Ds1", - "En1", - "Fn1", - "Fs1", - "Gn1", - "Gs1", - "An1", - "As1", - "Bn1", - "Cn2", - "Cs2", - "Dn2", - "Ds2", - "En2", - "Fn2", - "Fs2", - "Gn2", - "Gs2", - "An2", - "As2", - "Bn2", - "Cn3", - "Cs3", - "Dn3", - "Ds3", - "En3", - "Fn3", - "Fs3", - "Gn3", - "Gs3", - "An3", - "As3", - "Bn3", - "Cn4", - "Cs4", - "Dn4", - "Ds4", - "En4", - "Fn4", - "Fs4", - "Gn4", - "Gs4", - "An4", - "As4", - "Bn4", - "Cn5", - "Cs5", - "Dn5", - "Ds5", - "En5", - "Fn5", - "Fs5", - "Gn5", - "Gs5", - "An5", - "As5", - "Bn5", - "Cn6", - "Cs6", - "Dn6", - "Ds6", - "En6", - "Fn6", - "Fs6", - "Gn6", - "Gs6", - "An6", - "As6", - "Bn6", - "Cn7", - "Cs7", - "Dn7", - "Ds7", - "En7", - "Fn7", - "Fs7", - "Gn7", - "Gs7", - "An7", - "As7", - "Bn7", - "Cn8", - "Cs8", - "Dn8", - "Ds8", - "En8", - "Fn8", - "Fs8", - "Gn8", - }; - - static Dictionary SongsWithTrackAlignment = new Dictionary() - { - {"song785", true}, - {"song805", true}, - {"song806", true}, - {"song807", true}, - {"song811", true}, - {"song815", true}, - {"song816", true}, - {"song962", true}, - }; - - static byte ReadU8(int ofs) - { - if (ofs > 0x08000000) - ofs -= 0x08000000; - - return rom[ofs]; - } - - static ushort ReadU16(int ofs) - { - if (ofs > 0x08000000) - ofs -= 0x08000000; - - return BitConverter.ToUInt16(rom, ofs); - } - - static int ReadU32(int ofs) - { - if (ofs > 0x08000000) - ofs -= 0x08000000; - - return BitConverter.ToInt32(rom, ofs); - } - - static string PrintMPlayTable(int ofs) - { - if(!offsets.Contains(ofs)) offsets.Add(ofs); - var sb = new StringBuilder(); - - sb.Append("\t.align 2\n"); - sb.AppendFormat("\t.global gMPlayTable\n"); - sb.AppendFormat("gMPlayTable:\t@ 0x{0:X8}\n", ofs); - for (int i = 0; i < NumMPlayers; i++) - { - var playInfo = ReadU32(ofs + 0); - var trackInfo = ReadU32(ofs + 4); - var unk1 = ReadU8(ofs + 8); - var unk2 = ReadU16(ofs + 10); - sb.AppendFormat("\tmusic_player gUnknown_{0:X8}, gUnknown_{1:X8}, {2}, {3}\n", playInfo, trackInfo, unk1, unk2); - ofs += 12; - } - - return sb.ToString(); - } - - static void DumpProgrammableWaveSample(int ofs, int len) - { - if(!offsets.Contains(ofs)) offsets.Add(ofs); - if (soundInfo.ContainsKey(ofs)) return; - - var sb = new StringBuilder(); - var filename = String.Format("{0:X8}.pcm", ofs); - var outfilename = String.Format("sound/sa1/programmable_wave_samples/{0}", filename); - - sb.Append("\t.align 2\n"); - sb.AppendFormat("\t.global ProgrammableWaveData_{0:X7}\n", ofs); - sb.AppendFormat("ProgrammableWaveData_{0:X7}:\n", ofs); - sb.AppendFormat("\t.incbin \"sound/sa1/programmable_wave_samples/{0}\"\n", filename); - soundInfo.Add(ofs, sb.ToString()); - - Directory.CreateDirectory("sound/sa1/programmable_wave_samples/"); - - byte[] data = new byte[len]; - - if (ofs > 0x08000000) - ofs -= 0x08000000; - - Array.Copy(rom, ofs, data, 0, data.Length); - - File.WriteAllBytes(outfilename, data); - } - - static void DumpDirectSoundSample(int ofs) - { - if (ofs == 0) return; - if(!offsets.Contains(ofs)) offsets.Add(ofs); - if (soundInfo.ContainsKey(ofs)) return; - - var sb = new StringBuilder(); - var filename = String.Format("{0:X8}.bin", ofs); - var outfilename = String.Format("sound/sa1/direct_sound_samples/{0}", filename); - - sb.Append("\t.align 2\n"); - sb.AppendFormat("\t.global gUnknown_{0:X8}\n", ofs); - sb.AppendFormat("gUnknown_{0:X8}:\n", ofs); - sb.AppendFormat("\t.incbin \"sound/sa1/direct_sound_samples/{0}\"\n", filename); - soundInfo.Add(ofs, sb.ToString()); - - Directory.CreateDirectory("sound/sa1/direct_sound_samples/"); - - var type = ReadU16(ofs + 0); - var status = ReadU16(ofs + 2); - var freq = ReadU32(ofs + 4); - var loopStart = ReadU32(ofs + 8); - var size = ReadU32(ofs + 12); - byte[] data = new byte[size + 0x10 + 1]; - - if (ofs > 0x08000000) - ofs -= 0x08000000; - Array.Copy(rom, ofs, data, 0, data.Length); - - File.WriteAllBytes(outfilename, data); - } - - static string PrintVoiceGroup(int ofs, int len, int id) - { - if(!offsets.Contains(ofs)) offsets.Add(ofs); - - var sb = new StringBuilder(); - var filename = String.Format("voicegroup{0:d3}.inc", id); - var outfilename = String.Format("sound/sa1/voicegroups/{0}", filename); - - sb.Append("\t.align 2\n"); - sb.AppendFormat("\t@********************** Voicegroup **********************@\n\n"); - sb.AppendFormat("\t.global voicegroup{0:d3}\n", id); - sb.AppendFormat("voicegroup{0:d3}:\t@ 0x{1:X8}\n", id, ofs); - - int i = 0; - while (i < len) - { - int tOfs = ofs + i; - var type = ReadU8(ofs + i++); - Debug.WriteLine("WTF 0x{0:X8} type=0x{1:X2}", tOfs, type); - switch (type) - { - case 0x00: //voice_directsound - case 0x08: //voice_directsound_no_resample - case 0x10: //voice_directsound_alt - { - //base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - var base_midi_key = ReadU8(ofs + i); - i += 2; - var pan = ReadU8(ofs + i) & 0x7F; - i++; - var sample_data_pointer = ReadU32(ofs + i); - i += 4; - var attack = ReadU8(ofs + i++); - var decay = ReadU8(ofs + i++); - var sustain = ReadU8(ofs + i++); - var release = ReadU8(ofs + i++); - - DumpDirectSoundSample(sample_data_pointer); - - switch (type) - { - case 0x00: //voice_directsound - sb.AppendFormat("\tvoice_directsound {0}, {1}, gUnknown_{2:X8}, {3}, {4}, {5}, {6}\t@{7:X8}\n", base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release, tOfs); - break; - case 0x08: //voice_directsound_no_resample - sb.AppendFormat("\tvoice_directsound_no_resample {0}, {1}, gUnknown_{2:X8}, {3}, {4}, {5}, {6}\t@{7:X8}\n", base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release, tOfs); - break; - case 0x10: //voice_directsound_alt - sb.AppendFormat("\tvoice_directsound_alt {0}, {1}, gUnknown_{2:X8}, {3}, {4}, {5}, {6}\t@{7:X8}\n", base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release, tOfs); - break; - } - } - break; - case 0x01: //voice_square_1 - case 0x09: //voice_square_1_alt - { - //sweep, duty_cycle, attack, decay, sustain, release - i++; - i++; - var sweep = ReadU8(ofs + i++); - var duty_cycle = ReadU8(ofs + i++); - i++; - i++; - i++; - var attack = ReadU8(ofs + i++); - var decay = ReadU8(ofs + i++); - var sustain = ReadU8(ofs + i++); - var release = ReadU8(ofs + i++); - - switch (type) - { - case 0x01: //voice_square_1 - sb.AppendFormat("\tvoice_square_1 {0}, {1}, {2}, {3}, {4}, {5}\t@{6:X8}\n", sweep, duty_cycle, attack, decay, sustain, release, tOfs); - break; - case 0x09: //voice_square_1_alt - sb.AppendFormat("\tvoice_square_1_alt {0}, {1}, {2}, {3}, {4}, {5}\t@{6:X8}\n", sweep, duty_cycle, attack, decay, sustain, release, tOfs); - break; - } - } - break; - case 0x02: //voice_square_2 - case 0x0A: //voice_square_2_alt - { - // duty_cycle, attack, decay, sustain, release - i++; - i++; - i++; - var duty_cycle = ReadU8(ofs + i++); - i++; - i++; - i++; - var attack = ReadU8(ofs + i++); - var decay = ReadU8(ofs + i++); - var sustain = ReadU8(ofs + i++); - var release = ReadU8(ofs + i++); - - switch (type) - { - case 0x02: //voice_square_2 - sb.AppendFormat("\tvoice_square_2 {0}, {1}, {2}, {3}, {4}\t@{5:X8}\n", duty_cycle, attack, decay, sustain, release, tOfs); - break; - case 0x0A: //voice_square_2_alt - sb.AppendFormat("\tvoice_square_2_alt {0}, {1}, {2}, {3}, {4}\t@{5:X8}\n", duty_cycle, attack, decay, sustain, release, tOfs); - break; - } - } - break; - case 0x03: //voice_programmable_wave - case 0x0B: //voice_programmable_wave_alt - { - //wave_samples_pointer, attack, decay, sustain, release - i++; - i++; - i++; - var wave_samples_pointer = ReadU32(ofs + i); - i += 4; - var attack = ReadU8(ofs + i++); - var decay = ReadU8(ofs + i++); - var sustain = ReadU8(ofs + i++); - var release = ReadU8(ofs + i++); - - DumpProgrammableWaveSample(wave_samples_pointer, 16); - - switch (type) - { - case 0x03: //voice_square_2 - sb.AppendFormat("\tvoice_programmable_wave ProgrammableWaveData_{0:X7}, {1}, {2}, {3}, {4}\t@{5:X8}\n", wave_samples_pointer, attack, decay, sustain, release, tOfs); - break; - case 0x0B: //voice_square_2_alt - sb.AppendFormat("\tvoice_programmable_wave_alt ProgrammableWaveData_{0:X7}, {1}, {2}, {3}, {4}\t@{5:X8}\n", wave_samples_pointer, attack, decay, sustain, release, tOfs); - break; - } - } - break; - case 0x04: //voice_noise - case 0x0C: //voice_noise_alt - { - // duty_cycle, attack, decay, sustain, release - var unk1 = ReadU8(ofs + i++); - var unk2 = ReadU8(ofs + i++); - var unk3 = ReadU8(ofs + i++); - var period = ReadU8(ofs + i++); - i++; - i++; - i++; - var attack = ReadU8(ofs + i++); - var decay = ReadU8(ofs + i++); - var sustain = ReadU8(ofs + i++); - var release = ReadU8(ofs + i++); - - switch (type) - { - case 0x04: //voice_noise - sb.AppendFormat("\tvoice_noise {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}\t@{8:X8}\n", unk1, unk2, unk3, period, attack, decay, sustain, release, tOfs); - break; - case 0x0C: //voice_noise_alt - sb.AppendFormat("\tvoice_noise_alt {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}\t@{8:X8}\n", unk1, unk2, unk3, period, attack, decay, sustain, release, tOfs); - break; - } - } - break; - case 0x40: //voice_keysplit - { - //voice_group_pointer, keysplit_table_pointer - i++; - i++; - i++; - var voice_group_pointer = ReadU32(ofs + i); - i += 4; - var keysplit_table_pointer = ReadU32(ofs + i); - i += 4; - - if (!offsets.Contains(voice_group_pointer)) offsets.Add(voice_group_pointer); - if (!offsets.Contains(keysplit_table_pointer)) offsets.Add(keysplit_table_pointer); - - if (!voicegroups.Contains(voice_group_pointer)) - voicegroups.Add(voice_group_pointer); - if (!keysplits.Contains(keysplit_table_pointer)) - keysplits.Add(keysplit_table_pointer); - - sb.AppendFormat("\tvoice_keysplit voicegroup{0:d3}, KeySplitTable{1:d3}\t@{2:X8}\n", voicegroups.IndexOf(voice_group_pointer), keysplits.IndexOf(keysplit_table_pointer), tOfs); - } - break; - case 0x80: //voice_keysplit_all - { - //voice_group_pointer - i++; - i++; - i++; - var voice_group_pointer = ReadU32(ofs + i); - i += 4; - i += 4; - - if (!offsets.Contains(voice_group_pointer)) offsets.Add(voice_group_pointer); - - if (!voicegroups.Contains(voice_group_pointer)) - voicegroups.Add(voice_group_pointer); - - sb.AppendFormat("\tvoice_keysplit_all voicegroup{0:d3}\t@{1:X8}\n", voicegroups.IndexOf(voice_group_pointer), tOfs); - } - break; - default: - throw new Exception("FUCK!"); - break; - } - } - - - Directory.CreateDirectory("sound/sa1/voicegroups/"); - File.WriteAllText(outfilename, sb.ToString()); - - return sb.ToString(); - } - - static string PrintSongTrack(int idx, int ofs, int len, int song_ofs, string name) - { - if(!offsets.Contains(ofs)) offsets.Add(ofs); - var sb = new StringBuilder(); - - sb.AppendFormat("\n\t@********************** Track {0} **********************@\n\n", idx); - if (idx == 1 || SongsWithTrackAlignment.ContainsKey(name)) - { - sb.Append("\t.align 2\n"); - } - sb.AppendFormat("\t.global {0}_{1}\n", name, idx); - sb.AppendFormat("{0}_{1}:\t@ 0x{2:X8}\n", name, idx, ofs); - - var localLabels = new Dictionary(); - - var localLabelId = 0; - - for (int i = 0; i < len; i++) - { - //TODO: Make this print nicer? - var cmd = ReadU8(ofs + i); - switch (cmd) - { - case 0xB2: //GOTO - case 0xB3: //PATT - case 0xB5: //REPT - { - if (cmd == 0xB5) - { - i++; - } - var adr = ReadU32(ofs + i + 1); - if (!localLabels.ContainsKey(adr)) - { - localLabelId++; - localLabels.Add(adr, string.Format("{0}_{1}_{2}", name, idx, localLabelId)); - } - i += 4; - break; - } - default: - break; - } - } - - byte prev = 0; - var fine = false; - for (int i = 0; i < len && !fine; i++) - { - var cmd = ReadU8(ofs + i); - - if (localLabels.ContainsKey(ofs + i)) - sb.AppendFormat("{0}:\n", localLabels[ofs + i]); - - sb.Append("\t.byte\t"); - - var cmdName = ""; - if (cmd >= 0x80) - { - cmdName = MML[cmd]; - } - if (cmd < 0x80 && prev > 0) - { - cmd = prev; - i--; - } - - switch (cmd) - { - case 0xCE: // EOT - case 0xCF: // TIE - case 0xD0: // N01 - case 0xD1: - case 0xD2: - case 0xD3: - case 0xD4: - case 0xD5: - case 0xD6: - case 0xD7: - case 0xD8: - case 0xD9: - case 0xDA: - case 0xDB: - case 0xDC: - case 0xDD: - case 0xDE: - case 0xDF: - case 0xE0: - case 0xE1: - case 0xE2: - case 0xE3: - case 0xE4: - case 0xE5: - case 0xE6: - case 0xE7: - case 0xE8: - case 0xE9: - case 0xEA: - case 0xEB: - case 0xEC: - case 0xED: - case 0xEE: - case 0xEF: - case 0xF0: - case 0xF1: - case 0xF2: - case 0xF3: - case 0xF4: - case 0xF5: - case 0xF6: - case 0xF7: - case 0xF8: - case 0xF9: - case 0xFA: - case 0xFB: - case 0xFC: - case 0xFD: - case 0xFE: - case 0xFF: // N96 - { - sb.AppendFormat("\t{0}\t", cmdName); - var key = ReadU8(ofs + i + 1); - if (key < 0x80) - { - if (cmdName.Length > 0) - { - sb.Append(", "); - } - sb.Append(Keys[key]); - i++; - } - var velo = ReadU8(ofs + i + 1); - if (cmd > 0xCE && velo < 0x80) - { - sb.AppendFormat(", v{0:d3}", velo); - i++; - } - var gtp = ReadU8(ofs + i + 1); - if (cmd > 0xCF && gtp < 0x80) - { - sb.AppendFormat(", {0}", gtp); - i++; - } - prev = cmd; - break; - } - case 0xB9: // MEMACC (unused in Fire Emblem 8) - { - var mem_set = ReadU8(ofs + i + 1); - var adr = ReadU8(ofs + i + 2); - var dat = ReadU8(ofs + i + 3); - sb.AppendFormat("MEMACC\t, {0}\t, 0x{1:X2}, {2}", MemSet[mem_set], adr, dat); - i += 3; - if (mem_set > 5) - { - var dest = ReadU8(ofs + i + 1); - sb.AppendFormat("\n\t\t.word\t0x{0:X8}", dest); - i += 4; - } - break; - } - case 0xCD: // XCMD - { - sb.AppendFormat("\t{0}\t", cmdName); - var xIECX = ReadU8(ofs + i + 1); - if (cmdName.Length > 0) - { - sb.Append(", "); - } - sb.Append(MML[xIECX]); - i++; - prev = cmd; - break; - } - case 0xB2: //GOTO - case 0xB3: //PATT - case 0xB5: //REPT - { - sb.AppendFormat("{0}\t", cmdName); - if (cmd == 0xB5) - { - var count = ReadU8(ofs + i + 1); - sb.AppendFormat(", {0}", count); - i++; - } - var adr = ReadU32(ofs + i + 1); - sb.AppendFormat("\n\t\t.word\t{0}", localLabels[adr]); - i += 4; - break; - } - case 0x80: // W00 - case 0x81: - case 0x82: - case 0x83: - case 0x84: - case 0x85: - case 0x86: - case 0x87: - case 0x88: - case 0x89: - case 0x8A: - case 0x8B: - case 0x8C: - case 0x8D: - case 0x8E: - case 0x8F: - case 0x90: - case 0x91: - case 0x92: - case 0x93: - case 0x94: - case 0x95: - case 0x96: - case 0x97: - case 0x98: - case 0x99: - case 0x9A: - case 0x9B: - case 0x9C: - case 0x9D: - case 0x9E: - case 0x9F: - case 0xA0: - case 0xA1: - case 0xA2: - case 0xA3: - case 0xA4: - case 0xA5: - case 0xA6: - case 0xA7: - case 0xA8: - case 0xA9: - case 0xAA: - case 0xAB: - case 0xAC: - case 0xAD: - case 0xAE: - case 0xAF: - case 0xB0: // W96 - case 0xB1: // FINE - case 0xB4: // PEND - { - sb.Append(cmdName); - if (cmd == 0xB1) - { - fine = true; - } - break; - } - case 0xBA: // PRIO - case 0xBB: // TEMPO - case 0xBC: // KEYSH - case 0xC2: // LFOS - case 0xC3: // LFODL - case 0xC5: // MODT - { - sb.AppendFormat("{0}\t", cmdName); - var arg = ReadU8(ofs + i + 1); - if (cmdName.Length > 0) - { - sb.Append(", "); - } - sb.AppendFormat("{0}", arg); - i++; - break; - } - case 0xBD: // VOICE - case 0xBE: // VOL - case 0xBF: // PAN - case 0xC0: // BEND - case 0xC1: // BENDR - case 0xC4: // MOD - case 0xC8: // TUNE - { - var arg = ReadU8(ofs + i + 1); - var argStr = String.Format("{0}", arg); - if (cmd == 0xBF || cmd == 0xC0 || cmd == 0xC8) - { - argStr = "c_v"; - if (arg > 64) - { - argStr = String.Format("{0}+{1}", argStr, arg - 64); - } - if (arg < 64) - { - argStr = String.Format("{0}-{1}", argStr, 64 - arg); - } - } - if (cmd == 0xBE) - { - argStr = String.Format("v{0:d3}", arg); - } - sb.AppendFormat("{0}\t",cmdName); - if (cmdName.Length > 0) - { - sb.Append(", "); - } - sb.Append(argStr); - i++; - prev = cmd; - break; - } - default: - { - //sb.AppendFormat("0x{0:X2}", cmd); - //break; - throw new Exception("Invalid cmd!"); - } - } - - sb.Append("\n"); - } - - return sb.ToString(); - } - - static string PrintSong(int ofs, int id) - { - if(!offsets.Contains(ofs)) offsets.Add(ofs); - var sb = new StringBuilder(); - var sbt = new StringBuilder(); - var currName = String.Format("song{0:d3}", id); - var realName = currName; - if (soundInfo.ContainsKey(ofs)) - { - int pos = soundInfo[ofs].IndexOf(".global song"); - realName = soundInfo[ofs].Substring(pos + 8, 7); - } - var filename = String.Format("{0}.s", realName); - var outfilename = String.Format("sound/sa1/songs/{0}", filename); - - sbt.Append("\t.include \"MPlayDef.s\"\n\n"); - sbt.Append("\t.section .rodata\n"); - - sb.Append("\n\t.align 2\n"); - sb.AppendFormat("\t.global {0}\n", realName); - sb.AppendFormat("{0}:\t@ 0x{1:X8}\n", realName, ofs); - - var trackCount = ReadU8(ofs + 0); - var blockCount = ReadU8(ofs + 1); - var priority = ReadU8(ofs + 2); - var reverb = ReadU8(ofs + 3); - var tone = ReadU32(ofs + 4); - - sb.AppendFormat("\t.byte\t{0}\t\t@ trackCount\n", trackCount); - sb.AppendFormat("\t.byte\t{0}\t\t@ blockCount\n", blockCount); - sb.AppendFormat("\t.byte\t{0}\t\t@ priority\n", priority); - sb.AppendFormat("\t.byte\t{0}\t\t@ reverb\n\n", reverb); - if (id > 0) - { - if (!soundInfo.ContainsKey(tone) || !soundInfo[tone].Contains(".global voicegroup")) - { - sb.AppendFormat("\t.word\tgUnknown_{0:X8}\t\t@ voicegroup/tone\n\n", tone); - } - else - { - int pos = soundInfo[tone].IndexOf(".global voicegroup"); - sb.AppendFormat("\t.word\t{0}\t\t@ voicegroup/tone\n\n", soundInfo[tone].Substring(pos + 8, 13)); - } - } - - /*if (!soundInfo.ContainsKey(tone)) - soundInfo.Add(tone, PrintVoiceGroup(tone, VoiceGroupLen));*/ - if (trackCount > 0 && !voicegroups.Contains(tone)) - voicegroups.Add(tone); - - for (int i = 0; i < trackCount; i++) - { - var part = ReadU32(ofs + 8 + (4 * i)); - int nextpart; - - if (i + 1 >= trackCount) - { - //TODO: Is this a safe assumption? - nextpart = ofs; - } - else - { - nextpart = ReadU32(ofs + 8 + (4 * (i + 1))); - } - - sb.AppendFormat("\t.word\t{0}_{1}\t\t@ track\n", realName, i + 1); - - var st = PrintSongTrack(i + 1, part, nextpart - part, ofs, realName); - sbt.Append(st); - if (!soundInfo.ContainsKey(part)) - soundInfo.Add(part, st); - } - - if (String.Compare(realName, currName) == 0) - { - // int[] goodSongs = { - // 114, 228, 244, 273, 282, - // 286, 296, 222, 231, 259, - // 280, 283, 288, 224, 237, - // 270, 281, 285, 290 - // }; - int[] goodSongs = { - 23 - }; - - if (goodSongs.Contains(id) || true) { - Directory.CreateDirectory("sound/sa1/songs/"); - File.WriteAllText(outfilename, sbt.ToString() + sb.ToString()); - } - } - - return sbt.ToString() + sb.ToString(); - } - - static string PrintSongTable(int ofs) - { - if(!offsets.Contains(ofs)) offsets.Add(ofs); - var sb = new StringBuilder(); - - sb.Append("\t.align 2\n"); - sb.AppendFormat("\t.global gSongTable\n"); - sb.AppendFormat("gSongTable:\t@ 0x{0:X8}\n", ofs); - for (int i = 0; i < NumSongs; i++) - { - var header = ReadU32(ofs + 0); - var ms = ReadU16(ofs + 4); - var me = ReadU16(ofs + 6); - - //todo rip song - if (!soundInfo.ContainsKey(header)) - soundInfo.Add(header, PrintSong(header, i)); - else - soundInfo[header] = PrintSong(header, i); - - int pos = soundInfo[header].IndexOf(".global song"); - sb.AppendFormat("\tsong {0}, {1}, {2}\n", soundInfo[header].Substring(pos + 8, 7), ms, me); - - ofs += 8; - } - - return sb.ToString(); - } - - static string PrintKeySplit(int ofs, int len) - { - if (!offsets.Contains(ofs)) offsets.Add(ofs); - var sb = new StringBuilder(); - - sb.Append("\t.align 2\n"); - sb.AppendFormat("\t@********************** KeySplit **********************@\n\n"); - sb.AppendFormat("\t.global KeySplitTable{0:d3}\n", keysplits.IndexOf(ofs)); - sb.AppendFormat("KeySplitTable{0:d3}:\t@ 0x{0:X8}\n", keysplits.IndexOf(ofs), ofs); - - int i = 0; - while (i < len) - { - var val = ReadU8(ofs + i++); - sb.AppendFormat("\t.byte\t{0}\n", val); - } - - return sb.ToString(); - } - - static void Main(string[] args) - { - rom = File.ReadAllBytes("baserom_sa1.gba"); - - soundInfo.Add(MPlayTableAdr, PrintMPlayTable(MPlayTableAdr)); - PrintSongTable(SongTableAdr); - - voicegroups.Add(VoiceGroupEndAdr); - voicegroups.Sort(); - for (int i = 0; i < voicegroups.Count - 1; i++) - { - int start = voicegroups[i]; - int end = voicegroups[i + 1]; - PrintVoiceGroup(start, end - start, i); - } - - voicegroups.Sort(); - for (int i = 0; i < voicegroups.Count - 1; i++) - { - int start = voicegroups[i]; - int end = voicegroups[i + 1]; - soundInfo.Add(start, PrintVoiceGroup(start, end - start, i)); - } - - //Sort all offsets - keysplits.Sort(); - offsets.Sort(); - var lastKetSplitAdr = keysplits[keysplits.Count - 1]; - var keySplitEndAdr = 0; - for (int i = 0; i < offsets.Count; i++) - { - if ((offsets[i] > lastKetSplitAdr)) - { - keySplitEndAdr = offsets[i]; - break; - } - - } - - keysplits.Add(keySplitEndAdr); - //keysplits.Add(KeySplitEndAdr); - keysplits.Sort(); - for (int i = 0; i < keysplits.Count - 1; i++) - { - int start = keysplits[i]; - int end = keysplits[i + 1]; - soundInfo.Add(start, PrintKeySplit(start, end - start)); - } - - soundInfo.Add(SongTableAdr, PrintSongTable(SongTableAdr)); - - var sb = new StringBuilder(); - string prev = "songxxx"; - foreach (var adr in soundInfo) - { - if (adr.Value.Contains(".global voicegroup")) - { - int pos = adr.Value.IndexOf(".global voicegroup"); - sb.AppendFormat(".include \"sound/sa1/voicegroups/{0}.inc\"\n", adr.Value.Substring(pos + 8, 13)); - continue; - } - - if (adr.Value.Contains(".global song")) - { - int pos = adr.Value.IndexOf(".global song"); - string curr = adr.Value.Substring(pos + 8, 7); - if (String.Compare(curr, prev) != 0) { - sb.AppendFormat(".include \"sound/sa1/songs/{0}.inc\"\n", curr); - prev = curr; - } - continue; - } - sb.Append(adr.Value); - sb.Append("\n"); - } - - File.WriteAllText("sound.s", sb.ToString()); - } - } -} diff --git a/sa1/scripts/sound/add_global_voicegroups.py b/sa1/scripts/sound/add_global_voicegroups.py deleted file mode 100644 index 28637f93d4..0000000000 --- a/sa1/scripts/sound/add_global_voicegroups.py +++ /dev/null @@ -1,17 +0,0 @@ -import os - -for file_name in os.listdir("voicegroups"): - with open("voicegroups/" + file_name) as vg_file: - contents = "".join(vg_file.readlines()) - if ".global" in contents: - continue - - contents = \ - contents.replace( - " .align 2\n", - " .align 2\n" + - f" .global {file_name.split('.')[0]}\n" - ) - - with open("voicegroups/" + file_name, 'w') as write_file: - write_file.write(contents) diff --git a/sa1/scripts/sound/edit_time_signature.py b/sa1/scripts/sound/edit_time_signature.py deleted file mode 100644 index 622f8ebd3e..0000000000 --- a/sa1/scripts/sound/edit_time_signature.py +++ /dev/null @@ -1,29 +0,0 @@ -import py_midicsv as pm -import sys - -matched_signatures = { - "song0405": "5/4", - "song0406": "13/4" -} - - -data = pm.midi_to_csv(f'sound/sa1/songs/midi/{sys.argv[1]}.mid') - -for i in range(len(data)): - line = data[i] - - if 'Time_signature' in line: - print(line) - new_data = line.split(', ') - - # Set the time signature - new_data[3] = sys.argv[2] - new_data[4] = str(int(sys.argv[3]) // 2) - - data[i] = ", ".join(new_data) - -midi_object = pm.csv_to_midi(data) - -with open(f'sound/sa1/songs/midi/{sys.argv[1]}.mid', "wb") as output_file: - midi_writer = pm.FileWriter(output_file) - midi_writer.write(midi_object) diff --git a/sa1/scripts/sound/extract_non_matching_songs.py b/sa1/scripts/sound/extract_non_matching_songs.py deleted file mode 100644 index f90b3e2a51..0000000000 --- a/sa1/scripts/sound/extract_non_matching_songs.py +++ /dev/null @@ -1,33 +0,0 @@ -ids = [ 9, 13, 14, 15, 16 ] -exclude = [1,2,3,4,5,6,7] - -header = """ - .align 2 - @********************** Track 1 **********************@ -""" - -with open('songs_reference_data.inc') as songs: - data = "".join(songs.readlines()) - - for section in data.split(header): - if " .global" not in section: - continue - - section_song_name = section.split(" .global ")[1].split("_1")[0] - print(section_song_name) - - no_process = False - for id in exclude: - id_song_name = f"song{id:04d}" - if section_song_name == id_song_name: - no_process = True - break - - if no_process: - continue - - with open("songs/" + section_song_name + ".s", "w") as f_song: - f_song.write('\t.include "MPlayDef.s"\n') - f_song.write("\t.section .rodata") - f_song.write(header) - f_song.write(section) diff --git a/sa1/scripts/sound/extract_songs_info.py b/sa1/scripts/sound/extract_songs_info.py deleted file mode 100644 index 24cd7f4809..0000000000 --- a/sa1/scripts/sound/extract_songs_info.py +++ /dev/null @@ -1,302 +0,0 @@ -from io import BufferedReader -import struct - -song_nums_to_names = { - # "song0001": "mus_intro", - # "song0002": "mus_title_fanfare", - # "song0106": "se_select", - # "song0107": "se_return", - # "song0108": "se_menu_cursor_move" -} - -song_volumes = { - 'song0001': 120, - 'song0002': 115, - 'song0003': 120, - 'song0004': 108, - 'song0005': 110, - # Not writing initial volume on track 7 - 'song0006': 105, - 'song0007': 108, - 'song0008': 108, - 'song0009': 61, - 'song0010': 115, - 'song0011': 111, - 'song0012': 110, - 'song0013': 127, - 'song0014': 110, - 'song0015': 110, - 'song0016': 110, - 'song0017': 110, - 'song0018': 110, - 'song0019': 105, - 'song0020': 110, - 'song0021': 110, - 'song0022': 110, - 'song0023': 110, - 'song0024': 110, - 'song0025': 110, - 'song0026': 110, - 'song0027': 90, - 'song0028': 115, - 'song0029': 115, - 'song0030': 115, - 'song0031': 115, - 'song0032': 115, - 'song0033': 103, - 'song0034': 117, - 'song0035': 110, - # Not writing initial volume on track 9 - 'song0036': 100, - 'song0037': 120, - 'song0038': 120, - 'song0039': 127, - 'song0040': 127, - 'song0041': 115, - 'song0042': 115, - 'song0043': 115, - 'song0044': 120, - 'song0045': 85, - 'song0046': 92, - 'song0047': 100, - 'song0048': 103, - 'song0049': 118, - 'song0050': 105, - 'song0051': 110, - 'song0052': 105, - 'song0053': 105, - 'song0054': 105, - 'song0102': 100, - 'song0103': 120, - 'song0104': 120, - 'song0105': 120, - 'song0106': 90, - 'song0107': 90, - 'song0108': 90, - 'song0109': 110, - 'song0110': 75, - 'song0111': 120, - 'song0112': 120, - 'song0113': 75, - 'song0114': 100, - 'song0115': 75, - 'song0116': 75, - 'song0117': 100, - 'song0118': 127, - 'song0119': 127, - 'song0120': 127, - 'song0121': 107, - 'song0122': 127, - 'song0123': 127, - 'song0124': 107, - 'song0125': 100, - 'song0126': 110, - 'song0127': 120, - 'song0128': 120, - 'song0129': 120, - 'song0130': 120, - 'song0131': 120, - 'song0132': 110, - 'song0133': 105, - 'song0134': 110, - 'song0135': 120, - 'song0136': 110, - 'song0137': 107, - 'song0138': 127, - 'song0139': 70, - 'song0140': 90, - 'song0141': 120, - 'song0142': 110, - 'song0143': 120, - 'song0144': 120, - 'song0145': 120, - 'song0146': 64, - 'song0147': 120, - 'song0148': 120, - 'song0149': 120, - 'song0150': 120, - 'song0151': 120, - 'song0152': 120, - 'song0153': 120, - 'song0154': 86, - 'song0155': 74, - 'song0156': 120, - 'song0157': 120, - 'song0158': 120, - 'song0159': 120, - 'song0160': 120, - 'song0161': 120, - 'song0162': 114, - 'song0163': 120, - 'song0164': 120, - 'song0166': 89, - 'song0167': 127, - 'song0168': 100, - 'song0169': 90, - 'song0170': 120, - 'song0171': 90, - 'song0172': 90, - 'song0173': 90, - 'song0174': 90, - 'song0175': 88, - 'song0176': 88, - 'song0177': 90, - 'song0178': 55, - 'song0179': 90, - 'song0180': 90, - 'song0181': 90, - 'song0182': 90, - 'song0183': 90, - 'song0184': 90, - 'song0185': 88, - 'song0188': 90, - 'song0189': 90, - 'song0190': 90, - 'song0191': 90, - 'song0192': 90, - 'song0193': 90, - 'song0194': 90, - 'song0195': 90, - 'song0196': 90, - 'song0198': 90, - 'song0199': 90, - 'song0200': 90, - 'song0201': 90, - 'song0202': 100, - 'song0203': 88, - 'song0204': 90, - 'song0205': 90, - 'song0206': 85, - 'song0207': 85, - 'song0208': 85, - 'song0209': 90, - 'song0210': 90, - 'song0211': 90, - 'song0212': 72, - 'song0213': 72, - 'song0214': 72, - 'song0215': 120, - 'song0216': 120, - 'song0217': 120, - 'song0218': 120, - 'song0219': 120, - 'song0220': 120, - 'song0221': 120, - 'song0222': 120, - 'song0223': 120, - 'song0224': 120, - 'song0301': 77, - 'song0302': 77, - 'song0303': 77, - 'song0304': 105, - 'song0305': 110, - 'song0306': 110, - 'song0307': 120, -} - -tone_to_vg = { - '86DB8AC': "voicegroup000", - '86DBCFC': "voicegroup001", - '86DBEAC': "voicegroup002", - '86DC128': "voicegroup003", - '86DC29C': "voicegroup004", - '86DC488': "voicegroup005", - '86DCA88': "voicegroup006", - '86DD088': "voicegroup007", -} - -play_table_addr = 0x086dd760 -num_players = 4 -song_table_addr = play_table_addr + (num_players * 12) -num_songs = 307 - -def addr_to_offset(addr): - if (addr > 0x08000000): - return addr - 0x08000000 - return addr - -def read_u8(rom: BufferedReader): - return struct.unpack('B', rom.read(1))[0] - -def read_u16(rom: BufferedReader): - return struct.unpack('H', rom.read(2))[0] - -def read_u32(rom: BufferedReader): - return struct.unpack('I', rom.read(4))[0] - - -def peek_bytes(rom: BufferedReader, num): - offset = rom.tell() - - peek = [] - for i in range(num): - peek.append(read_u8(rom)) - - rom.seek(offset) - return peek - - -def extract_song_compiler_config(data: BufferedReader, name: str): - block_count = read_u8(data) - priority = read_u8(data) - reverb = read_u8(data) - tone_addr = read_u32(data) - - vg = tone_to_vg[hex(tone_addr).split('0x')[1].upper()] - vg_id = int(vg.replace('voicegroup', '')) - - vol = song_volumes[name] - real_name = song_nums_to_names[name] if name in song_nums_to_names else name - - return f""" -$(MID_SUBDIR)/{real_name}.s: %.s: %.mid - $(MID) $< $@ -E -R{"$(STD_REVERB)" if reverb == 128 else reverb} -G{vg_id} {f"-P{priority}" if priority else ""} -V{vol} - """ - -def extract_from_song_table(rom: BufferedReader): - song_addr_to_name = {} - song_files = [] - - with open("new_songs.inc", "w") as f_song_table: - with open('new_songs.mk', "w") as f_songs_config: - f_song_table.write("\t.align 2\n") - f_song_table.write("\t.global gSongTable\n") - song_table_addr = hex(rom.tell() + 0x08000000).split("0x")[1] - f_song_table.write(f"gSongTable:\t@ 0x0{song_table_addr.upper()}\n") - - for song_num in range(num_songs): - song_addr = read_u32(rom) - ms = read_u16(rom) - me = read_u16(rom) - - - if song_addr not in song_addr_to_name: - song_name = f"song{song_num:04d}" - song_addr_to_name[song_addr] = song_name - - curr_offset = rom.tell() - - rom.seek(addr_to_offset(song_addr)) - track_count = read_u8(rom) - - if track_count != 0: - f_songs_config.write(extract_song_compiler_config(rom, song_name)) - song_files.append(f"build/sa2/sound/sa1/songs/midi/{song_name}.o(.rodata);") - else: - song_addr_to_name[song_addr] = "dummy_song_header" - - rom.seek(curr_offset) - - f_song_table.write(f"\tsong {song_addr_to_name[song_addr]}, {ms}, {me}\n") - - if "dummy_song_header" in list(song_addr_to_name.values()): - f_song_table.write("\n\t.align 2\n") - f_song_table.write("dummy_song_header:\n") - f_song_table.write("\t.byte 0, 0, 0, 0\n") - - print(song_addr_to_name) - print("\n".join(song_files)) - -with open('baserom_sa1.gba', 'rb') as rom: - rom.seek(addr_to_offset(song_table_addr)) - extract_from_song_table(rom) diff --git a/sa1/scripts/sound/extract_songs_info_chao_garden.py b/sa1/scripts/sound/extract_songs_info_chao_garden.py deleted file mode 100644 index d95131d44e..0000000000 --- a/sa1/scripts/sound/extract_songs_info_chao_garden.py +++ /dev/null @@ -1,143 +0,0 @@ -from io import BufferedReader -import struct - -song_nums_to_names = { - "song0001": "song0001", - "song0002": "song0002", - "song0106": "song0106", - "song0107": "song0107", - "song0108": "song0108" -} - -song_volumes = { - "song0001": 100, - "song0002": 120, - "song0004": 100, - "song0011": 85, - "song0012": 70, - "song0013": 66, - "song0014": 100, - "song0015": 80, - "song0016": 90, - "song0017": 68, - "song0018": 80, - "song0019": 95, - "song0020": 95, - "song0021": 95, - "song0022": 95, - "song0023": 115, - "song0024": 95, - "song0025": 95, - "song0026": 105, - "song0027": 95, - "song0028": 105, - "song0029": 70, - "song0030": 95, - "song0031": 127, - "song0032": 70, - "song0033": 127, - "song0034": 95, - "song0035": 100, - "song0036": 105, -} - -tone_to_vg = { - '2019D30': 'voicegroup000', - '201A180': 'voicegroup001', -} - -play_table_addr = 0x0201A474 -num_players = 4 -song_table_addr = 0x0201A4A4 -num_songs = 37 - -def addr_to_offset(addr): - if (addr > 0x02000000): - return addr - 0x02000000 - return addr - -def read_u8(rom: BufferedReader): - return struct.unpack('B', rom.read(1))[0] - -def read_u16(rom: BufferedReader): - return struct.unpack('H', rom.read(2))[0] - -def read_u32(rom: BufferedReader): - return struct.unpack('I', rom.read(4))[0] - - -def peek_bytes(rom: BufferedReader, num): - offset = rom.tell() - - peek = [] - for i in range(num): - peek.append(read_u8(rom)) - - rom.seek(offset) - return peek - - -def extract_song_compiler_config(data: BufferedReader, name: str): - block_count = read_u8(data) - priority = read_u8(data) - reverb = read_u8(data) - tone_addr = read_u32(data) - - vg = tone_to_vg[hex(tone_addr).split('0x')[1].upper()] - vg_id = int(vg.replace('voicegroup', '')) - - vol = song_volumes[name] - real_name = song_nums_to_names[name] if name in song_nums_to_names else name - - return f""" -$(MID_SUBDIR)/{real_name}.s: %.s: % - $(MID) $< $@ -E -R{"$(STD_REVERB)" if reverb == 128 else reverb} -G{vg_id} {f"-P{priority}" if priority else ""} -V{vol} - """ - -def extract_from_song_table(rom: BufferedReader): - song_addr_to_name = {} - song_files = [] - - with open("new_songs.inc", "w") as f_song_table: - with open('new_songs.mk', "w") as f_songs_config: - f_song_table.write("\t.align 2\n") - f_song_table.write("\t.global gSongTable\n") - song_table_addr = hex(rom.tell() + 0x08000000).split("0x")[1] - f_song_table.write(f"gSongTable:\t@ 0x0{song_table_addr.upper()}\n") - - for song_num in range(num_songs): - song_addr = read_u32(rom) - ms = read_u16(rom) - me = read_u16(rom) - - - if song_addr not in song_addr_to_name: - song_name = f"song{song_num:04d}" - song_addr_to_name[song_addr] = song_name - - curr_offset = rom.tell() - - rom.seek(addr_to_offset(song_addr)) - track_count = read_u8(rom) - - if track_count != 0: - f_songs_config.write(extract_song_compiler_config(rom, song_name)) - song_files.append(f"build/mb_chao_garden/sound/sa1/songs/midi/{song_name}.o(.rodata);") - else: - song_addr_to_name[song_addr] = "dummy_song_header" - - rom.seek(curr_offset) - - f_song_table.write(f"\tsong {song_addr_to_name[song_addr]}, {ms}, {me}\n") - - if "dummy_song_header" in list(song_addr_to_name.values()): - f_song_table.write("\n\t.align 2\n") - f_song_table.write("dummy_song_header:\n") - f_song_table.write("\t.byte 0, 0, 0, 0\n") - - print(song_addr_to_name) - print("\n".join(song_files)) - -with open('data/sa1/rom_data.bin', 'rb') as rom: - rom.seek(addr_to_offset(song_table_addr)) - extract_from_song_table(rom) diff --git a/sa1/scripts/sound/extract_sound_samples.py b/sa1/scripts/sound/extract_sound_samples.py deleted file mode 100644 index 80969a6c3c..0000000000 --- a/sa1/scripts/sound/extract_sound_samples.py +++ /dev/null @@ -1,8 +0,0 @@ -import os - -directory = "sound/sa1/direct_sound_samples" -for filename in os.listdir(directory): - if filename.endswith('.bin'): - filepath = directory + "/" + filename - print('Extracting', filepath) - os.system('./tools/aif2pcm/aif2pcm ' + filepath) diff --git a/sa1/scripts/sound/extract_voicegroups.py b/sa1/scripts/sound/extract_voicegroups.py deleted file mode 100644 index 50772bb2f6..0000000000 --- a/sa1/scripts/sound/extract_voicegroups.py +++ /dev/null @@ -1,56 +0,0 @@ -def remove_comment(vg): - new_vg_lines = [] - for line in vg.split('\n'): - if len(line) > 0 and "Voicegroup" not in line: - new_vg_lines.append(line) - - return "\n".join(new_vg_lines) - -def replace_ids(contents, ids_map): - for old_id in ids_map: - contents = contents.replace(old_id, ids_map[old_id]) - - return contents - -def get_id(vg): - for line in vg.split('\n'): - if ":" in line: - return line.split(':')[0] - return None - -id_num = 0 - -def get_new_id(): - global id_num - - name = f"voicegroup{id_num:03d}" - id_num += 1 - - return name - -vg_map = {} - -new_vgs = [] - -with open("voice_groups.inc") as whole_file: - data = "".join(whole_file.readlines()) - for section in data.split(".align 2")[1:]: - vg = "\n".join((section.split('.global')[1].split('\n')[1:])) - vg = " .align 2\n" + remove_comment(vg) - - vg_map[get_id(vg)] = get_new_id() - new_vgs.append(vg) - -with open("songs.inc") as songs_file: - songsdata = "".join(songs_file.readlines()) - - with open('new_songs.inc', 'w') as new_songs_file: - new_songs_file.write(replace_ids(songsdata, vg_map)) - -for vg in new_vgs: - with open(f"voicegroups/{vg_map[get_id(vg)]}.inc", 'w') as new_file: - new_file.write(replace_ids(vg, vg_map)) - -with open('new_voicegroups.inc', 'w') as vgs_file: - new_content = "".join(map(lambda val: f".include \"sound/sa1/voicegroups/{val}.inc\"\n", vg_map.values())) - vgs_file.write(new_content) diff --git a/sa1/scripts/sound/fix_song_names.py b/sa1/scripts/sound/fix_song_names.py deleted file mode 100644 index 6a242a2512..0000000000 --- a/sa1/scripts/sound/fix_song_names.py +++ /dev/null @@ -1,7 +0,0 @@ -import os - -for song in os.listdir('sound/sa1/songs/midi/non_matching'): - new_song = song.replace("song0", "song") - print(song, new_song) - os.rename('sound/sa1/songs/midi/non_matching/' + song, 'sound/sa1/songs/midi/non_matching/' + new_song) - diff --git a/sa1/scripts/sound/generate_vg_mapping.py b/sa1/scripts/sound/generate_vg_mapping.py deleted file mode 100644 index 829ea71148..0000000000 --- a/sa1/scripts/sound/generate_vg_mapping.py +++ /dev/null @@ -1,12 +0,0 @@ -import os - -mapping = {} - -for name in os.listdir('voicegroups'): - with open('voicegroups/' + name) as vg_file: - id = name.split('.')[0] - for line in vg_file.readlines(): - if line.startswith(id): - mapping[line.split('@')[1].strip().split('0x0')[1]] = id - -print(mapping) diff --git a/sa1/scripts/sound/match_next_midi.py b/sa1/scripts/sound/match_next_midi.py deleted file mode 100644 index b63accd8c7..0000000000 --- a/sa1/scripts/sound/match_next_midi.py +++ /dev/null @@ -1,51 +0,0 @@ -import os -import sys - -skipped = [] - -SONGS_DIR = 'sound/sa1/songs' -NON_MATCHED_MIDIS = 'sound/sa1/songs/midi/non_matching' -MATCHED_MIDIS = 'sound/sa1/songs/midi' -LDSCRIPT = 'ldscript.txt' - -to_match = reversed(sorted(map(lambda s: s.split('.s')[0], filter(lambda f: f.endswith('.s') , os.listdir(SONGS_DIR))))) - -for next_song in to_match: - if next_song in skipped: - print(f"skipping {next_song}") - continue - - if not next_song: - print("None left!") - sys.exit(1) - - print(f"matching {next_song}") - os.remove(SONGS_DIR + "/" + next_song + ".s") - os.rename(NON_MATCHED_MIDIS + "/" + next_song + ".mid", MATCHED_MIDIS + "/" + next_song + ".mid") - - ldscript_data = "" - with open(LDSCRIPT) as ldscript: - ldscript_data = "".join(ldscript.readlines()) - - ldscript_data = ldscript_data.replace("sound/sa1/songs/" + next_song + ".o", "sound/sa1/songs/midi/" + next_song + ".o") - - with open(LDSCRIPT, "w") as ldscript: - ldscript.write(ldscript_data) - - print('Cleaning build') - try: os.remove("sa1.elf") - except: pass - try: os.remove("sa1.gba") - except: pass - try: os.removedirs("build/gba/sa1/sound") - except: pass - - print('Verifying build') - error = os.system("make -j8") - if not error: - print('success!') - os.system('git add -A') - else: - print('fail, reverting') - os.system('git checkout -- sound ldscript.txt') - os.system('git clean -f >/dev/null 2>&1') diff --git a/sa1/scripts/sound/match_next_midi_chao_garden.py b/sa1/scripts/sound/match_next_midi_chao_garden.py deleted file mode 100644 index e905e7faf6..0000000000 --- a/sa1/scripts/sound/match_next_midi_chao_garden.py +++ /dev/null @@ -1,46 +0,0 @@ -import os -import sys - -skipped = [] - -SONGS_DIR = 'sound/sa1/songs' -NON_MATCHED_MIDIS = 'sound/sa1/songs/midi/non_matching' -MATCHED_MIDIS = 'sound/sa1/songs/midi' -LDSCRIPT = 'ldscript.txt' - -to_match = reversed(sorted(map(lambda s: s.split('.s')[0], filter(lambda f: f.endswith('.s') , os.listdir(SONGS_DIR))))) - -for next_song in to_match: - if next_song in skipped: - print(f"skipping {next_song}") - continue - - if not next_song: - print("None left!") - sys.exit(1) - - print(f"matching {next_song}") - os.remove(SONGS_DIR + "/" + next_song + ".s") - os.rename(NON_MATCHED_MIDIS + "/" + next_song + ".mid", MATCHED_MIDIS + "/" + next_song + ".mid") - - ldscript_data = "" - with open(LDSCRIPT) as ldscript: - ldscript_data = "".join(ldscript.readlines()) - - ldscript_data = ldscript_data.replace("build/mb_chao_garden/sound/sa1/songs/" + next_song + ".o", "build/mb_chao_garden/sound/sa1/songs/midi/" + next_song + ".o") - - with open(LDSCRIPT, "w") as ldscript: - ldscript.write(ldscript_data) - - print('Cleaning build') - os.system('make tidy >/dev/null 2>&1') - - print('Verifying build') - error = os.system("make >/dev/null 2>&1") - if not error: - print('success!') - os.system('git add -A') - else: - print('fail, reverting') - os.system('git checkout -- sound ldscript.txt') - os.system('git clean -f >/dev/null 2>&1') diff --git a/sa1/scripts/sound/match_songs_to_song_ids.py b/sa1/scripts/sound/match_songs_to_song_ids.py deleted file mode 100644 index 1a504db30d..0000000000 --- a/sa1/scripts/sound/match_songs_to_song_ids.py +++ /dev/null @@ -1,19 +0,0 @@ -mapping = {145579812: 'dummy_song_header', 147144256: 'mus_intro', 147145052: 'mus_title_fanfare', 147145824: 'song0003', 147147448: 'song0004', 147149476: 'song0005', 147151220: 'song0006', 147153268: 'song0007', 147156600: 'song0009', 147161612: 'song0013', 147166296: 'song0014', 147169800: 'song0015', 147174524: 'song0016', 147179212: 'song0017', 147185048: 'song0018', 147192076: 'song0019', 147203868: 'song0020', 147208392: 'song0021', 147213604: 'song0022', 147220952: 'song0023', 147233316: 'song0024', 147237820: 'song0025', 147241516: 'song0026', 147243580: 'song0027', 147248364: 'song0028', 147250428: 'song0029', 147250876: 'song0031', 147256512: 'song0032', 147258428: 'song0033', 147271688: 'song0034', 147276304: 'song0035', 147279676: 'song0036', 147282964: 'song0037', 147284780: 'song0038', 147285244: 'song0041', 147287800: 'song0042', 147292784: 'song0043', 147300464: 'song0044', 147303816: 'song0045', 147305520: 'song0046', 147308360: 'song0048', 147311752: 'song0049', 147312076: 'song0050', 147315236: 'song0051', 147316984: 'song0052', 147317232: 'song0053', 147317672: 'song0054', 147319004: 'song0055', 147319360: 'song0056', 147319752: 'song0057', 147323016: 'song0058', 147323908: 'song0059', 147324916: 'song0061', 147326332: 'song0064', 147328100: 'song0066', 147328152: 'song0102', 147328228: 'song0103', 147328276: 'song0104', 147328316: 'song0105', 147328356: 'se_select', 147328392: 'se_return', 147328424: 'se_menu_cursor_move', 147328456: 'song0109', 147328660: 'song0110', 147328696: 'song0111', 147328796: 'song0112', 147328964: 'song0113', 147329024: 'song0114', 147329116: 'song0115', 147329192: 'song0116', 147329220: 'song0117', 147329248: 'song0118', 147329284: 'song0119', 147329388: 'song0120', 147329424: 'song0121', 147329648: 'song0125', 147329872: 'song0126', 147330116: 'song0127', 147330144: 'song0128', 147330172: 'song0129', 147330288: 'song0131', 147330320: 'song0135', 147330412: 'song0138', 147330456: 'song0139', 147330488: 'song0140', 147330520: 'song0141', 147330564: 'song0142', 147330772: 'song0143', 147330808: 'song0144', 147331016: 'song0145', 147331100: 'song0146', 147331132: 'song0147', 147331208: 'song0148', 147331304: 'song0149', 147331396: 'song0150', 147331440: 'song0151', 147331480: 'song0152', 147331556: 'song0153', 147331672: 'song0154', 147331896: 'song0155', 147332076: 'song0156', 147332144: 'song0157', 147332228: 'song0158', 147332260: 'song0159', 147332292: 'song0160', 147332324: 'song0161', 147332356: 'song0162', 147332388: 'song0163', 147332420: 'song0164', 147332452: 'song0165', 147332484: 'song0166', 147332516: 'song0167', 147332548: 'song0168', 147332732: 'song0169', 147332916: 'song0170', 147332944: 'song0201', 147332972: 'song0202', 147333000: 'song0203', 147333028: 'song0204', 147333056: 'song0205', 147333084: 'song0206', 147333112: 'song0208', 147333140: 'song0209', 147333168: 'song0210', 147333196: 'song0211', 147333224: 'song0212', 147333372: 'song0213', 147333532: 'song0214', 147333680: 'song0215', 147333848: 'song0216', 147333940: 'song0217', 147334008: 'song0218', 147334056: 'song0219', 147334092: 'song0220', 147334256: 'song0221', 147334316: 'song0222', 147334452: 'song0223', 147334500: 'song0224', 147334760: 'song0225', 147334876: 'song0226', 147335004: 'song0227', 147335052: 'song0228', 147335080: 'song0229', 147335244: 'song0230', 147335292: 'song0231', 147335800: 'song0232', 147335964: 'song0234', 147336176: 'song0235', 147336476: 'song0236', 147336608: 'song0237', 147336644: 'song0238', 147336744: 'song0239', 147336968: 'song0241', 147337176: 'song0242', 147337212: 'song0243', 147337336: 'song0244', 147337380: 'song0245', 147337472: 'song0246', 147337772: 'song0248', 147337808: 'song0249', 147337924: 'song0250', 147337960: 'song0251', 147338116: 'song0252', 147338256: 'song0253', 147338360: 'song0254', 147338400: 'song0255', 147338484: 'song0256', 147338592: 'song0257', 147338820: 'song0258', 147338868: 'song0259', 147338976: 'song0260', 147339056: 'song0261', 147339140: 'song0262', 147339304: 'song0263', 147339492: 'song0264', 147339704: 'song0265', 147339788: 'song0266', 147339824: 'song0267', 147339960: 'song0268', 147340140: 'song0269', 147340276: 'song0270', 147340456: 'song0271', 147340568: 'song0272', 147340752: 'song0273', 147340812: 'song0274', 147340948: 'song0275', 147341172: 'song0276', 147341400: 'song0277', 147341484: 'song0278', 147341668: 'song0279', 147341856: 'song0280', 147341904: 'song0281', 147341948: 'song0282', 147342136: 'song0283', 147342320: 'song0284', 147342456: 'song0285', 147342536: 'song0286', 147342700: 'song0287', 147342804: 'song0288', 147342860: 'song0289', 147343048: 'song0290', 147343148: 'song0291', 147343420: 'song0292', 147343560: 'song0293', 147343696: 'song0294', 147343732: 'song0295', 147343808: 'song0296', 147343912: 'song0297', 147343948: 'song0298', 147343984: 'song0300', 147344020: 'song0301', 147344056: 'song0302', 147344092: 'song0303', 147344128: 'song0304', 147344164: 'song0305', 147344200: 'song0306', 147344236: 'song0307', 147344272: 'song0308', 147344308: 'song0309', 147344344: 'song0310', 147344380: 'song0311', 147344416: 'song0312', 147344452: 'song0313', 147344488: 'song0314', 147344524: 'song0315', 147344560: 'song0316', 147344596: 'song0317', 147344632: 'song0318', 147344668: 'song0319', 147344712: 'song0320', 147344748: 'song0321', 147344812: 'song0322', 147344868: 'song0323', 147344904: 'song0324', 147344940: 'song0325', 147344976: 'song0326', 147345012: 'song0327', 147345048: 'song0328', 147345084: 'song0329', 147345112: 'song0331', 147345140: 'song0332', 147345296: 'song0333', 147345548: 'song0401', 147346032: 'song0402', 147346688: 'song0403', 147347224: 'song0404', 147347632: 'song0405', 147348556: 'song0406', 147348864: 'song0407', 147349596: 'song0408', 147350012: 'song0410', 147350544: 'song0411', 147350700: 'song0412', 147350912: 'song0413', 147351040: 'song0414', 147351800: 'song0415', 147352140: 'song0504', 147352628: 'song0505', 147352980: 'song0506'} - - -all_data = "" -with open("songs.inc") as songs_file: - all_data = "".join(songs_file.readlines()) - target = len(mapping.values()) - num = 1 - for addr in mapping: - name = mapping[addr] - hex_addr = hex(addr).split("0x")[1] - formatted_addr = f"gUnknown_0{hex_addr.upper()}" - all_data = all_data.replace(formatted_addr, name) - - print(f"{num}/{target}") - num += 1 - -with open("songs.inc", "w") as songs_file: - songs_file.write(all_data) diff --git a/sa1/scripts/sound/match_to_samples.py b/sa1/scripts/sound/match_to_samples.py deleted file mode 100644 index 8f9c511de5..0000000000 --- a/sa1/scripts/sound/match_to_samples.py +++ /dev/null @@ -1,21 +0,0 @@ -import hashlib -import os -import codecs - -# Can be used to match direct sound samples to sample -# files (so we can name). Atm can't find any samples which match -# using checksums - -def file_as_bytes(file): - with file: - return file.read() - -f_list = sorted(filter(lambda f: f.endswith('.aif') , os.listdir("direct_sound_samples"))) -f_list_samples = sorted(filter(lambda f: f.endswith('.aif') , os.listdir("samples"))) - -checksums = dict([(fname, str(codecs.encode(hashlib.md5(file_as_bytes(open("direct_sound_samples/" + fname, 'rb'))).digest(), 'hex'))) for fname in f_list]) -checksum_samples = dict([(str(codecs.encode(hashlib.md5(file_as_bytes(open("samples/" + fname, 'rb'))).digest(), 'hex')), fname) for fname in f_list_samples]) - -for orig_sample in checksums: - if checksums[orig_sample] in checksum_samples: - print(orig_sample, checksum_samples[checksums[orig_sample]]) diff --git a/sa1/scripts/sound/name_direct_sound_samples.py b/sa1/scripts/sound/name_direct_sound_samples.py deleted file mode 100644 index dc9e309d28..0000000000 --- a/sa1/scripts/sound/name_direct_sound_samples.py +++ /dev/null @@ -1,56 +0,0 @@ -import os - -name_mappings = {} -id_mappings = {} - -i = 1 - -direct_sound_table_data = "" -with open(f"direct_sound_data.inc") as f_direct_sound_table: - direct_sound_table_data = "".join(f_direct_sound_table.readlines()) - -for sound_sample in sorted(os.listdir('direct_sound_samples')): - if not sound_sample.endswith('.aif'): - continue - - if not sound_sample.startswith('08'): - print(f"skipping {sound_sample}") - continue - - current_id = sound_sample.split('.')[0] - new_id = f"unknown_{i:03d}" - current_name = f"gUnknown_{current_id}" - new_name = f"DirectSoundWaveData_{i}" - - print(current_id, new_id, current_name, new_name) - - # Remove the global reference - direct_sound_table_data = direct_sound_table_data.replace(f" .global {current_name}\n", "") - - direct_sound_table_data = direct_sound_table_data.replace(current_name, new_name) - direct_sound_table_data = direct_sound_table_data.replace(current_id, new_id) - - name_mappings[current_name] = new_name - id_mappings[current_id] = new_id - - i += 1 - -# print(direct_sound_table_data) - -with open(f"direct_sound_data.inc", 'w') as f_direct_sound_table: - f_direct_sound_table.write(direct_sound_table_data) - -for current_id in id_mappings: - os.rename(f'direct_sound_samples/{current_id}.aif', f'direct_sound_samples/{id_mappings[current_id]}.aif') - -for vg_file in os.listdir('voicegroups'): - vg_data = "" - - with open('voicegroups/' + vg_file) as f_vg: - vg_data = "".join(f_vg.readlines()) - - for current_name in name_mappings: - vg_data = vg_data.replace(current_name, name_mappings[current_name]) - - with open('voicegroups/' + vg_file, 'w') as f_vg: - f_vg.write(vg_data) diff --git a/sa1/scripts/sound/name_programmable_wave_data.py b/sa1/scripts/sound/name_programmable_wave_data.py deleted file mode 100644 index 38cbb87993..0000000000 --- a/sa1/scripts/sound/name_programmable_wave_data.py +++ /dev/null @@ -1,46 +0,0 @@ -import os - -name_mappings = {} -id_mappings = {} - -i = 1 - -wave_data_table = "" -with open(f"programmable_wave_data.inc") as wave_table: - wave_data_table = "".join(wave_table.readlines()) - - -for pcm_file in sorted(os.listdir('programmable_wave_samples')): - current_id = pcm_file.split('.')[0] - new_id = f"{i:02d}" - current_name = f"gUnknown_{current_id}" - new_name = f"ProgrammableWaveData_{i}" - - print(current_id, new_id, current_name, new_name) - - wave_data_table = wave_data_table.replace(f" .global {current_name}\n", "") - wave_data_table = wave_data_table.replace(current_name, new_name) - wave_data_table = wave_data_table.replace(current_id, new_id) - - name_mappings[current_name] = new_name - id_mappings[current_id] = new_id - - i += 1 - -with open(f"programmable_wave_data.inc", 'w') as wave_table: - wave_table.write(wave_data_table) - -for current_id in id_mappings: - os.rename(f'programmable_wave_samples/{current_id}.pcm', f'programmable_wave_samples/{id_mappings[current_id]}.pcm') - -for vg_file in os.listdir('voicegroups'): - vg_data = "" - - with open('voicegroups/' + vg_file) as f_vg: - vg_data = "".join(f_vg.readlines()) - - for current_name in name_mappings: - vg_data = vg_data.replace(current_name, name_mappings[current_name]) - - with open('voicegroups/' + vg_file, 'w') as f_vg: - f_vg.write(vg_data) diff --git a/sa1/scripts/sound/name_songs.py b/sa1/scripts/sound/name_songs.py deleted file mode 100644 index df5ff51f7c..0000000000 --- a/sa1/scripts/sound/name_songs.py +++ /dev/null @@ -1,57 +0,0 @@ -import os - -ldscript_contents = "" -songs_mk_contents = "" - -with open("ldscript.txt") as ldscript: - ldscript_contents = "".join(ldscript.readlines()) - -with open("songs.mk") as songs_mk: - songs_mk_contents = "".join(songs_mk.readlines()) - -with open("sound/sa1/song_table.inc") as song_table: - song_table_contents = "".join(song_table.readlines()) - -with open("include/constants/songs.h") as songs_header: - for line in songs_header.readlines(): - if not line.startswith("#define"): - continue - - line = line.strip() - # strip comments - line = line.split(' //')[0] - segments = line.split(' ') - if len(segments) < 3: - continue - - _, name, number = line.split(' ') - name = name.lower() - number = int(number) - - new_midi_name = f"{name}.mid" - old_midi_name = f"song{number:04}.mid" - - matched = False - if old_midi_name in os.listdir('sound/sa1/songs/midi/'): - matched = True - os.rename(f"sound/sa1/songs/midi/{old_midi_name}", f"sound/sa1/songs/midi/{new_midi_name}") - - if old_midi_name.replace('.mid', ".s") in os.listdir('sound/sa1/songs/'): - matched = True - os.rename(f"sound/sa1/songs/{old_midi_name.replace('.mid', '.s')}", f"sound/sa1/songs/{new_midi_name.replace('.mid', '.s')}") - - if matched: - ldscript_contents = ldscript_contents.replace(old_midi_name.replace('.mid', ".o"), new_midi_name.replace('.mid', ".o")) - songs_mk_contents = songs_mk_contents.replace(old_midi_name.replace('.mid', ".s"), new_midi_name.replace('.mid', ".s")) - song_table_contents = song_table_contents.replace(old_midi_name.replace('.mid', ""), new_midi_name.replace('.mid', "")) - else: - print("Unmatched", name, number) - -with open("ldscript.txt", "w") as ldscript: - ldscript.write(ldscript_contents) - -with open("songs.mk", "w") as songs_mk: - songs_mk.write(songs_mk_contents) - -with open("sound/sa1/song_table.inc", "w") as song_table: - song_table.write(song_table_contents) diff --git a/sa1/scripts/sound/update_unmatched_songs.py b/sa1/scripts/sound/update_unmatched_songs.py deleted file mode 100644 index a06b13b8ea..0000000000 --- a/sa1/scripts/sound/update_unmatched_songs.py +++ /dev/null @@ -1,45 +0,0 @@ -import os - -tone_to_vg = { - '8AD1544': 'voicegroup013', - '8ACF510': 'voicegroup007', - '8ACF384': 'voicegroup006', - '8AD1160': 'voicegroup012', - '8ACEBD4': 'voicegroup004', - '8AD0710': 'voicegroup010', - '8AD0D10': 'voicegroup011', - '8ACED90': 'voicegroup005', - '8ACE3A0': 'voicegroup001', - '8AD1F94': 'voicegroup015', - '8AD1B44': 'voicegroup014', - '8ACDF50': 'voicegroup000', - '8AD2108': 'voicegroup016', - '8ACE550': 'voicegroup002', - '8ACE784': 'voicegroup003', - '8AD2558': 'voicegroup017', - '8AD2ABC': 'voicegroup019', - '8AD2948': 'voicegroup018', - '8AD42BC': 'voicegroup023', - '8ACFB10': 'voicegroup008', - '8AD30BC': 'voicegroup020', - '8AD36BC': 'voicegroup021', - '8AD0110': 'voicegroup009', - '8AD3CBC': 'voicegroup022', - '8AD470C': 'voicegroup024' -} - -for song_file in os.listdir('songs'): - if not song_file.endswith('.s'): - continue - - print("sound/sa1/songs/" + song_file) - - data = "" - with open('songs/' + song_file) as f_song: - data = "".join(f_song.readlines()) - - for addr in tone_to_vg: - data = data.replace(f"gUnknown_0{addr}", tone_to_vg[addr]) - - with open('songs/' + song_file, "w") as f_song: - f_song.write(data) diff --git a/sa1/sound/MPlayDef.s b/sa1/sound/MPlayDef.s deleted file mode 100644 index 95a788e85e..0000000000 --- a/sa1/sound/MPlayDef.s +++ /dev/null @@ -1,430 +0,0 @@ - .equ W00, 0x80 @ WAIT - .equ W01, W00+1 @ - .equ W02, W00+2 @ - .equ W03, W00+3 @ - .equ W04, W00+4 @ - .equ W05, W00+5 @ - .equ W06, W00+6 @ - .equ W07, W00+7 @ - .equ W08, W00+8 @ - .equ W09, W00+9 @ - .equ W10, W00+10 @ - .equ W11, W00+11 @ - .equ W12, W00+12 @ - .equ W13, W00+13 @ - .equ W14, W00+14 @ - .equ W15, W00+15 @ - .equ W16, W00+16 @ - .equ W17, W00+17 @ - .equ W18, W00+18 @ - .equ W19, W00+19 @ - .equ W20, W00+20 @ - .equ W21, W00+21 @ - .equ W22, W00+22 @ - .equ W23, W00+23 @ - .equ W24, W00+24 @ - .equ W28, W00+25 @ - .equ W30, W00+26 @ - .equ W32, W00+27 @ - .equ W36, W00+28 @ - .equ W40, W00+29 @ - .equ W42, W00+30 @ - .equ W44, W00+31 @ - .equ W48, W00+32 @ - .equ W52, W00+33 @ - .equ W54, W00+34 @ - .equ W56, W00+35 @ - .equ W60, W00+36 @ - .equ W64, W00+37 @ - .equ W66, W00+38 @ - .equ W68, W00+39 @ - .equ W72, W00+40 @ - .equ W76, W00+41 @ - .equ W78, W00+42 @ - .equ W80, W00+43 @ - .equ W84, W00+44 @ - .equ W88, W00+45 @ - .equ W90, W00+46 @ - .equ W92, W00+47 @ - .equ W96, W00+48 @ - - .equ FINE, 0xb1 @ fine - .equ GOTO, 0xb2 @ goto - .equ PATT, 0xb3 @ pattern play - .equ PEND, 0xb4 @ pattern end - .equ REPT, 0xb5 @ repeat - .equ MEMACC, 0xb9 @ memacc op adr dat ***lib - .equ PRIO, 0xba @ priority - .equ TEMPO, 0xbb @ tempo (BPM/2) - .equ KEYSH, 0xbc @ key shift - .equ VOICE, 0xbd @ voice # - .equ VOL, 0xbe @ volume - .equ PAN, 0xbf @ panpot (c_v+??) - .equ BEND, 0xc0 @ pitch bend (c_v+??) - .equ BENDR, 0xc1 @ bend range - .equ LFOS, 0xc2 @ LFO speed - .equ LFODL, 0xc3 @ LFO delay - .equ MOD, 0xc4 @ modulation depth - .equ MODT, 0xc5 @ modulation type - .equ TUNE, 0xc8 @ micro tuning (c_v+??) - - .equ XCMD, 0xcd @ extend command ***lib - .equ xIECV, 0x08 @ imi.echo vol ***lib - .equ xIECL, 0x09 @ imi.echo len ***lib - - .equ EOT, 0xce @ End of Tie - .equ TIE, 0xcf @ - .equ N01, TIE+1 @ NOTE - .equ N02, N01+1 @ - .equ N03, N01+2 @ - .equ N04, N01+3 @ - .equ N05, N01+4 @ - .equ N06, N01+5 @ - .equ N07, N01+6 @ - .equ N08, N01+7 @ - .equ N09, N01+8 @ - .equ N10, N01+9 @ - .equ N11, N01+10 @ - .equ N12, N01+11 @ - .equ N13, N01+12 @ - .equ N14, N01+13 @ - .equ N15, N01+14 @ - .equ N16, N01+15 @ - .equ N17, N01+16 @ - .equ N18, N01+17 @ - .equ N19, N01+18 @ - .equ N20, N01+19 @ - .equ N21, N01+20 @ - .equ N22, N01+21 @ - .equ N23, N01+22 @ - .equ N24, N01+23 @ - .equ N28, N01+24 @ - .equ N30, N01+25 @ - .equ N32, N01+26 @ - .equ N36, N01+27 @ - .equ N40, N01+28 @ - .equ N42, N01+29 @ - .equ N44, N01+30 @ - .equ N48, N01+31 @ - .equ N52, N01+32 @ - .equ N54, N01+33 @ - .equ N56, N01+34 @ - .equ N60, N01+35 @ - .equ N64, N01+36 @ - .equ N66, N01+37 @ - .equ N68, N01+38 @ - .equ N72, N01+39 @ - .equ N76, N01+40 @ - .equ N78, N01+41 @ - .equ N80, N01+42 @ - .equ N84, N01+43 @ - .equ N88, N01+44 @ - .equ N90, N01+45 @ - .equ N92, N01+46 @ - .equ N96, N01+47 @ - -@ maximum value for volume - - .equ mxv, 0x7F @ - -@ center value of PAN, BEND, TUNE - - .equ c_v, 0x40 @ -64 ~ +63 - -@ note for N??, TIE, EOT - - .equ CnM2, 0 @ - .equ CsM2, 1 @ - .equ DnM2, 2 @ - .equ DsM2, 3 @ - .equ EnM2, 4 @ - .equ FnM2, 5 @ - .equ FsM2, 6 @ - .equ GnM2, 7 @ - .equ GsM2, 8 @ - .equ AnM2, 9 @ - .equ AsM2, 10 @ - .equ BnM2, 11 @ - .equ CnM1, 12 @ - .equ CsM1, 13 @ - .equ DnM1, 14 @ - .equ DsM1, 15 @ - .equ EnM1, 16 @ - .equ FnM1, 17 @ - .equ FsM1, 18 @ - .equ GnM1, 19 @ - .equ GsM1, 20 @ - .equ AnM1, 21 @ - .equ AsM1, 22 @ - .equ BnM1, 23 @ - .equ Cn0, 24 @ - .equ Cs0, 25 @ - .equ Dn0, 26 @ - .equ Ds0, 27 @ - .equ En0, 28 @ - .equ Fn0, 29 @ - .equ Fs0, 30 @ - .equ Gn0, 31 @ - .equ Gs0, 32 @ - .equ An0, 33 @ - .equ As0, 34 @ - .equ Bn0, 35 @ - .equ Cn1, 36 @ - .equ Cs1, 37 @ - .equ Dn1, 38 @ - .equ Ds1, 39 @ - .equ En1, 40 @ - .equ Fn1, 41 @ - .equ Fs1, 42 @ - .equ Gn1, 43 @ - .equ Gs1, 44 @ - .equ An1, 45 @ - .equ As1, 46 @ - .equ Bn1, 47 @ - .equ Cn2, 48 @ - .equ Cs2, 49 @ - .equ Dn2, 50 @ - .equ Ds2, 51 @ - .equ En2, 52 @ - .equ Fn2, 53 @ - .equ Fs2, 54 @ - .equ Gn2, 55 @ - .equ Gs2, 56 @ - .equ An2, 57 @ - .equ As2, 58 @ - .equ Bn2, 59 @ - .equ Cn3, 60 @ - .equ Cs3, 61 @ - .equ Dn3, 62 @ - .equ Ds3, 63 @ - .equ En3, 64 @ - .equ Fn3, 65 @ - .equ Fs3, 66 @ - .equ Gn3, 67 @ - .equ Gs3, 68 @ - .equ An3, 69 @ 440Hz - .equ As3, 70 @ - .equ Bn3, 71 @ - .equ Cn4, 72 @ - .equ Cs4, 73 @ - .equ Dn4, 74 @ - .equ Ds4, 75 @ - .equ En4, 76 @ - .equ Fn4, 77 @ - .equ Fs4, 78 @ - .equ Gn4, 79 @ - .equ Gs4, 80 @ - .equ An4, 81 @ - .equ As4, 82 @ - .equ Bn4, 83 @ - .equ Cn5, 84 @ - .equ Cs5, 85 @ - .equ Dn5, 86 @ - .equ Ds5, 87 @ - .equ En5, 88 @ - .equ Fn5, 89 @ - .equ Fs5, 90 @ - .equ Gn5, 91 @ - .equ Gs5, 92 @ - .equ An5, 93 @ - .equ As5, 94 @ - .equ Bn5, 95 @ - .equ Cn6, 96 @ - .equ Cs6, 97 @ - .equ Dn6, 98 @ - .equ Ds6, 99 @ - .equ En6, 100 @ - .equ Fn6, 101 @ - .equ Fs6, 102 @ - .equ Gn6, 103 @ - .equ Gs6, 104 @ - .equ An6, 105 @ - .equ As6, 106 @ - .equ Bn6, 107 @ - .equ Cn7, 108 @ - .equ Cs7, 109 @ - .equ Dn7, 110 @ - .equ Ds7, 111 @ - .equ En7, 112 @ - .equ Fn7, 113 @ - .equ Fs7, 114 @ - .equ Gn7, 115 @ - .equ Gs7, 116 @ - .equ An7, 117 @ - .equ As7, 118 @ - .equ Bn7, 119 @ - .equ Cn8, 120 @ - .equ Cs8, 121 @ - .equ Dn8, 122 @ - .equ Ds8, 123 @ - .equ En8, 124 @ - .equ Fn8, 125 @ - .equ Fs8, 126 @ - .equ Gn8, 127 @ - -@ velocity - - .equ v000, 0 @ - .equ v001, 1 @ - .equ v002, 2 @ - .equ v003, 3 @ - .equ v004, 4 @ - .equ v005, 5 @ - .equ v006, 6 @ - .equ v007, 7 @ - .equ v008, 8 @ - .equ v009, 9 @ - .equ v010, 10 @ - .equ v011, 11 @ - .equ v012, 12 @ - .equ v013, 13 @ - .equ v014, 14 @ - .equ v015, 15 @ - .equ v016, 16 @ - .equ v017, 17 @ - .equ v018, 18 @ - .equ v019, 19 @ - .equ v020, 20 @ - .equ v021, 21 @ - .equ v022, 22 @ - .equ v023, 23 @ - .equ v024, 24 @ - .equ v025, 25 @ - .equ v026, 26 @ - .equ v027, 27 @ - .equ v028, 28 @ - .equ v029, 29 @ - .equ v030, 30 @ - .equ v031, 31 @ - .equ v032, 32 @ - .equ v033, 33 @ - .equ v034, 34 @ - .equ v035, 35 @ - .equ v036, 36 @ - .equ v037, 37 @ - .equ v038, 38 @ - .equ v039, 39 @ - .equ v040, 40 @ - .equ v041, 41 @ - .equ v042, 42 @ - .equ v043, 43 @ - .equ v044, 44 @ - .equ v045, 45 @ - .equ v046, 46 @ - .equ v047, 47 @ - .equ v048, 48 @ - .equ v049, 49 @ - .equ v050, 50 @ - .equ v051, 51 @ - .equ v052, 52 @ - .equ v053, 53 @ - .equ v054, 54 @ - .equ v055, 55 @ - .equ v056, 56 @ - .equ v057, 57 @ - .equ v058, 58 @ - .equ v059, 59 @ - .equ v060, 60 @ - .equ v061, 61 @ - .equ v062, 62 @ - .equ v063, 63 @ - .equ v064, 64 @ - .equ v065, 65 @ - .equ v066, 66 @ - .equ v067, 67 @ - .equ v068, 68 @ - .equ v069, 69 @ - .equ v070, 70 @ - .equ v071, 71 @ - .equ v072, 72 @ - .equ v073, 73 @ - .equ v074, 74 @ - .equ v075, 75 @ - .equ v076, 76 @ - .equ v077, 77 @ - .equ v078, 78 @ - .equ v079, 79 @ - .equ v080, 80 @ - .equ v081, 81 @ - .equ v082, 82 @ - .equ v083, 83 @ - .equ v084, 84 @ - .equ v085, 85 @ - .equ v086, 86 @ - .equ v087, 87 @ - .equ v088, 88 @ - .equ v089, 89 @ - .equ v090, 90 @ - .equ v091, 91 @ - .equ v092, 92 @ - .equ v093, 93 @ - .equ v094, 94 @ - .equ v095, 95 @ - .equ v096, 96 @ - .equ v097, 97 @ - .equ v098, 98 @ - .equ v099, 99 @ - .equ v100, 100 @ - .equ v101, 101 @ - .equ v102, 102 @ - .equ v103, 103 @ - .equ v104, 104 @ - .equ v105, 105 @ - .equ v106, 106 @ - .equ v107, 107 @ - .equ v108, 108 @ - .equ v109, 109 @ - .equ v110, 110 @ - .equ v111, 111 @ - .equ v112, 112 @ - .equ v113, 113 @ - .equ v114, 114 @ - .equ v115, 115 @ - .equ v116, 116 @ - .equ v117, 117 @ - .equ v118, 118 @ - .equ v119, 119 @ - .equ v120, 120 @ - .equ v121, 121 @ - .equ v122, 122 @ - .equ v123, 123 @ - .equ v124, 124 @ - .equ v125, 125 @ - .equ v126, 126 @ - .equ v127, 127 @ - -@ exact gate time parameter for N?? - - .equ gtp1, 1 @ - .equ gtp2, 2 @ - .equ gtp3, 3 @ - -@ parameter of MODT - - .equ mod_vib,0 @ vibrate - .equ mod_tre,1 @ tremolo - .equ mod_pan,2 @ auto-panpot - -@ parameter of MEMACC - - .equ mem_set,0 @ - .equ mem_add,1 @ - .equ mem_sub,2 @ - .equ mem_mem_set,3 @ - .equ mem_mem_add,4 @ - .equ mem_mem_sub,5 @ - .equ mem_beq,6 @ - .equ mem_bne,7 @ - .equ mem_bhi,8 @ - .equ mem_bhs,9 @ - .equ mem_bls,10 @ - .equ mem_blo,11 @ - .equ mem_mem_beq,12 @ - .equ mem_mem_bne,13 @ - .equ mem_mem_bhi,14 @ - .equ mem_mem_bhs,15 @ - .equ mem_mem_bls,16 @ - .equ mem_mem_blo,17 @ - - .equ reverb_set,0x80 @ SOUND_MODE_REVERB_SET - .equ PAM, PAN @ diff --git a/sa1/src/.gitkeep b/sa1/src/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/sa1/src/platform/ext/gbagfx/LICENSE b/sa1/src/platform/ext/gbagfx/LICENSE deleted file mode 100644 index b66bf81c0f..0000000000 --- a/sa1/src/platform/ext/gbagfx/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 YamaArashi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/sa1/src/platform/ext/gbagfx/lz.c b/sa1/src/platform/ext/gbagfx/lz.c deleted file mode 100644 index 0b4da32b9c..0000000000 --- a/sa1/src/platform/ext/gbagfx/lz.c +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright (c) 2015 YamaArashi - -#include -#include -#include "platform/ext/gbagfx/global.h" -#include "platform/ext/gbagfx/lz.h" - -unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize) -{ - if (srcSize < 4) - goto fail; - - int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; - - unsigned char *dest = malloc(destSize); - - if (dest == NULL) - goto fail; - - int srcPos = 4; - int destPos = 0; - - for (;;) { - if (srcPos >= srcSize) - goto fail; - - unsigned char flags = src[srcPos++]; - - for (int i = 0; i < 8; i++) { - if (flags & 0x80) { - if (srcPos + 1 >= srcSize) - goto fail; - - int blockSize = (src[srcPos] >> 4) + 3; - int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1; - - srcPos += 2; - - int blockPos = destPos - blockDistance; - - // Some Ruby/Sapphire tilesets overflow. - if (destPos + blockSize > destSize) { - blockSize = destSize - destPos; - fprintf(stderr, "Destination buffer overflow.\n"); - } - - if (blockPos < 0) - goto fail; - - for (int j = 0; j < blockSize; j++) - dest[destPos++] = dest[blockPos + j]; - } else { - if (srcPos >= srcSize || destPos >= destSize) - goto fail; - - dest[destPos++] = src[srcPos++]; - } - - if (destPos == destSize) { - *uncompressedSize = destSize; - return dest; - } - - flags <<= 1; - } - } - -fail: - FATAL_ERROR("Fatal error while decompressing LZ file.\n"); -} - -void LZDecompressUnsafe(unsigned char *src, unsigned char *dest, int *uncompressedSize) -{ - int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; - - if (dest == NULL) - goto fail; - - int srcPos = 4; - int destPos = 0; - - for (;;) { - unsigned char flags = src[srcPos++]; - - for (int i = 0; i < 8; i++) { - if (flags & 0x80) { - int blockSize = (src[srcPos] >> 4) + 3; - int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1; - - srcPos += 2; - - int blockPos = destPos - blockDistance; - - // Some Ruby/Sapphire tilesets overflow. - if (destPos + blockSize > destSize) { - blockSize = destSize - destPos; - fprintf(stderr, "Destination buffer overflow.\n"); - } - - if (blockPos < 0) - goto fail; - - for (int j = 0; j < blockSize; j++) - dest[destPos++] = dest[blockPos + j]; - } else { - if (destPos >= destSize) - goto fail; - - dest[destPos++] = src[srcPos++]; - } - - if (destPos == destSize) { - *uncompressedSize = destSize; - return; - } - - flags <<= 1; - } - } - -fail: - FATAL_ERROR("Fatal error while decompressing LZ file.\n"); -} - -unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize, const int minDistance) -{ - if (srcSize <= 0) - goto fail; - - int worstCaseDestSize = 4 + srcSize + ((srcSize + 7) / 8); - - // Round up to the next multiple of four. - worstCaseDestSize = (worstCaseDestSize + 3) & ~3; - - unsigned char *dest = malloc(worstCaseDestSize); - - if (dest == NULL) - goto fail; - - // header - dest[0] = 0x10; // LZ compression type - dest[1] = (unsigned char)srcSize; - dest[2] = (unsigned char)(srcSize >> 8); - dest[3] = (unsigned char)(srcSize >> 16); - - int srcPos = 0; - int destPos = 4; - - for (;;) { - unsigned char *flags = &dest[destPos++]; - *flags = 0; - - for (int i = 0; i < 8; i++) { - int bestBlockDistance = 0; - int bestBlockSize = 0; - int blockDistance = minDistance; - - while (blockDistance <= srcPos && blockDistance <= 0x1000) { - int blockStart = srcPos - blockDistance; - int blockSize = 0; - - while (blockSize < 18 - && srcPos + blockSize < srcSize - && src[blockStart + blockSize] == src[srcPos + blockSize]) - blockSize++; - - if (blockSize > bestBlockSize) { - bestBlockDistance = blockDistance; - bestBlockSize = blockSize; - - if (blockSize == 18) - break; - } - - blockDistance++; - } - - if (bestBlockSize >= 3) { - *flags |= (0x80 >> i); - srcPos += bestBlockSize; - bestBlockSize -= 3; - bestBlockDistance--; - dest[destPos++] = (bestBlockSize << 4) | ((unsigned int)bestBlockDistance >> 8); - dest[destPos++] = (unsigned char)bestBlockDistance; - } else { - dest[destPos++] = src[srcPos++]; - } - - if (srcPos == srcSize) { - // Pad to multiple of 4 bytes. - int remainder = destPos % 4; - - if (remainder != 0) { - for (int i = 0; i < 4 - remainder; i++) - dest[destPos++] = 0; - } - - *compressedSize = destPos; - return dest; - } - } - } - -fail: - FATAL_ERROR("Fatal error while compressing LZ file.\n"); -} diff --git a/sa1/src/platform/ext/gbagfx/rl.c b/sa1/src/platform/ext/gbagfx/rl.c deleted file mode 100644 index 575ff1b1dc..0000000000 --- a/sa1/src/platform/ext/gbagfx/rl.c +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) 2016 YamaArashi - -#include -#include -#include "platform/ext/gbagfx/global.h" -#include "platform/ext/gbagfx/rl.h" - -unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize) -{ - if (srcSize < 4) - goto fail; - - int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; - - unsigned char *dest = malloc(destSize); - - if (dest == NULL) - goto fail; - - int srcPos = 4; - int destPos = 0; - - for (;;) - { - if (srcPos >= srcSize) - goto fail; - - unsigned char flags = src[srcPos++]; - bool compressed = ((flags & 0x80) != 0); - - if (compressed) - { - int length = (flags & 0x7F) + 3; - unsigned char data = src[srcPos++]; - - if (destPos + length > destSize) - goto fail; - - for (int i = 0; i < length; i++) - dest[destPos++] = data; - } - else - { - int length = (flags & 0x7F) + 1; - - if (destPos + length > destSize) - goto fail; - - for (int i = 0; i < length; i++) - dest[destPos++] = src[srcPos++]; - } - - if (destPos == destSize) - { - *uncompressedSize = destSize; - return dest; - } - } - -fail: - FATAL_ERROR("Fatal error while decompressing RL file.\n"); -} - -void RLDecompressUnsafe(unsigned char *src, unsigned char *dest, int *uncompressedSize) -{ - int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; - - if (dest == NULL) - goto fail; - - int srcPos = 4; - int destPos = 0; - - for (;;) - { - unsigned char flags = src[srcPos++]; - bool compressed = ((flags & 0x80) != 0); - - if (compressed) - { - int length = (flags & 0x7F) + 3; - unsigned char data = src[srcPos++]; - - if (destPos + length > destSize) - goto fail; - - for (int i = 0; i < length; i++) - dest[destPos++] = data; - } - else - { - int length = (flags & 0x7F) + 1; - - if (destPos + length > destSize) - goto fail; - - for (int i = 0; i < length; i++) - dest[destPos++] = src[srcPos++]; - } - - if (destPos == destSize) - { - *uncompressedSize = destSize; - return; - } - } - -fail: - FATAL_ERROR("Fatal error while decompressing RL file.\n"); -} - -unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize) -{ - if (srcSize <= 0) - goto fail; - - int worstCaseDestSize = 4 + srcSize * 2; - - // Round up to the next multiple of four. - worstCaseDestSize = (worstCaseDestSize + 3) & ~3; - - unsigned char *dest = malloc(worstCaseDestSize); - - if (dest == NULL) - goto fail; - - // header - dest[0] = 0x30; // RL compression type - dest[1] = (unsigned char)srcSize; - dest[2] = (unsigned char)(srcSize >> 8); - dest[3] = (unsigned char)(srcSize >> 16); - - int srcPos = 0; - int destPos = 4; - - for (;;) - { - bool compress = false; - int uncompressedStart = srcPos; - int uncompressedLength = 0; - - while (srcPos < srcSize && uncompressedLength < (0x7F + 1)) - { - compress = (srcPos + 2 < srcSize && src[srcPos] == src[srcPos + 1] && src[srcPos] == src[srcPos + 2]); - - if (compress) - break; - - srcPos++; - uncompressedLength++; - } - - if (uncompressedLength > 0) - { - dest[destPos++] = uncompressedLength - 1; - - for (int i = 0; i < uncompressedLength; i++) - dest[destPos++] = src[uncompressedStart + i]; - } - - if (compress) - { - unsigned char data = src[srcPos]; - int compressedLength = 0; - - while (compressedLength < (0x7F + 3) - && srcPos + compressedLength < srcSize - && src[srcPos + compressedLength] == data) - { - compressedLength++; - } - - dest[destPos++] = 0x80 | (compressedLength - 3); - dest[destPos++] = data; - - srcPos += compressedLength; - } - - if (srcPos == srcSize) - { - // Pad to multiple of 4 bytes. - int remainder = destPos % 4; - - if (remainder != 0) - { - for (int i = 0; i < 4 - remainder; i++) - dest[destPos++] = 0; - } - - *compressedSize = destPos; - return dest; - } - } - -fail: - FATAL_ERROR("Fatal error while compressing RL file.\n"); -} diff --git a/sa1/src/platform/pret_sdl/README.txt b/sa1/src/platform/pret_sdl/README.txt deleted file mode 100644 index 11d4506a3e..0000000000 --- a/sa1/src/platform/pret_sdl/README.txt +++ /dev/null @@ -1,4 +0,0 @@ -The source code in this folder is from: -https://github.com/Kurausukun/pokeemerald/tree/pc_port - -Thanks to camthesaxman, Kurausukun, Pidgey and NT_x86 for allowing us to use the code! diff --git a/sa1/src/platform/pret_sdl/sdl2.c b/sa1/src/platform/pret_sdl/sdl2.c deleted file mode 100644 index 0e9a4e9582..0000000000 --- a/sa1/src/platform/pret_sdl/sdl2.c +++ /dev/null @@ -1,1953 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#ifdef _WIN32 -#include -#include -#endif - -#include - -#include "global.h" -#include "core.h" -#include "multi_sio.h" -#include "gba/defines.h" -#include "gba/io_reg.h" -#include "gba/types.h" -#include "lib/agb_flash/flash_internal.h" -#include "platform/shared/dma.h" -#include "platform/shared/input.h" - -#if ENABLE_AUDIO -#include "platform/shared/audio/cgb_audio.h" -#endif - -#ifndef TILE_WIDTH -#define TILE_WIDTH 8 -#endif - -extern IntrFunc gIntrTable[16]; - -#if 0 -extern u16 INTR_CHECK; -extern void *INTR_VECTOR; -extern unsigned char REG_BASE[0x400]; -extern unsigned char PLTT[PLTT_SIZE]; -extern unsigned char VRAM_[VRAM_SIZE]; -extern unsigned char OAM[OAM_SIZE]; -extern unsigned char FLASH_BASE[131072]; -#endif -extern uint8_t EWRAM_START[EWRAM_SIZE]; -extern uint8_t IWRAM_START[IWRAM_SIZE]; -// TODO: REG_BASE needs to be u8, because of the address macro definitions -extern uint8_t REG_BASE[IO_SIZE]; -extern uint16_t PLTT[PLTT_SIZE / sizeof(uint16_t)]; -extern uint8_t VRAM[VRAM_SIZE]; -extern uint8_t OAM[OAM_SIZE]; -extern uint8_t FLASH_BASE[FLASH_ROM_SIZE_1M * SECTORS_PER_BANK]; -ALIGNED(256) uint16_t gameImage[DISPLAY_WIDTH * DISPLAY_HEIGHT]; -#if ENABLE_VRAM_VIEW -#define VRAM_VIEW_WIDTH (32 * TILE_WIDTH) -#define VRAM_VIEW_HEIGHT (((VRAM_SIZE / TILE_SIZE_4BPP) / 32) * TILE_WIDTH) -uint16_t vramBuffer[VRAM_VIEW_WIDTH * VRAM_VIEW_HEIGHT]; -uint8_t vramPalIdBuffer[(VRAM_VIEW_WIDTH / TILE_WIDTH) * (VRAM_VIEW_HEIGHT / TILE_WIDTH)]; -#endif - -struct scanlineData { - uint16_t layers[4][DISPLAY_WIDTH]; - uint16_t spriteLayers[4][DISPLAY_WIDTH]; - uint16_t bgcnts[4]; - uint16_t winMask[DISPLAY_WIDTH]; - // priority bookkeeping - char bgtoprio[4]; // background to priority - char prioritySortedBgs[4][4]; - char prioritySortedBgsCount[4]; -}; - -struct bgPriority { - char priority; - char subPriority; -}; - -SDL_Window *sdlWindow; -SDL_Renderer *sdlRenderer; -SDL_Texture *sdlTexture; -#if ENABLE_VRAM_VIEW -SDL_Window *vramWindow; -SDL_Renderer *vramRenderer; -SDL_Texture *vramTexture; -#endif -#define INITIAL_VIDEO_SCALE 1 -unsigned int videoScale = INITIAL_VIDEO_SCALE; -unsigned int preFullscreenVideoScale = INITIAL_VIDEO_SCALE; - -bool speedUp = false; -bool videoScaleChanged = false; -bool isRunning = true; -bool paused = false; -bool stepOneFrame = false; -bool headless = false; - -double lastGameTime = 0; -double curGameTime = 0; -double fixedTimestep = 1.0 / 60.0; // 16.666667ms -double timeScale = 1.0; -double accumulator = 0.0; - -static FILE *sSaveFile = NULL; - -extern void AgbMain(void); -void DoSoftReset(void) {}; - -void ProcessSDLEvents(void); -void VDraw(SDL_Texture *texture); -void VramDraw(SDL_Texture *texture); - -static void ReadSaveFile(char *path); -static void StoreSaveFile(void); -static void CloseSaveFile(void); - -static void UpdateInternalClock(void); - -u16 Platform_GetKeyInput(void); - -#ifdef _WIN32 -void *Platform_malloc(size_t numBytes) { return HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS | HEAP_ZERO_MEMORY, numBytes); } -void Platform_free(void *ptr) { HeapFree(GetProcessHeap(), 0, ptr); } -#endif - -int main(int argc, char **argv) -{ - const char *headlessEnv = getenv("HEADLESS"); - - if (headlessEnv && strcmp(headlessEnv, "true") == 0) { - headless = true; - } - - const char *parentEnv = getenv("SIO_PARENT"); - - if (parentEnv && strcmp(parentEnv, "true") == 0) { - SIO_MULTI_CNT->id = 0; - SIO_MULTI_CNT->si = 1; - SIO_MULTI_CNT->sd = 1; - SIO_MULTI_CNT->enable = false; - } - - // Open an output console on Windows -#if (defined _WIN32) && (DEBUG != 0) - AllocConsole(); - AttachConsole(GetCurrentProcessId()); - freopen("CON", "w", stdout); -#endif - - ReadSaveFile("sa1.sav"); - - // Prevent the multiplayer screen from being drawn ( see core.c:EngineInit() ) - REG_RCNT = 0x8000; - REG_KEYINPUT = 0x3FF; - - if (headless) { - // Required or it makes an infinite loop - cgb_audio_init(48000); - AgbMain(); - return 1; - } - - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK) < 0) { - fprintf(stderr, "SDL could not initialize! SDL_Error: %s\n", SDL_GetError()); - return 1; - } - -#ifdef TITLE_BAR - const char *title = STR(TITLE_BAR); -#else - const char *title = "SAT-R sa2"; -#endif - - sdlWindow = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, DISPLAY_WIDTH * videoScale, - DISPLAY_HEIGHT * videoScale, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE); - if (sdlWindow == NULL) { - fprintf(stderr, "Window could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; - } - -#if ENABLE_VRAM_VIEW - int mainWindowX; - int mainWindowWidth; - SDL_GetWindowPosition(sdlWindow, &mainWindowX, NULL); - SDL_GetWindowSize(sdlWindow, &mainWindowWidth, NULL); - int vramWindowX = mainWindowX + mainWindowWidth; - u16 vramWindowWidth = VRAM_VIEW_WIDTH; - u16 vramWindowHeight = VRAM_VIEW_HEIGHT; - vramWindow = SDL_CreateWindow("VRAM View", vramWindowX, SDL_WINDOWPOS_CENTERED, vramWindowWidth, vramWindowHeight, - SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE); - if (vramWindow == NULL) { - fprintf(stderr, "VRAM Window could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; - } -#endif - - sdlRenderer = SDL_CreateRenderer(sdlWindow, -1, SDL_RENDERER_PRESENTVSYNC); - if (sdlRenderer == NULL) { - fprintf(stderr, "Renderer could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; - } - -#if ENABLE_VRAM_VIEW - vramRenderer = SDL_CreateRenderer(vramWindow, -1, SDL_RENDERER_PRESENTVSYNC); - if (vramRenderer == NULL) { - fprintf(stderr, "VRAM Renderer could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; - } -#endif - - SDL_SetRenderDrawColor(sdlRenderer, 0, 0, 0, 255); - SDL_RenderClear(sdlRenderer); - SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "0"); - SDL_RenderSetLogicalSize(sdlRenderer, DISPLAY_WIDTH, DISPLAY_HEIGHT); -#if ENABLE_VRAM_VIEW - SDL_SetRenderDrawColor(vramRenderer, 0, 0, 0, 255); - SDL_RenderClear(vramRenderer); - SDL_RenderSetLogicalSize(vramRenderer, vramWindowWidth, vramWindowHeight); -#endif - - sdlTexture = SDL_CreateTexture(sdlRenderer, SDL_PIXELFORMAT_ABGR1555, SDL_TEXTUREACCESS_STREAMING, DISPLAY_WIDTH, DISPLAY_HEIGHT); - if (sdlTexture == NULL) { - fprintf(stderr, "Texture could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; - } - -#if ENABLE_VRAM_VIEW - vramTexture = SDL_CreateTexture(vramRenderer, SDL_PIXELFORMAT_ABGR1555, SDL_TEXTUREACCESS_STREAMING, vramWindowWidth, vramWindowHeight); - if (vramTexture == NULL) { - fprintf(stderr, "Texture could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; - } -#endif - -#if ENABLE_AUDIO - SDL_AudioSpec want; - - SDL_memset(&want, 0, sizeof(want)); /* or SDL_zero(want) */ - want.freq = 48000; - want.format = AUDIO_F32; - want.channels = 2; - want.samples = (want.freq / 60); - cgb_audio_init(want.freq); - - if (SDL_OpenAudio(&want, 0) < 0) - SDL_Log("Failed to open audio: %s", SDL_GetError()); - else { - if (want.format != AUDIO_F32) /* we let this one thing change. */ - SDL_Log("We didn't get Float32 audio format."); - SDL_PauseAudio(0); - } -#endif - - VDraw(sdlTexture); -#if ENABLE_VRAM_VIEW - VramDraw(vramTexture); -#endif - AgbMain(); - - return 0; -} - -bool newFrameRequested = FALSE; - -// Every GBA frame we process the SDL events and render the number of times -// SDL requires us to for vsync. When we need another frame we break out of -// the loop via a return -void VBlankIntrWait(void) -{ - // ((struct MultiSioPacket *)gMultiSioArea.nextSendBufp) -#define HANDLE_VBLANK_INTRS() \ - ({ \ - REG_DISPSTAT |= INTR_FLAG_VBLANK; \ - RunDMAs(DMA_VBLANK); \ - if (REG_DISPSTAT & DISPSTAT_VBLANK_INTR) \ - gIntrTable[INTR_INDEX_VBLANK](); \ - REG_DISPSTAT &= ~INTR_FLAG_VBLANK; \ - }) - - if (headless) { - REG_VCOUNT = DISPLAY_HEIGHT + 1; - HANDLE_VBLANK_INTRS(); - return; - } - - bool frameAvailable = TRUE; - - while (isRunning) { - ProcessSDLEvents(); - - if (!paused || stepOneFrame) { - double dt = fixedTimestep / timeScale; // TODO: Fix speedup - - // Hack to emulate the behaviour of threaded sdl - // it will not add any new values to the accumulator - // when a new frame was requested within a frame cycle - if (!newFrameRequested) { - double deltaTime = 0; - - curGameTime = SDL_GetPerformanceCounter(); - if (stepOneFrame) { - deltaTime = dt; - } else { - deltaTime = (double)((curGameTime - lastGameTime) / (double)SDL_GetPerformanceFrequency()); - if (deltaTime > (dt * 5)) - deltaTime = dt * 5; - } - lastGameTime = curGameTime; - - accumulator += deltaTime; - } else { - newFrameRequested = FALSE; - } - - while (accumulator >= dt) { - REG_KEYINPUT = KEYS_MASK ^ Platform_GetKeyInput(); - if (frameAvailable) { - VDraw(sdlTexture); - frameAvailable = FALSE; - - HANDLE_VBLANK_INTRS(); - - accumulator -= dt; - } else { - newFrameRequested = TRUE; - return; - } - } - - if (paused && stepOneFrame) { - stepOneFrame = false; - } - } - - SDL_RenderClear(sdlRenderer); - SDL_RenderCopy(sdlRenderer, sdlTexture, NULL, NULL); - -#if ENABLE_VRAM_VIEW - VramDraw(vramTexture); - SDL_RenderClear(vramRenderer); - SDL_RenderCopy(vramRenderer, vramTexture, NULL, NULL); -#endif - if (videoScaleChanged) { - SDL_SetWindowSize(sdlWindow, DISPLAY_WIDTH * videoScale, DISPLAY_HEIGHT * videoScale); - videoScaleChanged = false; - } - - SDL_RenderPresent(sdlRenderer); -#if ENABLE_VRAM_VIEW - SDL_RenderPresent(vramRenderer); -#endif - } - - CloseSaveFile(); - - SDL_DestroyWindow(sdlWindow); - SDL_Quit(); - exit(0); -#undef RUN_VBLANK_INTRS -} - -static void ReadSaveFile(char *path) -{ - // Check whether the saveFile exists, and create it if not - sSaveFile = fopen(path, "r+b"); - if (sSaveFile == NULL) { - sSaveFile = fopen(path, "w+b"); - } - - fseek(sSaveFile, 0, SEEK_END); - int fileSize = ftell(sSaveFile); - fseek(sSaveFile, 0, SEEK_SET); - - // Only read as many bytes as fit inside the buffer - // or as many bytes as are in the file - int bytesToRead = (fileSize < sizeof(FLASH_BASE)) ? fileSize : sizeof(FLASH_BASE); - - int bytesRead = fread(FLASH_BASE, 1, bytesToRead, sSaveFile); - - // Fill the buffer if the savefile was just created or smaller than the buffer itself - for (int i = bytesRead; i < sizeof(FLASH_BASE); i++) { - FLASH_BASE[i] = 0xFF; - } -} - -static void StoreSaveFile() -{ - if (sSaveFile != NULL) { - fseek(sSaveFile, 0, SEEK_SET); - fwrite(FLASH_BASE, 1, sizeof(FLASH_BASE), sSaveFile); - } -} - -void Platform_StoreSaveFile(void) { StoreSaveFile(); } - -static void CloseSaveFile() -{ - if (sSaveFile != NULL) { - fclose(sSaveFile); - } -} - -// Key mappings -#define KEY_A_BUTTON SDLK_c -#define KEY_B_BUTTON SDLK_x -#define KEY_START_BUTTON SDLK_RETURN -#define KEY_SELECT_BUTTON SDLK_BACKSLASH -#define KEY_L_BUTTON SDLK_s -#define KEY_R_BUTTON SDLK_d -#define KEY_DPAD_UP SDLK_UP -#define KEY_DPAD_DOWN SDLK_DOWN -#define KEY_DPAD_LEFT SDLK_LEFT -#define KEY_DPAD_RIGHT SDLK_RIGHT - -#define HANDLE_KEYUP(key) \ - case KEY_##key: \ - keys &= ~key; \ - break; - -#define HANDLE_KEYDOWN(key) \ - case KEY_##key: \ - keys |= key; \ - break; - -static u16 keys; - -u32 fullScreenFlags = 0; -static SDL_DisplayMode sdlDispMode = { 0 }; - -void Platform_QueueAudio(const void *data, uint32_t bytesCount) -{ - if (headless) { - return; - } - // Reset the audio buffer if we are 10 frames out of sync - // If this happens it suggests there was some OS level lag - // in playing audio. The queue length should remain stable at < 10 otherwise - if (SDL_GetQueuedAudioSize(1) > (bytesCount * 10)) { - SDL_ClearQueuedAudio(1); - } - - SDL_QueueAudio(1, data, bytesCount); - // printf("Queueing %d\n, QueueSize %d\n", bytesCount, SDL_GetQueuedAudioSize(1)); -} - -void ProcessSDLEvents(void) -{ - SDL_Event event; - - while (SDL_PollEvent(&event)) { - SDL_Keycode keyCode = event.key.keysym.sym; - Uint16 keyMod = event.key.keysym.mod; - - switch (event.type) { - case SDL_QUIT: - isRunning = false; - break; - case SDL_KEYUP: - switch (event.key.keysym.sym) { - HANDLE_KEYUP(A_BUTTON) - HANDLE_KEYUP(B_BUTTON) - HANDLE_KEYUP(START_BUTTON) - HANDLE_KEYUP(SELECT_BUTTON) - HANDLE_KEYUP(L_BUTTON) - HANDLE_KEYUP(R_BUTTON) - HANDLE_KEYUP(DPAD_UP) - HANDLE_KEYUP(DPAD_DOWN) - HANDLE_KEYUP(DPAD_LEFT) - HANDLE_KEYUP(DPAD_RIGHT) - case SDLK_SPACE: - if (speedUp) { - speedUp = false; - timeScale = 1.0; - SDL_ClearQueuedAudio(1); - SDL_PauseAudio(0); - } - break; - } - break; - case SDL_KEYDOWN: - if (keyCode == SDLK_RETURN && (keyMod & KMOD_ALT)) { - fullScreenFlags ^= SDL_WINDOW_FULLSCREEN_DESKTOP; - if (fullScreenFlags & SDL_WINDOW_FULLSCREEN_DESKTOP) { - SDL_GetWindowDisplayMode(sdlWindow, &sdlDispMode); - preFullscreenVideoScale = videoScale; - } else { - SDL_SetWindowDisplayMode(sdlWindow, &sdlDispMode); - videoScale = preFullscreenVideoScale; - } - SDL_SetWindowFullscreen(sdlWindow, fullScreenFlags); - - SDL_SetWindowSize(sdlWindow, DISPLAY_WIDTH * videoScale, DISPLAY_HEIGHT * videoScale); - videoScaleChanged = FALSE; - } else - switch (event.key.keysym.sym) { - HANDLE_KEYDOWN(A_BUTTON) - HANDLE_KEYDOWN(B_BUTTON) - HANDLE_KEYDOWN(START_BUTTON) - HANDLE_KEYDOWN(SELECT_BUTTON) - HANDLE_KEYDOWN(L_BUTTON) - HANDLE_KEYDOWN(R_BUTTON) - HANDLE_KEYDOWN(DPAD_UP) - HANDLE_KEYDOWN(DPAD_DOWN) - HANDLE_KEYDOWN(DPAD_LEFT) - HANDLE_KEYDOWN(DPAD_RIGHT) - case SDLK_r: - if (event.key.keysym.mod & (KMOD_LCTRL | KMOD_RCTRL)) { - DoSoftReset(); - } - break; - case SDLK_p: - if (event.key.keysym.mod & (KMOD_LCTRL | KMOD_RCTRL)) { - paused = !paused; - } - break; - case SDLK_SPACE: - if (!speedUp) { - speedUp = true; - timeScale = SPEEDUP_SCALE; - SDL_PauseAudio(1); - } - break; - case SDLK_F10: - paused = true; - stepOneFrame = true; - break; - } - break; - case SDL_WINDOWEVENT: - if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) { - unsigned int w = event.window.data1; - unsigned int h = event.window.data2; - - videoScale = 0; - if (w / DISPLAY_WIDTH > videoScale) - videoScale = w / DISPLAY_WIDTH; - if (h / DISPLAY_HEIGHT > videoScale) - videoScale = h / DISPLAY_HEIGHT; - if (videoScale < 1) - videoScale = 1; - - videoScaleChanged = true; - } - break; - } - } -} - -u16 Platform_GetKeyInput(void) -{ -#ifdef _WIN32 - SharedKeys gamepadKeys = GetXInputKeys(); - - speedUp = (gamepadKeys & KEY_SPEEDUP) ? true : false; - - if (speedUp) { - timeScale = SPEEDUP_SCALE; - SDL_PauseAudio(1); - } else { - timeScale = 1.0f; - SDL_PauseAudio(0); - } - - return (gamepadKeys != 0) ? gamepadKeys : keys; -#endif - - return keys; -} - -// BIOS function implementations are based on the VBA-M source code. - -static uint32_t CPUReadMemory(const void *src) { return *(uint32_t *)src; } - -static void CPUWriteMemory(void *dest, uint32_t val) { *(uint32_t *)dest = val; } - -static uint16_t CPUReadHalfWord(const void *src) { return *(uint16_t *)src; } - -static void CPUWriteHalfWord(void *dest, uint16_t val) { *(uint16_t *)dest = val; } - -static uint8_t CPUReadByte(const void *src) { return *(uint8_t *)src; } - -static void CPUWriteByte(void *dest, uint8_t val) { *(uint8_t *)dest = val; } - -void CpuSet(const void *src, void *dst, u32 cnt) -{ - if (dst == NULL) { - puts("Attempted to CpuSet to NULL\n"); - return; - } - - int count = cnt & 0x1FFFFF; - - const u8 *source = src; - u8 *dest = dst; - - // 32-bit ? - if ((cnt >> 26) & 1) { - // assert(((uintptr_t)src & ~3) == (uintptr_t)src); - // assert(((uintptr_t)dst & ~3) == (uintptr_t)dst); - - // needed for 32-bit mode! - // source = (u8 *)((uint32_t )source & ~3); - // dest = (u8 *)((uint32_t )dest & ~3); - - // fill ? - if ((cnt >> 24) & 1) { - uint32_t value = CPUReadMemory(source); - while (count) { - CPUWriteMemory(dest, value); - dest += 4; - count--; - } - } else { - // copy - while (count) { - CPUWriteMemory(dest, CPUReadMemory(source)); - source += 4; - dest += 4; - count--; - } - } - } else { - // No align on 16-bit fill? - // assert(((uintptr_t)src & ~1) == (uintptr_t)src); - // assert(((uintptr_t)dst & ~1) == (uintptr_t)dst); - - // 16-bit fill? - if ((cnt >> 24) & 1) { - uint16_t value = CPUReadHalfWord(source); - while (count) { - CPUWriteHalfWord(dest, value); - dest += 2; - count--; - } - } else { - // copy - while (count) { - CPUWriteHalfWord(dest, CPUReadHalfWord(source)); - source += 2; - dest += 2; - count--; - } - } - } -} - -void CpuFastSet(const void *src, void *dst, u32 cnt) -{ - if (dst == NULL) { - puts("Attempted to CpuFastSet to NULL\n"); - return; - } - - int count = cnt & 0x1FFFFF; - - const u8 *source = src; - u8 *dest = dst; - - // source = (u8 *)((uint32_t )source & ~3); - // dest = (u8 *)((uint32_t )dest & ~3); - - // fill? - if ((cnt >> 24) & 1) { - uint32_t value = CPUReadMemory(source); - while (count > 0) { - // BIOS always transfers 32 bytes at a time - for (int i = 0; i < 8; i++) { - CPUWriteMemory(dest, value); - dest += 4; - } - count -= 8; - } - } else { - // copy - while (count > 0) { - // BIOS always transfers 32 bytes at a time - for (int i = 0; i < 8; i++) { - uint32_t value = CPUReadMemory(source); - CPUWriteMemory(dest, value); - source += 4; - dest += 4; - } - count -= 8; - } - } -} - -void LZ77UnCompVram(const void *src_, void *dest_) -{ - const u8 *src = (const u8 *)src_; - u8 *dest = dest_; - int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; - int srcPos = 4; - int destPos = 0; - - for (;;) { - unsigned char flags = src[srcPos++]; - - for (int i = 0; i < 8; i++) { - if (flags & 0x80) { - int blockSize = (src[srcPos] >> 4) + 3; - int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1; - - srcPos += 2; - - int blockPos = destPos - blockDistance; - - // Some Ruby/Sapphire tilesets overflow. - if (destPos + blockSize > destSize) { - blockSize = destSize - destPos; - // fprintf(stderr, "Destination buffer overflow.\n"); - puts("Destination buffer overflow.\n"); - } - - if (blockPos < 0) - goto fail; - - for (int j = 0; j < blockSize; j++) - dest[destPos++] = dest[blockPos + j]; - } else { - if (destPos >= destSize) - goto fail; - - dest[destPos++] = src[srcPos++]; - } - - if (destPos == destSize) { - return; - } - - flags <<= 1; - } - } - -fail: - puts("Fatal error while decompressing LZ file.\n"); -} - -void LZ77UnCompWram(const void *src, void *dst) -{ - const uint8_t *source = src; - uint8_t *dest = dst; - - uint32_t header = CPUReadMemory(source); - source += 4; - - int len = header >> 8; - - while (len > 0) { - uint8_t d = CPUReadByte(source++); - - if (d) { - for (int i = 0; i < 8; i++) { - if (d & 0x80) { - uint16_t data = CPUReadByte(source++) << 8; - data |= CPUReadByte(source++); - int length = (data >> 12) + 3; - int offset = (data & 0x0FFF); - uint8_t *windowOffset = dest - offset - 1; - for (int i2 = 0; i2 < length; i2++) { - CPUWriteByte(dest++, CPUReadByte(windowOffset++)); - len--; - if (len == 0) - return; - } - } else { - CPUWriteByte(dest++, CPUReadByte(source++)); - len--; - if (len == 0) - return; - } - d <<= 1; - } - } else { - for (int i = 0; i < 8; i++) { - CPUWriteByte(dest++, CPUReadByte(source++)); - len--; - if (len == 0) - return; - } - } - } -} - -void RLUnCompWram(const void *src, void *dest) -{ - int remaining = CPUReadMemory(src) >> 8; - int blockHeader; - int block; - src += 4; - while (remaining > 0) { - blockHeader = CPUReadByte(src); - src++; - if (blockHeader & 0x80) // Compressed? - { - blockHeader &= 0x7F; - blockHeader += 3; - block = CPUReadByte(src); - src++; - while (blockHeader-- && remaining) { - remaining--; - CPUWriteByte(dest, block); - dest++; - } - } else // Uncompressed - { - blockHeader++; - while (blockHeader-- && remaining) { - remaining--; - u8 byte = CPUReadByte(src); - src++; - CPUWriteByte(dest, byte); - dest++; - } - } - } -} - -void RLUnCompVram(const void *src, void *dest) -{ - int remaining = CPUReadMemory(src) >> 8; - int padding = (4 - remaining) & 0x3; - int blockHeader; - int block; - int halfWord = 0; - src += 4; - while (remaining > 0) { - blockHeader = CPUReadByte(src); - src++; - if (blockHeader & 0x80) // Compressed? - { - blockHeader &= 0x7F; - blockHeader += 3; - block = CPUReadByte(src); - src++; - while (blockHeader-- && remaining) { - remaining--; - if ((uintptr_t)dest & 1) { - halfWord |= block << 8; - CPUWriteHalfWord((void *)((uintptr_t)dest ^ 1), halfWord); - } else - halfWord = block; - dest++; - } - } else // Uncompressed - { - blockHeader++; - while (blockHeader-- && remaining) { - remaining--; - u8 byte = CPUReadByte(src); - src++; - if ((uintptr_t)dest & 1) { - halfWord |= byte << 8; - CPUWriteHalfWord((void *)((uintptr_t)dest ^ 1), halfWord); - } else - halfWord = byte; - dest++; - } - } - } - if ((uintptr_t)dest & 1) { - padding--; - dest++; - } - for (; padding > 0; padding -= 2, dest += 2) - CPUWriteHalfWord(dest, 0); -} - -const s16 sineTable[256] - = { (s16)0x0000, (s16)0x0192, (s16)0x0323, (s16)0x04B5, (s16)0x0645, (s16)0x07D5, (s16)0x0964, (s16)0x0AF1, (s16)0x0C7C, (s16)0x0E05, - (s16)0x0F8C, (s16)0x1111, (s16)0x1294, (s16)0x1413, (s16)0x158F, (s16)0x1708, (s16)0x187D, (s16)0x19EF, (s16)0x1B5D, (s16)0x1CC6, - (s16)0x1E2B, (s16)0x1F8B, (s16)0x20E7, (s16)0x223D, (s16)0x238E, (s16)0x24DA, (s16)0x261F, (s16)0x275F, (s16)0x2899, (s16)0x29CD, - (s16)0x2AFA, (s16)0x2C21, (s16)0x2D41, (s16)0x2E5A, (s16)0x2F6B, (s16)0x3076, (s16)0x3179, (s16)0x3274, (s16)0x3367, (s16)0x3453, - (s16)0x3536, (s16)0x3612, (s16)0x36E5, (s16)0x37AF, (s16)0x3871, (s16)0x392A, (s16)0x39DA, (s16)0x3A82, (s16)0x3B20, (s16)0x3BB6, - (s16)0x3C42, (s16)0x3CC5, (s16)0x3D3E, (s16)0x3DAE, (s16)0x3E14, (s16)0x3E71, (s16)0x3EC5, (s16)0x3F0E, (s16)0x3F4E, (s16)0x3F84, - (s16)0x3FB1, (s16)0x3FD3, (s16)0x3FEC, (s16)0x3FFB, (s16)0x4000, (s16)0x3FFB, (s16)0x3FEC, (s16)0x3FD3, (s16)0x3FB1, (s16)0x3F84, - (s16)0x3F4E, (s16)0x3F0E, (s16)0x3EC5, (s16)0x3E71, (s16)0x3E14, (s16)0x3DAE, (s16)0x3D3E, (s16)0x3CC5, (s16)0x3C42, (s16)0x3BB6, - (s16)0x3B20, (s16)0x3A82, (s16)0x39DA, (s16)0x392A, (s16)0x3871, (s16)0x37AF, (s16)0x36E5, (s16)0x3612, (s16)0x3536, (s16)0x3453, - (s16)0x3367, (s16)0x3274, (s16)0x3179, (s16)0x3076, (s16)0x2F6B, (s16)0x2E5A, (s16)0x2D41, (s16)0x2C21, (s16)0x2AFA, (s16)0x29CD, - (s16)0x2899, (s16)0x275F, (s16)0x261F, (s16)0x24DA, (s16)0x238E, (s16)0x223D, (s16)0x20E7, (s16)0x1F8B, (s16)0x1E2B, (s16)0x1CC6, - (s16)0x1B5D, (s16)0x19EF, (s16)0x187D, (s16)0x1708, (s16)0x158F, (s16)0x1413, (s16)0x1294, (s16)0x1111, (s16)0x0F8C, (s16)0x0E05, - (s16)0x0C7C, (s16)0x0AF1, (s16)0x0964, (s16)0x07D5, (s16)0x0645, (s16)0x04B5, (s16)0x0323, (s16)0x0192, (s16)0x0000, (s16)0xFE6E, - (s16)0xFCDD, (s16)0xFB4B, (s16)0xF9BB, (s16)0xF82B, (s16)0xF69C, (s16)0xF50F, (s16)0xF384, (s16)0xF1FB, (s16)0xF074, (s16)0xEEEF, - (s16)0xED6C, (s16)0xEBED, (s16)0xEA71, (s16)0xE8F8, (s16)0xE783, (s16)0xE611, (s16)0xE4A3, (s16)0xE33A, (s16)0xE1D5, (s16)0xE075, - (s16)0xDF19, (s16)0xDDC3, (s16)0xDC72, (s16)0xDB26, (s16)0xD9E1, (s16)0xD8A1, (s16)0xD767, (s16)0xD633, (s16)0xD506, (s16)0xD3DF, - (s16)0xD2BF, (s16)0xD1A6, (s16)0xD095, (s16)0xCF8A, (s16)0xCE87, (s16)0xCD8C, (s16)0xCC99, (s16)0xCBAD, (s16)0xCACA, (s16)0xC9EE, - (s16)0xC91B, (s16)0xC851, (s16)0xC78F, (s16)0xC6D6, (s16)0xC626, (s16)0xC57E, (s16)0xC4E0, (s16)0xC44A, (s16)0xC3BE, (s16)0xC33B, - (s16)0xC2C2, (s16)0xC252, (s16)0xC1EC, (s16)0xC18F, (s16)0xC13B, (s16)0xC0F2, (s16)0xC0B2, (s16)0xC07C, (s16)0xC04F, (s16)0xC02D, - (s16)0xC014, (s16)0xC005, (s16)0xC000, (s16)0xC005, (s16)0xC014, (s16)0xC02D, (s16)0xC04F, (s16)0xC07C, (s16)0xC0B2, (s16)0xC0F2, - (s16)0xC13B, (s16)0xC18F, (s16)0xC1EC, (s16)0xC252, (s16)0xC2C2, (s16)0xC33B, (s16)0xC3BE, (s16)0xC44A, (s16)0xC4E0, (s16)0xC57E, - (s16)0xC626, (s16)0xC6D6, (s16)0xC78F, (s16)0xC851, (s16)0xC91B, (s16)0xC9EE, (s16)0xCACA, (s16)0xCBAD, (s16)0xCC99, (s16)0xCD8C, - (s16)0xCE87, (s16)0xCF8A, (s16)0xD095, (s16)0xD1A6, (s16)0xD2BF, (s16)0xD3DF, (s16)0xD506, (s16)0xD633, (s16)0xD767, (s16)0xD8A1, - (s16)0xD9E1, (s16)0xDB26, (s16)0xDC72, (s16)0xDDC3, (s16)0xDF19, (s16)0xE075, (s16)0xE1D5, (s16)0xE33A, (s16)0xE4A3, (s16)0xE611, - (s16)0xE783, (s16)0xE8F8, (s16)0xEA71, (s16)0xEBED, (s16)0xED6C, (s16)0xEEEF, (s16)0xF074, (s16)0xF1FB, (s16)0xF384, (s16)0xF50F, - (s16)0xF69C, (s16)0xF82B, (s16)0xF9BB, (s16)0xFB4B, (s16)0xFCDD, (s16)0xFE6E }; - -void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count) -{ - for (s32 i = 0; i < count; i++) { - s32 cx = src[i].texX; - s32 cy = src[i].texY; - s16 dispx = src[i].scrX; - s16 dispy = src[i].scrY; - s16 rx = src[i].sx; - s16 ry = src[i].sy; - u16 theta = src[i].alpha >> 8; - s32 a = sineTable[(theta + 0x40) & 255]; - s32 b = sineTable[theta]; - - s16 dx = (rx * a) >> 14; - s16 dmx = (rx * b) >> 14; - s16 dy = (ry * b) >> 14; - s16 dmy = (ry * a) >> 14; - - dest[i].pa = dx; - dest[i].pb = -dmx; - dest[i].pc = dy; - dest[i].pd = dmy; - - s32 startx = cx - dx * dispx + dmx * dispy; - s32 starty = cy - dy * dispx - dmy * dispy; - - dest[i].dx = startx; - dest[i].dy = starty; - } -} - -void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset) -{ - for (s32 i = 0; i < count; i++) { - s16 rx = src[i].xScale; - s16 ry = src[i].yScale; - u16 theta = src[i].rotation >> 8; - - s32 a = (s32)sineTable[(theta + 64) & 255]; - s32 b = (s32)sineTable[theta]; - - s16 dx = ((s32)rx * a) >> 14; - s16 dmx = ((s32)rx * b) >> 14; - s16 dy = ((s32)ry * b) >> 14; - s16 dmy = ((s32)ry * a) >> 14; - - CPUWriteHalfWord(dest, dx); - dest += offset; - CPUWriteHalfWord(dest, -dmx); - dest += offset; - CPUWriteHalfWord(dest, dy); - dest += offset; - CPUWriteHalfWord(dest, dmy); - dest += offset; - } -} - -void SoftReset(u32 resetFlags) { } - -void SoftResetExram(u32 resetFlags) { } - -static const uint16_t bgMapSizes[][2] = { - { 32, 32 }, - { 64, 32 }, - { 32, 64 }, - { 64, 64 }, -}; - -#define mosaicBGEffectX (REG_MOSAIC & 0xF) -#define mosaicBGEffectY ((REG_MOSAIC >> 4) & 0xF) -#define mosaicSpriteEffectX ((REG_MOSAIC >> 8) & 0xF) -#define mosaicSpriteEffectY ((REG_MOSAIC >> 12) & 0xF) -#define applyBGHorizontalMosaicEffect(x) (x - (x % (mosaicBGEffectX + 1))) -#define applyBGVerticalMosaicEffect(y) (y - (y % (mosaicBGEffectY + 1))) -#define applySpriteHorizontalMosaicEffect(x) (x - (x % (mosaicSpriteEffectX + 1))) -#define applySpriteVerticalMosaicEffect(y) (y - (y % (mosaicSpriteEffectY + 1))) - -// NOTE: This is the corrected function. -static void RenderBGScanline(int bgNum, uint16_t control, uint16_t hoffs, uint16_t voffs, int lineNum, uint16_t *line) -{ - unsigned int charBaseBlock = (control >> 2) & 3; - unsigned int screenBaseBlock = (control & BGCNT_SCREENBASE_MASK) >> 8; - unsigned int bitsPerPixel = ((control >> 7) & 1) ? 8 : 4; - - // Determine background dimensions from the control register - unsigned int mapWidth = bgMapSizes[control >> 14][0]; // in tiles - unsigned int mapHeight = bgMapSizes[control >> 14][1]; // in tiles - unsigned int mapPixelWidth = mapWidth * TILE_WIDTH; - unsigned int mapPixelHeight = mapHeight * TILE_WIDTH; - - uint8_t *bgtiles = (uint8_t *)BG_CHAR_ADDR(charBaseBlock); - uint16_t *bgmap = (uint16_t *)BG_SCREEN_ADDR(screenBaseBlock); - uint16_t *pal = (uint16_t *)PLTT; - - // Apply vertical mosaic effect to the entire scanline if enabled - if (control & BGCNT_MOSAIC) { - lineNum = applyBGVerticalMosaicEffect(lineNum); - } - - // GBA hardware masks scroll registers to 9 bits (0-511) - hoffs &= 0x1FF; - voffs &= 0x1FF; - - for (unsigned int x = 0; x < DISPLAY_WIDTH; x++) { - unsigned int xx, yy; - - // Calculate the source coordinate in the background map, applying scroll and mosaic - if (control & BGCNT_MOSAIC) { - xx = applyBGHorizontalMosaicEffect(x) + hoffs; - } else { - xx = x + hoffs; - } - yy = lineNum + voffs; - - // Wrap the coordinates based on the background's actual pixel dimensions. - // This fixes issues with backgrounds that are not 256x256. - xx &= (mapPixelWidth - 1); - yy &= (mapPixelHeight - 1); - - // Convert pixel coordinates to tile coordinates - unsigned int mapX = xx / TILE_WIDTH; - unsigned int mapY = yy / TILE_WIDTH; - - // Calculate the 1D index into the tilemap. This was the primary source of bugs, - // as the original code used a hardcoded map width of 32 tiles. - unsigned int mapIndex = mapY * mapWidth + mapX; - - uint16_t entry = bgmap[mapIndex]; - unsigned int tileNum = entry & 0x3FF; - unsigned int paletteNum = (entry >> 12) & 0xF; - -#if ENABLE_VRAM_VIEW - vramPalIdBuffer[tileNum] = paletteNum; -#endif - - // Get the coordinate within the specific tile - unsigned int tileX = xx % TILE_WIDTH; - unsigned int tileY = yy % TILE_WIDTH; - - // Handle horizontal and vertical tile flipping - if (entry & (1 << 10)) - tileX = (TILE_WIDTH - 1) - tileX; // H-flip - if (entry & (1 << 11)) - tileY = (TILE_WIDTH - 1) - tileY; // V-flip - - // Calculate address of the pixel data and extract the color - if (bitsPerPixel == 4) { - uint32_t tileDataOffset = tileNum * TILE_SIZE_4BPP; - uint32_t pixelByteOffset = (tileY * TILE_WIDTH + tileX) / 2; - uint8_t pixelPair = bgtiles[tileDataOffset + pixelByteOffset]; - - uint8_t pixel; - if (tileX & 1) { - pixel = pixelPair >> 4; - } else { - pixel = pixelPair & 0xF; - } - - if (pixel != 0) { - line[x] = pal[16 * paletteNum + pixel] | 0x8000; - } - } else { // 8 bits per pixel - uint32_t tileDataOffset = tileNum * TILE_SIZE_8BPP; - uint32_t pixelByteOffset = tileY * TILE_WIDTH + tileX; - uint8_t pixel = bgtiles[tileDataOffset + pixelByteOffset]; - - if (pixel != 0) { - // For 8bpp tiles, the palette number in the tile entry is ignored. - // The pixel value is a direct index into the 256-color palette. - line[x] = pal[pixel] | 0x8000; - } - } - } -} - -static inline uint32_t getBgX(int bgNumber) -{ - if (bgNumber == 2) { - return REG_BG2X; - } else if (bgNumber == 3) { - return REG_BG3X; - } - - return 0; -} - -static inline uint32_t getBgY(int bgNumber) -{ - if (bgNumber == 2) { - return REG_BG2Y; - } else if (bgNumber == 3) { - return REG_BG3Y; - } - - return 0; -} - -static inline uint16_t getBgPA(int bgNumber) -{ - if (bgNumber == 2) { - return REG_BG2PA; - } else if (bgNumber == 3) { - return REG_BG3PA; - } - return 0; -} - -static inline uint16_t getBgPB(int bgNumber) -{ - if (bgNumber == 2) { - return REG_BG2PB; - } else if (bgNumber == 3) { - return REG_BG3PB; - } - - return 0; -} - -static inline uint16_t getBgPC(int bgNumber) -{ - if (bgNumber == 2) { - return REG_BG2PC; - } else if (bgNumber == 3) { - return REG_BG3PC; - } - - return 0; -} - -static inline uint16_t getBgPD(int bgNumber) -{ - if (bgNumber == 2) { - return REG_BG2PD; - } else if (bgNumber == 3) { - return REG_BG3PD; - } - - return 0; -} - -static void RenderRotScaleBGScanline(int bgNum, uint16_t control, uint16_t x, uint16_t y, int lineNum, uint16_t *line) -{ - vBgCnt *bgcnt = (vBgCnt *)&control; - unsigned int charBaseBlock = bgcnt->charBaseBlock; - unsigned int screenBaseBlock = bgcnt->screenBaseBlock; - unsigned int mapWidth = 1 << (4 + (bgcnt->screenSize)); // number of tiles - - uint8_t *bgtiles = (uint8_t *)(VRAM + charBaseBlock * 0x4000); - uint8_t *bgmap = (uint8_t *)(VRAM + screenBaseBlock * 0x800); - uint16_t *pal = (uint16_t *)PLTT; - - if (control & BGCNT_MOSAIC) - lineNum = applyBGVerticalMosaicEffect(lineNum); - - s16 pa = getBgPA(bgNum); - s16 pb = getBgPB(bgNum); - s16 pc = getBgPC(bgNum); - s16 pd = getBgPD(bgNum); - - int sizeX = 128; - int sizeY = 128; - - switch (bgcnt->screenSize) { - case 0: - break; - case 1: - sizeX = sizeY = 256; - break; - case 2: - sizeX = sizeY = 512; - break; - case 3: - sizeX = sizeY = 1024; - break; - } - - int maskX = sizeX - 1; - int maskY = sizeY - 1; - - int yshift = ((control >> 14) & 3) + 4; - - /*int dx = pa & 0x7FFF; - if (pa & 0x8000) - dx |= 0xFFFF8000; - int dmx = pb & 0x7FFF; - if (pb & 0x8000) - dmx |= 0xFFFF8000; - int dy = pc & 0x7FFF; - if (pc & 0x8000) - dy |= 0xFFFF8000; - int dmy = pd & 0x7FFF; - if (pd & 0x8000) - dmy |= 0xFFFF8000;*/ - - s32 currentX = getBgX(bgNum); - s32 currentY = getBgY(bgNum); - - // sign extend 28 bit number - currentX = ((currentX & (1 << 27)) ? currentX | 0xF0000000 : currentX); - currentY = ((currentY & (1 << 27)) ? currentY | 0xF0000000 : currentY); - - currentX += lineNum * pb; - currentY += lineNum * pd; - - int realX = currentX; - int realY = currentY; - - if (bgcnt->areaOverflowMode) { - for (int x = 0; x < DISPLAY_WIDTH; x++) { - int xxx = (realX >> 8) & maskX; - int yyy = (realY >> 8) & maskY; - - int tile = bgmap[(xxx >> 3) + ((yyy >> 3) << yshift)]; - - int tileX = xxx & 7; - int tileY = yyy & 7; - - uint8_t pixel = bgtiles[(tile << 6) + (tileY << 3) + tileX]; - - if (pixel != 0) { - line[x] = pal[pixel] | 0x8000; - } - - realX += pa; - realY += pc; - } - } else { - for (int x = 0; x < DISPLAY_WIDTH; x++) { - int xxx = (realX >> 8); - int yyy = (realY >> 8); - - if (xxx < 0 || yyy < 0 || xxx >= sizeX || yyy >= sizeY) { - // line[x] = 0x80000000; - } else { - int tile = bgmap[(xxx >> 3) + ((yyy >> 3) << yshift)]; - - int tileX = xxx & 7; - int tileY = yyy & 7; - - uint8_t pixel = bgtiles[(tile << 6) + (tileY << 3) + tileX]; - - if (pixel != 0) { - line[x] = pal[pixel] | 0x8000; - } - } - realX += pa; - realY += pc; - } - } - // the only way i could figure out how to get accurate mosaic on affine bgs - // luckily i dont think pokemon emerald uses mosaic on affine bgs - if (control & BGCNT_MOSAIC && mosaicBGEffectX > 0) { - for (int x = 0; x < DISPLAY_WIDTH; x++) { - uint16_t color = line[applyBGHorizontalMosaicEffect(x)]; - line[x] = color; - } - } -} - -const u8 spriteSizes[][2] = { - { 8, 16 }, - { 8, 32 }, - { 16, 32 }, - { 32, 64 }, -}; - -#define getAlphaBit(x) ((x >> 15) & 1) -#define getRedChannel(x) ((x >> 0) & 0x1F) -#define getGreenChannel(x) ((x >> 5) & 0x1F) -#define getBlueChannel(x) ((x >> 10) & 0x1F) -#define isbgEnabled(x) ((REG_DISPCNT >> 8) & 0xF) & (1 << x) - -static uint16_t alphaBlendColor(uint16_t targetA, uint16_t targetB) -{ - unsigned int eva = REG_BLDALPHA & 0x1F; - unsigned int evb = (REG_BLDALPHA >> 8) & 0x1F; - // shift right by 4 = division by 16 - unsigned int r = ((getRedChannel(targetA) * eva) + (getRedChannel(targetB) * evb)) >> 4; - unsigned int g = ((getGreenChannel(targetA) * eva) + (getGreenChannel(targetB) * evb)) >> 4; - unsigned int b = ((getBlueChannel(targetA) * eva) + (getBlueChannel(targetB) * evb)) >> 4; - - if (r > 31) - r = 31; - if (g > 31) - g = 31; - if (b > 31) - b = 31; - - return r | (g << 5) | (b << 10) | (1 << 15); -} - -static uint16_t alphaBrightnessIncrease(uint16_t targetA) -{ - unsigned int evy = (REG_BLDY & 0x1F); - unsigned int r = getRedChannel(targetA) + (31 - getRedChannel(targetA)) * evy / 16; - unsigned int g = getGreenChannel(targetA) + (31 - getGreenChannel(targetA)) * evy / 16; - unsigned int b = getBlueChannel(targetA) + (31 - getBlueChannel(targetA)) * evy / 16; - - if (r > 31) - r = 31; - if (g > 31) - g = 31; - if (b > 31) - b = 31; - - return r | (g << 5) | (b << 10) | (1 << 15); -} - -static uint16_t alphaBrightnessDecrease(uint16_t targetA) -{ - unsigned int evy = (REG_BLDY & 0x1F); - unsigned int r = getRedChannel(targetA) - getRedChannel(targetA) * evy / 16; - unsigned int g = getGreenChannel(targetA) - getGreenChannel(targetA) * evy / 16; - unsigned int b = getBlueChannel(targetA) - getBlueChannel(targetA) * evy / 16; - - if (r > 31) - r = 31; - if (g > 31) - g = 31; - if (b > 31) - b = 31; - - return r | (g << 5) | (b << 10) | (1 << 15); -} - -// outputs the blended pixel in colorOutput, the prxxx are the bg priority and -// subpriority, pixelpos is pixel offset in scanline -static bool alphaBlendSelectTargetB(struct scanlineData *scanline, uint16_t *colorOutput, char prnum, char prsub, int pixelpos, - bool spriteBlendEnabled) -{ - // iterate trough every possible bg to blend with, starting from specified priorities - // from arguments - for (unsigned int blndprnum = prnum; blndprnum <= 3; blndprnum++) { - // check if sprite is available to blend with, if sprite blending is enabled - if (spriteBlendEnabled == true && getAlphaBit(scanline->spriteLayers[blndprnum][pixelpos]) == 1) { - *colorOutput = scanline->spriteLayers[blndprnum][pixelpos]; - return true; - } - - for (unsigned int blndprsub = prsub; blndprsub < scanline->prioritySortedBgsCount[blndprnum]; blndprsub++) { - char currLayer = scanline->prioritySortedBgs[blndprnum][blndprsub]; - if (getAlphaBit(scanline->layers[currLayer][pixelpos]) == 1 && REG_BLDCNT & (1 << (8 + currLayer)) && isbgEnabled(currLayer)) { - *colorOutput = scanline->layers[currLayer][pixelpos]; - return true; - } - // if we hit a non target layer we should bail - if (getAlphaBit(scanline->layers[currLayer][pixelpos]) == 1 && isbgEnabled(currLayer) && prnum != blndprnum) { - return false; - } - } - prsub = 0; // start from zero in the next iteration - } - // no background got hit, check if backdrop is enabled and return it if enabled - // otherwise fail - if (REG_BLDCNT & BLDCNT_TGT2_BD) { - *colorOutput = *(uint16_t *)PLTT; - return true; - } else { - return false; - } -} - -#define WINMASK_BG0 (1 << 0) -#define WINMASK_BG1 (1 << 1) -#define WINMASK_BG2 (1 << 2) -#define WINMASK_BG3 (1 << 3) -#define WINMASK_OBJ (1 << 4) -#define WINMASK_CLR (1 << 5) -#define WINMASK_WINOUT (1 << 6) - -// checks if window horizontal is in bounds and takes account WIN wraparound -static bool winCheckHorizontalBounds(u16 left, u16 right, u16 xpos) -{ - if (left > right) - return (xpos >= left || xpos < right); - else - return (xpos >= left && xpos < right); -} - -extern const u8 gOamShapesSizes[12][2]; - -// Parts of this code heavily borrowed from NanoboyAdvance. -static void DrawOamSprites(struct scanlineData *scanline, uint16_t vcount, bool windowsEnabled) -{ - int i; - unsigned int x; - unsigned int y; - void *objtiles = OBJ_VRAM0; - unsigned int blendMode = (REG_BLDCNT >> 6) & 3; - bool winShouldBlendPixel = true; - - int16_t matrix[2][2] = {}; - - if (!(REG_DISPCNT & (1 << 6))) { - puts("2-D OBJ Character mapping not supported."); - } - - for (i = OAM_ENTRY_COUNT - 1; i >= 0; i--) { - OamData *oam = &((OamData *)OAM)[i]; - unsigned int width; - unsigned int height; - uint16_t *pixels; - - bool isAffine = oam->split.affineMode & 1; - bool doubleSizeOrDisabled = (oam->split.affineMode >> 1) & 1; - bool isSemiTransparent = (oam->split.objMode == 1); - bool isObjWin = (oam->split.objMode == 2); - - if (!(isAffine) && doubleSizeOrDisabled) // disable for non-affine - { - continue; - } - - s32 index = (oam->split.shape << 2) | oam->split.size; - width = gOamShapesSizes[index][0]; - height = gOamShapesSizes[index][1]; - - int rect_width = width; - int rect_height = height; - - int half_width = width / 2; - int half_height = height / 2; - - pixels = scanline->spriteLayers[oam->split.priority]; - - int32_t x = oam->split.x; - int32_t y = oam->split.y; - -#if !EXTENDED_OAM - // The regular, unextended values are 9 and 8 unsigned bits for x and y respectively. - // Once they have exceeded the screen's right or bottom, they get treated as signed values on original hardware. - // This is done so that, for example, a sprite at 0 on either axis that moves left or up will not suddenly disappear. - // - // With EXTENDED_OAM we are using signed 16 bit values, so we don't want to change the raw value. - if (x >= DISPLAY_WIDTH) - x -= 512; - if (y >= DISPLAY_HEIGHT) - y -= 256; -#endif - - if (isAffine) { - // TODO: there is probably a better way to do this - u8 matrixNum = oam->split.matrixNum * 4; - - OamData *oam1 = &((OamData *)OAM)[matrixNum]; - OamData *oam2 = &((OamData *)OAM)[matrixNum + 1]; - OamData *oam3 = &((OamData *)OAM)[matrixNum + 2]; - OamData *oam4 = &((OamData *)OAM)[matrixNum + 3]; - - matrix[0][0] = oam1->all.affineParam; - matrix[0][1] = oam2->all.affineParam; - matrix[1][0] = oam3->all.affineParam; - matrix[1][1] = oam4->all.affineParam; - - if (doubleSizeOrDisabled) // double size for affine - { - rect_width *= 2; - rect_height *= 2; - half_width *= 2; - half_height *= 2; - } - } else { - // Identity - matrix[0][0] = 0x100; - matrix[0][1] = 0; - matrix[1][0] = 0; - matrix[1][1] = 0x100; - } - - x += half_width; - y += half_height; - - // Does this sprite actually draw on this scanline? - if (vcount >= (y - half_height) && vcount < (y + half_height)) { - int local_y = (oam->split.mosaic == 1) ? applySpriteVerticalMosaicEffect(vcount) - y : vcount - y; - int number = oam->split.tileNum; - int palette = oam->split.paletteNum; - bool flipX = !isAffine && ((oam->split.matrixNum >> 3) & 1); - bool flipY = !isAffine && ((oam->split.matrixNum >> 4) & 1); - bool is8BPP = oam->split.bpp & 1; - - for (int local_x = -half_width; local_x <= half_width; local_x++) { - uint8_t *tiledata = (uint8_t *)objtiles; - uint16_t *palette = (uint16_t *)(PLTT + (0x200 / 2)); - int local_mosaicX; - int tex_x; - int tex_y; - - unsigned int global_x = local_x + x; - - if (global_x < 0 || global_x >= DISPLAY_WIDTH) - continue; - - if (oam->split.mosaic == 1) { - // mosaic effect has to be applied to global coordinates otherwise - // the mosaic will scroll - local_mosaicX = applySpriteHorizontalMosaicEffect(global_x) - x; - tex_x = ((matrix[0][0] * local_mosaicX + matrix[0][1] * local_y) >> 8) + (width / 2); - tex_y = ((matrix[1][0] * local_mosaicX + matrix[1][1] * local_y) >> 8) + (height / 2); - } else { - tex_x = ((matrix[0][0] * local_x + matrix[0][1] * local_y) >> 8) + (width / 2); - tex_y = ((matrix[1][0] * local_x + matrix[1][1] * local_y) >> 8) + (height / 2); - } - - /* Check if transformed coordinates are inside bounds. */ - - if (tex_x >= width || tex_y >= height || tex_x < 0 || tex_y < 0) - continue; - - if (flipX) - tex_x = width - tex_x - 1; - if (flipY) - tex_y = height - tex_y - 1; - - int tile_x = tex_x % 8; - int tile_y = tex_y % 8; - int block_x = tex_x / 8; - int block_y = tex_y / 8; - int block_offset = ((block_y * (REG_DISPCNT & 0x40 ? (width / 8) : 16)) + block_x); - uint16_t pixel = 0; - - if (!is8BPP) { - int tileDataIndex = (block_offset + oam->split.tileNum) * 32 + (tile_y * 4) + (tile_x / 2); - pixel = tiledata[tileDataIndex]; - if (tile_x & 1) - pixel >>= 4; - else - pixel &= 0xF; - palette += oam->split.paletteNum * 16; -#if ENABLE_VRAM_VIEW - vramPalIdBuffer[0x800 + (tileDataIndex / 32)] = 16 + oam->split.paletteNum; -#endif - } else { - pixel = tiledata[(block_offset * 2 + oam->split.tileNum) * 32 + (tile_y * 8) + tile_x]; - } - - if (pixel != 0) { - uint16_t color = palette[pixel]; - - // if sprite mode is 2 then write to the window mask instead - if (isObjWin) { - if (scanline->winMask[global_x] & WINMASK_WINOUT) - scanline->winMask[global_x] = (REG_WINOUT >> 8) & 0x3F; - continue; - } - // this code runs if pixel is to be drawn - if (global_x < DISPLAY_WIDTH && global_x >= 0) { - // check if its enabled in the window (if window is enabled) - winShouldBlendPixel = (windowsEnabled == false || scanline->winMask[global_x] & WINMASK_CLR); - - // has to be separated from the blend mode switch statement - // because of OBJ semi transparancy feature - if ((blendMode == 1 && REG_BLDCNT & BLDCNT_TGT1_OBJ && winShouldBlendPixel) || isSemiTransparent) { - uint16_t targetA = color; - uint16_t targetB = 0; - if (alphaBlendSelectTargetB(scanline, &targetB, oam->split.priority, 0, global_x, false)) { - color = alphaBlendColor(targetA, targetB); - } - } else if (REG_BLDCNT & BLDCNT_TGT1_OBJ && winShouldBlendPixel) { - switch (blendMode) { - case 2: - color = alphaBrightnessIncrease(color); - break; - case 3: - color = alphaBrightnessDecrease(color); - break; - } - } - - // write pixel to pixel framebuffer - pixels[global_x] = color | (1 << 15); - } - } - } - } - } -} - -static void DrawScanline(uint16_t *pixels, uint16_t vcount) -{ - unsigned int mode = REG_DISPCNT & 3; - unsigned char numOfBgs = (mode == 0 ? 4 : 3); - int bgnum, prnum; - struct scanlineData scanline; - unsigned int blendMode = (REG_BLDCNT >> 6) & 3; - unsigned int xpos; - - // initialize all priority bookkeeping data - memset(scanline.layers, 0, sizeof(scanline.layers)); - memset(scanline.winMask, 0, sizeof(scanline.winMask)); - memset(scanline.spriteLayers, 0, sizeof(scanline.spriteLayers)); - memset(scanline.prioritySortedBgsCount, 0, sizeof(scanline.prioritySortedBgsCount)); - - for (bgnum = 0; bgnum < numOfBgs; bgnum++) { - uint16_t bgcnt = *(uint16_t *)(REG_ADDR_BG0CNT + bgnum * 2); - uint16_t priority; - scanline.bgcnts[bgnum] = bgcnt; - scanline.bgtoprio[bgnum] = priority = (bgcnt & 3); - - char priorityCount = scanline.prioritySortedBgsCount[priority]; - scanline.prioritySortedBgs[priority][priorityCount] = bgnum; - scanline.prioritySortedBgsCount[priority]++; - } - - switch (mode) { - case 0: - // All backgrounds are text mode - for (bgnum = 3; bgnum >= 0; bgnum--) { - if (isbgEnabled(bgnum)) { - uint16_t bghoffs = *(uint16_t *)(REG_ADDR_BG0HOFS + bgnum * 4); - uint16_t bgvoffs = *(uint16_t *)(REG_ADDR_BG0VOFS + bgnum * 4); - - RenderBGScanline(bgnum, scanline.bgcnts[bgnum], bghoffs, bgvoffs, vcount, scanline.layers[bgnum]); - } - } - - break; - case 1: - // BG2 is affine - bgnum = 2; - if (isbgEnabled(bgnum)) { - RenderRotScaleBGScanline(bgnum, scanline.bgcnts[bgnum], REG_BG2X, REG_BG2Y, vcount, scanline.layers[bgnum]); - } - // BG0 and BG1 are text mode - for (bgnum = 1; bgnum >= 0; bgnum--) { - if (isbgEnabled(bgnum)) { - uint16_t bghoffs = *(uint16_t *)(REG_ADDR_BG0HOFS + bgnum * 4); - uint16_t bgvoffs = *(uint16_t *)(REG_ADDR_BG0VOFS + bgnum * 4); - - RenderBGScanline(bgnum, scanline.bgcnts[bgnum], bghoffs, bgvoffs, vcount, scanline.layers[bgnum]); - } - } - break; - default: - printf("Video mode %u is unsupported.\n", mode); - break; - } - - bool windowsEnabled = false; - u16 WIN0bottom, WIN0top, WIN0right, WIN0left; - u16 WIN1bottom, WIN1top, WIN1right, WIN1left; - bool WIN0enable, WIN1enable; - WIN0enable = false; - WIN1enable = false; - - // figure out if WIN0 masks on this scanline - if (REG_DISPCNT & DISPCNT_WIN0_ON) { - // acquire the window coordinates - - WIN0bottom = WIN_GET_HIGHER(REG_WIN0V); // y2; - WIN0top = WIN_GET_LOWER(REG_WIN0V); // y1; - WIN0right = WIN_GET_HIGHER(REG_WIN0H); // x2 - WIN0left = WIN_GET_LOWER(REG_WIN0H); // x1 - - // printf("%d, %d, %d, %d\n", WIN0bottom, WIN0top, WIN0right, WIN0left); - // figure out WIN Y wraparound and check bounds accordingly - if (WIN0top > WIN0bottom) { - if (vcount >= WIN0top || vcount < WIN0bottom) - WIN0enable = true; - } else { - if (vcount >= WIN0top && vcount < WIN0bottom) - WIN0enable = true; - } - - windowsEnabled = true; - } - // figure out if WIN1 masks on this scanline - if (REG_DISPCNT & DISPCNT_WIN1_ON) { - WIN1bottom = WIN_GET_HIGHER(REG_WIN1V); // y2; - WIN1top = WIN_GET_LOWER(REG_WIN1V); // y1; - WIN1right = WIN_GET_HIGHER(REG_WIN1H); // x2 - WIN1left = WIN_GET_LOWER(REG_WIN1H); // x1 - - if (WIN1top > WIN1bottom) { - if (vcount >= WIN1top || vcount < WIN1bottom) - WIN1enable = true; - } else { - if (vcount >= WIN1top && vcount < WIN1bottom) - WIN1enable = true; - } - - windowsEnabled = true; - } - // enable windows if OBJwin is enabled - if (REG_DISPCNT & DISPCNT_OBJWIN_ON && REG_DISPCNT & DISPCNT_OBJ_ON) { - windowsEnabled = true; - } - - // draw to pixel mask - if (windowsEnabled) { - for (xpos = 0; xpos < DISPLAY_WIDTH; xpos++) { - // win0 checks - if (WIN0enable && winCheckHorizontalBounds(WIN0left, WIN0right, xpos)) - scanline.winMask[xpos] = REG_WININ & 0x3F; - // win1 checks - else if (WIN1enable && winCheckHorizontalBounds(WIN1left, WIN1right, xpos)) - scanline.winMask[xpos] = (REG_WININ >> 8) & 0x3F; - else - scanline.winMask[xpos] = (REG_WINOUT & 0x3F) | WINMASK_WINOUT; - } - } - - if (REG_DISPCNT & DISPCNT_OBJ_ON) - DrawOamSprites(&scanline, vcount, windowsEnabled); - - // iterate trough every priority in order - for (prnum = 3; prnum >= 0; prnum--) { - for (char prsub = scanline.prioritySortedBgsCount[prnum] - 1; prsub >= 0; prsub--) { - char bgnum = scanline.prioritySortedBgs[prnum][prsub]; - // if background is enabled then draw it - if (isbgEnabled(bgnum)) { - uint16_t *src = scanline.layers[bgnum]; - // copy all pixels to framebuffer - for (xpos = 0; xpos < DISPLAY_WIDTH; xpos++) { - uint16_t color = src[xpos]; - bool winEffectEnable = true; - - if (!getAlphaBit(color)) - continue; // do nothing if alpha bit is not set - - if (windowsEnabled) { - winEffectEnable = ((scanline.winMask[xpos] & WINMASK_CLR) >> 5); - // if bg is disabled inside the window then do not draw the pixel - if (!(scanline.winMask[xpos] & 1 << bgnum)) - continue; - } - - // blending code - if (blendMode != 0 && REG_BLDCNT & (1 << bgnum) && winEffectEnable) { - uint16_t targetA = color; - uint16_t targetB = 0; - - switch (blendMode) { - case 1: { - char isSpriteBlendingEnabled = REG_BLDCNT & BLDCNT_TGT2_OBJ ? 1 : 0; - // find targetB and blend it - if (alphaBlendSelectTargetB(&scanline, &targetB, prnum, prsub + 1, xpos, isSpriteBlendingEnabled)) { - color = alphaBlendColor(targetA, targetB); - } - } break; - case 2: - color = alphaBrightnessIncrease(targetA); - break; - case 3: - color = alphaBrightnessDecrease(targetA); - break; - } - } - // write the pixel to scanline buffer output - pixels[xpos] = color; - } - } - } - // draw sprites on current priority - uint16_t *src = scanline.spriteLayers[prnum]; - for (xpos = 0; xpos < DISPLAY_WIDTH; xpos++) { - if (getAlphaBit(src[xpos])) { - // check if sprite pixel draws inside window - if (windowsEnabled && !(scanline.winMask[xpos] & WINMASK_OBJ)) - continue; - // draw the pixel - pixels[xpos] = src[xpos]; - } - } - } -} - -uint16_t *memsetu16(uint16_t *dst, uint16_t fill, size_t count) -{ - for (int i = 0; i < count; i++) { - *dst++ = fill; - } - - return 0; -} - -static void DrawFrame(uint16_t *pixels) -{ - int i; - int j; - static uint16_t scanlines[DISPLAY_HEIGHT][DISPLAY_WIDTH]; - unsigned int blendMode = (REG_BLDCNT >> 6) & 3; - - for (i = 0; i < DISPLAY_HEIGHT; i++) { - REG_VCOUNT = i; - if (((REG_DISPSTAT >> 8) & 0xFF) == REG_VCOUNT) { - REG_DISPSTAT |= INTR_FLAG_VCOUNT; - if (REG_DISPSTAT & DISPSTAT_VCOUNT_INTR) - gIntrTable[INTR_INDEX_VCOUNT](); - } - - // Render the backdrop color before the each individual scanline. - // HBlank interrupt code could have changed it inbetween lines. - memsetu16(scanlines[i], *(uint16_t *)PLTT, DISPLAY_WIDTH); - DrawScanline(scanlines[i], i); - - REG_DISPSTAT |= INTR_FLAG_HBLANK; - - RunDMAs(DMA_HBLANK); - - if (REG_DISPSTAT & DISPSTAT_HBLANK_INTR) - gIntrTable[INTR_INDEX_HBLANK](); - - REG_DISPSTAT &= ~INTR_FLAG_HBLANK; - REG_DISPSTAT &= ~INTR_FLAG_VCOUNT; - } - - // Copy to screen - for (i = 0; i < DISPLAY_HEIGHT; i++) { - uint16_t *src = scanlines[i]; - for (j = 0; j < DISPLAY_WIDTH; j++) { - pixels[i * DISPLAY_WIDTH + j] = src[j]; - } - } -} - -#if ENABLE_VRAM_VIEW -void DrawVramView(Uint16 *buffer) -{ - for (int y = 0; y < VRAM_VIEW_HEIGHT / TILE_WIDTH; y++) { - for (int x = 0; x < VRAM_VIEW_WIDTH / TILE_WIDTH; x++) { - u16 tileId = y * (VRAM_VIEW_WIDTH / TILE_WIDTH) + x; - u16 *tileBase = &buffer[(y * VRAM_VIEW_WIDTH + x) * 8]; - - for (int ty = 0; ty < TILE_WIDTH; ty++) { - for (int tx = 0; tx < TILE_WIDTH; tx += 2) { - s32 tileIndex = ty * VRAM_VIEW_WIDTH + tx; - u16 *dest = &tileBase[tileIndex]; - - int i = (ty * TILE_WIDTH + tx) / 2; - u8 *colorPtr = &((u8 *)VRAM)[tileId * 0x20 + i]; - u8 colorId = colorPtr[0]; - u8 colA = (colorId & 0xF0) >> 4; - u8 colB = (colorId & 0x0F) >> 0; - - u8 paletteId = vramPalIdBuffer[tileId]; - dest[0] = PLTT[paletteId * 16 + colB]; - dest[1] = PLTT[paletteId * 16 + colA]; - } - } - } - } -} - -void VramDraw(SDL_Texture *texture) -{ - memset(vramBuffer, 0, sizeof(vramBuffer)); - DrawVramView(vramBuffer); - SDL_UpdateTexture(texture, NULL, vramBuffer, VRAM_VIEW_WIDTH * sizeof(Uint16)); -} -#endif - -void VDraw(SDL_Texture *texture) -{ - memset(gameImage, 0, sizeof(gameImage)); - DrawFrame(gameImage); - SDL_UpdateTexture(texture, NULL, gameImage, DISPLAY_WIDTH * sizeof(Uint16)); - REG_VCOUNT = DISPLAY_HEIGHT + 1; // prep for being in VBlank period -} - -u8 BinToBcd(u8 bin) -{ - int placeCounter = 1; - u8 out = 0; - do { - out |= (bin % 10) * placeCounter; - placeCounter *= 16; - } while ((bin /= 10) > 0); - - return out; -} - -// Following functions taken from mGBA's source -u16 ArcTan(s16 i) -{ - s32 a = -((i * i) >> 14); - s32 b = ((0xA9 * a) >> 14) + 0x390; - b = ((b * a) >> 14) + 0x91C; - b = ((b * a) >> 14) + 0xFB6; - b = ((b * a) >> 14) + 0x16AA; - b = ((b * a) >> 14) + 0x2081; - b = ((b * a) >> 14) + 0x3651; - b = ((b * a) >> 14) + 0xA2F9; - - return (i * b) >> 16; -} - -u16 ArcTan2(s16 x, s16 y) -{ - if (!y) { - if (x >= 0) - return 0; - return 0x8000; - } - if (!x) { - if (y >= 0) - return 0x4000; - return 0xC000; - } - if (y >= 0) { - if (x >= 0) { - if (x >= y) - return ArcTan((y << 14) / x); - } else if (-x >= y) - return ArcTan((y << 14) / x) + 0x8000; - return 0x4000 - ArcTan((x << 14) / y); - } else { - if (x <= 0) { - if (-x > -y) - return ArcTan((y << 14) / x) + 0x8000; - } else if (x >= -y) - return ArcTan((y << 14) / x) + 0x10000; - return 0xC000 - ArcTan((x << 14) / y); - } -} - -u16 Sqrt(u32 num) -{ - if (!num) - return 0; - u32 lower; - u32 upper = num; - u32 bound = 1; - while (bound < upper) { - upper >>= 1; - bound <<= 1; - } - while (1) { - upper = num; - u32 accum = 0; - lower = bound; - while (1) { - u32 oldLower = lower; - if (lower <= upper >> 1) - lower <<= 1; - if (oldLower >= upper >> 1) - break; - } - while (1) { - accum <<= 1; - if (upper >= lower) { - ++accum; - upper -= lower; - } - if (lower == bound) - break; - lower >>= 1; - } - u32 oldBound = bound; - bound += accum; - bound >>= 1; - if (bound >= oldBound) { - bound = oldBound; - break; - } - } - return bound; -} - -int MultiBoot(struct MultiBootParam *mp) { return 0; } diff --git a/sa1/src/platform/shared/audio/README.txt b/sa1/src/platform/shared/audio/README.txt deleted file mode 100644 index 11d4506a3e..0000000000 --- a/sa1/src/platform/shared/audio/README.txt +++ /dev/null @@ -1,4 +0,0 @@ -The source code in this folder is from: -https://github.com/Kurausukun/pokeemerald/tree/pc_port - -Thanks to camthesaxman, Kurausukun, Pidgey and NT_x86 for allowing us to use the code! diff --git a/sa1/src/platform/shared/audio/cgb_audio.c b/sa1/src/platform/shared/audio/cgb_audio.c deleted file mode 100644 index 787a65f43b..0000000000 --- a/sa1/src/platform/shared/audio/cgb_audio.c +++ /dev/null @@ -1,267 +0,0 @@ -#include "global.h" -#include "platform/shared/audio/cgb_audio.h" -#include "platform/shared/audio/cgb_tables.h" - -static struct AudioCGB gb; -static float soundChannelPos[4]; -static const s16 *PU1Table; -static const s16 *PU2Table; -static u32 apuFrame; -static u8 apuCycle; -static u32 sampleRate; -static u16 lfsrMax[2]; -float ch4Samples; - -void cgb_audio_init(u32 rate) -{ - gb.ch1Freq = 0; - gb.ch1SweepCounter = 0; - gb.ch1SweepCounterI = 0; - gb.ch1SweepDir = 0; - gb.ch1SweepShift = 0; - for (u8 ch = 0; ch < 4; ch++) { - gb.Vol[ch] = 0; - gb.VolI[ch] = 0; - gb.Len[ch] = 0; - gb.LenI[ch] = 0; - gb.LenOn[ch] = 0; - gb.EnvCounter[ch] = 0; - gb.EnvCounterI[ch] = 0; - gb.EnvDir[ch] = 0; - gb.DAC[ch] = 0; - soundChannelPos[ch] = 0; - } - soundChannelPos[1] = 1; - PU1Table = PU0; - PU2Table = PU0; - sampleRate = rate; - gb.ch4LFSR[0] = 0x8000; - gb.ch4LFSR[1] = 0x80; - lfsrMax[0] = 0x8000; - lfsrMax[1] = 0x80; - ch4Samples = 0.0f; -} - -void cgb_set_sweep(u8 sweep) -{ - gb.ch1SweepDir = (sweep & 0x08) >> 3; - gb.ch1SweepCounter = gb.ch1SweepCounterI = (sweep & 0x70) >> 4; - gb.ch1SweepShift = (sweep & 0x07); -} - -void cgb_set_wavram() -{ - for (u8 wavi = 0; wavi < 0x10; wavi++) { - gb.WAVRAM[(wavi << 1)] = (((*(REG_ADDR_WAVE_RAM0 + wavi)) & 0xF0) >> 4) / 7.5f - 1.0f; - gb.WAVRAM[(wavi << 1) + 1] = (((*(REG_ADDR_WAVE_RAM0 + wavi)) & 0x0F)) / 7.5f - 1.0f; - } -} - -void cgb_toggle_length(u8 channel, bool8 state) { gb.LenOn[channel] = state; } - -void cgb_set_length(u8 channel, u8 length) { gb.Len[channel] = gb.LenI[channel] = length; } - -void cgb_set_envelope(u8 channel, u8 envelope) -{ - if (channel == 2) { - switch ((envelope & 0xE0)) { - case 0x00: // mute - gb.Vol[2] = gb.VolI[2] = 0; - break; - case 0x20: // full - gb.Vol[2] = gb.VolI[2] = 4; - break; - case 0x40: // half - gb.Vol[2] = gb.VolI[2] = 2; - break; - case 0x60: // quarter - gb.Vol[2] = gb.VolI[2] = 1; - break; - case 0x80: // 3 quarters - gb.Vol[2] = gb.VolI[2] = 3; - break; - } - } else { - gb.DAC[channel] = (envelope & 0xF8) > 0; - gb.Vol[channel] = gb.VolI[channel] = (envelope & 0xF0) >> 4; - gb.EnvDir[channel] = (envelope & 0x08) >> 3; - gb.EnvCounter[channel] = gb.EnvCounterI[channel] = (envelope & 0x07); - } -} - -void cgb_trigger_note(u8 channel) -{ - gb.Vol[channel] = gb.VolI[channel]; - gb.Len[channel] = gb.LenI[channel]; - if (channel != 2) - gb.EnvCounter[channel] = gb.EnvCounterI[channel]; - if (channel == 3) { - gb.ch4LFSR[0] = 0x8000; - gb.ch4LFSR[1] = 0x80; - } -} - -void cgb_audio_generate(u16 samplesPerFrame) -{ - float *outBuffer = gb.outBuffer; - switch (REG_NR11 & 0xC0) { - case 0x00: - PU1Table = PU0; - break; - case 0x40: - PU1Table = PU1; - break; - case 0x80: - PU1Table = PU2; - break; - case 0xC0: - PU1Table = PU3; - break; - } - - switch (REG_NR21 & 0xC0) { - case 0x00: - PU2Table = PU0; - break; - case 0x40: - PU2Table = PU1; - break; - case 0x80: - PU2Table = PU2; - break; - case 0xC0: - PU2Table = PU3; - break; - } - - for (u16 i = 0; i < samplesPerFrame; i++, outBuffer += 2) { - apuFrame += 512; - if (apuFrame >= sampleRate) { - apuFrame -= sampleRate; - apuCycle++; - - if ((apuCycle & 1) == 0) { // Length - for (u8 ch = 0; ch < 4; ch++) { - if (gb.Len[ch]) { - if (--gb.Len[ch] == 0 && gb.LenOn[ch]) { - REG_NR52 &= (0xFF ^ (1 << ch)); - } - } - } - } - - if ((apuCycle & 7) == 7) { // Envelope - for (u8 ch = 0; ch < 4; ch++) { - if (ch == 2) - continue; // Skip wave channel - if (gb.EnvCounter[ch]) { - if (--gb.EnvCounter[ch] == 0) { - if (gb.Vol[ch] && !gb.EnvDir[ch]) { - gb.Vol[ch]--; - gb.EnvCounter[ch] = gb.EnvCounterI[ch]; - } else if (gb.Vol[ch] < 0x0F && gb.EnvDir[ch]) { - gb.Vol[ch]++; - gb.EnvCounter[ch] = gb.EnvCounterI[ch]; - } - } - } - } - } - - if ((apuCycle & 3) == 2) { // Sweep - if (gb.ch1SweepCounterI && gb.ch1SweepShift) { - if (--gb.ch1SweepCounter == 0) { - gb.ch1Freq = REG_SOUND1CNT_X & 0x7FF; - if (gb.ch1SweepDir) { - gb.ch1Freq -= gb.ch1Freq >> gb.ch1SweepShift; - if (gb.ch1Freq & 0xF800) - gb.ch1Freq = 0; - } else { - gb.ch1Freq += gb.ch1Freq >> gb.ch1SweepShift; - if (gb.ch1Freq & 0xF800) { - gb.ch1Freq = 0; - gb.EnvCounter[0] = 0; - gb.Vol[0] = 0; - } - } - REG_NR13 = gb.ch1Freq & 0xFF; - REG_NR14 &= 0xF8; - REG_NR14 += (gb.ch1Freq >> 8) & 0x07; - gb.ch1SweepCounter = gb.ch1SweepCounterI; - } - } - } - } - // Sound generation loop - soundChannelPos[0] += freqTable[REG_SOUND1CNT_X & 0x7FF] / (sampleRate / 32); - soundChannelPos[1] += freqTable[REG_SOUND2CNT_H & 0x7FF] / (sampleRate / 32); - soundChannelPos[2] += freqTable[REG_SOUND3CNT_X & 0x7FF] / (sampleRate / 32); - while (soundChannelPos[0] >= 32) - soundChannelPos[0] -= 32; - while (soundChannelPos[1] >= 32) - soundChannelPos[1] -= 32; - while (soundChannelPos[2] >= 32) - soundChannelPos[2] -= 32; - float outputL = 0; - float outputR = 0; - if (REG_NR52 & 0x80) { - if ((gb.DAC[0]) && (REG_NR52 & 0x01)) { - if (REG_NR51 & 0x10) - outputL += gb.Vol[0] * PU1Table[(int)(soundChannelPos[0])] / 15.0f; - if (REG_NR51 & 0x01) - outputR += gb.Vol[0] * PU1Table[(int)(soundChannelPos[0])] / 15.0f; - } - if ((gb.DAC[1]) && (REG_NR52 & 0x02)) { - if (REG_NR51 & 0x20) - outputL += gb.Vol[1] * PU2Table[(int)(soundChannelPos[1])] / 15.0f; - if (REG_NR51 & 0x02) - outputR += gb.Vol[1] * PU2Table[(int)(soundChannelPos[1])] / 15.0f; - } - if ((REG_NR30 & 0x80) && (REG_NR52 & 0x04)) { - if (REG_NR51 & 0x40) - outputL += gb.Vol[2] * gb.WAVRAM[(int)(soundChannelPos[2])] / 4.0f; - if (REG_NR51 & 0x04) - outputR += gb.Vol[2] * gb.WAVRAM[(int)(soundChannelPos[2])] / 4.0f; - } - if ((gb.DAC[3]) && (REG_NR52 & 0x08)) { - bool32 lfsrMode = ((REG_NR43 & 0x08) == 8); - ch4Samples += freqTableNSE[REG_SOUND4CNT_H & 0xFF] / sampleRate; - int ch4Out = 0; - if (gb.ch4LFSR[lfsrMode] & 1) { - ch4Out++; - } else { - ch4Out--; - } - int avgDiv = 1; - while (ch4Samples >= 1) { - avgDiv++; - bool8 lfsrCarry = 0; - if (gb.ch4LFSR[lfsrMode] & 2) - lfsrCarry ^= 1; - gb.ch4LFSR[lfsrMode] >>= 1; - if (gb.ch4LFSR[lfsrMode] & 2) - lfsrCarry ^= 1; - if (lfsrCarry) - gb.ch4LFSR[lfsrMode] |= lfsrMax[lfsrMode]; - if (gb.ch4LFSR[lfsrMode] & 1) { - ch4Out++; - } else { - ch4Out--; - } - ch4Samples--; - } - float sample = ch4Out; - if (avgDiv > 1) - sample /= avgDiv; - if (REG_NR51 & 0x80) - outputL += gb.Vol[3] * sample / 15.0f; - if (REG_NR51 & 0x08) - outputR += gb.Vol[3] * sample / 15.0f; - } - } - outBuffer[0] = outputL * 0.25f; - outBuffer[1] = outputR * 0.25f; - } -} - -float *cgb_get_buffer() { return gb.outBuffer; } diff --git a/sa1/src/platform/shared/audio/m4a_sound_mixer.c b/sa1/src/platform/shared/audio/m4a_sound_mixer.c deleted file mode 100644 index 8850892f33..0000000000 --- a/sa1/src/platform/shared/audio/m4a_sound_mixer.c +++ /dev/null @@ -1,932 +0,0 @@ -#include "global.h" - -#include "lib/m4a/m4a_internal.h" - -#include "platform/platform.h" -#include "platform/shared/audio/cgb_audio.h" - -static inline void GenerateAudio(struct SoundMixerState *mixer, struct MixerSource *chan, struct WaveData *wav, float *pcmBuffer, - u16 samplesPerFrame, float sampleRateReciprocal); -static void SampleMixer(struct SoundMixerState *mixer, u32 scanlineLimit, u16 samplesPerFrame, float *pcmBuffer, u8 dmaCounter, - u16 maxBufSize); -static inline bool32 TickEnvelope(struct MixerSource *chan, struct WaveData *wav); -static void ChnVolSetAsm(struct MixerSource *chan, struct MP2KTrack *track); - -#define VCOUNT_VBLANK 160 -#define TOTAL_SCANLINES 228 - -#ifndef __has_builtin -#define __has_builtin(x) defined(__GNUC__) -#endif - -#if ((-1 >> 1) == -1) && __has_builtin(__builtin_ctz) -#define FLOOR_DIV_POW2(a, b) ((a) >> __builtin_ctz(b)) -#else -#define FLOOR_DIV_POW2(a, b) ((a) > 0 ? (a) / (b) : (((a) + 1 - (b)) / (b))) -#endif - -static float audioBuffer[PCM_DMA_BUF_SIZE]; -static struct SoundMixerState sSoundInfo = { 0 }; -struct SoundMixerState *SOUND_INFO_PTR = &sSoundInfo; - -void SoundMain(void) -{ - struct SoundMixerState *mixer = SOUND_INFO_PTR; - - if (mixer->lockStatus != ID_NUMBER) { - return; - } - mixer->lockStatus++; - - u32 maxScanlines = mixer->maxScanlines; - if (mixer->maxScanlines != 0) { - u32 vcount = REG_VCOUNT; - maxScanlines += vcount; - if (vcount < VCOUNT_VBLANK) { - maxScanlines += TOTAL_SCANLINES; - } - } - - if (mixer->MPlayMainHead != NULL) { - mixer->MPlayMainHead(mixer->musicPlayerHead); - } - - mixer->CgbSound(); - - s32 samplesPerFrame = mixer->samplesPerFrame; - float *pcmBuffer = mixer->pcmBuffer; - s32 dmaCounter = mixer->dmaCounter; - - if (dmaCounter > 1) { - pcmBuffer += samplesPerFrame * (mixer->framesPerDmaCycle - (dmaCounter - 1)) * 2; - } - - SampleMixer(mixer, maxScanlines, samplesPerFrame, pcmBuffer, dmaCounter, PCM_DMA_BUF_SIZE); - cgb_audio_generate(samplesPerFrame); -} - -static void SampleMixer(struct SoundMixerState *mixer, u32 scanlineLimit, u16 samplesPerFrame, float *pcmBuffer, u8 dmaCounter, - u16 maxBufSize) -{ - u32 reverb = mixer->reverb; - if (reverb) { - // The vanilla reverb effect outputs a mono sound from four sources: - // - L/R channels as they were mixer->framesPerDmaCycle frames ago - // - L/R channels as they were (mixer->framesPerDmaCycle - 1) frames ago - float *tmp1 = pcmBuffer; - float *tmp2; - if (dmaCounter == 2) { - tmp2 = mixer->pcmBuffer; - } else { - tmp2 = pcmBuffer + samplesPerFrame * 2; - } - u16 i = 0; - do { - float s = tmp1[0] + tmp1[1] + tmp2[0] + tmp2[1]; - s *= ((float)reverb / 512.0f); - tmp1[0] = tmp1[1] = s; - tmp1 += 2; - tmp2 += 2; - } while (++i < samplesPerFrame); - } else { - // memset(pcmBuffer, 0, samplesPerFrame); - // memset(pcmBuffer + maxBufSize, 0, samplesPerFrame); - for (int i = 0; i < samplesPerFrame; i++) { - float *dst = &pcmBuffer[i * 2]; - dst[1] = dst[0] = 0.0f; - } - } - - float sampleRateReciprocal = mixer->sampleRateReciprocal; - s8 numChans = mixer->numChans; - struct MixerSource *chan = mixer->chans; - - for (int i = 0; i < numChans; i++, chan++) { - struct WaveData *wav = chan->wav; - - if (scanlineLimit != 0) { - u16 vcount = REG_VCOUNT; - if (vcount < VCOUNT_VBLANK) { - vcount += TOTAL_SCANLINES; - } - if (vcount >= scanlineLimit) { - goto returnEarly; - } - } - - if (TickEnvelope(chan, wav)) { - GenerateAudio(mixer, chan, wav, pcmBuffer, samplesPerFrame, sampleRateReciprocal); - } - } -returnEarly: - mixer->lockStatus = ID_NUMBER; -} - -// Returns TRUE if channel is still active after moving envelope forward a frame -//__attribute__((target("thumb"))) -static inline bool32 TickEnvelope(struct MixerSource *chan, struct WaveData *wav) -{ - // MP2K envelope shape - // | - // (linear)^ | - // Attack / \Decay (exponential) | - // / \_ | - // / '., Sustain | - // / '.______________ | - // / '-. Echo (linear) | - // / Release (exp) ''--..|\ | - // / \ | - - u8 status = chan->status; - if ((status & 0xC7) == 0) { - return FALSE; - } - - u8 env = 0; - if ((status & 0x80) == 0) { - env = chan->data.sound.envelopeVol; - - if (status & 4) { - // Note-wise echo - --chan->data.sound.echoVol; - if (chan->data.sound.echoVol <= 0) { - chan->status = 0; - return FALSE; - } else { - return TRUE; - } - } else if (status & 0x40) { - // Release - chan->data.sound.envelopeVol = env * chan->data.sound.release / 256U; - u8 echoVol = chan->data.sound.echoVol; - if (chan->data.sound.envelopeVol > echoVol) { - return TRUE; - } else if (echoVol == 0) { - chan->status = 0; - return FALSE; - } else { - chan->status |= 4; - return TRUE; - } - } - - switch (status & 3) { - u16 newEnv; - case 2: - // Decay - chan->data.sound.envelopeVol = env * chan->data.sound.decay / 256U; - - u8 sustain = chan->data.sound.sustain; - if (chan->data.sound.envelopeVol <= sustain && sustain == 0) { - // Duplicated echo check from Release section above - if (chan->data.sound.echoVol == 0) { - chan->status = 0; - return FALSE; - } else { - chan->status |= 4; - return TRUE; - } - } else if (chan->data.sound.envelopeVol <= sustain) { - chan->data.sound.envelopeVol = sustain; - --chan->status; - } - break; - case 3: - attack: - newEnv = env + chan->data.sound.attack; - if (newEnv > 0xFF) { - chan->data.sound.envelopeVol = 0xFF; - --chan->status; - } else { - chan->data.sound.envelopeVol = newEnv; - } - break; - case 1: // Sustain - default: - break; - } - - return TRUE; - } else if (status & 0x40) { - // Init and stop cancel each other out - chan->status = 0; - return FALSE; - } else { - // Init channel - chan->status = 3; - chan->current = wav->data; - chan->data.sound.ct = wav->size; - chan->data.sound.fw = 0; - chan->data.sound.envelopeVol = 0; - if ((wav->status >> 8) & 0xC0) { - chan->status |= 0x10; - } - goto attack; - } -} - -static inline void GenerateAudio(struct SoundMixerState *mixer, struct MixerSource *chan, struct WaveData *wav, float *pcmBuffer, - u16 samplesPerFrame, float sampleRateReciprocal) -{ /*, [[[]]]) {*/ - u8 v = chan->data.sound.envelopeVol * (mixer->masterVol + 1) / 16U; - chan->data.sound.envelopeVolR = chan->rightVol * v / 256U; - chan->data.sound.envelopeVolL = chan->leftVol * v / 256U; - - s32 loopLen = 0; - s8 *loopStart; - if (chan->status & 0x10) { - loopStart = wav->data + wav->loopStart; - loopLen = wav->size - wav->loopStart; - } - s32 samplesLeftInWav = chan->data.sound.ct; - s8 *current = chan->current; - signed envR = chan->data.sound.envelopeVolR; - signed envL = chan->data.sound.envelopeVolL; - - if (chan->type & TONEDATA_TYPE_CGB) { - for (u16 i = 0; i < samplesPerFrame; i++, pcmBuffer += 2) { - s8 c = *(current++); - - pcmBuffer[1] += (c * envR) / 32768.0f; - pcmBuffer[0] += (c * envL) / 32768.0f; - if (--samplesLeftInWav == 0) { - samplesLeftInWav = loopLen; - if (loopLen != 0) { - current = loopStart; - } else { - chan->status = 0; - return; - } - } - } - - chan->data.sound.ct = samplesLeftInWav; - chan->current = current; - } else { - float finePos = chan->data.sound.fw; - float romSamplesPerOutputSample = chan->data.sound.freq * sampleRateReciprocal; - - s16 b = current[0]; - s16 m = current[1] - b; - current += 1; - - for (u16 i = 0; i < samplesPerFrame; i++, pcmBuffer += 2) { - // Use linear interpolation to calculate a value between the current sample in the wav - // and the next sample. Also cancel out the 9.23 stuff - float sample = (finePos * m) + b; - - pcmBuffer[1] += (sample * envR) / 32768.0f; - pcmBuffer[0] += (sample * envL) / 32768.0f; - - finePos += romSamplesPerOutputSample; - u32 newCoarsePos = finePos; - if (newCoarsePos != 0) { - finePos -= (int)finePos; - samplesLeftInWav -= newCoarsePos; - if (samplesLeftInWav <= 0) { - if (loopLen != 0) { - current = loopStart; - newCoarsePos = -samplesLeftInWav; - samplesLeftInWav += loopLen; - while (samplesLeftInWav <= 0) { - newCoarsePos -= loopLen; - samplesLeftInWav += loopLen; - } - b = current[newCoarsePos]; - m = current[newCoarsePos + 1] - b; - current += newCoarsePos + 1; - } else { - chan->status = 0; - return; - } - } else { - b = current[newCoarsePos - 1]; - m = current[newCoarsePos] - b; - current += newCoarsePos; - } - } - } - - chan->data.sound.fw = finePos; - chan->data.sound.ct = samplesLeftInWav; - chan->current = current - 1; - } -} - -u32 umul3232H32(u32 a, u32 b) -{ - u64 result = a; - result *= b; - return result >> 32; -} - -void SoundMainBTM(void *ptr) { CpuFill32(0, ptr, offsetof(struct MP2KTrack, cmdPtr)); } - -// Removes chan from the doubly-linked list of channels associated with chan->track. -// Gonna rename this to like "FreeChannel" or something, similar to VGMS -void MP2KClearChain(struct MixerSource *chan) -{ - struct MP2KTrack *track = chan->track; - if (chan->track == NULL) { - return; - } - struct MixerSource *next = chan->next; - struct MixerSource *prev = chan->prev; - - if (prev != NULL) { - prev->next = next; - } else { - track->chan = next; - } - - if (next != NULL) { - next->prev = prev; - } - - chan->track = NULL; -} - -static u8 ConsumeTrackByte(struct MP2KTrack *track) { return *track->cmdPtr++; } - -void MPlayJumpTableCopy(void **mplayJumpTable) -{ - for (u8 i = 0; i < 36; i++) { - mplayJumpTable[i] = gMPlayJumpTableTemplate[i]; - } -} - -// Ends the current track. (Fine as in the Italian musical word, not English) -void MP2K_event_fine(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - struct MP2KTrack *r5 = track; - for (struct MixerSource *chan = track->chan; chan != NULL; chan = chan->next) { - if (chan->status & 0xC7) { - chan->status |= 0x40; - } - ClearChain(chan); - } - track->status = 0; -} - -// Sets the track's cmdPtr to the specified address. -void MP2K_event_goto(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - u8 *cmdPtr = track->cmdPtr; - uintptr_t addr = 0; - for (size_t i = sizeof(uintptr_t) - 1; i > 0; i--) { - addr |= cmdPtr[i]; - addr <<= 8; - } - addr |= *cmdPtr; - track->cmdPtr = (u8 *)addr; -} - -// Sets the track's cmdPtr to the specified address after backing up its current position. -void MP2K_event_patt(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - u8 level = track->patternLevel; - if (level < 3) { - track->patternStack[level] = track->cmdPtr + sizeof(u8 *); - track->patternLevel++; - MP2K_event_goto(unused, track); - } else { - // Stop playing this track, as an indication to the music programmer that they need to quit - // nesting patterns so darn much. - MP2K_event_fine(unused, track); - } -} - -// Marks the end of the current pattern, if there is one, by resetting the pattern to the -// most recently saved value. -void MP2K_event_pend(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - if (track->patternLevel != 0) { - u8 index = --track->patternLevel; - track->cmdPtr = track->patternStack[index]; - } -} - -// Loops back until a REPT event has been reached the specified number of times -void MP2K_event_rept(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - if (*track->cmdPtr == 0) { - // "Repeat 0 times" == loop forever - track->cmdPtr++; - MP2K_event_goto(unused, track); - } else { - u8 repeatCount = ++track->repeatCount; - if (repeatCount < ConsumeTrackByte(track)) { - MP2K_event_goto(unused, track); - } else { - track->repeatCount = 0; - track->cmdPtr += sizeof(u8) + sizeof(u8 *); - } - } -} - -// Sets the note priority for new notes in this track. -void MP2K_event_prio(struct MP2KPlayerState *unused, struct MP2KTrack *track) { track->priority = ConsumeTrackByte(track); } - -// Sets the BPM of all tracks to the specified tempo (in beats per half-minute, because 255 as a max tempo -// kinda sucks but 510 is plenty). -void MP2K_event_tempo(struct MP2KPlayerState *player, struct MP2KTrack *track) -{ - u16 bpm = ConsumeTrackByte(track); - bpm *= 2; - player->tempoRawBPM = bpm; - player->tempoInterval = (bpm * player->tempoScale) / 256; -} - -void MP2K_event_keysh(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->keyShift = ConsumeTrackByte(track); - track->status |= 0xC; -} - -void MP2K_event_voice(struct MP2KPlayerState *player, struct MP2KTrack *track) -{ - u8 voice = *(track->cmdPtr++); - struct MP2KVoiceGroup *voicegroup = &player->voicegroup[voice]; - track->voicegroup = *voicegroup; -} - -void MP2K_event_vol(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->vol = ConsumeTrackByte(track); - track->status |= 0x3; -} - -void MP2K_event_pan(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->pan = ConsumeTrackByte(track) - 0x40; - track->status |= 0x3; -} - -void MP2K_event_bend(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->bend = ConsumeTrackByte(track) - 0x40; - track->status |= 0xC; -} - -void MP2K_event_bendr(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->bendRange = ConsumeTrackByte(track); - track->status |= 0xC; -} - -void MP2K_event_lfodl(struct MP2KPlayerState *unused, struct MP2KTrack *track) { track->lfoDelay = ConsumeTrackByte(track); } - -void MP2K_event_modt(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - u8 type = ConsumeTrackByte(track); - if (type != track->modType) { - track->modType = type; - track->status |= 0xF; - } -} - -void MP2K_event_tune(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->tune = ConsumeTrackByte(track) - 0x40; - track->status |= 0xC; -} - -void MP2K_event_port(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - - vu8 *offset = (vu8 *)(REG_ADDR_NR10 + *(track->cmdPtr++)); - *offset = ConsumeTrackByte(track); -} - -void MP2KPlayerMain(struct MP2KPlayerState *player) -{ - struct SoundMixerState *mixer = SOUND_INFO_PTR; - - if (player->lockStatus != ID_NUMBER) { - return; - } - player->lockStatus++; - - if (player->nextPlayerFunc != NULL) { - player->nextPlayerFunc(player->nextPlayer); - } - - if (player->status & MUSICPLAYER_STATUS_PAUSE) { - goto returnEarly; - } - FadeOutBody(player); - if (player->status & MUSICPLAYER_STATUS_PAUSE) { - goto returnEarly; - } - - player->tempoCounter += player->tempoInterval; - while (player->tempoCounter >= 150) { - u16 trackBits = 0; - - for (u32 i = 0; i < player->trackCount; i++) { - struct MP2KTrack *currentTrack = player->tracks + i; - struct MixerSource *chan; - if ((currentTrack->status & MPT_FLG_EXIST) == 0) { - continue; - } - trackBits |= (1 << i); - - chan = currentTrack->chan; - while (chan != NULL) { - if ((chan->status & SOUND_CHANNEL_SF_ON) == 0) { - ClearChain(chan); - } else if (chan->data.sound.gateTime != 0 && --chan->data.sound.gateTime == 0) { - chan->status |= SOUND_CHANNEL_SF_STOP; - } - chan = chan->next; - } - - if (currentTrack->status & MPT_FLG_START) { - CpuFill32(0, currentTrack, offsetof(struct MP2KTrack, cmdPtr)); - currentTrack->status = MPT_FLG_EXIST; - currentTrack->bendRange = 2; - currentTrack->volPublic = 64; - currentTrack->lfoSpeed = 22; - currentTrack->voicegroup.type = 1; - } - - while (currentTrack->wait == 0) { - u8 event = *currentTrack->cmdPtr; - if (event < 0x80) { - event = currentTrack->runningStatus; - } else { - currentTrack->cmdPtr++; - if (event >= 0xBD) { - currentTrack->runningStatus = event; - } - } - - if (event >= 0xCF) { - mixer->plynote(event - 0xCF, player, currentTrack); - } else if (event >= 0xB1) { - player->cmd = event - 0xB1; - MP2KEventFunc eventFunc = mixer->MPlayJumpTable[player->cmd]; - eventFunc(player, currentTrack); - - if (currentTrack->status == 0) { - goto nextTrack; - } - } else { - currentTrack->wait = gClockTable[event - 0x80]; - } - } - - currentTrack->wait--; - - if (currentTrack->lfoSpeed != 0 && currentTrack->modDepth != 0) { - if (currentTrack->lfoDelayCounter != 0U) { - currentTrack->lfoDelayCounter--; - goto nextTrack; - } - - currentTrack->lfoSpeedCounter += currentTrack->lfoSpeed; - - s8 r; - if (currentTrack->lfoSpeedCounter >= 0x40U && currentTrack->lfoSpeedCounter < 0xC0U) { - r = 128 - currentTrack->lfoSpeedCounter; - } else if (currentTrack->lfoSpeedCounter >= 0xC0U) { - // Unsigned -> signed casts where the value is out of range are implementation defined. - // Why not add a few extra lines to make behavior the same for literally everyone? - r = currentTrack->lfoSpeedCounter - 256; - } else { - r = currentTrack->lfoSpeedCounter; - } - r = FLOOR_DIV_POW2(currentTrack->modDepth * r, 64); - - if (r != currentTrack->modCalculated) { - currentTrack->modCalculated = r; - if (currentTrack->modType == 0) { - currentTrack->status |= MPT_FLG_PITCHG; - } else { - currentTrack->status |= MPT_FLG_VOLCHG; - } - } - } - - nextTrack:; - } - - player->clock++; - if (trackBits == 0) { - player->status = MUSICPLAYER_STATUS_PAUSE; - goto returnEarly; - } - player->status = trackBits; - player->tempoCounter -= 150; - } - - u32 i = 0; - - do { - struct MP2KTrack *track = player->tracks + i; - - if ((track->status & MPT_FLG_EXIST) == 0 || (track->status & 0xF) == 0) { - continue; - } - TrkVolPitSet(player, track); - for (struct MixerSource *chan = track->chan; chan != NULL; chan = chan->next) { - if ((chan->status & 0xC7) == 0) { - ClearChain(chan); - continue; - } - u8 cgbType = chan->type & TONEDATA_TYPE_CGB; - if (track->status & MPT_FLG_VOLCHG) { - ChnVolSetAsm(chan, track); - if (cgbType != 0) { - chan->data.cgb.cgbStatus |= 1; - } - } - if (track->status & MPT_FLG_PITCHG) { - s32 key = chan->data.sound.key + track->keyShiftCalculated; - if (key < 0) { - key = 0; - } - if (cgbType != 0) { - chan->data.cgb.freq = mixer->MidiKeyToCgbFreq(cgbType, key, track->pitchCalculated); - chan->data.cgb.cgbStatus |= 0x2; - } else { - chan->data.sound.freq = MidiKeyToFreq(chan->wav, key, track->pitchCalculated); - } - } - } - track->status &= ~0xF; - } while (++i < player->trackCount); -returnEarly:; - player->lockStatus = ID_NUMBER; -} - -void TrackStop(struct MP2KPlayerState *player, struct MP2KTrack *track) -{ - if (track->status & 0x80) { - for (struct MixerSource *chan = track->chan; chan != NULL; chan = chan->next) { - if (chan->status != 0) { - u8 cgbType = chan->type & TONEDATA_TYPE_CGB; - if (cgbType != 0) { - struct SoundMixerState *mixer = SOUND_INFO_PTR; - mixer->CgbOscOff(cgbType); - } - chan->status = 0; - } - chan->track = NULL; - } - track->chan = NULL; - } -} - -static void ChnVolSetAsm(struct MixerSource *chan, struct MP2KTrack *track) -{ - s8 forcedPan = chan->data.sound.rhythmPan; - u32 rightVolume = (u8)(forcedPan + 128) * chan->data.sound.velocity * track->volRightCalculated / 128 / 128; - if (rightVolume > 0xFF) { - rightVolume = 0xFF; - } - chan->rightVol = rightVolume; - - u32 leftVolume = (u8)(127 - forcedPan) * chan->data.sound.velocity * track->volLeftCalculated / 128 / 128; - if (leftVolume > 0xFF) { - leftVolume = 0xFF; - } - chan->leftVol = leftVolume; -} - -void MP2K_event_nxx(u8 clock, struct MP2KPlayerState *player, struct MP2KTrack *track) -{ - struct SoundMixerState *mixer = SOUND_INFO_PTR; - - // A note can be anywhere from 1 to 4 bytes long. First is always the note length... - track->gateTime = gClockTable[clock]; - if (*track->cmdPtr < 0x80) { - // Then the note name... - track->key = *(track->cmdPtr++); - if (*track->cmdPtr < 0x80) { - // Then the velocity... - track->velocity = *(track->cmdPtr++); - if (*track->cmdPtr < 0x80) { - // Then a number to add ticks to get exotic or more precise note lengths without TIE. - track->gateTime += *(track->cmdPtr++); - } - } - } - - // sp14 - s8 forcedPan = 0; - // First r4, then r9 - struct MP2KVoiceGroup *voicegroup = &track->voicegroup; - // sp8 - u8 key = track->key; - u8 type = voicegroup->type; - - if (type & (TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL)) { - u8 voicegroupIndex; - if (voicegroup->type & TONEDATA_TYPE_SPL) { - voicegroupIndex = voicegroup->data.keySplit.keySplitTable[track->key]; - } else { - voicegroupIndex = track->key; - } - - voicegroup = voicegroup->data.keySplit.group + voicegroupIndex; - if (voicegroup->type & (TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL)) { - return; - } - if (type & TONEDATA_TYPE_RHY) { - if (voicegroup->pan_sweep & 0x80) { - forcedPan = ((s8)(voicegroup->pan_sweep & 0x7F) - 0x40) * 2; - } - key = voicegroup->drumKey; - } - } - - // sp10 - u16 priority = player->priority + track->priority; - if (priority > 0xFF) { - priority = 0xFF; - } - - u8 cgbType = voicegroup->type & TONEDATA_TYPE_CGB; - struct MixerSource *chan; - - if (cgbType != 0) { - if (mixer->cgbChans == NULL) { - return; - } - // There's only one CgbChannel of a given type, so we don't need to loop to find it. - chan = mixer->cgbChans + cgbType - 1; - - // If this channel is running and not stopped, - if ((chan->status & SOUND_CHANNEL_SF_ON) && (chan->status & SOUND_CHANNEL_SF_STOP) == 0) { - // then make sure this note is higher priority (or same priority but from a later track). - if (chan->data.sound.priority > priority || (chan->data.sound.priority == priority && chan->track < track)) { - return; - } - } - } else { - u16 p = priority; - struct MP2KTrack *t = track; - bool32 foundStoppingChannel = FALSE; - chan = NULL; - u8 numChans = mixer->numChans; - struct MixerSource *currChan = mixer->chans; - - for (u8 i = 0; i < numChans; i++, currChan++) { - if ((currChan->status & SOUND_CHANNEL_SF_ON) == 0) { - // Hey, we found a completely inactive channel! Let's use that. - chan = currChan; - break; - } - - if (currChan->status & SOUND_CHANNEL_SF_STOP && !foundStoppingChannel) { - // In the absence of a completely finalized channel, we can take over one that's about to - // finalize. That's a tier above any channel that's currently playing a note. - foundStoppingChannel = TRUE; - p = currChan->data.sound.priority; - t = currChan->track; - chan = currChan; - } else if ((currChan->status & SOUND_CHANNEL_SF_STOP && foundStoppingChannel) - || ((currChan->status & SOUND_CHANNEL_SF_STOP) == 0 && !foundStoppingChannel)) { - // The channel we're checking is on the same tier, so check the priority and track order - if (currChan->data.sound.priority < p) { - p = currChan->data.sound.priority; - t = currChan->track; - chan = currChan; - } else if (currChan->data.sound.priority == p && currChan->track > t) { - t = currChan->track; - chan = currChan; - } else if (currChan->data.sound.priority == p && currChan->track == t) { - chan = currChan; - } - } - } - } - - if (chan == NULL) { - return; - } - - ClearChain(chan); - - chan->prev = NULL; - chan->next = track->chan; - if (track->chan != NULL) { - track->chan->prev = chan; - } - track->chan = chan; - chan->track = track; - - track->lfoDelayCounter = track->lfoDelay; - if (track->lfoDelay != 0) { - ClearModM(track); - } - TrkVolPitSet(player, track); - - chan->data.sound.gateTime = track->gateTime; - chan->data.sound.untransposedKey = track->key; - chan->data.sound.velocity = track->velocity; - chan->data.sound.priority = priority; - chan->data.sound.key = key; - chan->data.sound.rhythmPan = forcedPan; - chan->type = voicegroup->type; - chan->wav = voicegroup->data.sound.wav; - chan->data.sound.attack = voicegroup->data.sound.attack; - chan->data.sound.decay = voicegroup->data.sound.decay; - chan->data.sound.sustain = voicegroup->data.sound.sustain; - chan->data.sound.release = voicegroup->data.sound.release; - chan->data.sound.echoVol = track->echoVolume; - chan->data.sound.echoLen = track->echoLength; - ChnVolSetAsm(chan, track); - - // Avoid promoting keyShiftCalculated to u8 by splitting the addition into a separate statement - s16 transposedKey = chan->data.sound.key; - transposedKey += track->keyShiftCalculated; - if (transposedKey < 0) { - transposedKey = 0; - } - - if (cgbType != 0) { - // struct CgbChannel *cgbChan = (struct CgbChannel *)chan; - chan->data.cgb.length = voicegroup->cgbLength; - if (voicegroup->pan_sweep & 0x80 || (voicegroup->pan_sweep & 0x70) == 0) { - chan->data.cgb.sweep = 8; - } else { - chan->data.cgb.sweep = voicegroup->pan_sweep; - } - - chan->data.cgb.freq = mixer->MidiKeyToCgbFreq(cgbType, transposedKey, track->pitchCalculated); - } else { - chan->data.sound.freq = MidiKeyToFreq(chan->wav, transposedKey, track->pitchCalculated); - } - - chan->status = SOUND_CHANNEL_SF_START; - track->status &= ~0xF; -} - -void MP2K_event_endtie(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - u8 key = *track->cmdPtr; - if (key < 0x80) { - track->key = key; - track->cmdPtr++; - } else { - key = track->key; - } - - struct MixerSource *chan = track->chan; - while (chan != NULL) { - if (chan->status & 0x83 && (chan->status & 0x40) == 0 && chan->data.sound.untransposedKey == key) { - chan->status |= 0x40; - return; - } - chan = chan->next; - } -} - -void MP2K_event_lfos(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->lfoSpeed = *(track->cmdPtr++); - if (track->lfoSpeed == 0) { - ClearModM(track); - } -} - -void MP2K_event_mod(struct MP2KPlayerState *unused, struct MP2KTrack *track) -{ - track->modDepth = *(track->cmdPtr++); - if (track->modDepth == 0) { - ClearModM(track); - } -} - -#define MASTER_VOLUME_REDUCE 0.1 - -void m4aSoundVSync(void) -{ - struct SoundMixerState *mixer = SOUND_INFO_PTR; - if (mixer->lockStatus - ID_NUMBER <= 1) { - s32 samplesPerFrame = mixer->samplesPerFrame * 2; - float *m4aBuffer = mixer->pcmBuffer; - float *cgbBuffer = cgb_get_buffer(); - s32 dmaCounter = mixer->dmaCounter; - bool8 shouldQueue = FALSE; - - if (dmaCounter > 1) { - m4aBuffer += samplesPerFrame * (mixer->framesPerDmaCycle - (dmaCounter - 1)); - } - - for (u32 i = 0; i < samplesPerFrame; i++) { - audioBuffer[i] = (m4aBuffer[i] + cgbBuffer[i]) * MASTER_VOLUME_REDUCE; - if (audioBuffer[i] != 0) { - shouldQueue = TRUE; - } - } - - if (shouldQueue) { - Platform_QueueAudio(audioBuffer, samplesPerFrame * 4); - } - if ((s8)(--mixer->dmaCounter) <= 0) - mixer->dmaCounter = mixer->framesPerDmaCycle; - } -} diff --git a/sa1/src/platform/shared/common.c b/sa1/src/platform/shared/common.c deleted file mode 100644 index 2fa7d2d50e..0000000000 --- a/sa1/src/platform/shared/common.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "core.h" -#include "lib/agb_flash/flash_internal.h" - -ALIGNED(256) uint8_t EWRAM_START[EWRAM_SIZE] = { 0 }; -ALIGNED(256) uint8_t IWRAM_START[IWRAM_SIZE] = { 0 }; -// TODO: REG_BASE needs to be u8, because of the address macro definitions -ALIGNED(256) uint8_t REG_BASE[IO_SIZE] = { 0 }; -ALIGNED(256) ColorRaw PLTT[32 * PALETTE_LEN_4BPP] = { 0 }; -ALIGNED(256) uint8_t VRAM[VRAM_SIZE] = { 0 }; -ALIGNED(256) uint8_t OAM[OAM_SIZE] = { 0 }; -ALIGNED(256) uint8_t FLASH_BASE[FLASH_ROM_SIZE_1M * SECTORS_PER_BANK] = { 0 }; - -u16 INTR_CHECK = 0; - -void IntrMain(void); - -IntrFunc INTR_VECTOR = IntrMain; - -void IntrMain(void) -{ -#define CHECK_INTR(res, input, flags) \ - { \ - res = input & flags; \ - if (res) { \ - goto found_instr; \ - } \ - index++; \ - } - - u16 flags = REG_IE & REG_IF; - u16 flag; - - u32 index = 0; - CHECK_INTR(flag, flags, (INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL)); - CHECK_INTR(flag, flags, INTR_FLAG_VBLANK); - CHECK_INTR(flag, flags, INTR_FLAG_HBLANK); - CHECK_INTR(flag, flags, INTR_FLAG_VCOUNT); - CHECK_INTR(flag, flags, INTR_FLAG_TIMER0); - CHECK_INTR(flag, flags, INTR_FLAG_TIMER1); - CHECK_INTR(flag, flags, INTR_FLAG_TIMER2); - CHECK_INTR(flag, flags, INTR_FLAG_DMA0); - CHECK_INTR(flag, flags, INTR_FLAG_DMA1); - CHECK_INTR(flag, flags, INTR_FLAG_DMA2); - CHECK_INTR(flag, flags, INTR_FLAG_DMA3); - CHECK_INTR(flag, flags, INTR_FLAG_KEYPAD); - CHECK_INTR(flag, flags, INTR_FLAG_GAMEPAK); - -found_instr: - REG_IF = flag; - - gIntrTable[index](); - -#undef CHECK_INTR -} diff --git a/sa1/src/platform/shared/compression.c b/sa1/src/platform/shared/compression.c deleted file mode 100644 index 4bc4d3679a..0000000000 --- a/sa1/src/platform/shared/compression.c +++ /dev/null @@ -1,59 +0,0 @@ -#if ENABLE_RL_LZ_LOGGING -#include -#endif -#include "platform/platform.h" -#include "platform/ext/gbagfx/global.h" -#include "platform/ext/gbagfx/lz.h" -#include "platform/ext/gbagfx/rl.h" - -unsigned char *Platform_LZDecompress(unsigned char *src, int srcSize) -{ - int uncompressedSize = 0; - unsigned char *dest = LZDecompress(src, srcSize, &uncompressedSize); -#if ENABLE_RL_LZ_LOGGING - printf("LZDecompress(%p, %p) stored 0x%X bytes.\n", src, dest, uncompressedSize); -#endif - - return dest; -} - -unsigned char *Platform_RLDecompress(unsigned char *src, int srcSize) -{ - int uncompressedSize = 0; - unsigned char *dest = RLDecompress(src, srcSize, &uncompressedSize); -#if ENABLE_RL_LZ_LOGGING - printf("RLDecompress(%p, %p) stored 0x%X bytes.\n", src, dest, uncompressedSize); -#endif - - return dest; -} - -void Platform_LZFree(unsigned char *dest) { free(dest); } - -void Platform_RLFree(unsigned char *dest) { free(dest); } - -/* NOTE: - * "Unsafe" versions included for compatibility. - * This is just here so it doesn't fail if someone accidentally calls - * LZUnCompWram, LZUnCompVram, RLUnCompWram or RLUnCompVram. - * - * Please do NOT call them directly if you know the size of the compressed data! - * (Use Platform_LZDecompress and Platform_RLDecompress instead!) - */ -void Platform_LZDecompressUnsafe(unsigned char *src, unsigned char *dest) -{ - int uncompressedSize = 0; - LZDecompressUnsafe(src, dest, &uncompressedSize); -#if ENABLE_RL_LZ_LOGGING - printf("LZDecompress(%p, %p) stored 0x%X bytes.\n", src, dest, uncompressedSize); -#endif -} - -void Platform_RLDecompressUnsafe(unsigned char *src, unsigned char *dest) -{ - int uncompressedSize = 0; - RLDecompressUnsafe(src, dest, &uncompressedSize); -#if ENABLE_RL_LZ_LOGGING - printf("RLDecompress(%p, %p) stored 0x%X bytes.\n", src, dest, uncompressedSize); -#endif -} diff --git a/sa1/src/platform/shared/dma.c b/sa1/src/platform/shared/dma.c deleted file mode 100644 index 60ad6144ff..0000000000 --- a/sa1/src/platform/shared/dma.c +++ /dev/null @@ -1,135 +0,0 @@ -#include -#include "global.h" -#include "platform/shared/dma.h" - -struct DMATransfer DMAList[DMA_COUNT] = { 0 }; - -void RunDMAs(u32 type) -{ - for (int dmaNum = 0; dmaNum < DMA_COUNT; dmaNum++) { - struct DMATransfer *dma = &DMAList[dmaNum]; -#if !USE_NEW_DMA - // Regular GBA order - u32 dmaCntReg = (®_DMA0CNT)[dmaNum * 3]; -#else - // "64 bit" order - u32 dmaCntReg = (®_DMA0CNT)[dmaNum]; -#endif - if (!((dmaCntReg >> 16) & DMA_ENABLE)) { - dma->control &= ~DMA_ENABLE; - } - - if ((dma->control & DMA_ENABLE) && (((dma->control & DMA_START_MASK) >> 12) == type)) { - // printf("DMA%d src=%p, dest=%p, control=%d\n", dmaNum, dma->src, dma->dst, dma->control); - for (int i = 0; i < dma->size; i++) { - if ((dma->control) & DMA_32BIT) - *dma->dst32 = *dma->src32; - else - *dma->dst16 = *dma->src16; - - // process destination pointer changes - if (((dma->control) & DMA_DEST_MASK) == DMA_DEST_INC) { - if ((dma->control) & DMA_32BIT) - dma->dst32++; - else - dma->dst16++; - } else if (((dma->control) & DMA_DEST_MASK) == DMA_DEST_DEC) { - if ((dma->control) & DMA_32BIT) - dma->dst32--; - else - dma->dst16--; - } else if (((dma->control) & DMA_DEST_MASK) == DMA_DEST_RELOAD) // TODO - { - if ((dma->control) & DMA_32BIT) - dma->dst32++; - else - dma->dst16++; - } - - // process source pointer changes - if (((dma->control) & DMA_SRC_MASK) == DMA_SRC_INC) { - if ((dma->control) & DMA_32BIT) - dma->src32++; - else - dma->src16++; - } else if (((dma->control) & DMA_SRC_MASK) == DMA_SRC_DEC) { - if ((dma->control) & DMA_32BIT) - dma->src32--; - else - dma->src16--; - } - } - - if (dma->control & DMA_REPEAT) { - // NOTE: If we change dma->size anywhere above, we need to reset its value here. - - if (((dma->control) & DMA_DEST_MASK) == DMA_DEST_RELOAD) { -#if !USE_NEW_DMA - dma->dst = (void *)(uintptr_t)(®_DMA0DAD)[dmaNum * 3]; -#else - dma->dst = (void *)(uintptr_t)(®_DMA0DAD)[dmaNum]; -#endif - } - } else { - dma->control &= ~DMA_ENABLE; - } - } - } -} - -#ifdef DmaSet -#undef DmaSet -#endif -void DmaSet(int dmaNum, const void *src, void *dest, u32 control) -{ - if (dmaNum >= DMA_COUNT) { - fprintf(stderr, "DmaSet with invalid DMA number: dmaNum=%d, src=%p, dest=%p, control=%d\n", dmaNum, src, dest, control); - return; - } - -#if !USE_NEW_DMA - // Regular GBA order - (®_DMA0SAD)[dmaNum * 3] = (uintptr_t)src; - (®_DMA0DAD)[dmaNum * 3] = (uintptr_t)dest; - (®_DMA0CNT)[dmaNum * 3] = (size_t)control; -#else - // "64 bit" order - (®_DMA0SAD)[dmaNum] = (uintptr_t)src; - (®_DMA0DAD)[dmaNum] = (uintptr_t)dest; - (®_DMA0CNT)[dmaNum] = (size_t)control; -#endif - - struct DMATransfer *dma = &DMAList[dmaNum]; - dma->src = src; - dma->dst = dest; - dma->size = control & 0x1ffff; - dma->control = control >> 16; - - // printf("\nDMA%d: S:%p %p -> %p\n", dmaNum, src, dest, dest + dma->size); - - RunDMAs(DMA_NOW); -} - -void DmaStop(int dmaNum) -{ -#if !USE_NEW_DMA - (®_DMA0CNT)[dmaNum * 3] &= ~((DMA_ENABLE | DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT) << 16); -#else - (®_DMA0CNT)[dmaNum] &= ~((DMA_ENABLE | DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT) << 16); -#endif - - struct DMATransfer *dma = &DMAList[dmaNum]; - dma->control &= ~(DMA_ENABLE | DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); -} - -void DmaWait(int dmaNum) -{ - vu32 *ctrlRegs = ®_DMA0CNT; -#if !USE_NEW_DMA - while (ctrlRegs[dmaNum * 3] & (DMA_ENABLE << 16)) - ; -#else - while (ctrlRegs[dmaNum] & (DMA_ENABLE << 16)) - ; -#endif -} diff --git a/sa1/src/platform/shared/input.c b/sa1/src/platform/shared/input.c deleted file mode 100644 index d6346a2d42..0000000000 --- a/sa1/src/platform/shared/input.c +++ /dev/null @@ -1,51 +0,0 @@ -#ifdef _WIN32 -#include -#include -#include -#include -#include "gba/io_reg.h" -#include "gba/types.h" -#include "platform/shared/input.h" - -#define STICK_THRESHOLD 0.5f -SharedKeys GetXInputKeys() -{ - XINPUT_STATE state; - ZeroMemory(&state, sizeof(XINPUT_STATE)); - - DWORD dwResult = XInputGetState(0, &state); - SharedKeys keys = 0; - - if (dwResult == ERROR_SUCCESS) { - /* A */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_A) >> 12; - /* B */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_X) >> 13; - /* Start */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_START) >> 1; - /* Select */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_BACK) >> 3; - /* L */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER) << 1; - /* R */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER) >> 1; - /* Up */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) << 6; - /* Down */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN) << 6; - /* Left */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) << 3; - /* Right */ keys |= (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) << 1; - - /* Control Stick */ - float xAxis = (float)state.Gamepad.sThumbLX / (float)SHRT_MAX; - float yAxis = (float)state.Gamepad.sThumbLY / (float)SHRT_MAX; - - if (xAxis < -STICK_THRESHOLD) - keys |= DPAD_LEFT; - else if (xAxis > STICK_THRESHOLD) - keys |= DPAD_RIGHT; - if (yAxis < -STICK_THRESHOLD) - keys |= DPAD_DOWN; - else if (yAxis > STICK_THRESHOLD) - keys |= DPAD_UP; - - if (state.Gamepad.bRightTrigger > 170) { - keys |= KEY_SPEEDUP; - } - } - - return keys; -} -#endif // _WIN32 diff --git a/sa1/src/platform/shared/sio_stub.c b/sa1/src/platform/shared/sio_stub.c deleted file mode 100644 index 5293b1e0cd..0000000000 --- a/sa1/src/platform/shared/sio_stub.c +++ /dev/null @@ -1,4 +0,0 @@ -#include "multi_sio.h" - -u32 MultiSioRecvBufChange(void) { return 0; } -void MultiSioIntr(void) { } \ No newline at end of file diff --git a/sa1/src/platform/shared/stub.c b/sa1/src/platform/shared/stub.c deleted file mode 100644 index ca49cc8c19..0000000000 --- a/sa1/src/platform/shared/stub.c +++ /dev/null @@ -1,9 +0,0 @@ -/* General module of stub of functions that have not been decompiled */ - -#include "global.h" -#include "core.h" - -void *ewram_end = 0; -void *iwram_end = 0; -char gNumMusicPlayers = 4; -int gMaxLines = 0; diff --git a/sa1/src/platform/win32/opengl.c b/sa1/src/platform/win32/opengl.c deleted file mode 100644 index 7919768fc9..0000000000 --- a/sa1/src/platform/win32/opengl.c +++ /dev/null @@ -1,252 +0,0 @@ -#include // realloc -#include // printf -#include -#include "global.h" // TEMP for PLTT -#include "platform/shared/opengl.h" - -// NOTE: This is NOT final at all. EXPERIMENTAL!!!!! - -// TODO: Move this file into /platform/shared - -// TEMP -static GLuint sTempTextureHandles[3] = { 0 }; - -#define NUM_RGB_CHANNELS 4 -u8 tempRgbaPalette[16 * 32][NUM_RGB_CHANNELS] = {}; -u8 tempRgbaFrame[DISPLAY_WIDTH * DISPLAY_HEIGHT][NUM_RGB_CHANNELS] = {}; - -typedef struct { - u8 *data; - int width, height; -} TextureBuffer; -static TextureBuffer sDynTextureBuffer = { 0 }; - -static void TempConvertPLTTToRGBA8(void) -{ - // Convert PLTT from ABGR1555 -> RGBA8 - for (int i = 0; i < ARRAY_COUNT(tempRgbaPalette); i++) { - u16 color = PLTT[i]; - float r = (float)(color & 0x01F) / 31.0; - float g = (float)((color & 0x3E0) >> 5) / 31.0; - float b = (float)((color & 0x7C00) >> 10) / 31.0; - - tempRgbaPalette[i][0] = r * 255.0; - tempRgbaPalette[i][1] = g * 255.0; - tempRgbaPalette[i][2] = b * 255.0; - tempRgbaPalette[i][3] = 1 * 255.0; - } -} - -static u8 *TempConvertPLTTEntryToRGBA8(u8 paletteId) -{ - // Convert PLTT from ABGR1555 -> RGBA8 - u16 *pal4BPP = &PLTT[(paletteId + 16) * 16]; - - for (int i = 0; i < 16; i++) { - u16 color = pal4BPP[i]; - - float r = (float)(color & 0x01F) / 31.0; - float g = (float)((color & 0x3E0) >> 5) / 31.0; - float b = (float)((color & 0x7C00) >> 10) / 31.0; - - tempRgbaPalette[paletteId * 16 + i][0] = r * 255.0; - tempRgbaPalette[paletteId * 16 + i][1] = g * 255.0; - tempRgbaPalette[paletteId * 16 + i][2] = b * 255.0; - tempRgbaPalette[paletteId * 16 + i][3] = 1 * 255.0; - } - - return tempRgbaPalette[paletteId * 16]; -} - -// TODO: This should be done offline. -// Just load all assets in RGB8 or RGBA8 on boot. -static void TempConvert4bppToRGBA8_DynTextureBuffer(const u8 *bitmap4bpp, int width, int height, u8 paletteId) -{ - if (sDynTextureBuffer.width * sDynTextureBuffer.height < width * height) { - sDynTextureBuffer.data = realloc(sDynTextureBuffer.data, width * height * sizeof(u32)); - - if (!sDynTextureBuffer.data) { - printf("WARNING: realloc in %s failed!\n", __FUNCTION__); - return; - } else { - printf("realloc: w 0x%X, h 0x%X, full: 0x%X\n", width, height, (u32)(width * height * sizeof(u32))); - } - } - - u8 *texturePalette = TempConvertPLTTEntryToRGBA8(paletteId); - - sDynTextureBuffer.width = width; - sDynTextureBuffer.height = height; - - u16 widthInTiles = width >> 3; - - int numSourcePixels = width * height; - for (int frameY = 0; frameY < height; frameY++) { - for (int frameX = 0; frameX < width; frameX++) { - u8 colorIndex = ((frameY & 0x7) * 8 + (frameX & 0x7)); - - bool8 doShift = (colorIndex & 1); - u8 textureColorId = bitmap4bpp[colorIndex >> 1] & (0xF << (doShift * 4)); - textureColorId >>= doShift * 4; - - sDynTextureBuffer.data[colorIndex * 4 + 0] = tempRgbaPalette[textureColorId][0]; - sDynTextureBuffer.data[colorIndex * 4 + 1] = tempRgbaPalette[textureColorId][1]; - sDynTextureBuffer.data[colorIndex * 4 + 2] = tempRgbaPalette[textureColorId][2]; - sDynTextureBuffer.data[colorIndex * 4 + 3] = 0xFF; - } - } -} - -void OpenGL_OnInit() -{ - // Enable texturing - glEnable(GL_TEXTURE_2D); - - glMatrixMode(GL_TEXTURE); - glLoadIdentity(); - - // NOTE: Modelview matrix is a legacy feature - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - glGenTextures(2, &sTempTextureHandles[0]); -} - -void OpenGL_DisplaySprite(Sprite *sprite, u8 oamPaletteNum) -{ - const SpriteOffset *dims = sprite->dimensions; - - if (dims != (void *)-1) { - // Convert vertices screenspace -> unit space - glMatrixMode(GL_PROJECTION); -#if 0 - glLoadIdentity(); -#else - float a = 2.0f / DISPLAY_WIDTH; - float b = 2.0f / DISPLAY_HEIGHT; - float projMtx[] = { a, 0, 0, 0, // - 0, b, 0, 0, // - 0, 0, 1, 0, // - -1, -1, 0, 1 }; - glLoadMatrixf(projMtx); -#endif - - TempConvert4bppToRGBA8_DynTextureBuffer(sprite->graphics.src, dims->width, dims->height, sprite->palId + oamPaletteNum); - - // glGenTextures(1, &sTempTextureHandles[2]); - glBindTexture(GL_TEXTURE_2D, sTempTextureHandles[2]); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, dims->width, dims->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, sDynTextureBuffer.data); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // downscale filtering - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // upscale filtering - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - - // glClearColor((float)tempRgbaPalette[1][0] / 255., - // (float)tempRgbaPalette[1][1] / 255., - // (float)tempRgbaPalette[1][2] / 255., - // 1.0); - // glClear(GL_COLOR_BUFFER_BIT); - - float minX = sprite->x - (dims->width >> 1); - float maxX = minX + dims->width; - - float minY = sprite->y - (dims->height >> 1); - float maxY = minY + dims->height; - - glBegin(GL_TRIANGLES); - { - glTexCoord2f(0.0, 0.0); - glVertex2f(minX, maxY); - glTexCoord2f(1.0, 1.0); - glVertex2f(maxX, minY); - glTexCoord2f(0.0, 1.0); - glVertex2f(minX, minY); - - glTexCoord2f(0.0, 0.0); - glVertex2f(minX, maxY); - glTexCoord2f(1.0, 0.0); - glVertex2f(maxX, maxY); - glTexCoord2f(1.0, 1.0); - glVertex2f(maxX, minY); - } - glEnd(); - } -} - -void OpenGL_Render(void *tempBufferPixels, int viewportWidth, int viewportHeight) -{ - glViewport(0, 0, viewportWidth, viewportHeight); - -#if 0 - // Don't convert input-vertices - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); -#else - // Convert vertices screenspace -> unit space - glMatrixMode(GL_PROJECTION); - float a = 2.0f / DISPLAY_WIDTH; - float b = 2.0f / DISPLAY_HEIGHT; - float projMtx[] = { - a, 0, 0, 0, // - 0, b, 0, 0, // - 0, 0, 1, 0, // - -1, -1, 0, 1 // - }; - glLoadMatrixf(projMtx); -#endif - - // TempConvertPLTTToRGBA8(); - - // Convert the "software-rendered" image from ABGR1555 -> RGBA8 - for (int i = 0; i < ARRAY_COUNT(tempRgbaFrame); i++) { - u16 color = ((u16 *)tempBufferPixels)[i]; - float r = (float)(color & 0x01F) / 31.0; - float g = (float)((color & 0x3E0) >> 5) / 31.0; - float b = (float)((color & 0x7C00) >> 10) / 31.0; - - tempRgbaFrame[i][0] = b * 255.0; - tempRgbaFrame[i][1] = g * 255.0; - tempRgbaFrame[i][2] = r * 255.0; - tempRgbaFrame[i][3] = 1 * 255.0; - } - - glBindTexture(GL_TEXTURE_2D, sTempTextureHandles[0]); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 32, 0, GL_RGBA, GL_UNSIGNED_BYTE, tempRgbaPalette); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // downscale filtering - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // upscale filtering - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - - glBindTexture(GL_TEXTURE_2D, sTempTextureHandles[1]); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, DISPLAY_WIDTH, DISPLAY_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, tempRgbaFrame); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // downscale filtering - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // upscale filtering - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - - glClearColor(1.0, 1.0, 0.0, 1.0); - glClear(GL_COLOR_BUFFER_BIT); - - glBindTexture(GL_TEXTURE_2D, sTempTextureHandles[1]); - glBegin(GL_TRIANGLES); - { - glTexCoord2f(0.0, 0.0); - glVertex2f(0.0, +DISPLAY_HEIGHT); - glTexCoord2f(1.0, 1.0); - glVertex2f(+DISPLAY_WIDTH, 0); - glTexCoord2f(0.0, 1.0); - glVertex2f(0, 0); - - glTexCoord2f(0.0, 0.0); - glVertex2f(0, DISPLAY_HEIGHT); - glTexCoord2f(1.0, 0.0); - glVertex2f(DISPLAY_WIDTH, DISPLAY_HEIGHT); - glTexCoord2f(1.0, 1.0); - glVertex2f(DISPLAY_WIDTH, 0); - } - glEnd(); -} \ No newline at end of file diff --git a/sa1/src/platform/win32/win32.c b/sa1/src/platform/win32/win32.c deleted file mode 100644 index a8bde72c5d..0000000000 --- a/sa1/src/platform/win32/win32.c +++ /dev/null @@ -1,452 +0,0 @@ -#include -#include - -#include "global.h" -#include "core.h" -#include "gba/io_reg.h" - -#if (RENDERER == RENDERER_OPENGL) -#include -#include "platform/shared/opengl.h" -#endif - -#include "platform/shared/input.h" - -extern void GameInit(void); - -DWORD WINAPI GameThread(void *pThreadParam); -LRESULT CALLBACK Win32_WindowCallback(HWND window, UINT message, WPARAM wParam, LPARAM lParam); -static void Win32_ProcessPendingMessages(HWND window); -static RECT Win32_GetWindowDimension(HWND Window); - -#if (RENDERER == RENDERER_OPENGL) -static void Win32_InitOpenGL(HWND window); -#endif - -static u16 ALIGNED(8) sImageBuffer[DISPLAY_WIDTH * DISPLAY_HEIGHT] = { - RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, - RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, RGB_GREEN, -}; -static BITMAPINFO sBMInfo = { 0 }; -static bool32 sRunning = TRUE; -static HWND sWindowHandle = 0; -static HDC sDeviceContext = 0; -static u16 sInputKeys = 0; - -#define ENABLE_RESIZE TRUE - -enum { DMA_NOW, DMA_VBLANK, DMA_HBLANK, DMA_SPECIAL }; - -typedef union { - struct { - u16 unused : 5; - u16 dstCtrl : 2; - u16 srcCtrl : 2; - u16 repeat : 1; - u16 is32bit : 1; - u16 pakDRQ : 1; - u16 startTiming : 2; - u16 irqAtEnd : 1; - u16 enable : 1; - } split; - - u16 raw; -} DMACtrl; - -int WINAPI WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR lpCmdLine, int nShowCmd) -{ - // Allocate a console. - // This is necessary for using print functions when using an application with the - // WinMain() entry point. -#if 1 - AllocConsole(); - AttachConsole(GetCurrentProcessId()); - freopen("CON", "w", stdout); - printf("Console initialized.\n"); -#endif - - /* Initialize the window */ - WNDCLASS WindowClass = {}; - WindowClass.style = CS_HREDRAW | CS_VREDRAW; - WindowClass.lpfnWndProc = Win32_WindowCallback; - WindowClass.hInstance = instance; - WindowClass.lpszClassName = "MainGameWindowClass"; - - if (RegisterClass(&WindowClass)) { - RECT WantedCliRect = { 0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT }; -#if ENABLE_RESIZE - DWORD WantedWindowStyle = WS_OVERLAPPEDWINDOW | WS_VISIBLE; -#else - // WS_THICKFRAME disables resizing the window - DWORD WantedWindowStyle = (WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME) | WS_VISIBLE; -#endif // ENABLE_RESIZE - - // NOTE: The sizes passed to CreateWindow are not the ones to the client area RECT. - // A call to AdjustWindowRect() fixes that. - AdjustWindowRect(&WantedCliRect, WantedWindowStyle, FALSE); - - sWindowHandle - = CreateWindow(WindowClass.lpszClassName, "", WantedWindowStyle, CW_USEDEFAULT, CW_USEDEFAULT, // x, y - (WantedCliRect.right - WantedCliRect.left), (WantedCliRect.bottom - WantedCliRect.top), 0, 0, instance, 0); - - if (sWindowHandle) { - sDeviceContext = GetDC(sWindowHandle); - -#if (RENDERER == RENDERER_OPENGL) - Win32_InitOpenGL(sWindowHandle); -#endif - - sBMInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - sBMInfo.bmiHeader.biWidth = DISPLAY_WIDTH; - sBMInfo.bmiHeader.biHeight = -DISPLAY_HEIGHT; // negative biHeight: bottom->down image - sBMInfo.bmiHeader.biPlanes = 1; - sBMInfo.bmiHeader.biBitCount = 16; - sBMInfo.bmiHeader.biCompression = BI_RGB; - sBMInfo.bmiHeader.biSizeImage = 0; // 0 for uncompressed - sBMInfo.bmiHeader.biXPelsPerMeter = 0; - sBMInfo.bmiHeader.biYPelsPerMeter = 0; - sBMInfo.bmiHeader.biClrUsed = 0; - sBMInfo.bmiHeader.biClrImportant = 0; - - timeBeginPeriod(1); - - Win32_ProcessPendingMessages(sWindowHandle); - - // If this isn't set, gFlags gets set to FLAGS_200, leading to the MP menu being - // loaded instead of the main loop - REG_RCNT = 0x8000; - REG_KEYINPUT = 0x3FF; - - EngineInit(); - GameInit(); - - DWORD threadId; - -#if 01 - REG_KEYINPUT &= ~START_BUTTON; - while (sRunning) { - memset(sImageBuffer, 0, sizeof(sImageBuffer)); - - gFlags |= 0x4000; - EngineMainLoop(); - // REG_KEYINPUT ^= (A_BUTTON | START_BUTTON); - - // NOTE: This is an OR because sInputKeys can get set - // through keyboard events. - sInputKeys |= GetXInputKeys(); - - REG_KEYINPUT = ~sInputKeys; - } -#else - HANDLE GameThreadHandle = CreateThread(NULL, 0, GameThread, NULL, 0, &threadId); - WaitForSingleObject(GameThreadHandle, INFINITE); -#endif - - ReleaseDC(sWindowHandle, sDeviceContext); - } - } -} - -DWORD WINAPI GameThread(void *pThreadParam) -{ - REG_KEYINPUT &= ~START_BUTTON; - // while (sRunning) - { - gFlags |= 0x4000; - EngineMainLoop(); - REG_KEYINPUT ^= (A_BUTTON | START_BUTTON); - REG_KEYINPUT |= (DPAD_RIGHT); - } -} - -#if (RENDERER == RENDERER_OPENGL) -// From "Handmade Hero 235 - Initializing OpenGL on Windows" -// https://www.youtube.com/watch?v=5Klc9RZPG7M -static void Win32_InitOpenGL(HWND window) -{ - HDC deviceContext = GetDC(window); - - PIXELFORMATDESCRIPTOR desiredPixelFormat = {}; - PIXELFORMATDESCRIPTOR suggestedPixelFormat; - - // TODO: Find out if double-buffering is necessary for us! - desiredPixelFormat.nSize = sizeof(PIXELFORMATDESCRIPTOR); - desiredPixelFormat.nVersion = 1; - desiredPixelFormat.dwFlags = (PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER); - desiredPixelFormat.cColorBits = 24; - desiredPixelFormat.cAlphaBits = 8; - desiredPixelFormat.iLayerType = PFD_MAIN_PLANE; - - int suggestedPixelFormatIndex = ChoosePixelFormat(deviceContext, &desiredPixelFormat); - DescribePixelFormat(deviceContext, suggestedPixelFormatIndex, sizeof(PIXELFORMATDESCRIPTOR), &suggestedPixelFormat); - SetPixelFormat(deviceContext, suggestedPixelFormatIndex, &suggestedPixelFormat); - - // RC = "Rendering Context" - HGLRC openGLRC = wglCreateContext(deviceContext); - - if (wglMakeCurrent(deviceContext, openGLRC)) { - OpenGL_OnInit(); - } else { - // LOG fail - } - - ReleaseDC(window, deviceContext); -} -#endif - -static void Win32_DisplayBufferInWindow(HDC deviceContext, int windowWidth, int windowHeight) -{ -#if (RENDERER == RENDERER_OPENGL) - OpenGL_Render(sImageBuffer, windowWidth, windowHeight); - SwapBuffers(deviceContext); -#else - StretchDIBits(deviceContext, 0, 0, windowWidth, windowHeight, 0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT, sImageBuffer, &sBMInfo, - DIB_RGB_COLORS, SRCCOPY); -#endif -} - -LRESULT CALLBACK Win32_WindowCallback(HWND window, UINT message, WPARAM wParam, LPARAM lParam) -{ - LRESULT result = 0; - - switch (message) { - case WM_ACTIVATEAPP: { - OutputDebugStringA("WM_ACTIVATEAPP\n"); - } break; - - case WM_CLOSE: { - sRunning = FALSE; - OutputDebugStringA("WM_CLOSE\n"); - } break; - - case WM_DESTROY: { - sRunning = FALSE; - } break; - - case WM_PAINT: { - PAINTSTRUCT Paint; - HDC paintDC = BeginPaint(window, &Paint); - RECT clientRect; - GetClientRect(window, &clientRect); - - Win32_DisplayBufferInWindow(paintDC, - clientRect.right - clientRect.left, // width - clientRect.bottom - clientRect.top // height - ); - - EndPaint(window, &Paint); - } break; - - default: { - result = DefWindowProcA(window, message, wParam, lParam); - } break; - } - return result; -} - -static u16 Win32_KeyboardKeyToGameKey(char key) -{ - switch (key) { - case 'C': { - return A_BUTTON; - } break; - - case 'X': { - return B_BUTTON; - } break; - - case VK_RETURN: { - return START_BUTTON; - } break; - - case VK_BACK: { - return SELECT_BUTTON; - } break; - - case VK_LEFT: { - return DPAD_LEFT; - } break; - - case VK_UP: { - return DPAD_UP; - } break; - - case VK_RIGHT: { - return DPAD_RIGHT; - } break; - - case VK_DOWN: { - return DPAD_DOWN; - } break; - - case 'S': { - return L_BUTTON; - } break; - - case 'D': { - return R_BUTTON; - } break; - } - - return 0; -} - -static void Win32_ProcessPendingMessages(HWND window) -{ - MSG message; - while (PeekMessage(&message, 0, 0, 0, PM_REMOVE)) { - switch (message.message) { - case WM_KEYUP: { - sInputKeys &= ~Win32_KeyboardKeyToGameKey(message.wParam); - } break; - - case WM_KEYDOWN: { - sInputKeys |= Win32_KeyboardKeyToGameKey(message.wParam); - } break; - - case WM_QUIT: { - printf("Closing"); - sRunning = FALSE; - } break; - - default: { - TranslateMessage(&message); - DispatchMessage(&message); - } break; - } - } -} - -// Converts GBA -> Win32 RGB value -#define RGB_SHIFT(value) (((value >> 10) & 0x1F) | (value & 0x3E0) | (((value & 0x1F) << 10))) - -void Platform_DisplaySprite(Sprite *sprite, u8 oamPaletteNum) -{ - if (sprite->graphics.src == NULL) - return; - -#if (RENDERER == RENDERER_OPENGL) - // TEMP - Currently the display buffer gets drawn in software, but we should load the assets as a textures and let OpenGL render - // everything - // OpenGL_DisplaySprite(sprite, oamPaletteNum); - // return; -#endif - - const SpriteOffset *dims = sprite->dimensions; - - bool32 xFlip = SPRITE_FLAG_GET(sprite, X_FLIP); - bool32 yFlip = SPRITE_FLAG_GET(sprite, Y_FLIP); - - // printf("Sprite: %d\n", sprite->graphics.anim); - - s32 x, y, sprWidth, sprHeight; - - x = sprite->x; - y = sprite->y; - - { - // TEMP - from sprite.c - sprWidth = dims->width; - sprHeight = dims->height; - if (sprite->frameFlags & SPRITE_FLAG_MASK_ROT_SCALE_ENABLE) { - if (sprite->frameFlags & SPRITE_FLAG_MASK_ROT_SCALE_DOUBLE_SIZE) { - x -= dims->width / 2; - y -= dims->height / 2; - sprWidth *= 2; - sprHeight *= 2; - } - } else { - if (sprite->frameFlags & SPRITE_FLAG_MASK_Y_FLIP) { - y -= sprHeight - dims->offsetY; - } else { - y -= dims->offsetY; - } - - if (sprite->frameFlags & SPRITE_FLAG_MASK_X_FLIP) { - x -= sprWidth - dims->offsetX; - } else { - x -= dims->offsetX; - } - } - } - - s32 tempX = x; - s32 tempY = y; - - u16 widthInTiles = dims->width >> 3; - - for (int frameY = 0; frameY < dims->height; frameY++) { - s32 finalY = (tempY + frameY); - - if (finalY < 0) - continue; - - if (finalY >= DISPLAY_HEIGHT) - break; - - for (int frameX = 0; frameX < dims->width; frameX++) { - - s32 finalX = (tempX + frameX); - - if (finalX < 0) - continue; - - if (finalX >= DISPLAY_WIDTH) - break; - - int bufferPixelIndex = finalY * DISPLAY_WIDTH + finalX; - int imagePixelIndex = frameY * dims->width + frameX; - - if (bufferPixelIndex >= 0 && bufferPixelIndex < DISPLAY_WIDTH * DISPLAY_HEIGHT) { - u16 *pal = &PLTT[oamPaletteNum * 16 + (BG_PLTT_SIZE / 2)]; - u16 tileNumX = (frameX >> 3); - u16 tileNumY = (frameY >> 3); - u16 tileNum = tileNumY * widthInTiles + tileNumX; - u32 offset = tileNum * TILE_SIZE_4BPP; - - u8 *tile = &((u8 *)sprite->graphics.src)[offset]; - - u8 colorIndex = ((frameY & 0x7) * 8 + (frameX & 0x7)); - - bool8 doShift = (colorIndex & 1); - u8 colorId = tile[colorIndex >> 1] & (0xF << (doShift * 4)); - colorId >>= doShift * 4; - if (colorId != 0) - sImageBuffer[bufferPixelIndex] = RGB_SHIFT(pal[colorId]); - } - } - } -} - -void VBlankIntrWait() -{ - // while (sRunning) - { - // NOTE: This wouldn't work here with multiple threads, because PeekMessage() - // only gets messages in the thread the specified window was created in. - Win32_ProcessPendingMessages(sWindowHandle); - RECT clientRect; - GetClientRect(sWindowHandle, &clientRect); - static u8 test = 0; - - sImageBuffer[test++] = RGB_BLACK; - sImageBuffer[test] = RGB_GREEN; - Win32_DisplayBufferInWindow(sDeviceContext, clientRect.right - clientRect.left, clientRect.bottom - clientRect.top); - - // TODO: Remove Sleep, use high-resolution timer instead! - Sleep(10); - -#if (RENDERER == RENDERER_OPENGL) - // TODO: Don't do this here!!! - // This should be called in src/platform/shared/opengl.c - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); -#endif - } -} - -void *Platform_malloc(size_t numBytes) { return HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS | HEAP_ZERO_MEMORY, numBytes); } - -void Platform_free(void *ptr) { HeapFree(GetProcessHeap(), 0, ptr); } - -void Platform_QueueAudio(const u8 *data, u32 numBytes) { } \ No newline at end of file