start recorded player controller

This commit is contained in:
DizzyEggg 2017-10-23 11:24:58 +02:00
parent a8ea415c81
commit aa7e97945b
4 changed files with 374 additions and 287 deletions

View File

@ -5,60 +5,6 @@
.text .text
thumb_func_start nullsub_120
nullsub_120: @ 8189948
bx lr
thumb_func_end nullsub_120
thumb_func_start SetBankFuncToRecordedPlayerBufferRunCommand
SetBankFuncToRecordedPlayerBufferRunCommand: @ 818994C
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =RecordedPlayerBufferRunCommand
str r1, [r0]
bx lr
.pool
thumb_func_end SetBankFuncToRecordedPlayerBufferRunCommand
thumb_func_start RecordedPlayerBufferRunCommand
RecordedPlayerBufferRunCommand: @ 8189968
push {lr}
ldr r2, =gBattleExecBuffer
ldr r1, =gBitTable
ldr r0, =gActiveBank
ldrb r3, [r0]
lsls r0, r3, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _081899B4
ldr r0, =gBattleBufferA
lsls r1, r3, 9
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x38
bhi _081899B0
ldr r0, =gRecordedPlayerBufferCommands
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _081899B4
.pool
_081899B0:
bl RecordedPlayerBufferExecCompleted
_081899B4:
pop {r0}
bx r0
thumb_func_end RecordedPlayerBufferRunCommand
thumb_func_start sub_81899B8 thumb_func_start sub_81899B8
sub_81899B8: @ 81899B8 sub_81899B8: @ 81899B8
push {lr} push {lr}
@ -1442,8 +1388,8 @@ _0818A5DE:
.pool .pool
thumb_func_end sub_818A5BC thumb_func_end sub_818A5BC
thumb_func_start sub_818A5EC thumb_func_start RecordedPlayerHandleGetMonData
sub_818A5EC: @ 818A5EC RecordedPlayerHandleGetMonData: @ 818A5EC
push {r4-r6,lr} push {r4-r6,lr}
sub sp, 0x100 sub sp, 0x100
movs r6, 0 movs r6, 0
@ -1495,7 +1441,7 @@ _0818A646:
pop {r4-r6} pop {r4-r6}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818A5EC thumb_func_end RecordedPlayerHandleGetMonData
thumb_func_start sub_818A660 thumb_func_start sub_818A660
sub_818A660: @ 818A660 sub_818A660: @ 818A660
@ -2375,16 +2321,16 @@ _0818ADF6:
.pool .pool
thumb_func_end sub_818A660 thumb_func_end sub_818A660
thumb_func_start sub_818AE0C thumb_func_start RecordedPlayerHandleGetRawMonData
sub_818AE0C: @ 818AE0C RecordedPlayerHandleGetRawMonData: @ 818AE0C
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818AE0C thumb_func_end RecordedPlayerHandleGetRawMonData
thumb_func_start sub_818AE18 thumb_func_start RecordedPlayerHandleSetMonData
sub_818AE18: @ 818AE18 RecordedPlayerHandleSetMonData: @ 818AE18
push {r4,r5,lr} push {r4,r5,lr}
ldr r1, =gBattleBufferA ldr r1, =gBattleBufferA
ldr r0, =gActiveBank ldr r0, =gActiveBank
@ -2424,7 +2370,7 @@ _0818AE66:
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818AE18 thumb_func_end RecordedPlayerHandleSetMonData
thumb_func_start sub_818AE70 thumb_func_start sub_818AE70
sub_818AE70: @ 818AE70 sub_818AE70: @ 818AE70
@ -3459,8 +3405,8 @@ _0818B836:
.pool .pool
thumb_func_end sub_818AE70 thumb_func_end sub_818AE70
thumb_func_start sub_818B86C thumb_func_start RecordedPlayerHandleSetRawMonData
sub_818B86C: @ 818B86C RecordedPlayerHandleSetRawMonData: @ 818B86C
push {r4-r7,lr} push {r4-r7,lr}
ldr r1, =gBattlePartyID ldr r1, =gBattlePartyID
ldr r7, =gActiveBank ldr r7, =gActiveBank
@ -3512,10 +3458,10 @@ _0818B8C4:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818B86C thumb_func_end RecordedPlayerHandleSetRawMonData
thumb_func_start sub_818B8E0 thumb_func_start RecordedPlayerHandleLoadMonSprite
sub_818B8E0: @ 818B8E0 RecordedPlayerHandleLoadMonSprite: @ 818B8E0
push {r4-r6,lr} push {r4-r6,lr}
mov r6, r8 mov r6, r8
push {r6} push {r6}
@ -3629,10 +3575,10 @@ sub_818B8E0: @ 818B8E0
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818B8E0 thumb_func_end RecordedPlayerHandleLoadMonSprite
thumb_func_start sub_818B9FC thumb_func_start RecordedPlayerHandleSwitchInAnim
sub_818B9FC: @ 818B9FC RecordedPlayerHandleSwitchInAnim: @ 818B9FC
push {r4-r6,lr} push {r4-r6,lr}
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r0, [r5] ldrb r0, [r5]
@ -3675,7 +3621,7 @@ sub_818B9FC: @ 818B9FC
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818B9FC thumb_func_end RecordedPlayerHandleSwitchInAnim
thumb_func_start sub_818BA6C thumb_func_start sub_818BA6C
sub_818BA6C: @ 818BA6C sub_818BA6C: @ 818BA6C
@ -3840,8 +3786,8 @@ sub_818BA6C: @ 818BA6C
.pool .pool
thumb_func_end sub_818BA6C thumb_func_end sub_818BA6C
thumb_func_start sub_818BBE8 thumb_func_start RecordedPlayerHandleReturnMonToBall
sub_818BBE8: @ 818BBE8 RecordedPlayerHandleReturnMonToBall: @ 818BBE8
push {r4-r6,lr} push {r4-r6,lr}
ldr r1, =gBattleBufferA ldr r1, =gBattleBufferA
ldr r6, =gActiveBank ldr r6, =gActiveBank
@ -3897,7 +3843,7 @@ _0818BC66:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818BBE8 thumb_func_end RecordedPlayerHandleReturnMonToBall
thumb_func_start sub_818BC78 thumb_func_start sub_818BC78
sub_818BC78: @ 818BC78 sub_818BC78: @ 818BC78
@ -3969,8 +3915,8 @@ _0818BCF6:
.pool .pool
thumb_func_end sub_818BC78 thumb_func_end sub_818BC78
thumb_func_start sub_818BD04 thumb_func_start RecordedPlayerHandleDrawTrainerPic
sub_818BD04: @ 818BD04 RecordedPlayerHandleDrawTrainerPic: @ 818BD04
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r9 mov r7, r9
mov r6, r8 mov r6, r8
@ -4264,18 +4210,18 @@ _0818BF72:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818BD04 thumb_func_end RecordedPlayerHandleDrawTrainerPic
thumb_func_start sub_818BFAC thumb_func_start RecordedPlayerHandleTrainerSlide
sub_818BFAC: @ 818BFAC RecordedPlayerHandleTrainerSlide: @ 818BFAC
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818BFAC thumb_func_end RecordedPlayerHandleTrainerSlide
thumb_func_start sub_818BFB8 thumb_func_start RecordedPlayerHandleTrainerSlideBack
sub_818BFB8: @ 818BFB8 RecordedPlayerHandleTrainerSlideBack: @ 818BFB8
push {r4-r6,lr} push {r4-r6,lr}
ldr r6, =gBankSpriteIds ldr r6, =gBankSpriteIds
ldr r4, =gActiveBank ldr r4, =gActiveBank
@ -4345,10 +4291,10 @@ sub_818BFB8: @ 818BFB8
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818BFB8 thumb_func_end RecordedPlayerHandleTrainerSlideBack
thumb_func_start sub_818C064 thumb_func_start RecordedPlayerHandleFaintAnimation
sub_818C064: @ 818C064 RecordedPlayerHandleFaintAnimation: @ 818C064
push {r4-r6,lr} push {r4-r6,lr}
ldr r6, =gBattleSpritesDataPtr ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6] ldr r4, [r6]
@ -4450,42 +4396,42 @@ _0818C12E:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C064 thumb_func_end RecordedPlayerHandleFaintAnimation
thumb_func_start sub_818C150 thumb_func_start RecordedPlayerHandlePaletteFade
sub_818C150: @ 818C150 RecordedPlayerHandlePaletteFade: @ 818C150
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C150 thumb_func_end RecordedPlayerHandlePaletteFade
thumb_func_start sub_818C15C thumb_func_start RecordedPlayerHandleSuccessBallThrowAnim
sub_818C15C: @ 818C15C RecordedPlayerHandleSuccessBallThrowAnim: @ 818C15C
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C15C thumb_func_end RecordedPlayerHandleSuccessBallThrowAnim
thumb_func_start sub_818C168 thumb_func_start RecordedPlayerHandleBallThrowAnim
sub_818C168: @ 818C168 RecordedPlayerHandleBallThrowAnim: @ 818C168
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C168 thumb_func_end RecordedPlayerHandleBallThrowAnim
thumb_func_start sub_818C174 thumb_func_start RecordedPlayerHandlePause
sub_818C174: @ 818C174 RecordedPlayerHandlePause: @ 818C174
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C174 thumb_func_end RecordedPlayerHandlePause
thumb_func_start sub_818C180 thumb_func_start RecordedPlayerHandleMoveAnimation
sub_818C180: @ 818C180 RecordedPlayerHandleMoveAnimation: @ 818C180
push {r4-r6,lr} push {r4-r6,lr}
ldr r6, =gActiveBank ldr r6, =gActiveBank
ldrb r0, [r6] ldrb r0, [r6]
@ -4619,7 +4565,7 @@ _0818C2A6:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C180 thumb_func_end RecordedPlayerHandleMoveAnimation
thumb_func_start bx_move_anim_2 thumb_func_start bx_move_anim_2
bx_move_anim_2: @ 818C2B8 bx_move_anim_2: @ 818C2B8
@ -4805,8 +4751,8 @@ _0818C42C:
bx r0 bx r0
thumb_func_end bx_move_anim_2 thumb_func_end bx_move_anim_2
thumb_func_start sub_818C43C thumb_func_start RecordedPlayerHandlePrintString
sub_818C43C: @ 818C43C RecordedPlayerHandlePrintString: @ 818C43C
push {r4,lr} push {r4,lr}
ldr r0, =gBattle_BG0_X ldr r0, =gBattle_BG0_X
movs r1, 0 movs r1, 0
@ -4833,15 +4779,15 @@ sub_818C43C: @ 818C43C
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C43C thumb_func_end RecordedPlayerHandlePrintString
thumb_func_start sub_818C490 thumb_func_start RecordedPlayerHandlePrintStringPlayerOnly
sub_818C490: @ 818C490 RecordedPlayerHandlePrintStringPlayerOnly: @ 818C490
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C490 thumb_func_end RecordedPlayerHandlePrintStringPlayerOnly
thumb_func_start sub_818C49C thumb_func_start sub_818C49C
sub_818C49C: @ 818C49C sub_818C49C: @ 818C49C
@ -4869,8 +4815,8 @@ _0818C4C6:
.pool .pool
thumb_func_end sub_818C49C thumb_func_end sub_818C49C
thumb_func_start sub_818C4D8 thumb_func_start RecordedPlayerHandleChooseAction
sub_818C4D8: @ 818C4D8 RecordedPlayerHandleChooseAction: @ 818C4D8
push {lr} push {lr}
ldr r0, =gBattleTypeFlags ldr r0, =gBattleTypeFlags
ldr r0, [r0] ldr r0, [r0]
@ -4903,18 +4849,18 @@ _0818C522:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C4D8 thumb_func_end RecordedPlayerHandleChooseAction
thumb_func_start sub_818C52C thumb_func_start RecordedPlayerHandleUnknownYesNoBox
sub_818C52C: @ 818C52C RecordedPlayerHandleUnknownYesNoBox: @ 818C52C
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C52C thumb_func_end RecordedPlayerHandleUnknownYesNoBox
thumb_func_start sub_818C538 thumb_func_start RecordedPlayerHandleChooseMove
sub_818C538: @ 818C538 RecordedPlayerHandleChooseMove: @ 818C538
push {r4,r5,lr} push {r4,r5,lr}
ldr r0, =gBattleTypeFlags ldr r0, =gBattleTypeFlags
ldr r0, [r0] ldr r0, [r0]
@ -4954,18 +4900,18 @@ _0818C584:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C538 thumb_func_end RecordedPlayerHandleChooseMove
thumb_func_start sub_818C594 thumb_func_start RecordedPlayerHandleChooseItem
sub_818C594: @ 818C594 RecordedPlayerHandleChooseItem: @ 818C594
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C594 thumb_func_end RecordedPlayerHandleChooseItem
thumb_func_start sub_818C5A0 thumb_func_start RecordedPlayerHandleChoosePokemon
sub_818C5A0: @ 818C5A0 RecordedPlayerHandleChoosePokemon: @ 818C5A0
push {r4,lr} push {r4,lr}
ldr r4, =gActiveBank ldr r4, =gActiveBank
ldrb r0, [r4] ldrb r0, [r4]
@ -4989,18 +4935,18 @@ sub_818C5A0: @ 818C5A0
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C5A0 thumb_func_end RecordedPlayerHandleChoosePokemon
thumb_func_start sub_818C5DC thumb_func_start RecordedPlayerHandleCmd23
sub_818C5DC: @ 818C5DC RecordedPlayerHandleCmd23: @ 818C5DC
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C5DC thumb_func_end RecordedPlayerHandleCmd23
thumb_func_start sub_818C5E8 thumb_func_start RecordedPlayerHandleHealthBarUpdate
sub_818C5E8: @ 818C5E8 RecordedPlayerHandleHealthBarUpdate: @ 818C5E8
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r9 mov r7, r9
mov r6, r8 mov r6, r8
@ -5100,18 +5046,18 @@ _0818C6B2:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C5E8 thumb_func_end RecordedPlayerHandleHealthBarUpdate
thumb_func_start sub_818C6E8 thumb_func_start RecordedPlayerHandleExpUpdate
sub_818C6E8: @ 818C6E8 RecordedPlayerHandleExpUpdate: @ 818C6E8
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C6E8 thumb_func_end RecordedPlayerHandleExpUpdate
thumb_func_start sub_818C6F4 thumb_func_start RecordedPlayerHandleStatusIconUpdate
sub_818C6F4: @ 818C6F4 RecordedPlayerHandleStatusIconUpdate: @ 818C6F4
push {r4,lr} push {r4,lr}
ldr r4, =gActiveBank ldr r4, =gActiveBank
ldrb r0, [r4] ldrb r0, [r4]
@ -5157,10 +5103,10 @@ _0818C748:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C6F4 thumb_func_end RecordedPlayerHandleStatusIconUpdate
thumb_func_start sub_818C76C thumb_func_start RecordedPlayerHandleStatusAnimation
sub_818C76C: @ 818C76C RecordedPlayerHandleStatusAnimation: @ 818C76C
push {r4,r5,lr} push {r4,r5,lr}
ldr r5, =gActiveBank ldr r5, =gActiveBank
ldrb r0, [r5] ldrb r0, [r5]
@ -5204,82 +5150,82 @@ _0818C7BC:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C76C thumb_func_end RecordedPlayerHandleStatusAnimation
thumb_func_start sub_818C7D4 thumb_func_start RecordedPlayerHandleStatusXor
sub_818C7D4: @ 818C7D4 RecordedPlayerHandleStatusXor: @ 818C7D4
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C7D4 thumb_func_end RecordedPlayerHandleStatusXor
thumb_func_start sub_818C7E0 thumb_func_start RecordedPlayerHandleDataTransfer
sub_818C7E0: @ 818C7E0 RecordedPlayerHandleDataTransfer: @ 818C7E0
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C7E0 thumb_func_end RecordedPlayerHandleDataTransfer
thumb_func_start sub_818C7EC thumb_func_start RecordedPlayerHandleDMA3Transfer
sub_818C7EC: @ 818C7EC RecordedPlayerHandleDMA3Transfer: @ 818C7EC
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C7EC thumb_func_end RecordedPlayerHandleDMA3Transfer
thumb_func_start sub_818C7F8 thumb_func_start RecordedPlayerHandlePlayBGM
sub_818C7F8: @ 818C7F8 RecordedPlayerHandlePlayBGM: @ 818C7F8
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C7F8 thumb_func_end RecordedPlayerHandlePlayBGM
thumb_func_start sub_818C804 thumb_func_start RecordedPlayerHandleCmd32
sub_818C804: @ 818C804 RecordedPlayerHandleCmd32: @ 818C804
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C804 thumb_func_end RecordedPlayerHandleCmd32
thumb_func_start sub_818C810 thumb_func_start RecordedPlayerHandleTwoReturnValues
sub_818C810: @ 818C810 RecordedPlayerHandleTwoReturnValues: @ 818C810
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C810 thumb_func_end RecordedPlayerHandleTwoReturnValues
thumb_func_start sub_818C81C thumb_func_start RecordedPlayerHandleChosenMonReturnValue
sub_818C81C: @ 818C81C RecordedPlayerHandleChosenMonReturnValue: @ 818C81C
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C81C thumb_func_end RecordedPlayerHandleChosenMonReturnValue
thumb_func_start sub_818C828 thumb_func_start RecordedPlayerHandleOneReturnValue
sub_818C828: @ 818C828 RecordedPlayerHandleOneReturnValue: @ 818C828
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C828 thumb_func_end RecordedPlayerHandleOneReturnValue
thumb_func_start sub_818C834 thumb_func_start RecordedPlayerHandleOneReturnValue_Duplicate
sub_818C834: @ 818C834 RecordedPlayerHandleOneReturnValue_Duplicate: @ 818C834
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C834 thumb_func_end RecordedPlayerHandleOneReturnValue_Duplicate
thumb_func_start sub_818C840 thumb_func_start RecordedPlayerHandleCmd37
sub_818C840: @ 818C840 RecordedPlayerHandleCmd37: @ 818C840
push {lr} push {lr}
ldr r2, =gUnknown_02022D0C ldr r2, =gUnknown_02022D0C
ldrb r1, [r2] ldrb r1, [r2]
@ -5291,10 +5237,10 @@ sub_818C840: @ 818C840
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C840 thumb_func_end RecordedPlayerHandleCmd37
thumb_func_start sub_818C85C thumb_func_start RecordedPlayerHandleCmd38
sub_818C85C: @ 818C85C RecordedPlayerHandleCmd38: @ 818C85C
push {lr} push {lr}
ldr r3, =gUnknown_02022D0C ldr r3, =gUnknown_02022D0C
ldr r1, =gBattleBufferA ldr r1, =gBattleBufferA
@ -5316,10 +5262,10 @@ sub_818C85C: @ 818C85C
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C85C thumb_func_end RecordedPlayerHandleCmd38
thumb_func_start sub_818C894 thumb_func_start RecordedPlayerHandleCmd39
sub_818C894: @ 818C894 RecordedPlayerHandleCmd39: @ 818C894
push {lr} push {lr}
ldr r2, =gUnknown_02022D0C ldr r2, =gUnknown_02022D0C
ldrb r1, [r2] ldrb r1, [r2]
@ -5330,10 +5276,10 @@ sub_818C894: @ 818C894
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C894 thumb_func_end RecordedPlayerHandleCmd39
thumb_func_start sub_818C8AC thumb_func_start RecordedPlayerHandleCmd40
sub_818C8AC: @ 818C8AC RecordedPlayerHandleCmd40: @ 818C8AC
push {lr} push {lr}
ldr r3, =gUnknown_02022D0C ldr r3, =gUnknown_02022D0C
ldr r1, [r3] ldr r1, [r3]
@ -5351,10 +5297,10 @@ sub_818C8AC: @ 818C8AC
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C8AC thumb_func_end RecordedPlayerHandleCmd40
thumb_func_start sub_818C8D4 thumb_func_start RecordedPlayerHandleHitAnimation
sub_818C8D4: @ 818C8D4 RecordedPlayerHandleHitAnimation: @ 818C8D4
push {r4,lr} push {r4,lr}
ldr r3, =gSprites ldr r3, =gSprites
ldr r2, =gBankSpriteIds ldr r2, =gBankSpriteIds
@ -5400,18 +5346,18 @@ _0818C932:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C8D4 thumb_func_end RecordedPlayerHandleHitAnimation
thumb_func_start sub_818C944 thumb_func_start RecordedPlayerHandleCmd42
sub_818C944: @ 818C944 RecordedPlayerHandleCmd42: @ 818C944
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C944 thumb_func_end RecordedPlayerHandleCmd42
thumb_func_start sub_818C950 thumb_func_start RecordedPlayerHandleEffectivenessSound
sub_818C950: @ 818C950 RecordedPlayerHandleEffectivenessSound: @ 818C950
push {r4,lr} push {r4,lr}
ldr r4, =gActiveBank ldr r4, =gActiveBank
ldrb r0, [r4] ldrb r0, [r4]
@ -5441,10 +5387,10 @@ _0818C964:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C950 thumb_func_end RecordedPlayerHandleEffectivenessSound
thumb_func_start sub_818C994 thumb_func_start RecordedPlayerHandlePlayFanfareOrBGM
sub_818C994: @ 818C994 RecordedPlayerHandlePlayFanfareOrBGM: @ 818C994
push {r4,r5,lr} push {r4,r5,lr}
ldr r4, =gBattleBufferA ldr r4, =gBattleBufferA
ldr r5, =gActiveBank ldr r5, =gActiveBank
@ -5484,10 +5430,10 @@ _0818C9E4:
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818C994 thumb_func_end RecordedPlayerHandlePlayFanfareOrBGM
thumb_func_start sub_818C9F0 thumb_func_start RecordedPlayerHandleFaintingCry
sub_818C9F0: @ 818C9F0 RecordedPlayerHandleFaintingCry: @ 818C9F0
push {lr} push {lr}
ldr r1, =gBattlePartyID ldr r1, =gBattlePartyID
ldr r0, =gActiveBank ldr r0, =gActiveBank
@ -5511,10 +5457,10 @@ sub_818C9F0: @ 818C9F0
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818C9F0 thumb_func_end RecordedPlayerHandleFaintingCry
thumb_func_start dp01t_2E_2_battle_intro thumb_func_start RecordedPlayerHandleIntroSlide
dp01t_2E_2_battle_intro: @ 818CA30 RecordedPlayerHandleIntroSlide: @ 818CA30
push {lr} push {lr}
ldr r1, =gBattleBufferA ldr r1, =gBattleBufferA
ldr r0, =gActiveBank ldr r0, =gActiveBank
@ -5533,10 +5479,10 @@ dp01t_2E_2_battle_intro: @ 818CA30
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end dp01t_2E_2_battle_intro thumb_func_end RecordedPlayerHandleIntroSlide
thumb_func_start sub_818CA64 thumb_func_start RecordedPlayerHandleIntroTrainerBallThrow
sub_818CA64: @ 818CA64 RecordedPlayerHandleIntroTrainerBallThrow: @ 818CA64
push {r4-r6,lr} push {r4-r6,lr}
ldr r5, =gBankSpriteIds ldr r5, =gBankSpriteIds
ldr r6, =gActiveBank ldr r6, =gActiveBank
@ -5715,7 +5661,7 @@ _0818CBD4:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818CA64 thumb_func_end RecordedPlayerHandleIntroTrainerBallThrow
thumb_func_start sub_818CC24 thumb_func_start sub_818CC24
sub_818CC24: @ 818CC24 sub_818CC24: @ 818CC24
@ -5834,8 +5780,8 @@ _0818CD0C:
.pool .pool
thumb_func_end sub_818CC24 thumb_func_end sub_818CC24
thumb_func_start sub_818CD30 thumb_func_start RecordedPlayerHandleDrawPartyStatusSummary
sub_818CD30: @ 818CD30 RecordedPlayerHandleDrawPartyStatusSummary: @ 818CD30
push {r4-r6,lr} push {r4-r6,lr}
ldr r1, =gBattleBufferA ldr r1, =gBattleBufferA
ldr r0, =gActiveBank ldr r0, =gActiveBank
@ -5918,7 +5864,7 @@ _0818CDD4:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818CD30 thumb_func_end RecordedPlayerHandleDrawPartyStatusSummary
thumb_func_start bx_increment_dp11b_field_5_till_x60_then_resume thumb_func_start bx_increment_dp11b_field_5_till_x60_then_resume
bx_increment_dp11b_field_5_till_x60_then_resume: @ 818CDF4 bx_increment_dp11b_field_5_till_x60_then_resume: @ 818CDF4
@ -5956,8 +5902,8 @@ _0818CE2C:
.pool .pool
thumb_func_end bx_increment_dp11b_field_5_till_x60_then_resume thumb_func_end bx_increment_dp11b_field_5_till_x60_then_resume
thumb_func_start sub_818CE3C thumb_func_start RecordedPlayerHandleCmd49
sub_818CE3C: @ 818CE3C RecordedPlayerHandleCmd49: @ 818CE3C
push {lr} push {lr}
ldr r0, =gBattleSpritesDataPtr ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0] ldr r1, [r0]
@ -5988,18 +5934,18 @@ _0818CE6E:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818CE3C thumb_func_end RecordedPlayerHandleCmd49
thumb_func_start sub_818CE8C thumb_func_start RecordedPlayerHandleCmd50
sub_818CE8C: @ 818CE8C RecordedPlayerHandleCmd50: @ 818CE8C
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818CE8C thumb_func_end RecordedPlayerHandleCmd50
thumb_func_start sub_818CE98 thumb_func_start RecordedPlayerHandleSpriteInvisibility
sub_818CE98: @ 818CE98 RecordedPlayerHandleSpriteInvisibility: @ 818CE98
push {r4,lr} push {r4,lr}
ldr r4, =gActiveBank ldr r4, =gActiveBank
ldrb r0, [r4] ldrb r0, [r4]
@ -6039,10 +5985,10 @@ _0818CEDE:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818CE98 thumb_func_end RecordedPlayerHandleSpriteInvisibility
thumb_func_start sub_818CEF8 thumb_func_start RecordedPlayerHandleBattleAnimation
sub_818CEF8: @ 818CEF8 RecordedPlayerHandleBattleAnimation: @ 818CEF8
push {r4-r6,lr} push {r4-r6,lr}
sub sp, 0x4 sub sp, 0x4
ldr r6, =gActiveBank ldr r6, =gActiveBank
@ -6088,26 +6034,26 @@ _0818CF50:
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818CEF8 thumb_func_end RecordedPlayerHandleBattleAnimation
thumb_func_start sub_818CF60 thumb_func_start RecordedPlayerHandleLinkStandbyMsg
sub_818CF60: @ 818CF60 RecordedPlayerHandleLinkStandbyMsg: @ 818CF60
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818CF60 thumb_func_end RecordedPlayerHandleLinkStandbyMsg
thumb_func_start sub_818CF6C thumb_func_start RecordedPlayerHandleResetActionMoveSelection
sub_818CF6C: @ 818CF6C RecordedPlayerHandleResetActionMoveSelection: @ 818CF6C
push {lr} push {lr}
bl RecordedPlayerBufferExecCompleted bl RecordedPlayerBufferExecCompleted
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_818CF6C thumb_func_end RecordedPlayerHandleResetActionMoveSelection
thumb_func_start sub_818CF78 thumb_func_start RecordedPlayerHandleCmd55
sub_818CF78: @ 818CF78 RecordedPlayerHandleCmd55: @ 818CF78
push {r4,lr} push {r4,lr}
ldr r2, =gBattleOutcome ldr r2, =gBattleOutcome
ldr r1, =gBattleBufferA ldr r1, =gBattleBufferA
@ -6133,7 +6079,7 @@ sub_818CF78: @ 818CF78
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
thumb_func_end sub_818CF78 thumb_func_end RecordedPlayerHandleCmd55
thumb_func_start nullsub_121 thumb_func_start nullsub_121
nullsub_121: @ 818CFC4 nullsub_121: @ 818CFC4

View File

@ -1,64 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gRecordedPlayerBufferCommands:: @ 860AF74
.4byte sub_818A5EC
.4byte sub_818AE0C
.4byte sub_818AE18
.4byte sub_818B86C
.4byte sub_818B8E0
.4byte sub_818B9FC
.4byte sub_818BBE8
.4byte sub_818BD04
.4byte sub_818BFAC
.4byte sub_818BFB8
.4byte sub_818C064
.4byte sub_818C150
.4byte sub_818C15C
.4byte sub_818C168
.4byte sub_818C174
.4byte sub_818C180
.4byte sub_818C43C
.4byte sub_818C490
.4byte sub_818C4D8
.4byte sub_818C52C
.4byte sub_818C538
.4byte sub_818C594
.4byte sub_818C5A0
.4byte sub_818C5DC
.4byte sub_818C5E8
.4byte sub_818C6E8
.4byte sub_818C6F4
.4byte sub_818C76C
.4byte sub_818C7D4
.4byte sub_818C7E0
.4byte sub_818C7EC
.4byte sub_818C7F8
.4byte sub_818C804
.4byte sub_818C810
.4byte sub_818C81C
.4byte sub_818C828
.4byte sub_818C834
.4byte sub_818C840
.4byte sub_818C85C
.4byte sub_818C894
.4byte sub_818C8AC
.4byte sub_818C8D4
.4byte sub_818C944
.4byte sub_818C950
.4byte sub_818C994
.4byte sub_818C9F0
.4byte dp01t_2E_2_battle_intro
.4byte sub_818CA64
.4byte sub_818CD30
.4byte sub_818CE3C
.4byte sub_818CE8C
.4byte sub_818CE98
.4byte sub_818CEF8
.4byte sub_818CF60
.4byte sub_818CF6C
.4byte sub_818CF78
.4byte nullsub_121

View File

@ -235,6 +235,7 @@ SECTIONS {
asm/pokemon_animation.o(.text); asm/pokemon_animation.o(.text);
asm/recorded_battle.o(.text); asm/recorded_battle.o(.text);
asm/battle_controller_recorded_opponent.o(.text); asm/battle_controller_recorded_opponent.o(.text);
src/battle_controller_recorded_player.o(.text);
asm/battle_controller_recorded_player.o(.text); asm/battle_controller_recorded_player.o(.text);
src/battle_dome_cards.o(.text); src/battle_dome_cards.o(.text);
src/lilycove_lady.o(.text); src/lilycove_lady.o(.text);
@ -453,7 +454,7 @@ SECTIONS {
data/bard_music.o(.rodata); data/bard_music.o(.rodata);
data/data_860A4AC.o(.rodata); data/data_860A4AC.o(.rodata);
data/battle_controller_recorded_opponent.o(.rodata); data/battle_controller_recorded_opponent.o(.rodata);
data/battle_controller_recorded_player.o(.rodata); src/battle_controller_recorded_player.o(.rodata);
src/battle_dome_cards.o(.rodata); src/battle_dome_cards.o(.rodata);
src/lilycove_lady.o(.rodata); src/lilycove_lady.o(.rodata);
data/battle_frontier_1.o(.rodata); data/battle_frontier_1.o(.rodata);

View File

@ -0,0 +1,204 @@
#include "global.h"
#include "battle.h"
#include "battle_controllers.h"
#include "battle_message.h"
#include "battle_interface.h"
#include "battle_anim.h"
#include "battle_ai_script_commands.h"
#include "recorded_battle.h"
#include "pokemon.h"
#include "link.h"
#include "util.h"
#include "main.h"
#include "songs.h"
#include "sound.h"
#include "window.h"
#include "m4a.h"
#include "palette.h"
#include "task.h"
#include "text.h"
#include "string_util.h"
#include "bg.h"
#include "reshow_battle_screen.h"
#include "pokeball.h"
extern u32 gBattleExecBuffer;
extern u8 gActiveBank;
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
extern u8 gNoOfAllBanks;
extern bool8 gDoingBattleAnim;
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gScriptItemId;
extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u8 gBankInMenu;
extern u16 gUnknown_020243FC;
extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
extern u8 gUnknown_020244B4[];
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
extern const struct BattleMove gBattleMoves[];
extern void sub_81358F4(void);
extern void sub_8172EF0(u8 bank, struct Pokemon *mon);
extern void sub_806A068(u16, u8);
// this file's functions
void RecordedPlayerHandleGetMonData(void);
void RecordedPlayerHandleGetRawMonData(void);
void RecordedPlayerHandleSetMonData(void);
void RecordedPlayerHandleSetRawMonData(void);
void RecordedPlayerHandleLoadMonSprite(void);
void RecordedPlayerHandleSwitchInAnim(void);
void RecordedPlayerHandleReturnMonToBall(void);
void RecordedPlayerHandleDrawTrainerPic(void);
void RecordedPlayerHandleTrainerSlide(void);
void RecordedPlayerHandleTrainerSlideBack(void);
void RecordedPlayerHandleFaintAnimation(void);
void RecordedPlayerHandlePaletteFade(void);
void RecordedPlayerHandleSuccessBallThrowAnim(void);
void RecordedPlayerHandleBallThrowAnim(void);
void RecordedPlayerHandlePause(void);
void RecordedPlayerHandleMoveAnimation(void);
void RecordedPlayerHandlePrintString(void);
void RecordedPlayerHandlePrintStringPlayerOnly(void);
void RecordedPlayerHandleChooseAction(void);
void RecordedPlayerHandleUnknownYesNoBox(void);
void RecordedPlayerHandleChooseMove(void);
void RecordedPlayerHandleChooseItem(void);
void RecordedPlayerHandleChoosePokemon(void);
void RecordedPlayerHandleCmd23(void);
void RecordedPlayerHandleHealthBarUpdate(void);
void RecordedPlayerHandleExpUpdate(void);
void RecordedPlayerHandleStatusIconUpdate(void);
void RecordedPlayerHandleStatusAnimation(void);
void RecordedPlayerHandleStatusXor(void);
void RecordedPlayerHandleDataTransfer(void);
void RecordedPlayerHandleDMA3Transfer(void);
void RecordedPlayerHandlePlayBGM(void);
void RecordedPlayerHandleCmd32(void);
void RecordedPlayerHandleTwoReturnValues(void);
void RecordedPlayerHandleChosenMonReturnValue(void);
void RecordedPlayerHandleOneReturnValue(void);
void RecordedPlayerHandleOneReturnValue_Duplicate(void);
void RecordedPlayerHandleCmd37(void);
void RecordedPlayerHandleCmd38(void);
void RecordedPlayerHandleCmd39(void);
void RecordedPlayerHandleCmd40(void);
void RecordedPlayerHandleHitAnimation(void);
void RecordedPlayerHandleCmd42(void);
void RecordedPlayerHandleEffectivenessSound(void);
void RecordedPlayerHandlePlayFanfareOrBGM(void);
void RecordedPlayerHandleFaintingCry(void);
void RecordedPlayerHandleIntroSlide(void);
void RecordedPlayerHandleIntroTrainerBallThrow(void);
void RecordedPlayerHandleDrawPartyStatusSummary(void);
void RecordedPlayerHandleCmd49(void);
void RecordedPlayerHandleCmd50(void);
void RecordedPlayerHandleSpriteInvisibility(void);
void RecordedPlayerHandleBattleAnimation(void);
void RecordedPlayerHandleLinkStandbyMsg(void);
void RecordedPlayerHandleResetActionMoveSelection(void);
void RecordedPlayerHandleCmd55(void);
void nullsub_121(void);
void RecordedPlayerBufferRunCommand(void);
void RecordedPlayerBufferExecCompleted(void);
void (*const gRecordedPlayerBufferCommands[CONTOLLER_CMDS_COUNT])(void) =
{
RecordedPlayerHandleGetMonData,
RecordedPlayerHandleGetRawMonData,
RecordedPlayerHandleSetMonData,
RecordedPlayerHandleSetRawMonData,
RecordedPlayerHandleLoadMonSprite,
RecordedPlayerHandleSwitchInAnim,
RecordedPlayerHandleReturnMonToBall,
RecordedPlayerHandleDrawTrainerPic,
RecordedPlayerHandleTrainerSlide,
RecordedPlayerHandleTrainerSlideBack,
RecordedPlayerHandleFaintAnimation,
RecordedPlayerHandlePaletteFade,
RecordedPlayerHandleSuccessBallThrowAnim,
RecordedPlayerHandleBallThrowAnim,
RecordedPlayerHandlePause,
RecordedPlayerHandleMoveAnimation,
RecordedPlayerHandlePrintString,
RecordedPlayerHandlePrintStringPlayerOnly,
RecordedPlayerHandleChooseAction,
RecordedPlayerHandleUnknownYesNoBox,
RecordedPlayerHandleChooseMove,
RecordedPlayerHandleChooseItem,
RecordedPlayerHandleChoosePokemon,
RecordedPlayerHandleCmd23,
RecordedPlayerHandleHealthBarUpdate,
RecordedPlayerHandleExpUpdate,
RecordedPlayerHandleStatusIconUpdate,
RecordedPlayerHandleStatusAnimation,
RecordedPlayerHandleStatusXor,
RecordedPlayerHandleDataTransfer,
RecordedPlayerHandleDMA3Transfer,
RecordedPlayerHandlePlayBGM,
RecordedPlayerHandleCmd32,
RecordedPlayerHandleTwoReturnValues,
RecordedPlayerHandleChosenMonReturnValue,
RecordedPlayerHandleOneReturnValue,
RecordedPlayerHandleOneReturnValue_Duplicate,
RecordedPlayerHandleCmd37,
RecordedPlayerHandleCmd38,
RecordedPlayerHandleCmd39,
RecordedPlayerHandleCmd40,
RecordedPlayerHandleHitAnimation,
RecordedPlayerHandleCmd42,
RecordedPlayerHandleEffectivenessSound,
RecordedPlayerHandlePlayFanfareOrBGM,
RecordedPlayerHandleFaintingCry,
RecordedPlayerHandleIntroSlide,
RecordedPlayerHandleIntroTrainerBallThrow,
RecordedPlayerHandleDrawPartyStatusSummary,
RecordedPlayerHandleCmd49,
RecordedPlayerHandleCmd50,
RecordedPlayerHandleSpriteInvisibility,
RecordedPlayerHandleBattleAnimation,
RecordedPlayerHandleLinkStandbyMsg,
RecordedPlayerHandleResetActionMoveSelection,
RecordedPlayerHandleCmd55,
nullsub_121
};
void nullsub_120(void)
{
}
void SetBankFuncToRecordedPlayerBufferRunCommand(void)
{
gBattleBankFunc[gActiveBank] = RecordedPlayerBufferRunCommand;
}
void RecordedPlayerBufferRunCommand(void)
{
if (gBattleExecBuffer & gBitTable[gActiveBank])
{
if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(gRecordedPlayerBufferCommands))
gRecordedPlayerBufferCommands[gBattleBufferA[gActiveBank][0]]();
else
RecordedPlayerBufferExecCompleted();
}
}