mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 13:49:45 +00:00
1934 lines
34 KiB
ArmAsm
1934 lines
34 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "unk_02005D10.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_02005D10
|
|
sub_02005D10: ; 0x02005D10
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
bl GF_GetSndHandleByPlayerNo
|
|
str r5, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
sub r1, r1, #2
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
add r4, r0, #0
|
|
bl sub_02006C14
|
|
add r6, r0, #0
|
|
bne _02005D3A
|
|
add r0, r5, #0
|
|
bl sub_02004920
|
|
_02005D3A:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl sub_02005DA0
|
|
add r0, r6, #0
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end sub_02005D10
|
|
|
|
thumb_func_start PlayBGM
|
|
PlayBGM: ; 0x02005D48
|
|
push {r4, r5, r6, lr}
|
|
add r4, r0, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
add r5, r0, #0
|
|
bl GF_GetSndHandleByPlayerNo
|
|
add r6, r0, #0
|
|
cmp r5, #7
|
|
bne _02005D6A
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl sub_02005DC4
|
|
add r5, r0, #0
|
|
b _02005D84
|
|
_02005D6A:
|
|
cmp r5, #1
|
|
bne _02005D7C
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl sub_02005DF4
|
|
add r5, r0, #0
|
|
b _02005D84
|
|
_02005D7C:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_02005D84:
|
|
mov r0, #0
|
|
bl sub_020059E0
|
|
cmp r5, #0
|
|
bne _02005D94
|
|
add r0, r4, #0
|
|
bl sub_02004920
|
|
_02005D94:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl sub_02005DA0
|
|
add r0, r5, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end PlayBGM
|
|
|
|
thumb_func_start sub_02005DA0
|
|
sub_02005DA0: ; 0x02005DA0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl sub_02004A60
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl sub_02005464
|
|
mov r0, #1
|
|
bl GF_SndSetState
|
|
cmp r4, #0
|
|
bne _02005DC2
|
|
mov r0, #0x80
|
|
bl GF_SndWorkSetGbSoundsVolume
|
|
_02005DC2:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end sub_02005DA0
|
|
|
|
thumb_func_start sub_02005DC4
|
|
sub_02005DC4: ; 0x02005DC4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #3
|
|
add r4, r2, #0
|
|
bl sub_02005328
|
|
bl GF_Snd_LoadState
|
|
add r0, r5, #0
|
|
bl GF_Snd_LoadSeq
|
|
str r5, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
sub r1, r1, #2
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl sub_02006C14
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02005DC4
|
|
|
|
thumb_func_start sub_02005DF4
|
|
sub_02005DF4: ; 0x02005DF4
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0x13
|
|
add r6, r2, #0
|
|
bl GF_SdatGetAttrPtr
|
|
mov r0, #0x20
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
bl GF_GetSoundHandle
|
|
bl GF_NNS_SndPlayerGetSeqNo
|
|
bl GF_GetBankBySeqNo
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
bl sub_020051A4
|
|
mov r0, #0
|
|
bl SndRadio_StopSeq
|
|
ldrh r0, [r4]
|
|
bl GF_GetBankBySeqNo
|
|
add r2, r0, #0
|
|
str r5, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
sub r1, r1, #2
|
|
add r0, r6, #0
|
|
add r3, r1, #0
|
|
bl sub_02006C14
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02005DF4
|
|
|
|
thumb_func_start sub_02005E44
|
|
sub_02005E44: ; 0x02005E44
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
mov r0, #0x15
|
|
bl GF_SdatGetAttrPtr
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
beq _02005E60
|
|
bl GF_AssertFail
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02005E60:
|
|
add r0, r4, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
cmp r0, #7
|
|
beq _02005E74
|
|
bl GF_AssertFail
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02005E74:
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl GF_Snd_LoadSeqEx
|
|
str r4, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #7
|
|
add r1, r0, #0
|
|
sub r1, #8
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl sub_02006C14
|
|
add r5, r0, #0
|
|
bne _02005E9A
|
|
add r0, r4, #0
|
|
bl sub_02004920
|
|
_02005E9A:
|
|
mov r0, #0
|
|
bl SndRadio_StopSeq
|
|
add r0, r4, #0
|
|
bl sub_02004A60
|
|
mov r0, #1
|
|
bl GF_SndSetState
|
|
add r0, r5, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02005E44
|
|
|
|
thumb_func_start StopBGM
|
|
StopBGM: ; 0x02005EB4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl NNS_SndPlayerStopSeqBySeqNo
|
|
add r0, r5, #0
|
|
bl GBSounds_GetGBSeqNoByDSSeqNo
|
|
cmp r5, r0
|
|
beq _02005ECE
|
|
add r1, r4, #0
|
|
bl NNS_SndPlayerStopSeqBySeqNo
|
|
_02005ECE:
|
|
add r0, r5, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
cmp r0, #0xff
|
|
beq _02005EE4
|
|
bl GF_GetSndHandleByPlayerNo
|
|
bl GF_GetSoundHandle
|
|
bl NNS_SndHandleReleaseSeq
|
|
_02005EE4:
|
|
bl sub_02005EEC
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end StopBGM
|
|
|
|
thumb_func_start sub_02005EEC
|
|
sub_02005EEC: ; 0x02005EEC
|
|
push {r3, lr}
|
|
mov r0, #0
|
|
bl SndRadio_StopSeq
|
|
mov r0, #0
|
|
bl sub_02004A60
|
|
mov r0, #0
|
|
bl GF_SetCurrentPlayingBGM
|
|
mov r0, #0
|
|
bl sub_02004AB8
|
|
mov r0, #0
|
|
bl GF_SndSetState
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02005EEC
|
|
|
|
thumb_func_start GF_SndStartFadeInBGM
|
|
GF_SndStartFadeInBGM: ; 0x02005F10
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl GF_GetCurrentPlayingBGM
|
|
bl GF_GetPlayerNoBySeq
|
|
cmp r0, #0xff
|
|
beq _02005F4C
|
|
bl GF_GetSndHandleByPlayerNo
|
|
add r7, r0, #0
|
|
cmp r4, #0
|
|
bne _02005F36
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
bl GF_SndHandleMoveVolume
|
|
_02005F36:
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
bl GF_SndHandleMoveVolume
|
|
add r0, r5, #0
|
|
bl sub_02005990
|
|
mov r0, #3
|
|
bl GF_SndSetState
|
|
_02005F4C:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end GF_SndStartFadeInBGM
|
|
|
|
thumb_func_start GF_SndStartFadeOutBGM
|
|
GF_SndStartFadeOutBGM: ; 0x02005F50
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl GF_GetCurrentPlayingBGM
|
|
bl GF_GetPlayerNoBySeq
|
|
add r6, r0, #0
|
|
cmp r6, #0xff
|
|
beq _02005F86
|
|
bl GF_SndGetFadeTimer
|
|
cmp r0, #0
|
|
bne _02005F80
|
|
add r0, r6, #0
|
|
bl GF_GetSndHandleByPlayerNo
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl GF_SndHandleMoveVolume
|
|
add r0, r4, #0
|
|
bl sub_02005990
|
|
_02005F80:
|
|
mov r0, #4
|
|
bl GF_SndSetState
|
|
_02005F86:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end GF_SndStartFadeOutBGM
|
|
|
|
thumb_func_start GF_SndGetFadeTimer
|
|
GF_SndGetFadeTimer: ; 0x02005F88
|
|
push {r3, lr}
|
|
mov r0, #7
|
|
bl GF_SdatGetAttrPtr
|
|
ldrh r0, [r0]
|
|
pop {r3, pc}
|
|
thumb_func_end GF_SndGetFadeTimer
|
|
|
|
thumb_func_start sub_02005F94
|
|
sub_02005F94: ; 0x02005F94
|
|
push {r3, lr}
|
|
bl GF_GetPlayerNoBySeq
|
|
bl GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
pop {r3, pc}
|
|
thumb_func_end sub_02005F94
|
|
|
|
thumb_func_start sub_02005FA0
|
|
sub_02005FA0: ; 0x02005FA0
|
|
push {r3, r4, r5, lr}
|
|
mov r0, #0x10
|
|
bl GF_SdatGetAttrPtr
|
|
add r5, r0, #0
|
|
mov r0, #0x11
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
bl NNS_SndPlayerStopSeqAll
|
|
ldrb r0, [r5]
|
|
cmp r0, #1
|
|
bne _02005FC4
|
|
mov r0, #0xe
|
|
bl sub_02005728
|
|
_02005FC4:
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _02005FD0
|
|
mov r0, #0xf
|
|
bl sub_02005728
|
|
_02005FD0:
|
|
mov r0, #0
|
|
bl GF_SndSetState
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end sub_02005FA0
|
|
|
|
thumb_func_start sub_02005FD8
|
|
sub_02005FD8: ; 0x02005FD8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r0, #0x10
|
|
bl GF_SdatGetAttrPtr
|
|
add r7, r0, #0
|
|
mov r0, #0x11
|
|
bl GF_SdatGetAttrPtr
|
|
add r6, r0, #0
|
|
mov r0, #7
|
|
bl GF_GetSoundHandle
|
|
mov r1, #0
|
|
bl NNS_SndPlayerStopSeq
|
|
bl sub_02005EEC
|
|
mov r5, #0
|
|
add r4, r5, #0
|
|
_02005FFE:
|
|
add r0, r5, #3
|
|
add r1, r4, #0
|
|
bl sub_0200615C
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _02005FFE
|
|
mov r0, #0
|
|
bl sub_02006300
|
|
ldrb r0, [r7]
|
|
cmp r0, #1
|
|
bne _0200601E
|
|
mov r0, #0xe
|
|
bl sub_02005728
|
|
_0200601E:
|
|
ldrb r0, [r6]
|
|
cmp r0, #1
|
|
bne _0200602A
|
|
mov r0, #0xf
|
|
bl sub_02005728
|
|
_0200602A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end sub_02005FD8
|
|
|
|
thumb_func_start sub_0200602C
|
|
sub_0200602C: ; 0x0200602C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl PlaySE
|
|
add r6, r0, #0
|
|
ldr r1, _02006048 ; =0x0000FFFF
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl sub_020061B4
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02006048: .word 0x0000FFFF
|
|
thumb_func_end sub_0200602C
|
|
|
|
thumb_func_start PlaySE
|
|
PlaySE: ; 0x0200604C
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
bl GF_GetSndHandleByPlayerNo
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
str r4, [sp]
|
|
bl sub_020060BC
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end PlaySE
|
|
|
|
thumb_func_start sub_0200606C
|
|
sub_0200606C: ; 0x0200606C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl GF_GetSndHandleByPlayerNo
|
|
mov r2, #0
|
|
mvn r2, r2
|
|
add r1, r4, #0
|
|
add r3, r2, #0
|
|
str r5, [sp]
|
|
bl sub_020060BC
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end sub_0200606C
|
|
|
|
thumb_func_start sub_02006088
|
|
sub_02006088: ; 0x02006088
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
mov r0, #0x20
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
bl GF_GetSndHandleByPlayerNo
|
|
add r6, r0, #0
|
|
ldrh r0, [r4]
|
|
bl GF_GetBankBySeqNo
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
add r2, r0, #0
|
|
add r0, r6, #0
|
|
add r3, r1, #0
|
|
str r5, [sp]
|
|
bl sub_020060BC
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end sub_02006088
|
|
|
|
thumb_func_start sub_020060BC
|
|
sub_020060BC: ; 0x020060BC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
add r4, r1, #0
|
|
add r7, r2, #0
|
|
str r3, [sp, #8]
|
|
ldr r5, [sp, #0x20]
|
|
bl sub_02005BFC
|
|
cmp r0, #1
|
|
bne _020060E0
|
|
ldr r0, _02006114 ; =0x000005DC
|
|
sub r0, r5, r0
|
|
cmp r0, #1
|
|
bhi _020060E0
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_020060E0:
|
|
lsl r0, r5, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
add r2, r7, #0
|
|
bl sub_02006C14
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl sub_02005464
|
|
cmp r4, #0
|
|
bne _0200610C
|
|
lsl r0, r5, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl sub_02004920
|
|
_0200610C:
|
|
add r0, r4, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02006114: .word 0x000005DC
|
|
thumb_func_end sub_020060BC
|
|
|
|
thumb_func_start sub_02006118
|
|
sub_02006118: ; 0x02006118
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl PlaySE
|
|
add r6, r0, #0
|
|
beq _0200612E
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl GF_SetVolumeBySeqNo
|
|
_0200612E:
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02006118
|
|
|
|
thumb_func_start PlaySE_SetPitch
|
|
PlaySE_SetPitch: ; 0x02006134
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl PlaySE
|
|
add r6, r0, #0
|
|
beq _0200614C
|
|
ldr r1, _02006150 ; =0x0000FFFF
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl sub_0200592C
|
|
_0200614C:
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02006150: .word 0x0000FFFF
|
|
thumb_func_end PlaySE_SetPitch
|
|
|
|
thumb_func_start StopSE
|
|
StopSE: ; 0x02006154
|
|
ldr r3, _02006158 ; =NNS_SndPlayerStopSeqBySeqNo
|
|
bx r3
|
|
.balign 4, 0
|
|
_02006158: .word NNS_SndPlayerStopSeqBySeqNo
|
|
thumb_func_end StopSE
|
|
|
|
thumb_func_start sub_0200615C
|
|
sub_0200615C: ; 0x0200615C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl GF_GetSoundHandle
|
|
add r1, r4, #0
|
|
bl NNS_SndPlayerStopSeq
|
|
pop {r4, pc}
|
|
thumb_func_end sub_0200615C
|
|
|
|
thumb_func_start sub_0200616C
|
|
sub_0200616C: ; 0x0200616C
|
|
push {r3, r4, r5, lr}
|
|
mov r5, #0
|
|
add r4, r5, #0
|
|
_02006172:
|
|
add r0, r5, #3
|
|
add r1, r4, #0
|
|
bl sub_0200615C
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _02006172
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_0200616C
|
|
|
|
thumb_func_start IsSEPlaying
|
|
IsSEPlaying: ; 0x02006184
|
|
push {r3, lr}
|
|
bl GF_GetPlayerNoBySeq
|
|
bl GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
pop {r3, pc}
|
|
thumb_func_end IsSEPlaying
|
|
|
|
thumb_func_start sub_02006190
|
|
sub_02006190: ; 0x02006190
|
|
ldr r3, _02006194 ; =GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
bx r3
|
|
.balign 4, 0
|
|
_02006194: .word GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
thumb_func_end sub_02006190
|
|
|
|
thumb_func_start GF_IsAnySEPlaying
|
|
GF_IsAnySEPlaying: ; 0x02006198
|
|
push {r4, lr}
|
|
mov r4, #0
|
|
_0200619C:
|
|
add r0, r4, #3
|
|
bl GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
cmp r0, #1
|
|
bne _020061AA
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_020061AA:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
blt _0200619C
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end GF_IsAnySEPlaying
|
|
|
|
thumb_func_start sub_020061B4
|
|
sub_020061B4: ; 0x020061B4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
bl GF_GetSndHandleByPlayerNo
|
|
bl GF_GetSoundHandle
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl NNS_SndPlayerSetTrackPan
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end sub_020061B4
|
|
|
|
thumb_func_start sub_020061D0
|
|
sub_020061D0: ; 0x020061D0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl GF_GetSndHandleByPlayerNo
|
|
bl GF_GetSoundHandle
|
|
ldr r1, _020061E8 ; =0x0000FFFF
|
|
add r2, r4, #0
|
|
bl NNS_SndPlayerSetTrackPan
|
|
pop {r4, pc}
|
|
nop
|
|
_020061E8: .word 0x0000FFFF
|
|
thumb_func_end sub_020061D0
|
|
|
|
thumb_func_start sub_020061EC
|
|
sub_020061EC: ; 0x020061EC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r0, #3
|
|
bl GF_GetSndHandleByPlayerNo
|
|
ldr r7, _02006214 ; =0x0000FFFF
|
|
add r4, r0, #0
|
|
mov r5, #0
|
|
_020061FC:
|
|
add r0, r4, r5
|
|
bl GF_GetSoundHandle
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
bl NNS_SndPlayerSetTrackPan
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _020061FC
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02006214: .word 0x0000FFFF
|
|
thumb_func_end sub_020061EC
|
|
|
|
thumb_func_start PlayCry
|
|
PlayCry: ; 0x02006218
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
mov r0, #0x12
|
|
str r1, [sp, #8]
|
|
bl GF_SdatGetAttrPtr
|
|
add r7, r0, #0
|
|
mov r0, #0x24
|
|
bl GF_SdatGetAttrPtr
|
|
add r6, r0, #0
|
|
mov r0, #0x35
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
ldr r1, [sp, #8]
|
|
add r0, r5, #0
|
|
bl sub_02006A0C
|
|
cmp r0, #1
|
|
bne _02006246
|
|
ldr r5, _020062D8 ; =0x000001EE
|
|
_02006246:
|
|
ldr r0, _020062D8 ; =0x000001EE
|
|
cmp r5, r0
|
|
beq _02006258
|
|
add r0, r0, #1
|
|
cmp r5, r0
|
|
bhi _02006256
|
|
cmp r5, #0
|
|
bne _02006258
|
|
_02006256:
|
|
mov r5, #1
|
|
_02006258:
|
|
ldr r0, _020062DC ; =0x000001B9
|
|
cmp r5, r0
|
|
bne _0200627A
|
|
mov r1, #0
|
|
ldr r0, [r6]
|
|
mov r2, #0x7f
|
|
add r3, r1, #0
|
|
bl sub_02006D04
|
|
cmp r0, #1
|
|
bne _0200627A
|
|
mov r0, #0
|
|
bl sub_02006E3C
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0200627A:
|
|
ldrb r0, [r7]
|
|
cmp r0, #0
|
|
bne _020062AC
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
bne _0200628C
|
|
mov r0, #0
|
|
bl sub_02006300
|
|
_0200628C:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
sub r1, r0, #2
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
bl sub_02006C14
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl sub_02005464
|
|
b _020062CC
|
|
_020062AC:
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #8
|
|
add r1, r0, #0
|
|
sub r1, #9
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
bl sub_02006C14
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #8
|
|
bl sub_02005464
|
|
_020062CC:
|
|
mov r0, #0
|
|
bl sub_02006E3C
|
|
add r0, r4, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_020062D8: .word 0x000001EE
|
|
_020062DC: .word 0x000001B9
|
|
thumb_func_end PlayCry
|
|
|
|
thumb_func_start sub_020062E0
|
|
sub_020062E0: ; 0x020062E0
|
|
push {lr}
|
|
sub sp, #0xc
|
|
add r3, r0, #0
|
|
mov r0, #0xb
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
add r1, r3, #0
|
|
mov r0, #0
|
|
str r2, [sp, #8]
|
|
add r2, r0, #0
|
|
mov r3, #0x7f
|
|
bl sub_02006920
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {pc}
|
|
thumb_func_end sub_020062E0
|
|
|
|
thumb_func_start sub_02006300
|
|
sub_02006300: ; 0x02006300
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x10
|
|
bl GF_SdatGetAttrPtr
|
|
add r6, r0, #0
|
|
mov r0, #0x11
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #0xf
|
|
bl GF_SdatGetAttrPtr
|
|
mov r0, #1
|
|
bl GF_GetSoundHandle
|
|
add r1, r5, #0
|
|
bl NNS_SndPlayerStopSeq
|
|
mov r0, #8
|
|
bl GF_GetSoundHandle
|
|
add r1, r5, #0
|
|
bl NNS_SndPlayerStopSeq
|
|
ldrb r0, [r6]
|
|
cmp r0, #1
|
|
bne _02006344
|
|
mov r0, #0xe
|
|
bl sub_020058B8
|
|
mov r0, #0xe
|
|
bl sub_02005680
|
|
_02006344:
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _02006356
|
|
mov r0, #0xf
|
|
bl sub_020058B8
|
|
mov r0, #0xf
|
|
bl sub_02005680
|
|
_02006356:
|
|
bl sub_02006DB8
|
|
bl sub_02006A30
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end sub_02006300
|
|
|
|
thumb_func_start IsCryFinished
|
|
IsCryFinished: ; 0x02006360
|
|
push {r3, r4, r5, lr}
|
|
mov r0, #0x10
|
|
bl GF_SdatGetAttrPtr
|
|
add r5, r0, #0
|
|
mov r0, #0x11
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #0xf
|
|
bl GF_SdatGetAttrPtr
|
|
mov r0, #0x2e
|
|
bl GF_SdatGetAttrPtr
|
|
ldrb r0, [r5]
|
|
cmp r0, #1
|
|
bne _0200638C
|
|
mov r0, #0xe
|
|
bl sub_02005738
|
|
pop {r3, r4, r5, pc}
|
|
_0200638C:
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _0200639A
|
|
mov r0, #0xf
|
|
bl sub_02005738
|
|
pop {r3, r4, r5, pc}
|
|
_0200639A:
|
|
mov r0, #0
|
|
bl GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end IsCryFinished
|
|
|
|
thumb_func_start PlayCryEx
|
|
PlayCryEx: ; 0x020063A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x38]
|
|
add r4, r1, #0
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0x10
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
ldr r5, [sp, #0x3c]
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x11
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x12
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x1e
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #8]
|
|
mov r0, #0x24
|
|
bl GF_SdatGetAttrPtr
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl sub_02006A0C
|
|
cmp r0, #1
|
|
bne _020063EA
|
|
ldr r4, _02006740 ; =0x000001EE
|
|
_020063EA:
|
|
ldr r0, _02006740 ; =0x000001EE
|
|
cmp r4, r0
|
|
beq _020063FC
|
|
add r0, r0, #1
|
|
cmp r4, r0
|
|
bhi _020063FA
|
|
cmp r4, #0
|
|
bne _020063FC
|
|
_020063FA:
|
|
mov r4, #1
|
|
_020063FC:
|
|
lsr r0, r6, #0x1f
|
|
add r0, r6, r0
|
|
asr r0, r0, #1
|
|
str r0, [sp, #0x1c]
|
|
add r0, #0x40
|
|
str r0, [sp, #0x1c]
|
|
add r0, r7, #0
|
|
str r0, [sp, #0x18]
|
|
sub r0, #0x1e
|
|
str r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
bgt _02006418
|
|
mov r0, #1
|
|
str r0, [sp, #0x18]
|
|
_02006418:
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
ldr r0, [sp, #0x14]
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _02006432
|
|
mov r0, #0xe
|
|
bl sub_020058B8
|
|
mov r0, #0xe
|
|
bl sub_02005680
|
|
_02006432:
|
|
ldr r0, [sp, #0x10]
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _02006446
|
|
mov r0, #0xf
|
|
bl sub_020058B8
|
|
mov r0, #0xf
|
|
bl sub_02005680
|
|
_02006446:
|
|
ldr r0, _02006744 ; =0x000001B9
|
|
cmp r4, r0
|
|
bne _020064DA
|
|
ldr r1, [sp, #4]
|
|
cmp r1, #0xc
|
|
bhi _020064D4
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0200645E: ; jump table
|
|
.short _02006478 - _0200645E - 2 ; case 0
|
|
.short _02006478 - _0200645E - 2 ; case 1
|
|
.short _02006478 - _0200645E - 2 ; case 2
|
|
.short _020064D4 - _0200645E - 2 ; case 3
|
|
.short _020064D4 - _0200645E - 2 ; case 4
|
|
.short _02006478 - _0200645E - 2 ; case 5
|
|
.short _020064D4 - _0200645E - 2 ; case 6
|
|
.short _020064D4 - _0200645E - 2 ; case 7
|
|
.short _020064D4 - _0200645E - 2 ; case 8
|
|
.short _020064D4 - _0200645E - 2 ; case 9
|
|
.short _020064D4 - _0200645E - 2 ; case 10
|
|
.short _02006478 - _0200645E - 2 ; case 11
|
|
.short _02006478 - _0200645E - 2 ; case 12
|
|
_02006478:
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r0, [sp, #8]
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0200649C
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
b _020064CE
|
|
_0200649C:
|
|
ldr r0, [sp, #0x14]
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _020064BA
|
|
ldr r1, [sp, #0x1c]
|
|
mov r0, #0xe
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl sub_02005748
|
|
mov r0, #0xe
|
|
add r1, r7, #0
|
|
bl sub_02005774
|
|
b _020064CE
|
|
_020064BA:
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
_020064CE:
|
|
add sp, #0x20
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_020064D4:
|
|
mov r0, #1
|
|
bl sub_02006E3C
|
|
_020064DA:
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0xe
|
|
bls _020064E2
|
|
b _02006814
|
|
_020064E2:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_020064EE: ; jump table
|
|
.short _0200650C - _020064EE - 2 ; case 0
|
|
.short _0200652A - _020064EE - 2 ; case 1
|
|
.short _02006550 - _020064EE - 2 ; case 2
|
|
.short _02006596 - _020064EE - 2 ; case 3
|
|
.short _020065E4 - _020064EE - 2 ; case 4
|
|
.short _02006636 - _020064EE - 2 ; case 5
|
|
.short _02006660 - _020064EE - 2 ; case 6
|
|
.short _020066A8 - _020064EE - 2 ; case 7
|
|
.short _020066DA - _020064EE - 2 ; case 8
|
|
.short _0200670A - _020064EE - 2 ; case 9
|
|
.short _0200674C - _020064EE - 2 ; case 10
|
|
.short _0200677E - _020064EE - 2 ; case 11
|
|
.short _020067A8 - _020064EE - 2 ; case 12
|
|
.short _020067DA - _020064EE - 2 ; case 13
|
|
.short _0200680C - _020064EE - 2 ; case 14
|
|
_0200650C:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
b _02006814
|
|
_0200652A:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0x14
|
|
bl sub_02006838
|
|
b _02006814
|
|
_02006550:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
mov r2, #0x40
|
|
bl GF_SndHandleSetTrackPitch
|
|
add r0, r4, #0
|
|
mov r1, #0x14
|
|
add r2, r5, #0
|
|
bl sub_02006AC0
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #8
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
ldr r2, [sp, #0x18]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
bl sub_02006820
|
|
b _02006814
|
|
_02006596:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0x1e
|
|
bl sub_02006838
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
mov r2, #0xc0
|
|
bl GF_SndHandleSetTrackPitch
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
add r2, r5, #0
|
|
bl sub_02006AC0
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #8
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
ldr r2, [sp, #0x18]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
bl sub_02006820
|
|
b _02006814
|
|
_020065E4:
|
|
mov r0, #0xe
|
|
bl sub_02005600
|
|
ldr r0, [sp, #0x38]
|
|
ldr r2, [sp, #0x1c]
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
mov r3, #0xe
|
|
bl sub_020057AC
|
|
ldr r1, [sp, #0x1c]
|
|
mov r0, #0xe
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl sub_02005748
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0xf
|
|
bl sub_02006838
|
|
mov r1, #0x86
|
|
mov r0, #0xe
|
|
lsl r1, r1, #8
|
|
bl sub_02005760
|
|
ldr r0, [sp, #0x38]
|
|
mov r1, #0x3f
|
|
str r0, [sp]
|
|
ldr r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x1c]
|
|
add r0, r4, #0
|
|
mvn r1, r1
|
|
bl sub_02006AF4
|
|
mov r1, #0x86
|
|
mov r0, #0xf
|
|
lsl r1, r1, #8
|
|
bl sub_02005760
|
|
b _02006814
|
|
_02006636:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
sub r2, #0xe1
|
|
bl GF_SndHandleSetTrackPitch
|
|
b _02006814
|
|
_02006660:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
mov r2, #0x2c
|
|
bl GF_SndHandleSetTrackPitch
|
|
mov r1, #0x3f
|
|
add r0, r4, #0
|
|
mvn r1, r1
|
|
add r2, r5, #0
|
|
bl sub_02006AC0
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #8
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
ldr r2, [sp, #0x18]
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
bl sub_02006820
|
|
b _02006814
|
|
_020066A8:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0xb
|
|
bl sub_02006838
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
sub r2, #0x81
|
|
bl GF_SndHandleSetTrackPitch
|
|
b _02006814
|
|
_020066DA:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0x3c
|
|
bl sub_02006838
|
|
ldr r1, _02006748 ; =0x0000FFFF
|
|
mov r0, #1
|
|
mov r2, #0x3c
|
|
bl GF_SndHandleSetTrackPitch
|
|
b _02006814
|
|
_0200670A:
|
|
mov r0, #0xe
|
|
bl sub_02005600
|
|
ldr r0, [sp, #0x38]
|
|
ldr r2, [sp, #0x1c]
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
mov r3, #0xe
|
|
bl sub_020057AC
|
|
ldr r1, [sp, #0x1c]
|
|
mov r0, #0xe
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl sub_02005748
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0xd
|
|
bl sub_02006838
|
|
mov r1, #0x1a
|
|
mov r0, #0xe
|
|
lsl r1, r1, #0xa
|
|
bl sub_02005760
|
|
b _02006814
|
|
.balign 4, 0
|
|
_02006740: .word 0x000001EE
|
|
_02006744: .word 0x000001B9
|
|
_02006748: .word 0x0000FFFF
|
|
_0200674C:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0x64
|
|
bl sub_02006838
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
sub r2, #0x2d
|
|
bl GF_SndHandleSetTrackPitch
|
|
b _02006814
|
|
_0200677E:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
sub r2, #0x61
|
|
bl GF_SndHandleSetTrackPitch
|
|
b _02006814
|
|
_020067A8:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
mov r0, #1
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r2, r7, #0
|
|
bl sub_02006820
|
|
ldr r1, [sp, #0x38]
|
|
mov r0, #0x14
|
|
bl sub_02006838
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
sub r2, #0x61
|
|
bl GF_SndHandleSetTrackPitch
|
|
b _02006814
|
|
_020067DA:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #0x7f
|
|
bl sub_02006820
|
|
add r0, r4, #0
|
|
mov r1, #0x14
|
|
add r2, r5, #0
|
|
bl sub_02006AC0
|
|
ldr r1, _0200681C ; =0x0000FFFF
|
|
mov r0, #8
|
|
add r2, r6, #0
|
|
bl GF_SndHandleSetTrackPan
|
|
mov r0, #8
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
bl GF_SndHandleMoveVolume
|
|
b _02006814
|
|
_0200680C:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl PlayCry
|
|
_02006814:
|
|
mov r0, #1
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0200681C: .word 0x0000FFFF
|
|
thumb_func_end PlayCryEx
|
|
|
|
thumb_func_start sub_02006820
|
|
sub_02006820: ; 0x02006820
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r2, #0
|
|
bl GF_SndHandleSetInitialVolume
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl sub_02005464
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end sub_02006820
|
|
|
|
thumb_func_start sub_02006838
|
|
sub_02006838: ; 0x02006838
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #0x23
|
|
bl GF_SdatGetAttrPtr
|
|
add r6, r0, #0
|
|
bl sub_020068F8
|
|
add r0, r4, #0
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
bne _0200685C
|
|
bl GF_AssertFail
|
|
pop {r4, r5, r6, pc}
|
|
_0200685C:
|
|
mov r2, #0
|
|
strb r2, [r4]
|
|
strb r2, [r4, #1]
|
|
strb r2, [r4, #2]
|
|
strb r2, [r4, #3]
|
|
strb r2, [r4, #4]
|
|
strb r2, [r4, #5]
|
|
strb r2, [r4, #6]
|
|
strb r2, [r4, #7]
|
|
ldr r0, _02006880 ; =sub_02006884
|
|
add r1, r4, #0
|
|
str r5, [r4]
|
|
bl CreateSysTask
|
|
str r0, [r4, #4]
|
|
str r0, [r6]
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02006880: .word sub_02006884
|
|
thumb_func_end sub_02006838
|
|
|
|
thumb_func_start sub_02006884
|
|
sub_02006884: ; 0x02006884
|
|
push {r4, r5, r6, lr}
|
|
mov r0, #0x10
|
|
add r5, r1, #0
|
|
bl GF_SdatGetAttrPtr
|
|
add r6, r0, #0
|
|
mov r0, #0x11
|
|
bl GF_SdatGetAttrPtr
|
|
ldr r2, [r5]
|
|
add r4, r0, #0
|
|
cmp r2, #0xa
|
|
bne _020068B0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl GF_SndHandleMoveVolume
|
|
ldr r2, [r5]
|
|
mov r0, #8
|
|
mov r1, #0
|
|
bl GF_SndHandleMoveVolume
|
|
_020068B0:
|
|
ldr r0, [r5]
|
|
sub r0, r0, #1
|
|
str r0, [r5]
|
|
bl IsCryFinished
|
|
cmp r0, #0
|
|
bne _020068C2
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_020068C2:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
bgt _020068F6
|
|
mov r0, #0
|
|
bl sub_02006300
|
|
ldrb r0, [r6]
|
|
cmp r0, #1
|
|
bne _020068E0
|
|
mov r0, #0xe
|
|
bl sub_020058B8
|
|
mov r0, #0xe
|
|
bl sub_02005680
|
|
_020068E0:
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _020068F2
|
|
mov r0, #0xf
|
|
bl sub_020058B8
|
|
mov r0, #0xf
|
|
bl sub_02005680
|
|
_020068F2:
|
|
bl sub_020068F8
|
|
_020068F6:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end sub_02006884
|
|
|
|
thumb_func_start sub_020068F8
|
|
sub_020068F8: ; 0x020068F8
|
|
push {r3, r4, r5, lr}
|
|
mov r0, #0x23
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0200691A
|
|
bl sub_0201F988
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl DestroySysTask
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_0200691A:
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end sub_020068F8
|
|
|
|
thumb_func_start sub_02006920
|
|
sub_02006920: ; 0x02006920
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r6, r0, #0
|
|
mov r0, #6
|
|
add r5, r1, #0
|
|
add r7, r2, #0
|
|
str r3, [sp, #8]
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #0x35
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0xc]
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
bne _02006974
|
|
mov r0, #0x29
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0x2d
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0x2a
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x2b
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x2c
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x2e
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x10]
|
|
b _020069A4
|
|
_02006974:
|
|
mov r0, #0x2f
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0x33
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0x30
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x31
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x32
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x34
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x10]
|
|
_020069A4:
|
|
ldr r0, [sp, #0xc]
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _020069B4
|
|
ldrb r1, [r4]
|
|
mov r0, #1
|
|
eor r0, r1
|
|
strb r0, [r4]
|
|
_020069B4:
|
|
add r1, sp, #0x30
|
|
ldrb r1, [r1, #0x18]
|
|
add r0, r5, #0
|
|
bl sub_02006A0C
|
|
cmp r0, #1
|
|
bne _020069C4
|
|
ldr r5, _02006A08 ; =0x000001EE
|
|
_020069C4:
|
|
cmp r5, #0
|
|
beq _02006A04
|
|
add r1, sp, #0x30
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #0
|
|
bne _020069E8
|
|
ldr r0, [sp, #0x40]
|
|
ldr r3, [sp, #8]
|
|
str r0, [sp]
|
|
ldrb r0, [r1, #0x18]
|
|
add r1, r5, #0
|
|
add r2, r7, #0
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
bl PlayCryEx
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_020069E8:
|
|
ldr r1, [sp, #0x24]
|
|
ldr r2, [sp, #8]
|
|
str r6, [r1]
|
|
ldr r1, [sp, #0x20]
|
|
strh r5, [r1]
|
|
ldr r1, [sp, #0x1c]
|
|
str r7, [r1]
|
|
ldr r1, [sp, #0x18]
|
|
str r2, [r1]
|
|
ldr r2, [sp, #0x40]
|
|
ldr r1, [sp, #0x14]
|
|
str r2, [r1]
|
|
ldr r1, [sp, #0x10]
|
|
strb r0, [r1]
|
|
_02006A04:
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02006A08: .word 0x000001EE
|
|
thumb_func_end sub_02006920
|
|
|
|
thumb_func_start sub_02006A0C
|
|
sub_02006A0C: ; 0x02006A0C
|
|
mov r2, #0x7b
|
|
lsl r2, r2, #2
|
|
cmp r0, r2
|
|
bne _02006A1C
|
|
cmp r1, #1
|
|
bne _02006A1C
|
|
mov r0, #1
|
|
bx lr
|
|
_02006A1C:
|
|
ldr r1, _02006A2C ; =0x000001EE
|
|
cmp r0, r1
|
|
bne _02006A26
|
|
mov r0, #1
|
|
bx lr
|
|
_02006A26:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_02006A2C: .word 0x000001EE
|
|
thumb_func_end sub_02006A0C
|
|
|
|
thumb_func_start sub_02006A30
|
|
sub_02006A30: ; 0x02006A30
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
mov r0, #0x29
|
|
bl GF_SdatGetAttrPtr
|
|
add r5, r0, #0
|
|
mov r0, #0x2d
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #0x2a
|
|
bl GF_SdatGetAttrPtr
|
|
add r6, r0, #0
|
|
mov r0, #0x2b
|
|
bl GF_SdatGetAttrPtr
|
|
add r7, r0, #0
|
|
mov r0, #0x2c
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp]
|
|
mov r0, #0x2e
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #4]
|
|
mov r0, #0x2f
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #8]
|
|
mov r0, #0x33
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x30
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x31
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x32
|
|
bl GF_SdatGetAttrPtr
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x34
|
|
bl GF_SdatGetAttrPtr
|
|
mov r1, #0
|
|
str r1, [r5]
|
|
strh r1, [r4]
|
|
str r1, [r6]
|
|
ldr r2, [sp]
|
|
str r1, [r7]
|
|
str r1, [r2]
|
|
ldr r2, [sp, #4]
|
|
strb r1, [r2]
|
|
ldr r2, [sp, #8]
|
|
str r1, [r2]
|
|
ldr r2, [sp, #0xc]
|
|
strh r1, [r2]
|
|
ldr r2, [sp, #0x10]
|
|
str r1, [r2]
|
|
ldr r2, [sp, #0x14]
|
|
str r1, [r2]
|
|
ldr r2, [sp, #0x18]
|
|
str r1, [r2]
|
|
strb r1, [r0]
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02006A30
|
|
|
|
thumb_func_start sub_02006AC0
|
|
sub_02006AC0: ; 0x02006AC0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x12
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl GF_SdatGetAttrPtr
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
add r0, r1, #0
|
|
bl sub_02006E3C
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl PlayCry
|
|
add r5, r0, #0
|
|
ldr r1, _02006AF0 ; =0x0000FFFF
|
|
mov r0, #8
|
|
add r2, r4, #0
|
|
bl GF_SndHandleSetTrackPitch
|
|
add r0, r5, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02006AF0: .word 0x0000FFFF
|
|
thumb_func_end sub_02006AC0
|
|
|
|
thumb_func_start sub_02006AF4
|
|
sub_02006AF4: ; 0x02006AF4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
mov r0, #0x12
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
bl GF_SdatGetAttrPtr
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
mov r0, #0xf
|
|
bl sub_02005600
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #0xf
|
|
bl sub_020057AC
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02006AF4
|
|
|
|
thumb_func_start PlayFanfare
|
|
PlayFanfare: ; 0x02006B24
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
bl GF_GetBankInfoBySeqNo
|
|
add r0, r4, #0
|
|
bl sub_02006C04
|
|
bl GF_GetCurrentPlayingBGM
|
|
bl GF_GetPlayerNoBySeq
|
|
cmp r0, #0xff
|
|
beq _02006B48
|
|
mov r1, #1
|
|
bl sub_020053A8
|
|
b _02006B4E
|
|
_02006B48:
|
|
mov r0, #1
|
|
bl SndRadio_PausePlayer
|
|
_02006B4E:
|
|
mov r0, #0x1d
|
|
bl GF_SdatGetAttrPtr
|
|
bl GF_Snd_SaveState
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl GF_Snd_LoadSeqEx
|
|
str r4, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
sub r1, r0, #3
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl sub_02006C14
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl sub_02005464
|
|
add r0, r5, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end PlayFanfare
|
|
|
|
thumb_func_start sub_02006B84
|
|
sub_02006B84: ; 0x02006B84
|
|
push {r4, lr}
|
|
mov r0, #0xe
|
|
bl GF_SdatGetAttrPtr
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
bl GF_SndPlayerCountPlayingSeqByPlayerNo
|
|
cmp r0, #0
|
|
beq _02006B9C
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02006B9C:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _02006BAA
|
|
sub r0, r0, #1
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02006BAA:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02006B84
|
|
|
|
thumb_func_start sub_02006BB0
|
|
sub_02006BB0: ; 0x02006BB0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
bl GF_GetSoundHandle
|
|
add r1, r4, #0
|
|
bl NNS_SndPlayerStopSeq
|
|
mov r0, #6
|
|
bl sub_02005328
|
|
bl GF_Snd_LoadState
|
|
pop {r4, pc}
|
|
thumb_func_end sub_02006BB0
|
|
|
|
thumb_func_start IsFanfarePlaying
|
|
IsFanfarePlaying: ; 0x02006BCC
|
|
push {r3, lr}
|
|
mov r0, #0xe
|
|
bl GF_SdatGetAttrPtr
|
|
bl sub_02006B84
|
|
cmp r0, #1
|
|
bne _02006BE0
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02006BE0:
|
|
mov r0, #0
|
|
bl sub_02006BB0
|
|
bl GF_GetCurrentPlayingBGM
|
|
bl GF_GetPlayerNoBySeq
|
|
cmp r0, #0xff
|
|
beq _02006BF8
|
|
mov r1, #0
|
|
bl sub_020053A8
|
|
_02006BF8:
|
|
mov r0, #0
|
|
bl SndRadio_PausePlayer
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end IsFanfarePlaying
|
|
|
|
thumb_func_start sub_02006C04
|
|
sub_02006C04: ; 0x02006C04
|
|
push {r3, lr}
|
|
mov r0, #0xe
|
|
bl GF_SdatGetAttrPtr
|
|
mov r1, #0xf
|
|
strh r1, [r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end sub_02006C04
|
|
|
|
thumb_func_start sub_02006C14
|
|
sub_02006C14: ; 0x02006C14
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
ldrh r6, [r0, #0x10]
|
|
ldrb r0, [r0, #0x14]
|
|
add r5, r1, #0
|
|
add r7, r2, #0
|
|
str r3, [sp, #8]
|
|
cmp r0, #1
|
|
bne _02006C6A
|
|
bl SoundSys_GetGBSoundsState
|
|
cmp r0, #1
|
|
bne _02006C6A
|
|
add r0, sp, #0x10
|
|
ldrh r0, [r0, #0x10]
|
|
bl GBSounds_GetGBSeqNoByDSSeqNo
|
|
add r1, sp, #0x10
|
|
ldrh r1, [r1, #0x10]
|
|
add r4, r0, #0
|
|
cmp r1, r4
|
|
beq _02006C6A
|
|
add r6, r4, #0
|
|
ldr r7, _02006C88 ; =0x000002BD
|
|
bl sub_02004AB8
|
|
add r0, r4, #0
|
|
bl GF_GetPlayerNoBySeq
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r5, r1
|
|
beq _02006C5E
|
|
lsl r0, r5, #0x18
|
|
lsr r0, r0, #0x18
|
|
_02006C5E:
|
|
cmp r0, #7
|
|
bne _02006C6A
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl GF_Snd_LoadSeqEx
|
|
_02006C6A:
|
|
ldr r0, [sp, #4]
|
|
bl GF_GetSoundHandle
|
|
ldr r3, [sp, #8]
|
|
add r1, r5, #0
|
|
add r2, r7, #0
|
|
str r6, [sp]
|
|
bl NNS_SndArcPlayerStartSeqEx
|
|
add r4, r0, #0
|
|
bl GBSounds_SetAllocatableChannels
|
|
add r0, r4, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02006C88: .word 0x000002BD
|
|
thumb_func_end sub_02006C14
|