diff options
-rw-r--r-- | asm/battle_transition.s | 455 | ||||
-rw-r--r-- | asm/overworld.s | 18 | ||||
-rwxr-xr-x | asm/unk_transition.s | 308 | ||||
-rwxr-xr-x | asm/unk_transition_2.s | 268 | ||||
-rw-r--r-- | data/battle_transition.s | 257 | ||||
-rw-r--r-- | include/battle_transition.h | 2 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | include/unk_transition.h | 13 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/battle_transition.c | 287 | ||||
-rw-r--r-- | sym_bss.txt | 11 | ||||
-rw-r--r-- | sym_ewram.txt | 5 |
12 files changed, 730 insertions, 899 deletions
diff --git a/asm/battle_transition.s b/asm/battle_transition.s index d7f6b9e03..45c62656a 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -4,210 +4,9 @@ .syntax unified .text - - thumb_func_start CB2_TestBattleTransition -CB2_TestBattleTransition: @ 8145E84 - push {r4,lr} - ldr r4, =sTestingTransitionState - ldrb r0, [r4] - cmp r0, 0 - beq _08145E98 - cmp r0, 0x1 - beq _08145EAC - b _08145EC0 - .pool -_08145E98: - ldr r0, =sTestingTransitionId - ldrb r0, [r0] - bl LaunchBattleTransitionTask - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08145EC0 - .pool -_08145EAC: - bl IsBattleTransitionDone - lsls r0, 24 - cmp r0, 0 - beq _08145EC0 - movs r0, 0 - strb r0, [r4] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 -_08145EC0: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end CB2_TestBattleTransition - - thumb_func_start TestBattleTransition -TestBattleTransition: @ 8145EDC - push {lr} - ldr r1, =sTestingTransitionId - strb r0, [r1] - ldr r0, =CB2_TestBattleTransition - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end TestBattleTransition - - thumb_func_start BattleTransition_StartOnField -BattleTransition_StartOnField: @ 8145EF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gMain - ldr r1, =sub_8085E50 - str r1, [r2, 0x4] - bl LaunchBattleTransitionTask - pop {r0} - bx r0 - .pool - thumb_func_end BattleTransition_StartOnField - - thumb_func_start BattleTransition_Start -BattleTransition_Start: @ 8145F10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl LaunchBattleTransitionTask - pop {r0} - bx r0 - thumb_func_end BattleTransition_Start - - thumb_func_start IsBattleTransitionDone -IsBattleTransitionDone: @ 8145F20 - push {r4,lr} - ldr r0, =Task_BattleTransitionMain - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08145F4C - movs r0, 0 - b _08145F60 - .pool -_08145F4C: - adds r0, r2, 0 - bl DestroyTask - ldr r4, =sTransitionStructPtr - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - movs r0, 0x1 -_08145F60: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end IsBattleTransitionDone - - thumb_func_start LaunchBattleTransitionTask -LaunchBattleTransitionTask: @ 8145F6C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =Task_BattleTransitionMain - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - ldr r4, =sTransitionStructPtr - movs r0, 0x3C - bl AllocZeroed - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end LaunchBattleTransitionTask - - thumb_func_start Task_BattleTransitionMain -Task_BattleTransitionMain: @ 8145FA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =sMainTransitionPhases - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08145FBA: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08145FBA - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Task_BattleTransitionMain - - thumb_func_start sub_8145FE0 -sub_8145FE0: @ 8145FE0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80AC3D0 - ldr r0, =gPlttBufferFaded - ldr r1, =gPlttBufferUnfaded - ldr r2, =0x04000100 - bl CpuSet - ldr r1, =sPhase1_Tasks - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0814601C - movs r0, 0x2 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _0814602A - .pool -_0814601C: - movs r1, 0x4 - bl CreateTask - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 -_0814602A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8145FE0 - thumb_func_start sub_8146030 -sub_8146030: @ 8146030 + thumb_func_start Transition_WaitForPhase1 +Transition_WaitForPhase1: @ 8146030 push {r4,lr} adds r4, r0, 0 ldr r1, =sPhase1_Tasks @@ -233,10 +32,10 @@ _0814605C: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8146030 + thumb_func_end Transition_WaitForPhase1 - thumb_func_start sub_8146064 -sub_8146064: @ 8146064 + thumb_func_start Transition_Phase2 +Transition_Phase2: @ 8146064 push {r4,lr} adds r4, r0, 0 ldr r1, =sPhase2_Tasks @@ -255,10 +54,10 @@ sub_8146064: @ 8146064 pop {r1} bx r1 .pool - thumb_func_end sub_8146064 + thumb_func_end Transition_Phase2 - thumb_func_start sub_814608C -sub_814608C: @ 814608C + thumb_func_start Transition_WaitForPhase2 +Transition_WaitForPhase2: @ 814608C push {r4,lr} adds r4, r0, 0 movs r0, 0 @@ -282,10 +81,10 @@ _081460B0: pop {r1} bx r1 .pool - thumb_func_end sub_814608C + thumb_func_end Transition_WaitForPhase2 - thumb_func_start sub_81460BC -sub_81460BC: @ 81460BC + thumb_func_start Phase1Task_TransitionAll +Phase1Task_TransitionAll: @ 81460BC push {r4,lr} sub sp, 0x4 lsls r0, 24 @@ -324,10 +123,10 @@ _08146104: pop {r4} pop {r0} bx r0 - thumb_func_end sub_81460BC + thumb_func_end Phase1Task_TransitionAll - thumb_func_start sub_814610C -sub_814610C: @ 814610C + thumb_func_start Phase2Task_Transition_Blur +Phase2Task_Transition_Blur: @ 814610C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -352,7 +151,7 @@ _0814611E: pop {r0} bx r0 .pool - thumb_func_end sub_814610C + thumb_func_end Phase2Task_Transition_Blur thumb_func_start sub_8146144 sub_8146144: @ 8146144 @@ -441,7 +240,7 @@ sub_81461D8: @ 81461D8 ands r0, r1 cmp r0, 0 bne _081461F4 - ldr r0, =sub_814610C + ldr r0, =Phase2Task_Transition_Blur bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -453,8 +252,8 @@ _081461F4: .pool thumb_func_end sub_81461D8 - thumb_func_start sub_8146204 -sub_8146204: @ 8146204 + thumb_func_start Phase2Task_Transition_Swirl +Phase2Task_Transition_Swirl: @ 8146204 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -479,7 +278,7 @@ _08146216: pop {r0} bx r0 .pool - thumb_func_end sub_8146204 + thumb_func_end Phase2Task_Transition_Swirl thumb_func_start sub_814623C sub_814623C: @ 814623C @@ -559,7 +358,7 @@ sub_81462A8: @ 81462A8 ands r0, r1 cmp r0, 0 bne _081462FA - ldr r0, =sub_8146204 + ldr r0, =Phase2Task_Transition_Swirl bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -624,8 +423,8 @@ sub_8146358: @ 8146358 .pool thumb_func_end sub_8146358 - thumb_func_start sub_8146384 -sub_8146384: @ 8146384 + thumb_func_start Phase2Task_Transition_Shuffle +Phase2Task_Transition_Shuffle: @ 8146384 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -650,7 +449,7 @@ _08146396: pop {r0} bx r0 .pool - thumb_func_end sub_8146384 + thumb_func_end Phase2Task_Transition_Shuffle thumb_func_start sub_81463BC sub_81463BC: @ 81463BC @@ -742,7 +541,7 @@ _08146448: ands r0, r1 cmp r0, 0 bne _0814648E - ldr r0, =sub_8146384 + ldr r0, =Phase2Task_Transition_Shuffle bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -806,8 +605,8 @@ sub_81464E8: @ 81464E8 .pool thumb_func_end sub_81464E8 - thumb_func_start sub_8146514 -sub_8146514: @ 8146514 + thumb_func_start Phase2Task_Transition_BigPokeball +Phase2Task_Transition_BigPokeball: @ 8146514 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -832,10 +631,10 @@ _08146526: pop {r0} bx r0 .pool - thumb_func_end sub_8146514 + thumb_func_end Phase2Task_Transition_BigPokeball - thumb_func_start sub_814654C -sub_814654C: @ 814654C + thumb_func_start Phase2Task_Transition_Aqua +Phase2Task_Transition_Aqua: @ 814654C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -860,10 +659,10 @@ _0814655E: pop {r0} bx r0 .pool - thumb_func_end sub_814654C + thumb_func_end Phase2Task_Transition_Aqua - thumb_func_start sub_8146584 -sub_8146584: @ 8146584 + thumb_func_start Phase2Task_Transition_Magma +Phase2Task_Transition_Magma: @ 8146584 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -888,10 +687,10 @@ _08146596: pop {r0} bx r0 .pool - thumb_func_end sub_8146584 + thumb_func_end Phase2Task_Transition_Magma - thumb_func_start sub_81465BC -sub_81465BC: @ 81465BC + thumb_func_start Phase2Task_Transition_Regice +Phase2Task_Transition_Regice: @ 81465BC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -916,10 +715,10 @@ _081465CE: pop {r0} bx r0 .pool - thumb_func_end sub_81465BC + thumb_func_end Phase2Task_Transition_Regice - thumb_func_start sub_81465F4 -sub_81465F4: @ 81465F4 + thumb_func_start Phase2Task_Transition_Registeel +Phase2Task_Transition_Registeel: @ 81465F4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -944,10 +743,10 @@ _08146606: pop {r0} bx r0 .pool - thumb_func_end sub_81465F4 + thumb_func_end Phase2Task_Transition_Registeel - thumb_func_start sub_814662C -sub_814662C: @ 814662C + thumb_func_start Phase2Task_Transition_Regirock +Phase2Task_Transition_Regirock: @ 814662C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -972,10 +771,10 @@ _0814663E: pop {r0} bx r0 .pool - thumb_func_end sub_814662C + thumb_func_end Phase2Task_Transition_Regirock - thumb_func_start sub_8146664 -sub_8146664: @ 8146664 + thumb_func_start Phase2Task_Transition_Kyogre +Phase2Task_Transition_Kyogre: @ 8146664 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -1000,7 +799,7 @@ _08146676: pop {r0} bx r0 .pool - thumb_func_end sub_8146664 + thumb_func_end Phase2Task_Transition_Kyogre thumb_func_start sub_814669C sub_814669C: @ 814669C @@ -2069,8 +1868,8 @@ sub_8146F68: @ 8146F68 .pool thumb_func_end sub_8146F68 - thumb_func_start sub_8146F94 -sub_8146F94: @ 8146F94 + thumb_func_start Phase2Task_Transition_PokeballsTrail +Phase2Task_Transition_PokeballsTrail: @ 8146F94 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -2095,7 +1894,7 @@ _08146FA6: pop {r0} bx r0 .pool - thumb_func_end sub_8146F94 + thumb_func_end Phase2Task_Transition_PokeballsTrail thumb_func_start sub_8146FCC sub_8146FCC: @ 8146FCC @@ -2205,7 +2004,7 @@ sub_81470A4: @ 81470A4 cmp r0, 0 bne _081470C4 bl sub_8149F84 - ldr r0, =sub_8146F94 + ldr r0, =Phase2Task_Transition_PokeballsTrail bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -2365,8 +2164,8 @@ _081471F2: .pool thumb_func_end sub_814713C - thumb_func_start sub_8147204 -sub_8147204: @ 8147204 + thumb_func_start Phase2Task_Transition_Clockwise_BlackFade +Phase2Task_Transition_Clockwise_BlackFade: @ 8147204 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -2391,7 +2190,7 @@ _08147216: pop {r0} bx r0 .pool - thumb_func_end sub_8147204 + thumb_func_end Phase2Task_Transition_Clockwise_BlackFade thumb_func_start sub_814723C sub_814723C: @ 814723C @@ -2923,7 +2722,7 @@ sub_8147648: @ 8147648 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_8149F84 - ldr r0, =sub_8147204 + ldr r0, =Phase2Task_Transition_Clockwise_BlackFade bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -2992,8 +2791,8 @@ _081476C0: .pool thumb_func_end sub_8147688 - thumb_func_start sub_8147718 -sub_8147718: @ 8147718 + thumb_func_start Phase2Task_Transition_Ripple +Phase2Task_Transition_Ripple: @ 8147718 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -3018,7 +2817,7 @@ _0814772A: pop {r0} bx r0 .pool - thumb_func_end sub_8147718 + thumb_func_end Phase2Task_Transition_Ripple thumb_func_start sub_8147750 sub_8147750: @ 8147750 @@ -3141,7 +2940,7 @@ _08147838: ands r0, r1 cmp r0, 0 bne _0814785A - ldr r0, =sub_8147718 + ldr r0, =Phase2Task_Transition_Ripple bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -3209,8 +3008,8 @@ sub_81478C0: @ 81478C0 .pool thumb_func_end sub_81478C0 - thumb_func_start sub_81478EC -sub_81478EC: @ 81478EC + thumb_func_start Phase2Task_Transition_Wave +Phase2Task_Transition_Wave: @ 81478EC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -3235,7 +3034,7 @@ _081478FE: pop {r0} bx r0 .pool - thumb_func_end sub_81478EC + thumb_func_end Phase2Task_Transition_Wave thumb_func_start sub_8147924 sub_8147924: @ 8147924 @@ -3373,7 +3172,7 @@ sub_8147A18: @ 8147A18 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_8149F84 - ldr r0, =sub_81478EC + ldr r0, =Phase2Task_Transition_Wave bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -3437,8 +3236,8 @@ _08147A90: .pool thumb_func_end sub_8147A58 - thumb_func_start sub_8147AE4 -sub_8147AE4: @ 8147AE4 + thumb_func_start Phase2Task_Transition_Sydney +Phase2Task_Transition_Sydney: @ 8147AE4 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3453,10 +3252,10 @@ sub_8147AE4: @ 8147AE4 pop {r0} bx r0 .pool - thumb_func_end sub_8147AE4 + thumb_func_end Phase2Task_Transition_Sydney - thumb_func_start sub_8147B04 -sub_8147B04: @ 8147B04 + thumb_func_start Phase2Task_Transition_Phoebe +Phase2Task_Transition_Phoebe: @ 8147B04 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3471,10 +3270,10 @@ sub_8147B04: @ 8147B04 pop {r0} bx r0 .pool - thumb_func_end sub_8147B04 + thumb_func_end Phase2Task_Transition_Phoebe - thumb_func_start sub_8147B24 -sub_8147B24: @ 8147B24 + thumb_func_start Phase2Task_Transition_Glacia +Phase2Task_Transition_Glacia: @ 8147B24 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3489,10 +3288,10 @@ sub_8147B24: @ 8147B24 pop {r0} bx r0 .pool - thumb_func_end sub_8147B24 + thumb_func_end Phase2Task_Transition_Glacia - thumb_func_start sub_8147B44 -sub_8147B44: @ 8147B44 + thumb_func_start Phase2Task_Transition_Drake +Phase2Task_Transition_Drake: @ 8147B44 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3507,10 +3306,10 @@ sub_8147B44: @ 8147B44 pop {r0} bx r0 .pool - thumb_func_end sub_8147B44 + thumb_func_end Phase2Task_Transition_Drake - thumb_func_start sub_8147B64 -sub_8147B64: @ 8147B64 + thumb_func_start Phase2Task_Transition_Wallace +Phase2Task_Transition_Wallace: @ 8147B64 push {lr} lsls r0, 24 lsrs r0, 24 @@ -3525,7 +3324,7 @@ sub_8147B64: @ 8147B64 pop {r0} bx r0 .pool - thumb_func_end sub_8147B64 + thumb_func_end Phase2Task_Transition_Wallace thumb_func_start sub_8147B84 sub_8147B84: @ 8147B84 @@ -4664,8 +4463,8 @@ sub_81484B8: @ 81484B8 .pool thumb_func_end sub_81484B8 - thumb_func_start sub_81484D0 -sub_81484D0: @ 81484D0 + thumb_func_start Phase2Task_Transition_Slice +Phase2Task_Transition_Slice: @ 81484D0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -4690,7 +4489,7 @@ _081484E2: pop {r0} bx r0 .pool - thumb_func_end sub_81484D0 + thumb_func_end Phase2Task_Transition_Slice thumb_func_start sub_8148508 sub_8148508: @ 8148508 @@ -4873,7 +4672,7 @@ sub_814865C: @ 814865C strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_8149F84 - ldr r0, =sub_81484D0 + ldr r0, =Phase2Task_Transition_Slice bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -4963,8 +4762,8 @@ _0814874E: .pool thumb_func_end sub_8148728 - thumb_func_start sub_8148760 -sub_8148760: @ 8148760 + thumb_func_start Phase2Task_Transition_25 +Phase2Task_Transition_25: @ 8148760 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -4989,7 +4788,7 @@ _08148772: pop {r0} bx r0 .pool - thumb_func_end sub_8148760 + thumb_func_end Phase2Task_Transition_25 thumb_func_start sub_8148798 sub_8148798: @ 8148798 @@ -5442,7 +5241,7 @@ sub_8148B14: @ 8148B14 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_8149F84 - ldr r0, =sub_8148760 + ldr r0, =Phase2Task_Transition_25 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -5453,8 +5252,8 @@ sub_8148B14: @ 8148B14 .pool thumb_func_end sub_8148B14 - thumb_func_start sub_8148B54 -sub_8148B54: @ 8148B54 + thumb_func_start Phase2Task_Transition_26 +Phase2Task_Transition_26: @ 8148B54 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -5479,10 +5278,10 @@ _08148B66: pop {r0} bx r0 .pool - thumb_func_end sub_8148B54 + thumb_func_end Phase2Task_Transition_26 - thumb_func_start sub_8148B8C -sub_8148B8C: @ 8148B8C + thumb_func_start Phase2Task_Transition_27 +Phase2Task_Transition_27: @ 8148B8C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -5507,7 +5306,7 @@ _08148B9E: pop {r0} bx r0 .pool - thumb_func_end sub_8148B8C + thumb_func_end Phase2Task_Transition_27 thumb_func_start sub_8148BC4 sub_8148BC4: @ 8148BC4 @@ -5819,8 +5618,8 @@ _08148E3C: .pool thumb_func_end sub_8148D6C - thumb_func_start sub_8148E54 -sub_8148E54: @ 8148E54 + thumb_func_start Phase2Task_Transition_28 +Phase2Task_Transition_28: @ 8148E54 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -5845,7 +5644,7 @@ _08148E66: pop {r0} bx r0 .pool - thumb_func_end sub_8148E54 + thumb_func_end Phase2Task_Transition_28 thumb_func_start sub_8148E8C sub_8148E8C: @ 8148E8C @@ -6187,8 +5986,8 @@ _08149138: bx r1 thumb_func_end sub_8149048 - thumb_func_start sub_8149140 -sub_8149140: @ 8149140 + thumb_func_start Phase2Task_Transition_Groudon +Phase2Task_Transition_Groudon: @ 8149140 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -6213,7 +6012,7 @@ _08149152: pop {r0} bx r0 .pool - thumb_func_end sub_8149140 + thumb_func_end Phase2Task_Transition_Groudon thumb_func_start sub_8149178 sub_8149178: @ 8149178 @@ -6341,8 +6140,8 @@ _0814926E: .pool thumb_func_end sub_8149224 - thumb_func_start sub_814927C -sub_814927C: @ 814927C + thumb_func_start Phase2Task_Transition_Rayquaza +Phase2Task_Transition_Rayquaza: @ 814927C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -6367,7 +6166,7 @@ _0814928E: pop {r0} bx r0 .pool - thumb_func_end sub_814927C + thumb_func_end Phase2Task_Transition_Rayquaza thumb_func_start sub_81492B4 sub_81492B4: @ 81492B4 @@ -6695,8 +6494,8 @@ _08149554: .pool thumb_func_end sub_8149508 - thumb_func_start sub_8149578 -sub_8149578: @ 8149578 + thumb_func_start Phase2Task_Transition_WhiteFade +Phase2Task_Transition_WhiteFade: @ 8149578 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -6721,7 +6520,7 @@ _0814958A: pop {r0} bx r0 .pool - thumb_func_end sub_8149578 + thumb_func_end Phase2Task_Transition_WhiteFade thumb_func_start sub_81495B0 sub_81495B0: @ 81495B0 @@ -6916,7 +6715,7 @@ sub_8149740: @ 8149740 cmp r0, 0x10 bls _08149766 bl sub_8149F84 - ldr r0, =sub_8149578 + ldr r0, =Phase2Task_Transition_WhiteFade bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -7158,8 +6957,8 @@ _0814994C: .pool thumb_func_end sub_8149864 - thumb_func_start sub_814995C -sub_814995C: @ 814995C + thumb_func_start Phase2Task_Transition_GridSquares +Phase2Task_Transition_GridSquares: @ 814995C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -7184,7 +6983,7 @@ _0814996E: pop {r0} bx r0 .pool - thumb_func_end sub_814995C + thumb_func_end Phase2Task_Transition_GridSquares thumb_func_start sub_8149994 sub_8149994: @ 8149994 @@ -7277,7 +7076,7 @@ sub_8149A40: @ 8149A40 cmp r1, 0 bne _08149A60 bl sub_8149F84 - ldr r0, =sub_814995C + ldr r0, =Phase2Task_Transition_GridSquares bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -7289,8 +7088,8 @@ _08149A60: .pool thumb_func_end sub_8149A40 - thumb_func_start sub_8149A6C -sub_8149A6C: @ 8149A6C + thumb_func_start Phase2Task_Transition_Shards +Phase2Task_Transition_Shards: @ 8149A6C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -7315,7 +7114,7 @@ _08149A7E: pop {r0} bx r0 .pool - thumb_func_end sub_8149A6C + thumb_func_end Phase2Task_Transition_Shards thumb_func_start sub_8149AA4 sub_8149AA4: @ 8149AA4 @@ -7559,7 +7358,7 @@ sub_8149C60: @ 8149C60 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_8149F84 - ldr r0, =sub_8149A6C + ldr r0, =Phase2Task_Transition_Shards bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -8511,8 +8310,8 @@ sub_814A374: @ 814A374 .pool thumb_func_end sub_814A374 - thumb_func_start sub_814A3BC -sub_814A3BC: @ 814A3BC + thumb_func_start Phase2Task_Transition_29 +Phase2Task_Transition_29: @ 814A3BC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -8537,10 +8336,10 @@ _0814A3CE: pop {r0} bx r0 .pool - thumb_func_end sub_814A3BC + thumb_func_end Phase2Task_Transition_29 - thumb_func_start sub_814A3F4 -sub_814A3F4: @ 814A3F4 + thumb_func_start Phase2Task_Transition_30 +Phase2Task_Transition_30: @ 814A3F4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -8565,7 +8364,7 @@ _0814A406: pop {r0} bx r0 .pool - thumb_func_end sub_814A3F4 + thumb_func_end Phase2Task_Transition_30 thumb_func_start sub_814A42C sub_814A42C: @ 814A42C @@ -8815,7 +8614,7 @@ _0814A632: ands r0, r1 cmp r0, 0 bne _0814A654 - ldr r0, =sub_814A3F4 + ldr r0, =Phase2Task_Transition_30 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -8888,8 +8687,8 @@ sub_814A6CC: @ 814A6CC .pool thumb_func_end sub_814A6CC - thumb_func_start sub_814A6F0 -sub_814A6F0: @ 814A6F0 + thumb_func_start Phase2Task_Transition_31 +Phase2Task_Transition_31: @ 814A6F0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -8914,10 +8713,10 @@ _0814A702: pop {r0} bx r0 .pool - thumb_func_end sub_814A6F0 + thumb_func_end Phase2Task_Transition_31 - thumb_func_start sub_814A728 -sub_814A728: @ 814A728 + thumb_func_start Phase2Task_Transition_33 +Phase2Task_Transition_33: @ 814A728 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -8942,10 +8741,10 @@ _0814A73A: pop {r0} bx r0 .pool - thumb_func_end sub_814A728 + thumb_func_end Phase2Task_Transition_33 - thumb_func_start sub_814A760 -sub_814A760: @ 814A760 + thumb_func_start Phase2Task_Transition_32 +Phase2Task_Transition_32: @ 814A760 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -8970,7 +8769,7 @@ _0814A772: pop {r0} bx r0 .pool - thumb_func_end sub_814A760 + thumb_func_end Phase2Task_Transition_32 thumb_func_start sub_814A798 sub_814A798: @ 814A798 diff --git a/asm/overworld.s b/asm/overworld.s index 5de62b896..92a63932e 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3055,9 +3055,9 @@ _08085E18: .pool thumb_func_end c1_overworld - thumb_func_start c2_overworld_basic -@ void c2_overworld_basic() -c2_overworld_basic: @ 8085E24 + thumb_func_start OverworldBasic +@ void OverworldBasic() +OverworldBasic: @ 8085E24 push {lr} bl ScriptContext2_RunScript bl RunTasks @@ -3070,15 +3070,15 @@ c2_overworld_basic: @ 8085E24 bl do_scheduled_bg_tilemap_copies_to_vram pop {r0} bx r0 - thumb_func_end c2_overworld_basic + thumb_func_end OverworldBasic - thumb_func_start sub_8085E50 -sub_8085E50: @ 8085E50 + thumb_func_start CB2_OverworldBasic +CB2_OverworldBasic: @ 8085E50 push {lr} - bl c2_overworld_basic + bl OverworldBasic pop {r0} bx r0 - thumb_func_end sub_8085E50 + thumb_func_end CB2_OverworldBasic thumb_func_start c2_overworld c2_overworld: @ 8085E5C @@ -3092,7 +3092,7 @@ c2_overworld: @ 8085E5C movs r0, 0 bl SetVBlankCallback _08085E70: - bl c2_overworld_basic + bl OverworldBasic cmp r4, 0 beq _08085E7C bl SetFieldVBlankCallback diff --git a/asm/unk_transition.s b/asm/unk_transition.s index 385a8771e..564d2fbad 100755 --- a/asm/unk_transition.s +++ b/asm/unk_transition.s @@ -24,8 +24,8 @@ _081DABD2: bx r1 thumb_func_end sub_81DABBC - thumb_func_start sub_81DABDC -sub_81DABDC: @ 81DABDC + thumb_func_start Phase2Task_Transition_34 +Phase2Task_Transition_34: @ 81DABDC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -50,7 +50,7 @@ _081DABEE: pop {r0} bx r0 .pool - thumb_func_end sub_81DABDC + thumb_func_end Phase2Task_Transition_34 thumb_func_start sub_81DAC14 sub_81DAC14: @ 81DAC14 @@ -119,7 +119,7 @@ sub_81DAC80: @ 81DAC80 bne _081DACA4 adds r0, r2, 0 bl sub_81DAA20 - ldr r0, =sub_81DABDC + ldr r0, =Phase2Task_Transition_34 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -131,8 +131,8 @@ _081DACA4: .pool thumb_func_end sub_81DAC80 - thumb_func_start sub_81DACB4 -sub_81DACB4: @ 81DACB4 + thumb_func_start Phase2Task_Transition_35 +Phase2Task_Transition_35: @ 81DACB4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -157,7 +157,7 @@ _081DACC6: pop {r0} bx r0 .pool - thumb_func_end sub_81DACB4 + thumb_func_end Phase2Task_Transition_35 thumb_func_start sub_81DACEC sub_81DACEC: @ 81DACEC @@ -226,7 +226,7 @@ sub_81DAD58: @ 81DAD58 bne _081DAD7C adds r0, r2, 0 bl sub_81DAA20 - ldr r0, =sub_81DACB4 + ldr r0, =Phase2Task_Transition_35 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -238,8 +238,8 @@ _081DAD7C: .pool thumb_func_end sub_81DAD58 - thumb_func_start sub_81DAD8C -sub_81DAD8C: @ 81DAD8C + thumb_func_start Phase2Task_Transition_36 +Phase2Task_Transition_36: @ 81DAD8C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -264,7 +264,7 @@ _081DAD9E: pop {r0} bx r0 .pool - thumb_func_end sub_81DAD8C + thumb_func_end Phase2Task_Transition_36 thumb_func_start sub_81DADC4 sub_81DADC4: @ 81DADC4 @@ -342,7 +342,7 @@ sub_81DAE44: @ 81DAE44 bne _081DAE68 adds r0, r2, 0 bl sub_81DAA20 - ldr r0, =sub_81DAD8C + ldr r0, =Phase2Task_Transition_36 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -354,8 +354,8 @@ _081DAE68: .pool thumb_func_end sub_81DAE44 - thumb_func_start sub_81DAE78 -sub_81DAE78: @ 81DAE78 + thumb_func_start Phase2Task_Transition_37 +Phase2Task_Transition_37: @ 81DAE78 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -380,7 +380,7 @@ _081DAE8A: pop {r0} bx r0 .pool - thumb_func_end sub_81DAE78 + thumb_func_end Phase2Task_Transition_37 thumb_func_start sub_81DAEB0 sub_81DAEB0: @ 81DAEB0 @@ -460,7 +460,7 @@ sub_81DAF34: @ 81DAF34 bne _081DAF58 adds r0, r2, 0 bl sub_81DAA20 - ldr r0, =sub_81DAE78 + ldr r0, =Phase2Task_Transition_37 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -472,8 +472,8 @@ _081DAF58: .pool thumb_func_end sub_81DAF34 - thumb_func_start sub_81DAF68 -sub_81DAF68: @ 81DAF68 + thumb_func_start Phase2Task_Transition_38 +Phase2Task_Transition_38: @ 81DAF68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -498,7 +498,7 @@ _081DAF7A: pop {r0} bx r0 .pool - thumb_func_end sub_81DAF68 + thumb_func_end Phase2Task_Transition_38 thumb_func_start sub_81DAFA0 sub_81DAFA0: @ 81DAFA0 @@ -585,7 +585,7 @@ sub_81DB02C: @ 81DB02C bne _081DB050 adds r0, r2, 0 bl sub_81DAA20 - ldr r0, =sub_81DAF68 + ldr r0, =Phase2Task_Transition_38 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -597,8 +597,8 @@ _081DB050: .pool thumb_func_end sub_81DB02C - thumb_func_start sub_81DB060 -sub_81DB060: @ 81DB060 + thumb_func_start Phase2Task_Transition_39 +Phase2Task_Transition_39: @ 81DB060 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -623,7 +623,7 @@ _081DB072: pop {r0} bx r0 .pool - thumb_func_end sub_81DB060 + thumb_func_end Phase2Task_Transition_39 thumb_func_start sub_81DB098 sub_81DB098: @ 81DB098 @@ -710,7 +710,7 @@ sub_81DB124: @ 81DB124 bne _081DB148 adds r0, r2, 0 bl sub_81DAA20 - ldr r0, =sub_81DB060 + ldr r0, =Phase2Task_Transition_39 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 @@ -722,4 +722,264 @@ _081DB148: .pool thumb_func_end sub_81DB124 + thumb_func_start Phase2Task_Transition_40 +Phase2Task_Transition_40: @ 81DB158 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7E8 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DB16A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DB16A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end Phase2Task_Transition_40 + + thumb_func_start sub_81DB190 +sub_81DB190: @ 81DB190 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081DB1BE + movs r0, 0x80 + str r0, [sp] + str r1, [sp, 0x4] + subs r0, 0x84 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x2D + movs r2, 0xC + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x10] + b _081DB212 +_081DB1BE: + cmp r1, 0x10 + bne _081DB1E6 + movs r0, 0x80 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + subs r0, 0x4 + str r0, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0x59 + movs r1, 0x61 + movs r2, 0xFC + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + b _081DB212 +_081DB1E6: + cmp r1, 0x20 + bne _081DB212 + movs r0, 0x80 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + subs r0, 0x4 + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + movs r0, 0x97 + movs r1, 0x61 + movs r2, 0x84 + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DB212: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DB190 + + thumb_func_start sub_81DB224 +sub_81DB224: @ 81DB224 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DB248 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =Phase2Task_Transition_40 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DB248: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DB224 + + thumb_func_start Phase2Task_Transition_41 +Phase2Task_Transition_41: @ 81DB258 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7FC + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DB26A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DB26A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end Phase2Task_Transition_41 + + thumb_func_start sub_81DB290 +sub_81DB290: @ 81DB290 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081DB2C2 + movs r2, 0x8E + lsls r2, 1 + movs r0, 0x83 + str r0, [sp] + movs r0, 0x23 + str r0, [sp, 0x4] + subs r0, 0x26 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x50 + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x10] + b _081DB316 +_081DB2C2: + cmp r1, 0x10 + bne _081DB2EA + movs r0, 0x83 + str r0, [sp] + movs r0, 0x23 + str r0, [sp, 0x4] + subs r0, 0x26 + str r0, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x50 + movs r2, 0x2C + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + b _081DB316 +_081DB2EA: + cmp r1, 0x20 + bne _081DB316 + movs r0, 0x83 + str r0, [sp] + movs r0, 0x23 + str r0, [sp, 0x4] + subs r0, 0x26 + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + movs r0, 0x79 + movs r1, 0x50 + movs r2, 0xA4 + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DB316: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DB290 + + thumb_func_start sub_81DB328 +sub_81DB328: @ 81DB328 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DB34C + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =Phase2Task_Transition_41 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DB34C: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DB328 + .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_transition_2.s b/asm/unk_transition_2.s deleted file mode 100755 index a2ec93e5d..000000000 --- a/asm/unk_transition_2.s +++ /dev/null @@ -1,268 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81DB158 -sub_81DB158: @ 81DB158 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7E8 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DB16A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DB16A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB158 - - thumb_func_start sub_81DB190 -sub_81DB190: @ 81DB190 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081DB1BE - movs r0, 0x80 - str r0, [sp] - str r1, [sp, 0x4] - subs r0, 0x84 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x2D - movs r2, 0xC - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - b _081DB212 -_081DB1BE: - cmp r1, 0x10 - bne _081DB1E6 - movs r0, 0x80 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - subs r0, 0x4 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x59 - movs r1, 0x61 - movs r2, 0xFC - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - b _081DB212 -_081DB1E6: - cmp r1, 0x20 - bne _081DB212 - movs r0, 0x80 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - subs r0, 0x4 - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - movs r0, 0x97 - movs r1, 0x61 - movs r2, 0x84 - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DB212: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DB190 - - thumb_func_start sub_81DB224 -sub_81DB224: @ 81DB224 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DB248 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DB158 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DB248: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DB224 - - thumb_func_start sub_81DB258 -sub_81DB258: @ 81DB258 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7FC - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DB26A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DB26A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB258 - - thumb_func_start sub_81DB290 -sub_81DB290: @ 81DB290 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081DB2C2 - movs r2, 0x8E - lsls r2, 1 - movs r0, 0x83 - str r0, [sp] - movs r0, 0x23 - str r0, [sp, 0x4] - subs r0, 0x26 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x50 - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - b _081DB316 -_081DB2C2: - cmp r1, 0x10 - bne _081DB2EA - movs r0, 0x83 - str r0, [sp] - movs r0, 0x23 - str r0, [sp, 0x4] - subs r0, 0x26 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0x2C - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - b _081DB316 -_081DB2EA: - cmp r1, 0x20 - bne _081DB316 - movs r0, 0x83 - str r0, [sp] - movs r0, 0x23 - str r0, [sp, 0x4] - subs r0, 0x26 - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - movs r0, 0x79 - movs r1, 0x50 - movs r2, 0xA4 - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DB316: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DB290 - - thumb_func_start sub_81DB328 -sub_81DB328: @ 81DB328 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DB34C - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DB258 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DB34C: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DB328 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/battle_transition.s b/data/battle_transition.s index bd0386e2b..901eeb69d 100644 --- a/data/battle_transition.s +++ b/data/battle_transition.s @@ -5,263 +5,6 @@ .section .rodata .align 2 -sBigPokeball_Tileset:: @ 85B9330 - .incbin "graphics/battle_transitions/big_pokeball.4bpp" - - .align 2 -sPokeballTrail_Tileset:: @ 85B98B0 - .incbin "graphics/battle_transitions/pokeball_trail.4bpp" - - .align 2 -sSpriteImage_85B98F0:: @ 85B98F0 - .incbin "graphics/battle_transitions/pokeball.4bpp" - - .align 2 -sUnknown_085B9AF0:: @ 85B9AF0 - .incbin "graphics/battle_transitions/elite_four_bg.4bpp" - - .align 2 -sSpriteImage_85B9CD0:: @ 85B9CD0 - .incbin "graphics/battle_transitions/unused_brendan.4bpp" - - .align 2 -sSpriteImage_85BA4D0:: @ 85BA4D0 - .incbin "graphics/battle_transitions/unused_lass.4bpp" - - .align 2 -sShrinkingBoxTileset:: @ 85BACD0 - .incbin "graphics/battle_transitions/shrinking_box.4bpp" - - .align 2 -sEvilTeam_Palette:: @ 85BAEB0 - .incbin "graphics/battle_transitions/evil_team.gbapal" - - .align 2 -sTeamAqua_Tileset:: @ 85BAED0 - .incbin "graphics/battle_transitions/team_aqua.4bpp.lz" - - .align 2 -sTeamAqua_Tilemap:: @ 85BB248 - .incbin "graphics/battle_transitions/team_aqua.bin.lz" - - .align 2 -sTeamMagma_Tileset:: @ 85BB4A4 - .incbin "graphics/battle_transitions/team_magma.4bpp.lz" - - .align 2 -sTeamMagma_Tilemap:: @ 85BB930 - .incbin "graphics/battle_transitions/team_magma.bin.lz" - - .align 2 -gUnknown_085BBC14:: @ 85BBC14 - .incbin "graphics/battle_transitions/85BBC14.4bpp" - - .align 2 -gUnknown_085BC2B4:: @ 85BC2B4 - .incbin "graphics/battle_transitions/85BC2B4.gbapal" - - .align 2 -gUnknown_085BC2D4:: @ 85BC2D4 - .incbin "graphics/battle_transitions/85BC2D4.gbapal" - - .align 2 -gUnknown_085BC2F4:: @ 85BC2F4 - .incbin "graphics/battle_transitions/85BC2F4.gbapal" - - .align 2 -gUnknown_085BC314:: @ 85BC314 - .incbin "graphics/battle_transitions/85BC314.bin" - - .align 2 -gUnknown_085BCB14:: @ 85BCB14 - .incbin "graphics/battle_transitions/85BCB14.bin" - - .align 2 -gUnknown_085BD314:: @ 85BD314 - .incbin "graphics/battle_transitions/85BD314.bin" - - .align 2 -gUnknown_085BDB14:: @ 85BDB14 - .incbin "graphics/battle_transitions/85BDB14.gbapal" - - .align 2 -gUnknown_085BDB34:: @ 85BDB34 - .incbin "graphics/battle_transitions/kyogre.4bpp.lz" - - .align 2 -gUnknown_085BE1E8:: @ 85BE1E8 - .incbin "graphics/battle_transitions/kyogre.bin.lz" - - .align 2 -gUnknown_085BE51C:: @ 85BE51C - .incbin "graphics/battle_transitions/groudon.4bpp.lz" - - .align 2 -gUnknown_085BEA88:: @ 85BEA88 - .incbin "graphics/battle_transitions/groudon.bin.lz" - - .align 2 -gUnknown_085BEDA0:: @ 85BEDA0 - .incbin "graphics/battle_transitions/kyogre_pt1.gbapal" - - .align 2 -gUnknown_085BEEE0:: @ 85BEEE0 - .incbin "graphics/battle_transitions/kyogre_pt2.gbapal" - - .align 2 -gUnknown_085BF0A0:: @ 85BF0A0 - .incbin "graphics/battle_transitions/groudon_pt1.gbapal" - - .align 2 -gUnknown_085BF2A0:: @ 85BF2A0 - .incbin "graphics/battle_transitions/groudon_pt2.gbapal" - - .align 2 -gUnknown_085BF4A0:: @ 85BF4A0 - .incbin "graphics/battle_transitions/rayquaza.gbapal" - - .align 2 -gUnknown_085BF6A0:: @ 85BF6A0 - .incbin "graphics/battle_transitions/rayquaza.4bpp" - - .align 2 -gUnknown_085C6BE0:: @ 85C6BE0 - .incbin "graphics/battle_transitions/rayquaza.bin" - - .align 2 -gUnknown_085C7BE0:: @ 85C7BE0 - .incbin "graphics/battle_transitions/frontier_brain.gbapal" - - .align 2 -gUnknown_085C7C00:: @ 85C7C00 - .incbin "graphics/battle_transitions/frontier_brain.4bpp.lz" - - .align 2 -gUnknown_085C828C:: @ 85C828C - .incbin "graphics/battle_transitions/frontier_brain.bin.lz" - - .align 2 -gUnknown_085C8578:: @ 85C8578 - .incbin "graphics/battle_transitions/frontier_squares_blanktiles.gbapal" - - .align 2 -gUnknown_085C8598:: @ 85C8598 - .incbin "graphics/battle_transitions/frontier_square_1.4bpp.lz" - - .align 2 -gUnknown_085C86F4:: @ 85C86F4 - .incbin "graphics/battle_transitions/frontier_square_2.4bpp.lz" - - .align 2 -gUnknown_085C87F4:: @ 85C87F4 - .incbin "graphics/battle_transitions/frontier_square_3.4bpp.lz" - - .align 2 -gUnknown_085C88A4:: @ 85C88A4 - .incbin "graphics/battle_transitions/frontier_square_4.4bpp.lz" - - .align 2 -gUnknown_085C8928:: @ 85C8928 - .incbin "graphics/battle_transitions/frontier_squares.bin" - - .align 2 -sPhase1_Tasks:: @ 85C8948 - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - .4byte sub_81460BC - - .align 2 -sPhase2_Tasks:: @ 85C89F0 - .4byte sub_814610C - .4byte sub_8146204 - .4byte sub_8146384 - .4byte sub_8146514 - .4byte sub_8146F94 - .4byte sub_8147204 - .4byte sub_8147718 - .4byte sub_81478EC - .4byte sub_81484D0 - .4byte sub_8149578 - .4byte sub_814995C - .4byte sub_8149A6C - .4byte sub_8147AE4 - .4byte sub_8147B04 - .4byte sub_8147B24 - .4byte sub_8147B44 - .4byte sub_8147B64 - .4byte sub_814654C - .4byte sub_8146584 - .4byte sub_81465BC - .4byte sub_81465F4 - .4byte sub_814662C - .4byte sub_8146664 - .4byte sub_8149140 - .4byte sub_814927C - .4byte sub_8148760 - .4byte sub_8148B54 - .4byte sub_8148B8C - .4byte sub_8148E54 - .4byte sub_814A3BC - .4byte sub_814A3F4 - .4byte sub_814A6F0 - .4byte sub_814A760 - .4byte sub_814A728 - .4byte sub_81DABDC - .4byte sub_81DACB4 - .4byte sub_81DAD8C - .4byte sub_81DAE78 - .4byte sub_81DAF68 - .4byte sub_81DB060 - .4byte sub_81DB158 - .4byte sub_81DB258 - - .align 2 -sMainTransitionPhases:: @ 85C8A98 - .4byte sub_8145FE0 - .4byte sub_8146030 - .4byte sub_8146064 - .4byte sub_814608C - - .align 2 sPhase2_Transition_Blur_Funcs:: @ 85C8AA8 .4byte sub_8146144 .4byte sub_8146178 diff --git a/include/battle_transition.h b/include/battle_transition.h index 84b5e37ec..108b6232b 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -1,6 +1,7 @@ #ifndef GUARD_BATTLE_TRANSITION_H #define GUARD_BATTLE_TRANSITION_H +void TestBattleTransition(u8 transitionId); void sub_8149DFC(u8 a1); void BattleTransition_StartOnField(u8 transitionID); void BattleTransition_Start(u8 transitionID); @@ -52,5 +53,6 @@ bool8 IsBattleTransitionDone(void); #define B_TRANSITION_39 39 #define B_TRANSITION_40 40 #define B_TRANSITION_41 41 +#define B_TRANSITION_COUNT 42 #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/overworld.h b/include/overworld.h index a5fba0c10..9f0f80a23 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -71,4 +71,6 @@ void mapldr_default(void); void IncrementGameStat(u8); u32 GetGameStat(u8); +void CB2_OverworldBasic(void); + #endif //GUARD_ROM4_H diff --git a/include/unk_transition.h b/include/unk_transition.h new file mode 100644 index 000000000..ef7b33ed7 --- /dev/null +++ b/include/unk_transition.h @@ -0,0 +1,13 @@ +#ifndef GUARD_UNK_TRANSITION_H +#define GUARD_UNK_TRANSITION_H + +void Phase2Task_Transition_34(u8 taskId); +void Phase2Task_Transition_35(u8 taskId); +void Phase2Task_Transition_36(u8 taskId); +void Phase2Task_Transition_37(u8 taskId); +void Phase2Task_Transition_38(u8 taskId); +void Phase2Task_Transition_39(u8 taskId); +void Phase2Task_Transition_40(u8 taskId); +void Phase2Task_Transition_41(u8 taskId); + +#endif // GUARD_UNK_TRANSITION_H diff --git a/ld_script.txt b/ld_script.txt index af40a1de4..7aeee8c8d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -196,6 +196,7 @@ SECTIONS { src/coins.o(.text); src/landmark.o(.text); asm/fldeff_strength.o(.text); + src/battle_transition.o(.text); asm/battle_transition.o(.text); src/battle_controller_link_partner.o(.text); src/battle_message.o(.text); @@ -274,7 +275,6 @@ SECTIONS { asm/trainer_rematch.o(.text); asm/unk_sprite_file.o(.text); asm/unk_transition.o(.text); - asm/unk_transition_2.o(.text); src/international_string_util.o(.text); asm/international_string_util.o(.text); } =0 @@ -447,6 +447,7 @@ SECTIONS { data/roulette.o(.rodata); data/pokedex_cry_screen.o(.rodata); src/landmark.o(.rodata); + src/battle_transition.o(.rodata); data/battle_transition.o(.rodata); src/battle_controller_link_partner.o(.rodata); src/battle_message.o(.rodata); diff --git a/src/battle_transition.c b/src/battle_transition.c new file mode 100644 index 000000000..386b0dd79 --- /dev/null +++ b/src/battle_transition.c @@ -0,0 +1,287 @@ +#include "global.h" +#include "battle_transition.h" +#include "unk_transition.h" +#include "main.h" +#include "overworld.h" +#include "task.h" +#include "palette.h" +#include "trig.h" +#include "field_effect.h" +#include "random.h" +#include "sprite.h" +#include "sound.h" +#include "constants/songs.h" +#include "constants/trainers.h" +#include "field_camera.h" +#include "unknown_task.h" +#include "malloc.h" + +struct TransitionData +{ + vs8 VBlank_DMA; + u16 WININ; + u16 WINOUT; + u16 field_6; + u16 WIN0V; + u16 field_A; + u16 field_C; + u16 BLDCNT; + u16 BLDALPHA; + u16 BLDY; + s16 field_14; + s16 field_16; + s16 field_18; + s16 field_1A; + s16 field_1C; + s16 field_1E; // unused + s16 field_20; + s16 field_22; // unused + s16 data[11]; +}; + +typedef bool8 (*TransitionState)(struct Task *task); +typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite); + +extern void c2_exit_to_overworld_2_switch(void); +extern void sub_80AC3D0(void); + +// this file's functions +void LaunchBattleTransitionTask(u8 transitionId); +void Task_BattleTransitionMain(u8 taskId); +void Phase1Task_TransitionAll(u8 taskId); +void Phase2Task_Transition_Blur(u8 taskId); +void Phase2Task_Transition_Swirl(u8 taskId); +void Phase2Task_Transition_Shuffle(u8 taskId); +void Phase2Task_Transition_BigPokeball(u8 taskId); +void Phase2Task_Transition_PokeballsTrail(u8 taskId); +void Phase2Task_Transition_Clockwise_BlackFade(u8 taskId); +void Phase2Task_Transition_Ripple(u8 taskId); +void Phase2Task_Transition_Wave(u8 taskId); +void Phase2Task_Transition_Slice(u8 taskId); +void Phase2Task_Transition_WhiteFade(u8 taskId); +void Phase2Task_Transition_GridSquares(u8 taskId); +void Phase2Task_Transition_Shards(u8 taskId); +void Phase2Task_Transition_Sydney(u8 taskId); +void Phase2Task_Transition_Phoebe(u8 taskId); +void Phase2Task_Transition_Glacia(u8 taskId); +void Phase2Task_Transition_Drake(u8 taskId); +void Phase2Task_Transition_Wallace(u8 taskId); +void Phase2Task_Transition_Aqua(u8 taskId); +void Phase2Task_Transition_Magma(u8 taskId); +void Phase2Task_Transition_Regice(u8 taskId); +void Phase2Task_Transition_Registeel(u8 taskId); +void Phase2Task_Transition_Regirock(u8 taskId); +void Phase2Task_Transition_Kyogre(u8 taskId); +void Phase2Task_Transition_Groudon(u8 taskId); +void Phase2Task_Transition_Rayquaza(u8 taskId); +void Phase2Task_Transition_25(u8 taskId); +void Phase2Task_Transition_26(u8 taskId); +void Phase2Task_Transition_27(u8 taskId); +void Phase2Task_Transition_28(u8 taskId); +void Phase2Task_Transition_29(u8 taskId); +void Phase2Task_Transition_30(u8 taskId); +void Phase2Task_Transition_31(u8 taskId); +void Phase2Task_Transition_32(u8 taskId); +void Phase2Task_Transition_33(u8 taskId); +bool8 Transition_Phase1(struct Task *task); +bool8 Transition_WaitForPhase1(struct Task *task); +bool8 Transition_Phase2(struct Task *task); +bool8 Transition_WaitForPhase2(struct Task *task); + +// iwram bss vars +IWRAM_DATA u16 gUnknown_03001208; +IWRAM_DATA static u8 sTestingTransitionId; +IWRAM_DATA static u8 sTestingTransitionState; + +// ewram vars +EWRAM_DATA struct TransitionData *sTransitionStructPtr = NULL; + +// const rom data +const u32 sBigPokeball_Tileset[] = INCBIN_U32("graphics/battle_transitions/big_pokeball.4bpp"); +const u32 sPokeballTrail_Tileset[] = INCBIN_U32("graphics/battle_transitions/pokeball_trail.4bpp"); +const u32 sSpriteImage_85B98F0[] = INCBIN_U32("graphics/battle_transitions/pokeball.4bpp"); +const u32 sUnknown_085B9AF0[] = INCBIN_U32("graphics/battle_transitions/elite_four_bg.4bpp"); +const u32 sSpriteImage_85B9CD0[] = INCBIN_U32("graphics/battle_transitions/unused_brendan.4bpp"); +const u32 sSpriteImage_85BA4D0[] = INCBIN_U32("graphics/battle_transitions/unused_lass.4bpp"); +const u32 sShrinkingBoxTileset[] = INCBIN_U32("graphics/battle_transitions/shrinking_box.4bpp"); +const u32 sEvilTeam_Palette[] = INCBIN_U32("graphics/battle_transitions/evil_team.gbapal"); +const u32 sTeamAqua_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_aqua.4bpp.lz"); +const u32 sTeamAqua_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_aqua.bin.lz"); +const u32 sTeamMagma_Tileset[] = INCBIN_U32("graphics/battle_transitions/team_magma.4bpp.lz"); +const u32 sTeamMagma_Tilemap[] = INCBIN_U32("graphics/battle_transitions/team_magma.bin.lz"); +const u32 gUnknown_085BBC14[] = INCBIN_U32("graphics/battle_transitions/85BBC14.4bpp"); +const u32 gUnknown_085BC2B4[] = INCBIN_U32("graphics/battle_transitions/85BC2B4.gbapal"); +const u32 gUnknown_085BC2D4[] = INCBIN_U32("graphics/battle_transitions/85BC2D4.gbapal"); +const u32 gUnknown_085BC2F4[] = INCBIN_U32("graphics/battle_transitions/85BC2F4.gbapal"); +const u32 gUnknown_085BC314[] = INCBIN_U32("graphics/battle_transitions/85BC314.bin"); +const u32 gUnknown_085BCB14[] = INCBIN_U32("graphics/battle_transitions/85BCB14.bin"); +const u32 gUnknown_085BD314[] = INCBIN_U32("graphics/battle_transitions/85BD314.bin"); +const u32 gUnknown_085BDB14[] = INCBIN_U32("graphics/battle_transitions/85BDB14.gbapal"); +const u32 gUnknown_085BDB34[] = INCBIN_U32("graphics/battle_transitions/kyogre.4bpp.lz"); +const u32 gUnknown_085BE1E8[] = INCBIN_U32("graphics/battle_transitions/kyogre.bin.lz"); +const u32 gUnknown_085BE51C[] = INCBIN_U32("graphics/battle_transitions/groudon.4bpp.lz"); +const u32 gUnknown_085BEA88[] = INCBIN_U32("graphics/battle_transitions/groudon.bin.lz"); +const u32 gUnknown_085BEDA0[] = INCBIN_U32("graphics/battle_transitions/kyogre_pt1.gbapal"); +const u32 gUnknown_085BEEE0[] = INCBIN_U32("graphics/battle_transitions/kyogre_pt2.gbapal"); +const u32 gUnknown_085BF0A0[] = INCBIN_U32("graphics/battle_transitions/groudon_pt1.gbapal"); +const u32 gUnknown_085BF2A0[] = INCBIN_U32("graphics/battle_transitions/groudon_pt2.gbapal"); +const u32 gUnknown_085BF4A0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.gbapal"); +const u32 gUnknown_085BF6A0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.4bpp"); +const u32 gUnknown_085C6BE0[] = INCBIN_U32("graphics/battle_transitions/rayquaza.bin"); +const u32 gUnknown_085C7BE0[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.gbapal"); +const u32 gUnknown_085C7C00[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.4bpp.lz"); +const u32 gUnknown_085C828C[] = INCBIN_U32("graphics/battle_transitions/frontier_brain.bin.lz"); +const u32 gUnknown_085C8578[] = INCBIN_U32("graphics/battle_transitions/frontier_squares_blanktiles.gbapal"); +const u32 gUnknown_085C8598[] = INCBIN_U32("graphics/battle_transitions/frontier_square_1.4bpp.lz"); +const u32 gUnknown_085C86F4[] = INCBIN_U32("graphics/battle_transitions/frontier_square_2.4bpp.lz"); +const u32 gUnknown_085C87F4[] = INCBIN_U32("graphics/battle_transitions/frontier_square_3.4bpp.lz"); +const u32 gUnknown_085C88A4[] = INCBIN_U32("graphics/battle_transitions/frontier_square_4.4bpp.lz"); +const u32 gUnknown_085C8928[] = INCBIN_U32("graphics/battle_transitions/frontier_squares.bin"); + +const TaskFunc sPhase1_Tasks[B_TRANSITION_COUNT] = +{ + [0 ... B_TRANSITION_COUNT - 1] = &Phase1Task_TransitionAll +}; + +const TaskFunc sPhase2_Tasks[B_TRANSITION_COUNT] = +{ + Phase2Task_Transition_Blur, // 0 + Phase2Task_Transition_Swirl, // 1 + Phase2Task_Transition_Shuffle, // 2 + Phase2Task_Transition_BigPokeball, // 3 + Phase2Task_Transition_PokeballsTrail, // 4 + Phase2Task_Transition_Clockwise_BlackFade, // 5 + Phase2Task_Transition_Ripple, // 6 + Phase2Task_Transition_Wave, // 7 + Phase2Task_Transition_Slice, // 8 + Phase2Task_Transition_WhiteFade, // 9 + Phase2Task_Transition_GridSquares, // 10 + Phase2Task_Transition_Shards, // 11 + Phase2Task_Transition_Sydney, // 12 + Phase2Task_Transition_Phoebe, // 13 + Phase2Task_Transition_Glacia, // 14 + Phase2Task_Transition_Drake, // 15 + Phase2Task_Transition_Wallace, // 16 + Phase2Task_Transition_Aqua, // 17 + Phase2Task_Transition_Magma, // 18 + Phase2Task_Transition_Regice, // 19 + Phase2Task_Transition_Registeel, // 20 + Phase2Task_Transition_Regirock, // 21 + Phase2Task_Transition_Kyogre, // 22 + Phase2Task_Transition_Groudon, // 23 + Phase2Task_Transition_Rayquaza, // 24 + Phase2Task_Transition_25, // 25 + Phase2Task_Transition_26, // 26 + Phase2Task_Transition_27, // 27 + Phase2Task_Transition_28, // 28 + Phase2Task_Transition_29, // 29 + Phase2Task_Transition_30, // 30 + Phase2Task_Transition_31, // 31 + Phase2Task_Transition_32, // 32 + Phase2Task_Transition_33, // 33 + Phase2Task_Transition_34, // 34 + Phase2Task_Transition_35, // 35 + Phase2Task_Transition_36, // 36 + Phase2Task_Transition_37, // 37 + Phase2Task_Transition_38, // 38 + Phase2Task_Transition_39, // 39 + Phase2Task_Transition_40, // 40 + Phase2Task_Transition_41, // 41 +}; + +const TransitionState sMainTransitionPhases[] = +{ + &Transition_Phase1, + &Transition_WaitForPhase1, + &Transition_Phase2, + &Transition_WaitForPhase2 +}; + +// code +static void CB2_TestBattleTransition(void) +{ + switch (sTestingTransitionState) + { + case 0: + LaunchBattleTransitionTask(sTestingTransitionId); + sTestingTransitionState++; + break; + case 1: + if (IsBattleTransitionDone()) + { + sTestingTransitionState = 0; + SetMainCallback2(c2_exit_to_overworld_2_switch); + } + break; + } + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void TestBattleTransition(u8 transitionId) +{ + sTestingTransitionId = transitionId; + SetMainCallback2(CB2_TestBattleTransition); +} + +void BattleTransition_StartOnField(u8 transitionId) +{ + gMain.callback2 = CB2_OverworldBasic; + LaunchBattleTransitionTask(transitionId); +} + +void BattleTransition_Start(u8 transitionId) +{ + LaunchBattleTransitionTask(transitionId); +} + +#define tState data[0] +#define tTransitionID data[1] +#define tTransitionDone data[15] + +bool8 IsBattleTransitionDone(void) +{ + u8 taskId = FindTaskIdByFunc(Task_BattleTransitionMain); + if (gTasks[taskId].tTransitionDone) + { + DestroyTask(taskId); + FREE_AND_SET_NULL(sTransitionStructPtr); + return TRUE; + } + else + { + return FALSE; + } +} + +void LaunchBattleTransitionTask(u8 transitionId) +{ + u8 taskId = CreateTask(Task_BattleTransitionMain, 2); + gTasks[taskId].tTransitionID = transitionId; + sTransitionStructPtr = AllocZeroed(sizeof(*sTransitionStructPtr)); +} + +void Task_BattleTransitionMain(u8 taskId) +{ + while (sMainTransitionPhases[gTasks[taskId].tState](&gTasks[taskId])); +} + +bool8 Transition_Phase1(struct Task *task) +{ + sub_80AC3D0(); + CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); + if (sPhase1_Tasks[task->tTransitionID] != NULL) + { + CreateTask(sPhase1_Tasks[task->tTransitionID], 4); + task->tState++; + return FALSE; + } + else + { + task->tState = 2; + return TRUE; + } +} diff --git a/sym_bss.txt b/sym_bss.txt index de452b2e7..0524f5545 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -73,14 +73,9 @@ gUnknown_03001202: @ 3001202 gUnknown_03001204: @ 3001204 .space 0x4 -gUnknown_03001208: @ 3001208 - .space 0x2 - -sTestingTransitionId: @ 300120A - .space 0x1 - -sTestingTransitionState: @ 300120B - .space 0x5 + .include "src/battle_transition.o" + + .align 4 gUnknown_03001210: @ 3001210 .space 0x30 diff --git a/sym_ewram.txt b/sym_ewram.txt index 4af63595e..d328d8864 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1193,10 +1193,7 @@ gUnknown_0203AB98: @ 203AB98 .space 0x4 .include "src/coins.o" - - .align 2 -sTransitionStructPtr: @ 203ABA0 - .space 0x4 + .include "src/battle_transition.o" gAbilitiesPerBank: @ 203ABA4 .space 0x4 |