mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
3264 lines
61 KiB
ArmAsm
3264 lines
61 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_09.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start ov09_0233CA80
|
|
ov09_0233CA80: ; 0x0233CA80
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bl sub_02003BAC
|
|
bl sub_02017B70
|
|
mov r0, #0x314
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
ldr r2, _0233CBB8 ; =ov09_0233F7E0
|
|
mov r1, #0
|
|
str r0, [r2]
|
|
str r1, [r0, #0x3c]
|
|
ldr r0, [r2]
|
|
sub r3, r1, #2
|
|
strb r3, [r0]
|
|
ldr r0, [r2]
|
|
ldr r7, _0233CBBC ; =ov09_0233F61C
|
|
strb r3, [r0, #1]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, #2]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, #3]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, #4]
|
|
ldr r0, [r2]
|
|
ldr r3, _0233CBC0 ; =ov09_0233F664
|
|
add r6, r0, #0x4c
|
|
add r8, r0, #0x284
|
|
mov r2, r1
|
|
_0233CAEC:
|
|
mov r4, r1, lsl #1
|
|
#ifdef JAPAN
|
|
add r0, r1, #0x148
|
|
#else
|
|
add r0, r1, #0xfe
|
|
#endif
|
|
add r5, r0, #0x400
|
|
ldrh r0, [r3, r4]
|
|
strh r5, [r6]
|
|
add r1, r1, #1
|
|
strh r0, [r6, #2]
|
|
cmp r1, #0x8d
|
|
strb r2, [r8], #1
|
|
add r6, r6, #4
|
|
blt _0233CAEC
|
|
strh r2, [r6]
|
|
strh r2, [r6, #2]
|
|
ldr r6, _0233CBC4 ; =0x000004FD
|
|
mov r5, #0
|
|
mov r4, #1
|
|
ldr sb, _0233CBB8 ; =ov09_0233F7E0
|
|
mvn r8, #0
|
|
b _0233CB90
|
|
_0233CB38:
|
|
ldr r0, [r7]
|
|
bl IsSpecialEpisodeBeaten
|
|
cmp r0, #0
|
|
bne _0233CB8C
|
|
ldr r2, [sb]
|
|
ldmib r7, {r0, r1}
|
|
add r3, r2, #0x4c
|
|
add r2, r2, #0x284
|
|
cmp r0, r1
|
|
add r3, r3, r0, lsl #2
|
|
add r2, r2, r0
|
|
bgt _0233CB8C
|
|
b _0233CB80
|
|
_0233CB6C:
|
|
strh r6, [r3]
|
|
strh r5, [r3, #2]
|
|
strb r4, [r2], #1
|
|
add r0, r0, #1
|
|
add r3, r3, #4
|
|
_0233CB80:
|
|
ldr r1, [r7, #8]
|
|
cmp r0, r1
|
|
ble _0233CB6C
|
|
_0233CB8C:
|
|
add r7, r7, #0xc
|
|
_0233CB90:
|
|
ldr r0, [r7]
|
|
cmp r0, r8
|
|
bne _0233CB38
|
|
ldr r0, _0233CBB8 ; =ov09_0233F7E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #8
|
|
add r1, r1, #0x4c
|
|
bl ov09_0233D964
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0233CBB8: .word ov09_0233F7E0
|
|
_0233CBBC: .word ov09_0233F61C
|
|
_0233CBC0: .word ov09_0233F664
|
|
#ifdef JAPAN
|
|
_0233CBC4: .word 0x00000547
|
|
#else
|
|
_0233CBC4: .word 0x000004FD
|
|
#endif
|
|
arm_func_end ov09_0233CA80
|
|
|
|
; https://decomp.me/scratch/Uyfr0
|
|
arm_func_start ov09_0233CBC8
|
|
ov09_0233CBC8: ; 0x0233CBC8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233CBF4 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0233CBF4 ; =ov09_0233F7E0
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bl sub_02003BC8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CBF4: .word ov09_0233F7E0
|
|
arm_func_end ov09_0233CBC8
|
|
|
|
arm_func_start ov09_0233CBF8
|
|
ov09_0233CBF8: ; 0x0233CBF8
|
|
#ifdef JAPAN
|
|
#define OV09_0233CBF8_OFFSET 0x4A
|
|
#else
|
|
#define OV09_0233CBF8_OFFSET 0
|
|
#endif
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x18
|
|
sub sp, sp, #0x1000
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, #0x3c]
|
|
cmp r0, #0xd
|
|
addls pc, pc, r0, lsl #2
|
|
b _0233D918
|
|
_0233CC1C: ; jump table
|
|
b _0233CC54 ; case 0
|
|
b _0233CC98 ; case 1
|
|
b _0233CCFC ; case 2
|
|
b _0233CD34 ; case 3
|
|
b _0233CE78 ; case 4
|
|
b _0233CFA8 ; case 5
|
|
b _0233CFF8 ; case 6
|
|
b _0233D0C8 ; case 7
|
|
b _0233D280 ; case 8
|
|
b _0233D56C ; case 9
|
|
b _0233D5BC ; case 10
|
|
b _0233D770 ; case 11
|
|
b _0233D7AC ; case 12
|
|
b _0233D8F4 ; case 13
|
|
_0233CC54:
|
|
bl ov01_0232E94C
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
bl ov00_022BE680
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
mov r0, #0x1e
|
|
bl ov00_022BE5C8
|
|
bl ov01_02330E00
|
|
cmp r0, #0
|
|
bne _0233CC84
|
|
bl ov01_0232EDAC
|
|
_0233CC84:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233CC98:
|
|
bl ov01_0232E94C
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
bl ov00_022BE680
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
mov r1, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0233D92C ; =ov09_0233F780
|
|
mov r2, r1
|
|
mov r3, r1
|
|
str r1, [sp, #4]
|
|
bl sub_02052060
|
|
mov r0, #0x1e
|
|
bl ov00_022BE57C
|
|
bl ov01_02330E00
|
|
cmp r0, #0
|
|
bne _0233CCE8
|
|
bl ov01_02330210
|
|
_0233CCE8:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #2
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233CCFC:
|
|
bl ov01_0232E94C
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
bl ov00_022BE680
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #3
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
str r3, [r2, #0x3c]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x48]
|
|
b _0233D918
|
|
_0233CD34:
|
|
ldrsb r0, [r3, #2]
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
beq _0233CD70
|
|
bl IsPlaybackControlsMenuActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ClosePlaybackControlsMenu
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #2]
|
|
_0233CD70:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #3]
|
|
cmp r0, r1
|
|
beq _0233CDB4
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #3]
|
|
bl CloseDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #3]
|
|
_0233CDB4:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r5, [r0]
|
|
ldr r0, [r5, #0x48]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r5, #0x48]
|
|
bgt _0233D918
|
|
add r3, sp, #0xf00
|
|
ldr r4, _0233D930 ; =0x000004EF
|
|
add r3, r3, #8
|
|
strh r4, [r3, #0x80]
|
|
add ip, r5, #0x284
|
|
mov lr, #0x10
|
|
str ip, [sp, #0xfe0]
|
|
ldr r0, _0233D934 ; =ov09_0233F58C
|
|
ldr r1, _0233D938 ; =0x00401A13
|
|
add r2, sp, #0xf80
|
|
str lr, [sp, #0xf8c]
|
|
mov ip, #6
|
|
add r3, r5, #8
|
|
str ip, [sp]
|
|
bl CreateJukeboxTrackMenu
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
ldr r2, [r1]
|
|
strb r0, [r2]
|
|
ldr r1, [r1]
|
|
ldrb r0, [r1, #0x1c]
|
|
cmp r0, #0
|
|
mvneq r0, #0
|
|
streq r0, [r1, #0x14]
|
|
ldr r0, _0233D93C ; =ov09_0233F59C
|
|
bl CreateDialogueBox
|
|
ldr r3, _0233D928 ; =ov09_0233F7E0
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldr ip, [r3]
|
|
#ifdef JAPAN
|
|
ldr r2, _0233F164 ; =0x0000053B
|
|
#else
|
|
add r2, r1, #0xed
|
|
#endif
|
|
strb r0, [ip, #1]
|
|
ldr r0, [r3]
|
|
mov r3, #0
|
|
ldrsb r0, [r0, #1]
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #4
|
|
strb r3, [r2, #0x44]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233CE78:
|
|
ldrb r0, [r3, #0x44]
|
|
cmp r0, #0
|
|
ldr r0, [r3, #0x30]
|
|
beq _0233CEB8
|
|
cmp r0, #0
|
|
bgt _0233CEE4
|
|
#ifdef JAPAN
|
|
ldrsb r0, [r3, #1]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldr r2, _0233F164 ; =0x0000053B
|
|
#else
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldrsb r0, [r3, #1]
|
|
add r2, r1, #0xed
|
|
#endif
|
|
mov r3, #0
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x44]
|
|
b _0233CEE4
|
|
_0233CEB8:
|
|
cmp r0, #0
|
|
ble _0233CEE4
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldrsb r0, [r3, #1]
|
|
add r2, r1, #0xee + OV09_0233CBF8_OFFSET
|
|
mov r3, #0
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x44]
|
|
_0233CEE4:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0]
|
|
bl IsJukeboxTrackMenuActive
|
|
cmp r0, #0
|
|
bne _0233CF6C
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0]
|
|
bl ov09_0233E3A4
|
|
cmp r0, #0
|
|
blt _0233CF5C
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r3, [r0]
|
|
ldr r2, [r3, #0x10]
|
|
ldr r1, [r3, #0x14]
|
|
cmp r1, r2
|
|
beq _0233CF3C
|
|
str r2, [r3, #0x14]
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233D9F8
|
|
_0233CF3C:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #7
|
|
ldr r2, [r0]
|
|
mov r1, #0xa
|
|
str r3, [r2, #0x3c]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x48]
|
|
b _0233CF6C
|
|
_0233CF5C:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #0xb
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x3c]
|
|
_0233CF6C:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x1d]
|
|
cmp r0, #0
|
|
beq _0233D918
|
|
ldrsb r0, [r1]
|
|
bl ov09_0233E308
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #5
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
str r3, [r2, #0x3c]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x48]
|
|
b _0233D918
|
|
_0233CFA8:
|
|
ldr r0, [r3, #0x48]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r3, #0x48]
|
|
bgt _0233D918
|
|
ldr ip, _0233D944 ; =0x000004FC
|
|
add r2, sp, #0xe00
|
|
ldr r0, _0233D948 ; =ov09_0233F56C
|
|
add r2, r2, #0xe8
|
|
add r3, r3, #8
|
|
mov r1, #0x13
|
|
str ip, [sp]
|
|
bl CreateInputLockBox
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
mov r2, #6
|
|
ldr r3, [r1]
|
|
strb r0, [r3, #4]
|
|
ldr r0, [r1]
|
|
str r2, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233CFF8:
|
|
ldrsb r0, [r3, #4]
|
|
bl IsInputLockBoxActive
|
|
cmp r0, #0
|
|
bne _0233D050
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #0
|
|
ldr r1, [r0]
|
|
mov r2, #4
|
|
strb r3, [r1, #0x1d]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x3c]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #4]
|
|
bl CloseInputLockBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #4]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0]
|
|
bl ov09_0233E2D4
|
|
b _0233D918
|
|
_0233D050:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, #0x44]
|
|
cmp r0, #0
|
|
ldr r0, [r2, #0x30]
|
|
beq _0233D098
|
|
cmp r0, #0
|
|
bgt _0233D918
|
|
#ifdef JAPAN
|
|
ldrsb r0, [r2, #1]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldr r2, _0233F164 ; =0x0000053B
|
|
#else
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldrsb r0, [r2, #1]
|
|
add r2, r1, #0xed
|
|
#endif
|
|
mov r3, #0
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x44]
|
|
b _0233D918
|
|
_0233D098:
|
|
cmp r0, #0
|
|
ble _0233D918
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldrsb r0, [r2, #1]
|
|
add r2, r1, #0xee + OV09_0233CBF8_OFFSET
|
|
mov r3, #0
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x44]
|
|
b _0233D918
|
|
_0233D0C8:
|
|
ldrsb r0, [r3]
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
beq _0233D104
|
|
bl IsJukeboxTrackMenuActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0]
|
|
bl CloseJukeboxTrackMenu
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0]
|
|
_0233D104:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #1]
|
|
cmp r0, r1
|
|
beq _0233D148
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #1]
|
|
bl CloseDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #1]
|
|
_0233D148:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, #0x48]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r3, #0x48]
|
|
bgt _0233D918
|
|
mov r0, #0
|
|
ldr r1, _0233D94C ; =ov09_0233F5AC
|
|
str r0, [sp, #0xe50]
|
|
str r1, [sp]
|
|
ldr ip, _0233D950 ; =ov09_0233F5E4
|
|
ldr r1, _0233D954 ; =0x00400033
|
|
add r2, sp, #0xe50
|
|
add r3, r3, #8
|
|
str ip, [sp, #4]
|
|
bl CreatePlaybackControlsMenu
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #2]
|
|
mov r0, #0
|
|
bl CreateDialogueBox
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #3]
|
|
ldr r3, [r1]
|
|
add r0, sp, #0x88
|
|
ldr r2, [r3, #0x14]
|
|
str r2, [r3, #0x40]
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x40]
|
|
add r1, r2, r1, lsl #2
|
|
ldrh r1, [r1, #0x4c]
|
|
bl GetStringFromFileVeneer
|
|
add r0, sp, #0xe00
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
add r3, sp, #0x88
|
|
ldr lr, [r0]
|
|
mov r2, #0
|
|
ldr ip, [lr, #0x40]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
str r3, [sp, #0xe38]
|
|
add r3, ip, #1
|
|
str r3, [sp, #0xe24]
|
|
str r2, [lr, #0x38]
|
|
ldr r0, [r0]
|
|
add r2, r1, #0xf6 + OV09_0233CBF8_OFFSET
|
|
ldrsb r0, [r0, #3]
|
|
add r3, sp, #0xe00
|
|
bl ShowStringIdInDialogueBox
|
|
add r1, sp, #0xe00
|
|
str r1, [sp]
|
|
ldr r2, _0233D958 ; =0x000004FA
|
|
ldr r3, _0233D95C ; =0x0000C402
|
|
add r0, sp, #0xa00
|
|
mov r1, #0x100
|
|
bl PreprocessStringFromId
|
|
add r0, sp, #0xa00
|
|
#ifndef JAPAN
|
|
b _0233D248
|
|
_0233D238:
|
|
cmp r1, #0x5d
|
|
addeq r0, r0, #1
|
|
beq _0233D254
|
|
add r0, r0, #1
|
|
_0233D248:
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _0233D238
|
|
_0233D254:
|
|
#endif
|
|
bl sub_020265A8
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #0
|
|
ldr ip, [r1]
|
|
mov r2, #8
|
|
str r0, [ip, #0x38]
|
|
ldr r0, [r1]
|
|
strb r3, [r0, #0x44]
|
|
ldr r0, [r1]
|
|
str r2, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233D280:
|
|
ldrsb r0, [r3, #2]
|
|
bl IsPlaybackControlsMenuActive
|
|
cmp r0, #0
|
|
bne _0233D3E8
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233ED1C
|
|
cmp r0, #7
|
|
addls pc, pc, r0, lsl #2
|
|
b _0233D3C8
|
|
_0233D2AC: ; jump table
|
|
b _0233D3C8 ; case 0
|
|
b _0233D3C8 ; case 1
|
|
b _0233D2CC ; case 2
|
|
b _0233D2F0 ; case 3
|
|
b _0233D314 ; case 4
|
|
b _0233D338 ; case 5
|
|
b _0233D35C ; case 6
|
|
b _0233D3A4 ; case 7
|
|
_0233D2CC:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233D9F8
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D2F0:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233DA4C
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D314:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233DA70
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D338:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233DAD0
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D35C:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233DB54
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x1d]
|
|
cmp r1, #0
|
|
beq _0233D398
|
|
mov r1, #9
|
|
str r1, [r2, #0x3c]
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
str r1, [r0, #0x48]
|
|
b _0233D918
|
|
_0233D398:
|
|
ldrsb r0, [r2, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D3A4:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl ov09_0233DB6C
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D3C8:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #3
|
|
ldr r2, [r0]
|
|
mov r1, #0xa
|
|
str r3, [r2, #0x3c]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x48]
|
|
b _0233D918
|
|
_0233D3E8:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x1d]
|
|
cmp r1, #0
|
|
beq _0233D424
|
|
ldrsb r0, [r2, #2]
|
|
bl ov09_0233EC98
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #9
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
str r3, [r2, #0x3c]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x48]
|
|
b _0233D918
|
|
_0233D424:
|
|
ldrb r1, [r2, #0x44]
|
|
cmp r1, #0
|
|
ldr r1, [r2, #0x30]
|
|
beq _0233D454
|
|
cmp r1, #0
|
|
bgt _0233D494
|
|
mvn r1, #0
|
|
str r1, [r2, #0x40]
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x44]
|
|
b _0233D494
|
|
_0233D454:
|
|
cmp r1, #0
|
|
ble _0233D494
|
|
mov r3, #0
|
|
str r3, [r2, #0x38]
|
|
ldr r0, [r0]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldrsb r0, [r0, #3]
|
|
#ifdef JAPAN
|
|
ldr r2, _0233F184 ; =0x00000545
|
|
#else
|
|
add r2, r1, #0xf7
|
|
#endif
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #1
|
|
str r3, [r2, #0x40]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x44]
|
|
_0233D494:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r3, [r0]
|
|
ldrb r1, [r3, #0x44]
|
|
cmp r1, #0
|
|
bne _0233D918
|
|
ldr r2, [r3, #0x14]
|
|
ldr r1, [r3, #0x40]
|
|
cmp r1, r2
|
|
beq _0233D918
|
|
str r2, [r3, #0x40]
|
|
ldr r2, [r0]
|
|
add r0, sp, #0x48
|
|
ldr r1, [r2, #0x40]
|
|
add r1, r2, r1, lsl #2
|
|
ldrh r1, [r1, #0x4c]
|
|
bl GetStringFromFileVeneer
|
|
add r0, sp, #0x9b0
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
add r3, sp, #0x48
|
|
ldr lr, [r0]
|
|
mov r2, #0
|
|
ldr ip, [lr, #0x40]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
str r3, [sp, #0x9e8]
|
|
add r3, ip, #1
|
|
str r3, [sp, #0x9d4]
|
|
str r2, [lr, #0x38]
|
|
ldr r0, [r0]
|
|
add r3, sp, #0x9b0
|
|
ldrsb r0, [r0, #3]
|
|
add r2, r1, #0xf6 + OV09_0233CBF8_OFFSET
|
|
bl ShowStringIdInDialogueBox
|
|
add r1, sp, #0x9b0
|
|
str r1, [sp]
|
|
ldr r2, _0233D958 ; =0x000004FA
|
|
ldr r3, _0233D95C ; =0x0000C402
|
|
add r0, sp, #0x5b0
|
|
mov r1, #0x100
|
|
bl PreprocessStringFromId
|
|
add r0, sp, #0x5b0
|
|
#ifndef JAPAN
|
|
b _0233D54C
|
|
_0233D53C:
|
|
cmp r1, #0x5d
|
|
addeq r0, r0, #1
|
|
beq _0233D558
|
|
add r0, r0, #1
|
|
_0233D54C:
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _0233D53C
|
|
_0233D558:
|
|
#endif
|
|
bl sub_020265A8
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x38]
|
|
b _0233D918
|
|
_0233D56C:
|
|
ldr r0, [r3, #0x48]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r3, #0x48]
|
|
bgt _0233D918
|
|
ldr ip, _0233D944 ; =0x000004FC
|
|
add r2, sp, #0x500
|
|
ldr r0, _0233D960 ; =ov09_0233F57C
|
|
add r2, r2, #0x18
|
|
add r3, r3, #8
|
|
mov r1, #0x13
|
|
str ip, [sp]
|
|
bl CreateInputLockBox
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
mov r2, #0xa
|
|
ldr r3, [r1]
|
|
strb r0, [r3, #4]
|
|
ldr r0, [r1]
|
|
str r2, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233D5BC:
|
|
ldrsb r0, [r3, #4]
|
|
bl IsInputLockBoxActive
|
|
cmp r0, #0
|
|
bne _0233D614
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r3, #0
|
|
ldr r1, [r0]
|
|
mov r2, #8
|
|
strb r3, [r1, #0x1d]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x3c]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #4]
|
|
bl CloseInputLockBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #4]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ov09_0233EC20
|
|
b _0233D918
|
|
_0233D614:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x44]
|
|
cmp r1, #0
|
|
ldr r1, [r2, #0x30]
|
|
beq _0233D64C
|
|
cmp r1, #0
|
|
bgt _0233D68C
|
|
mvn r1, #0
|
|
str r1, [r2, #0x40]
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x44]
|
|
b _0233D68C
|
|
_0233D64C:
|
|
cmp r1, #0
|
|
ble _0233D68C
|
|
mov r3, #0
|
|
str r3, [r2, #0x38]
|
|
ldr r0, [r0]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
ldrsb r0, [r0, #3]
|
|
#ifdef JAPAN
|
|
ldr r2, _0233F184 ; =0x00000545
|
|
#else
|
|
add r2, r1, #0xf7
|
|
#endif
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #1
|
|
str r3, [r2, #0x40]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x44]
|
|
_0233D68C:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r3, [r0]
|
|
ldrb r1, [r3, #0x44]
|
|
cmp r1, #0
|
|
bne _0233D918
|
|
ldr r2, [r3, #0x14]
|
|
ldr r1, [r3, #0x40]
|
|
cmp r1, r2
|
|
beq _0233D918
|
|
str r2, [r3, #0x40]
|
|
ldr r2, [r0]
|
|
add r0, sp, #8
|
|
ldr r1, [r2, #0x40]
|
|
add r1, r2, r1, lsl #2
|
|
ldrh r1, [r1, #0x4c]
|
|
bl GetStringFromFileVeneer
|
|
add r0, sp, #0x400
|
|
add r0, r0, #0xc8
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
add r3, sp, #8
|
|
ldr lr, [r0]
|
|
mov r2, #0
|
|
ldr ip, [lr, #0x40]
|
|
ldr r1, _0233D940 ; =0x00000404
|
|
str r3, [sp, #0x500]
|
|
add r3, ip, #1
|
|
str r3, [sp, #0x4ec]
|
|
str r2, [lr, #0x38]
|
|
ldr r0, [r0]
|
|
add r3, sp, #0x400
|
|
ldrsb r0, [r0, #3]
|
|
add r3, r3, #0xc8
|
|
add r2, r1, #0xf6 + OV09_0233CBF8_OFFSET
|
|
bl ShowStringIdInDialogueBox
|
|
add r1, sp, #0x400
|
|
add r1, r1, #0xc8
|
|
str r1, [sp]
|
|
ldr r2, _0233D958 ; =0x000004FA
|
|
ldr r3, _0233D95C ; =0x0000C402
|
|
add r0, sp, #0xc8
|
|
mov r1, #0x100
|
|
bl PreprocessStringFromId
|
|
add r0, sp, #0xc8
|
|
#ifndef JAPAN
|
|
b _0233D750
|
|
_0233D740:
|
|
cmp r1, #0x5d
|
|
addeq r0, r0, #1
|
|
beq _0233D75C
|
|
add r0, r0, #1
|
|
_0233D750:
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _0233D740
|
|
_0233D75C:
|
|
#endif
|
|
bl sub_020265A8
|
|
ldr r1, _0233D928 ; =ov09_0233F7E0
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x38]
|
|
b _0233D918
|
|
_0233D770:
|
|
bl ov01_0232E94C
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
bl ov00_022BE680
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
mov r0, #0x1e
|
|
bl ov00_022BE5C8
|
|
bl ov01_0232EDAC
|
|
bl sub_02017B70
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #0xc
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233D7AC:
|
|
bl ov01_0232E94C
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
bl ov00_022BE680
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0]
|
|
cmp r0, r1
|
|
beq _0233D808
|
|
bl IsJukeboxTrackMenuActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0]
|
|
bl CloseJukeboxTrackMenu
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0]
|
|
_0233D808:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #1]
|
|
cmp r0, r1
|
|
beq _0233D84C
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #1]
|
|
bl CloseDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #1]
|
|
_0233D84C:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
cmp r0, r1
|
|
beq _0233D890
|
|
bl IsPlaybackControlsMenuActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #2]
|
|
bl ClosePlaybackControlsMenu
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #2]
|
|
_0233D890:
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #3]
|
|
cmp r0, r1
|
|
beq _0233D8D4
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #3]
|
|
bl CloseDialogueBox
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #3]
|
|
_0233D8D4:
|
|
bl ov00_022BE8D0
|
|
mov r0, #0x1e
|
|
bl ov00_022BE57C
|
|
ldr r0, _0233D928 ; =ov09_0233F7E0
|
|
mov r1, #0xd
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x3c]
|
|
b _0233D918
|
|
_0233D8F4:
|
|
bl ov00_022BE680
|
|
cmp r0, #0
|
|
bne _0233D918
|
|
mov r0, #2
|
|
bl PlayBgmByIdVeneer
|
|
mov r0, #0x14
|
|
bl ov01_023310B8
|
|
mov r0, #4
|
|
b _0233D91C
|
|
_0233D918:
|
|
mov r0, #1
|
|
_0233D91C:
|
|
add sp, sp, #0x18
|
|
add sp, sp, #0x1000
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233D928: .word ov09_0233F7E0
|
|
arm_func_end ov09_0233CBF8
|
|
_0233D92C: .word ov09_0233F780
|
|
_0233D930: .word 0x000004EF + OV09_0233CBF8_OFFSET
|
|
_0233D934: .word ov09_0233F58C
|
|
_0233D938: .word 0x00401A13
|
|
_0233D93C: .word ov09_0233F59C
|
|
_0233D940: .word 0x00000404
|
|
#ifdef JAPAN
|
|
_0233F164: .word 0x0000053B
|
|
#endif
|
|
_0233D944: .word 0x000004FC + OV09_0233CBF8_OFFSET
|
|
_0233D948: .word ov09_0233F56C
|
|
_0233D94C: .word ov09_0233F5AC
|
|
_0233D950: .word ov09_0233F5E4
|
|
_0233D954: .word 0x00400033
|
|
#ifdef JAPAN
|
|
_0233D958: .word 0x0000053A
|
|
_0233D95C: .word 0x0000C402
|
|
_0233F184: .word 0x00000545
|
|
#else
|
|
_0233D958: .word 0x000004FA
|
|
_0233D95C: .word 0x0000C402
|
|
#endif
|
|
_0233D960: .word ov09_0233F57C
|
|
|
|
arm_func_start ov09_0233D964
|
|
ov09_0233D964: ; 0x0233D964
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
str r4, [r5]
|
|
mvn r2, #0
|
|
str r2, [r5, #8]
|
|
str r2, [r5, #0xc]
|
|
mov r1, #0
|
|
strh r1, [r5, #0x10]
|
|
strh r1, [r5, #0x12]
|
|
strb r1, [r5, #0x14]
|
|
strb r1, [r5, #0x15]
|
|
strb r1, [r5, #0x16]
|
|
str r2, [r5, #0x20]
|
|
str r2, [r5, #0x24]
|
|
bl ov09_0233D9DC
|
|
cmp r4, #0
|
|
beq _0233D9D0
|
|
mov r1, #0
|
|
b _0233D9BC
|
|
_0233D9B4:
|
|
add r4, r4, #4
|
|
add r1, r1, #1
|
|
_0233D9BC:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
bne _0233D9B4
|
|
str r1, [r5, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D9D0:
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ov09_0233D964
|
|
|
|
arm_func_start ov09_0233D9DC
|
|
ov09_0233D9DC: ; 0x0233D9DC
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
str r1, [r0, #0x2c]
|
|
str r1, [r0, #0x28]
|
|
str r1, [r0, #0x30]
|
|
bx lr
|
|
arm_func_end ov09_0233D9DC
|
|
|
|
arm_func_start ov09_0233D9F8
|
|
ov09_0233D9F8: ; 0x0233D9F8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r1, [r4, #0xc]
|
|
mvn r0, #0
|
|
cmp r1, r0
|
|
ldreq r0, [r4, #8]
|
|
streq r0, [r4, #0xc]
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r1, r0, lsl #2
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
bl PlayBgmByIdVeneer
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x14]
|
|
str r0, [r4, #0x20]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x24]
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end ov09_0233D9F8
|
|
|
|
arm_func_start ov09_0233DA4C
|
|
ov09_0233DA4C: ; 0x0233DA4C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02017B70
|
|
mov r0, #0
|
|
strb r0, [r4, #0x14]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
str r0, [r4, #0x24]
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end ov09_0233DA4C
|
|
|
|
arm_func_start ov09_0233DA70
|
|
ov09_0233DA70: ; 0x0233DA70
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r0, #0xc]
|
|
mvn r1, #0
|
|
cmp r3, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r2, #0
|
|
_0233DA88:
|
|
ldr r1, [r0, #4]
|
|
sub r1, r1, #1
|
|
cmp r3, r1
|
|
strge r2, [r0, #0xc]
|
|
ldrlt r1, [r0, #0xc]
|
|
addlt r1, r1, #1
|
|
strlt r1, [r0, #0xc]
|
|
ldr r3, [r0, #0xc]
|
|
ldr r1, [r0]
|
|
add r1, r1, r3, lsl #2
|
|
ldrh r1, [r1, #2]
|
|
cmp r1, #0
|
|
beq _0233DA88
|
|
ldrb r1, [r0, #0x14]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl ov09_0233D9F8
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov09_0233DA70
|
|
|
|
arm_func_start ov09_0233DAD0
|
|
ov09_0233DAD0: ; 0x0233DAD0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r2, [r4, #0xc]
|
|
mvn r1, #0
|
|
cmp r2, r1
|
|
ldmeqia sp!, {r4, pc}
|
|
ldrb r1, [r4, #0x14]
|
|
cmp r1, #0
|
|
beq _0233DB10
|
|
ldr r1, [r4, #0x20]
|
|
cmp r1, #0xb4
|
|
ble _0233DB10
|
|
bl ov09_0233DA4C
|
|
mov r0, r4
|
|
bl ov09_0233D9F8
|
|
ldmia sp!, {r4, pc}
|
|
_0233DB10:
|
|
cmp r2, #0
|
|
ldrle r0, [r4, #4]
|
|
ldrgt r0, [r4, #0xc]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
add r0, r0, r2, lsl #2
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0233DB10
|
|
ldrb r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
mov r0, r4
|
|
bl ov09_0233D9F8
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end ov09_0233DAD0
|
|
|
|
arm_func_start ov09_0233DB54
|
|
ov09_0233DB54: ; 0x0233DB54
|
|
ldrb r1, [r0, #0x15]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
movne r1, #0
|
|
strb r1, [r0, #0x15]
|
|
bx lr
|
|
arm_func_end ov09_0233DB54
|
|
|
|
arm_func_start ov09_0233DB6C
|
|
ov09_0233DB6C: ; 0x0233DB6C
|
|
ldrb r1, [r0, #0x16]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
movne r1, #0
|
|
strb r1, [r0, #0x16]
|
|
bx lr
|
|
arm_func_end ov09_0233DB6C
|
|
|
|
arm_func_start ov09_0233DB84
|
|
ov09_0233DB84: ; 0x0233DB84
|
|
mov r1, #0x78
|
|
str r1, [r0, #0x28]
|
|
bx lr
|
|
arm_func_end ov09_0233DB84
|
|
|
|
arm_func_start ov09_0233DB90
|
|
ov09_0233DB90: ; 0x0233DB90
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #4
|
|
movs r6, r3
|
|
ldrneb r4, [r6]
|
|
mov r8, r0
|
|
movne r0, #0
|
|
strneb r0, [r6]
|
|
ldr r5, [sp, #0x20]
|
|
mov r0, #0
|
|
strb r0, [r5]
|
|
ldr r0, [r8, #0x18]
|
|
moveq r4, #1
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r8, #0x18]
|
|
ldr r0, [r8, #0x1c]
|
|
mov r7, r1
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r8, #0x1c]
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl GetPressedButtons
|
|
bl sub_02003B5C
|
|
cmp r0, #0
|
|
ldrneh r0, [sp]
|
|
andne r0, r0, #0x300
|
|
strneh r0, [sp]
|
|
ldrb r0, [r8, #0x14]
|
|
cmp r0, #0
|
|
beq _0233DCF0
|
|
ldr r0, [r8, #0x20]
|
|
ldr r2, [r8]
|
|
ldr r1, [r8, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r8, #0x20]
|
|
ldr r0, [r8, #0x24]
|
|
add r1, r2, r1, lsl #2
|
|
cmp r0, #0
|
|
blt _0233DCBC
|
|
sub r0, r0, #1
|
|
str r0, [r8, #0x24]
|
|
ldrb r0, [r8, #0x16]
|
|
cmp r0, #0
|
|
beq _0233DC74
|
|
ldrh r0, [r1, #2]
|
|
bl sub_02017B18
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
strne r0, [r8, #0x24]
|
|
bne _0233DCF0
|
|
ldr r0, [r8, #0x24]
|
|
cmp r0, #0
|
|
bgt _0233DCF0
|
|
mov r0, r8
|
|
bl ov09_0233D9F8
|
|
b _0233DCF0
|
|
_0233DC74:
|
|
ldr r0, [r8, #0x24]
|
|
cmp r0, #0x12c
|
|
bgt _0233DCF0
|
|
bne _0233DC90
|
|
mov r0, #0x12c
|
|
bl sub_02017B7C
|
|
b _0233DCF0
|
|
_0233DC90:
|
|
cmp r0, #0
|
|
bgt _0233DCF0
|
|
mov r0, r8
|
|
bl ov09_0233DA4C
|
|
mov r0, r8
|
|
bl ov09_0233DA70
|
|
mov r0, r8
|
|
bl ov09_0233D9F8
|
|
mov r0, #1
|
|
strb r0, [r5]
|
|
b _0233DCF0
|
|
_0233DCBC:
|
|
ldrh r0, [r1, #2]
|
|
bl sub_02017B18
|
|
cmp r0, #0
|
|
moveq r0, #0x3c
|
|
streq r0, [r8, #0x24]
|
|
beq _0233DCF0
|
|
bl sub_02017B0C
|
|
cmp r0, #0
|
|
beq _0233DCF0
|
|
ldrb r0, [r8, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, #0x258
|
|
streq r0, [r8, #0x24]
|
|
_0233DCF0:
|
|
ldrh r0, [sp]
|
|
tst r0, #8
|
|
beq _0233DD1C
|
|
mov r0, r7
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
ldrb r0, [r8, #0x15]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
strb r0, [r8, #0x15]
|
|
_0233DD1C:
|
|
ldrb r0, [r8, #0x15]
|
|
cmp r0, #0
|
|
beq _0233DD70
|
|
ldr r0, [r8, #0x28]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r8, #0x28]
|
|
ldrh r1, [sp]
|
|
ldr r0, _0233DEE8 ; =0x00000F04
|
|
tst r1, r0
|
|
beq _0233DD68
|
|
bl sub_02003B5C
|
|
cmp r0, #0
|
|
bne _0233DD60
|
|
mov r0, r7
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
_0233DD60:
|
|
mov r0, #0x78
|
|
str r0, [r8, #0x28]
|
|
_0233DD68:
|
|
mov r0, #0
|
|
b _0233DEE0
|
|
_0233DD70:
|
|
mov r1, #0
|
|
str r1, [r8, #0x28]
|
|
ldrh r0, [sp]
|
|
tst r0, #4
|
|
beq _0233DDA0
|
|
mov r0, r7
|
|
bl PlayWindowInputSound
|
|
ldrb r0, [r8, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
strb r0, [r8, #0x16]
|
|
_0233DDA0:
|
|
ldr r0, [r8, #0x2c]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r8, #0x2c]
|
|
bgt _0233DEDC
|
|
ldrh r0, [sp]
|
|
tst r0, #0x400
|
|
beq _0233DE0C
|
|
cmp r4, #0
|
|
mov r0, r7
|
|
beq _0233DDF0
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
cmp r6, #0
|
|
movne r0, #1
|
|
strneb r0, [r6]
|
|
bne _0233DDF8
|
|
mov r0, r8
|
|
bl ov09_0233D9F8
|
|
b _0233DDF8
|
|
_0233DDF0:
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
_0233DDF8:
|
|
mov r0, #4
|
|
str r0, [r8, #0x2c]
|
|
mov r0, #1
|
|
strb r0, [r5]
|
|
b _0233DEDC
|
|
_0233DE0C:
|
|
tst r0, #0x800
|
|
beq _0233DE48
|
|
mov r0, r7
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
mov r1, #4
|
|
mov r0, r8
|
|
str r1, [r8, #0x2c]
|
|
bl ov09_0233DA4C
|
|
cmp r6, #0
|
|
mvnne r0, #0
|
|
strne r0, [r8, #0xc]
|
|
mov r0, #1
|
|
strb r0, [r5]
|
|
b _0233DEDC
|
|
_0233DE48:
|
|
tst r0, #0x200
|
|
beq _0233DE94
|
|
mov r0, #4
|
|
str r0, [r8, #0x2c]
|
|
ldr r1, [r8, #0xc]
|
|
sub r0, r0, #5
|
|
cmp r1, r0
|
|
mov r0, r7
|
|
bne _0233DE78
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233DEDC
|
|
_0233DE78:
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
mov r0, r8
|
|
bl ov09_0233DAD0
|
|
mov r0, #1
|
|
strb r0, [r5]
|
|
b _0233DEDC
|
|
_0233DE94:
|
|
tst r0, #0x100
|
|
beq _0233DEDC
|
|
mov r0, #4
|
|
str r0, [r8, #0x2c]
|
|
ldr r1, [r8, #0xc]
|
|
sub r0, r0, #5
|
|
cmp r1, r0
|
|
mov r0, r7
|
|
bne _0233DEC4
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233DEDC
|
|
_0233DEC4:
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
mov r0, r8
|
|
bl ov09_0233DA70
|
|
mov r0, #1
|
|
strb r0, [r5]
|
|
_0233DEDC:
|
|
mov r0, #0
|
|
_0233DEE0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0233DEE8: .word 0x00000F04
|
|
arm_func_end ov09_0233DB90
|
|
|
|
arm_func_start ov09_0233DEEC
|
|
ov09_0233DEEC: ; 0x0233DEEC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x10
|
|
mov r4, #0
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
bl sub_02003B5C
|
|
cmp r0, #0
|
|
movne r0, r4
|
|
bne _0233E028
|
|
ldr r1, [r7, #8]
|
|
ldr r0, [r7]
|
|
add lr, r1, #0x8a
|
|
str r0, [sp]
|
|
ldr r0, [r7]
|
|
add r3, lr, #0x10
|
|
add ip, r0, #0xe
|
|
add r2, sp, #0
|
|
mov r0, r5
|
|
mov r1, #2
|
|
str ip, [sp, #4]
|
|
str lr, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
bl sub_02006C8C
|
|
cmp r0, #0
|
|
beq _0233DF84
|
|
mov r1, #4
|
|
str r1, [r8, #0x18]
|
|
mov r1, r4
|
|
mov r0, r7
|
|
mov r4, #1
|
|
bl PlayWindowInputSound
|
|
ldrb r0, [r8, #0x15]
|
|
cmp r0, #0
|
|
moveq r0, r4
|
|
movne r0, #0
|
|
strb r0, [r8, #0x15]
|
|
_0233DF84:
|
|
ldr r0, [r7]
|
|
ldr r1, [r7, #8]
|
|
add r0, r0, #1
|
|
str r0, [sp]
|
|
add lr, r1, #0x9e
|
|
ldr r0, [r7]
|
|
add r3, lr, #0x10
|
|
add ip, r0, #0xf
|
|
add r2, sp, #0
|
|
mov r0, r5
|
|
mov r1, #2
|
|
str ip, [sp, #4]
|
|
str lr, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
bl sub_02006C8C
|
|
cmp r0, #0
|
|
beq _0233E00C
|
|
mov r0, #4
|
|
str r0, [r8, #0x1c]
|
|
ldrb r0, [r8, #0x15]
|
|
mov r4, #1
|
|
cmp r0, #0
|
|
mov r0, r7
|
|
beq _0233DFF0
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233E00C
|
|
_0233DFF0:
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
ldrb r0, [r8, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, r4
|
|
movne r0, #0
|
|
strb r0, [r8, #0x16]
|
|
_0233E00C:
|
|
cmp r6, #0
|
|
beq _0233E024
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl sub_020320C8
|
|
mov r4, #1
|
|
_0233E024:
|
|
mov r0, r4
|
|
_0233E028:
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end ov09_0233DEEC
|
|
|
|
arm_func_start CreateJukeboxTrackMenu
|
|
CreateJukeboxTrackMenu: ; 0x0233E030
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x34
|
|
mov sl, r3
|
|
ldr r6, [sl]
|
|
str r1, [sp, #8]
|
|
mov r8, r2
|
|
mov sb, r0
|
|
mov r1, r6
|
|
mov r2, #0
|
|
b _0233E060
|
|
_0233E058:
|
|
add r1, r1, #4
|
|
add r2, r2, #1
|
|
_0233E060:
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _0233E058
|
|
add r0, r2, #1
|
|
add r0, r0, r0, lsl #6
|
|
mov r0, r0, lsl #2
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
mov fp, r0
|
|
mov r5, fp
|
|
mov r4, #0
|
|
mov r7, #0x100
|
|
b _0233E0B8
|
|
_0233E094:
|
|
ldr r3, _0233E2C8 ; =0x0000C402
|
|
mov r0, r5
|
|
mov r1, r7
|
|
str r4, [sp]
|
|
bl PreprocessStringFromId
|
|
ldrh r0, [r6, #2]
|
|
add r6, r6, #4
|
|
str r0, [r5, #0x100]
|
|
add r5, r5, #0x104
|
|
_0233E0B8:
|
|
ldrh r2, [r6]
|
|
cmp r2, #0
|
|
bne _0233E094
|
|
mov r0, #0
|
|
strb r0, [r5]
|
|
ldrh r2, [r6, #2]
|
|
ldr r1, [sp, #0x58]
|
|
mov r0, #0x1ac
|
|
str r2, [r5, #0x100]
|
|
str r1, [sp, #0x10]
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
mov r7, r0
|
|
ldr r5, [sl, #0xc]
|
|
mov r4, #0
|
|
str r4, [sp, #0xc]
|
|
mov r0, sl
|
|
mov r6, fp
|
|
str sl, [r7, #4]
|
|
bl ov09_0233D9DC
|
|
ldr r0, [sp, #8]
|
|
cmp sb, #0
|
|
orr sl, r0, #0x20
|
|
addne ip, sp, #0x14
|
|
ldmneia sb, {r0, r1, r2, r3}
|
|
stmneia ip, {r0, r1, r2, r3}
|
|
ldrne r0, _0233E2CC ; =UpdateJukeboxTrackMenu
|
|
orr sl, sl, #0x8000
|
|
strne r0, [sp, #0x14]
|
|
bne _0233E144
|
|
ldr r0, _0233E2D0 ; =JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS
|
|
add sb, sp, #0x14
|
|
ldmia r0, {r0, r1, r2, r3}
|
|
stmia sb, {r0, r1, r2, r3}
|
|
orr sl, sl, #0x300000
|
|
_0233E144:
|
|
ldrb r0, [sp, #0x1a]
|
|
str r7, [sp, #0x20]
|
|
cmp r0, #0
|
|
bne _0233E194
|
|
mov sb, #0
|
|
b _0233E170
|
|
_0233E15C:
|
|
mov r0, r6
|
|
bl sub_020265A8
|
|
cmp r0, sb
|
|
movgt sb, r0
|
|
add r6, r6, #0x104
|
|
_0233E170:
|
|
mov r0, r6
|
|
bl IsEmptyString
|
|
cmp r0, #0
|
|
beq _0233E15C
|
|
mov r0, sl
|
|
mov r1, r8
|
|
add r2, sb, #0x10
|
|
bl sub_02031A5C
|
|
strb r0, [sp, #0x1a]
|
|
_0233E194:
|
|
mov r6, fp
|
|
b _0233E1B8
|
|
_0233E19C:
|
|
ldr r0, [sp, #0xc]
|
|
add r6, r6, #0x104
|
|
cmp r0, r5
|
|
moveq r4, r0
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
_0233E1B8:
|
|
mov r0, r6
|
|
bl IsEmptyString
|
|
cmp r0, #0
|
|
beq _0233E19C
|
|
ldr r0, [sp, #0x10]
|
|
add r2, sp, #0xc
|
|
cmp r0, #0
|
|
ldrle r0, [sp, #0xc]
|
|
add r3, sp, #0x10
|
|
strle r0, [sp, #0x10]
|
|
ldrb r0, [sp, #0x1b]
|
|
cmp r0, #0
|
|
mov r0, sl
|
|
bne _0233E200
|
|
mov r1, r8
|
|
bl CalcMenuHeightDiv8__02031AA4
|
|
strb r0, [sp, #0x1b]
|
|
b _0233E208
|
|
_0233E200:
|
|
mov r1, r8
|
|
bl CalcMenuHeightDiv8__02031AA4
|
|
_0233E208:
|
|
tst sl, #0x200000
|
|
ldrneb r1, [sp, #0x18]
|
|
ldrneb r0, [sp, #0x1a]
|
|
subne r0, r1, r0
|
|
strneb r0, [sp, #0x18]
|
|
tst sl, #0x100000
|
|
ldrneb r1, [sp, #0x19]
|
|
ldrneb r0, [sp, #0x1b]
|
|
subne r0, r1, r0
|
|
strneb r0, [sp, #0x19]
|
|
ldr r0, _0233E2CC ; =UpdateJukeboxTrackMenu
|
|
cmp r8, #0
|
|
str r0, [r7]
|
|
str sl, [r7, #0x100]
|
|
beq _0233E264
|
|
add r6, r7, #0x104
|
|
mov r5, #9
|
|
_0233E24C:
|
|
ldmia r8!, {r0, r1, r2, r3}
|
|
stmia r6!, {r0, r1, r2, r3}
|
|
subs r5, r5, #1
|
|
bne _0233E24C
|
|
ldmia r8, {r0, r1}
|
|
stmia r6, {r0, r1}
|
|
_0233E264:
|
|
str r4, [r7, #0x104]
|
|
str fp, [r7, #0x19c]
|
|
mov r2, #0
|
|
str r2, [r7, #0x1a0]
|
|
strb r2, [r7, #0x1a4]
|
|
strb r2, [r7, #0x1a5]
|
|
add r0, sp, #0x14
|
|
mov r1, #3
|
|
strb r2, [sp, #0x1c]
|
|
bl NewWindowScreenCheck
|
|
add r1, sp, #0x24
|
|
mov r5, r0
|
|
bl GetWindowRectangle
|
|
ldr r0, [sp, #0xc]
|
|
add r3, sp, #0x24
|
|
str r0, [sp]
|
|
ldr r4, [sp, #0x10]
|
|
mov r1, sl
|
|
add r0, r7, #8
|
|
add r2, r7, #0x104
|
|
str r4, [sp, #4]
|
|
bl InitWindowInput
|
|
mov r0, r5
|
|
add sp, sp, #0x34
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0233E2C8: .word 0x0000C402
|
|
_0233E2CC: .word UpdateJukeboxTrackMenu
|
|
_0233E2D0: .word JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS
|
|
arm_func_end CreateJukeboxTrackMenu
|
|
|
|
arm_func_start ov09_0233E2D4
|
|
ov09_0233E2D4: ; 0x0233E2D4
|
|
stmdb sp!, {r3, lr}
|
|
bl GetWindowContents
|
|
mov r1, #1
|
|
str r1, [r0, #0x1a0]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x1a4]
|
|
strb r1, [r0, #0x1a5]
|
|
ldr r1, [r0, #0x100]
|
|
bic r1, r1, #0x800000
|
|
str r1, [r0, #0x100]
|
|
add r0, r0, #8
|
|
bl sub_02032984
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov09_0233E2D4
|
|
|
|
arm_func_start ov09_0233E308
|
|
ov09_0233E308: ; 0x0233E308
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl GetWindowContents
|
|
mov r4, r0
|
|
mov r0, #1
|
|
mov r2, #0
|
|
strb r0, [r4, #0x1a4]
|
|
mov r0, r5
|
|
sub r1, r2, #4
|
|
strb r2, [r4, #0x1a5]
|
|
bl sub_0202830C
|
|
mov r0, r5
|
|
add r1, r4, #8
|
|
bl sub_02028948
|
|
mov r0, #5
|
|
str r0, [r4, #0x1a0]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ov09_0233E308
|
|
|
|
arm_func_start CloseJukeboxTrackMenu
|
|
CloseJukeboxTrackMenu: ; 0x0233E34C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl GetWindowContents
|
|
mov r4, r0
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl ov01_02330E38
|
|
ldr r0, [r4, #0x19c]
|
|
bl MemFree
|
|
mov r0, r4
|
|
bl MemFree
|
|
mov r0, r5
|
|
bl DeleteWindow
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end CloseJukeboxTrackMenu
|
|
|
|
arm_func_start IsJukeboxTrackMenuActive
|
|
IsJukeboxTrackMenuActive: ; 0x0233E384
|
|
stmdb sp!, {r3, lr}
|
|
bl GetWindowContents
|
|
ldr r0, [r0, #0x1a0]
|
|
cmp r0, #7
|
|
cmpne r0, #8
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end IsJukeboxTrackMenuActive
|
|
|
|
arm_func_start ov09_0233E3A4
|
|
ov09_0233E3A4: ; 0x0233E3A4
|
|
stmdb sp!, {r3, lr}
|
|
bl GetWindowContents
|
|
ldrb r1, [r0, #0x1a4]
|
|
cmp r1, #0
|
|
beq _0233E3D4
|
|
ldrb r1, [r0, #0x1a5]
|
|
cmp r1, #0
|
|
mvnne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
add r0, r0, #8
|
|
bl GetSelectedMenuItemIdx
|
|
ldmia sp!, {r3, pc}
|
|
_0233E3D4:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov09_0233E3A4
|
|
|
|
arm_func_start UpdateJukeboxTrackMenu
|
|
UpdateJukeboxTrackMenu: ; 0x0233E3DC
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x34
|
|
mov r6, r0
|
|
ldr r4, [r6, #0xc]
|
|
ldr r0, [r4, #0x1a0]
|
|
cmp r0, #6
|
|
addls pc, pc, r0, lsl #2
|
|
b _0233E7E8
|
|
_0233E3FC: ; jump table
|
|
b _0233E418 ; case 0
|
|
b _0233E430 ; case 1
|
|
b _0233E444 ; case 2
|
|
b _0233E44C ; case 3
|
|
b _0233E4AC ; case 4
|
|
b _0233E76C ; case 5
|
|
b _0233E7B0 ; case 6
|
|
_0233E418:
|
|
ldrsb r0, [r6, #0x10]
|
|
bl sub_0202810C
|
|
cmp r0, #0
|
|
beq _0233E7E8
|
|
mov r0, #2
|
|
str r0, [r4, #0x1a0]
|
|
_0233E430:
|
|
ldr r0, [r4, #0x1a0]
|
|
cmp r0, #1
|
|
moveq r0, #2
|
|
streq r0, [r4, #0x1a0]
|
|
beq _0233E7E8
|
|
_0233E444:
|
|
mov r0, #3
|
|
str r0, [r4, #0x1a0]
|
|
_0233E44C:
|
|
mov r0, r6
|
|
bl ov09_0233E7F4
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #0x800000
|
|
beq _0233E488
|
|
mov r0, #8
|
|
str r0, [r4, #0x1a0]
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a5]
|
|
str r0, [r4, #0x1a8]
|
|
sub r0, r0, #4
|
|
str r0, [r6, #0xb8]
|
|
b _0233E7E8
|
|
_0233E488:
|
|
mov r1, #4
|
|
mov r0, #0
|
|
str r1, [r4, #0x1a0]
|
|
strb r0, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a5]
|
|
str r0, [r4, #0x1a8]
|
|
sub r0, r0, #1
|
|
str r0, [r6, #0xb8]
|
|
b _0233E7E8
|
|
_0233E4AC:
|
|
bl sub_02003B5C
|
|
cmp r0, #0
|
|
moveq r3, #1
|
|
movne r3, #0
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x10
|
|
add r0, r4, #8
|
|
and r3, r3, #0xff
|
|
bl sub_02031C98
|
|
ldr r1, [sp, #0xc]
|
|
mov r5, r0
|
|
cmp r1, #0
|
|
bne _0233E52C
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #1
|
|
beq _0233E52C
|
|
mov r3, #0
|
|
ldr r2, _0233E7F0 ; =0x00000408
|
|
add r1, sp, #0x10
|
|
str r3, [sp]
|
|
mov ip, #1
|
|
add r0, r4, #8
|
|
str ip, [sp, #4]
|
|
bl sub_02032160
|
|
movs r1, r0
|
|
bmi _0233E52C
|
|
add r0, r4, #8
|
|
bl sub_02032684
|
|
ldr r0, [sp, #0xc]
|
|
mov r5, #1
|
|
orr r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
_0233E52C:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0233E54C
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x10
|
|
add r0, r4, #8
|
|
bl sub_02033758
|
|
orr r5, r5, r0
|
|
_0233E54C:
|
|
ldr r2, [sp, #0xc]
|
|
cmp r2, #0
|
|
bne _0233E56C
|
|
ldr r0, [r4, #4]
|
|
add r3, sp, #0x10
|
|
add r1, r4, #8
|
|
bl ov09_0233DEEC
|
|
orr r5, r5, r0
|
|
_0233E56C:
|
|
add r0, r4, #8
|
|
bl GetSelectedMenuItemIdx
|
|
mov r2, r0
|
|
ldr r1, [sp, #0xc]
|
|
add r0, r4, #8
|
|
mov r3, #0
|
|
bl sub_020323F8
|
|
orrs r0, r5, r0
|
|
beq _0233E598
|
|
mov r0, r6
|
|
bl ov09_0233E7F4
|
|
_0233E598:
|
|
add r0, r4, #8
|
|
bl GetSelectedMenuItemIdx
|
|
ldr r1, [r4, #4]
|
|
str r0, [r1, #8]
|
|
ldr r0, [sp, #0xc]
|
|
tst r0, #1
|
|
beq _0233E63C
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, #0x15]
|
|
cmp r1, #0
|
|
beq _0233E5D8
|
|
bl ov09_0233DB84
|
|
add r0, r4, #8
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233E750
|
|
_0233E5D8:
|
|
add r0, r4, #8
|
|
bl IsMenuOptionActive
|
|
cmp r0, #0
|
|
beq _0233E62C
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #0x80000000
|
|
bne _0233E600
|
|
add r0, r4, #8
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
_0233E600:
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a5]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #4
|
|
str r1, [r4, #0x1a8]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #5
|
|
str r0, [r4, #0x1a0]
|
|
b _0233E750
|
|
_0233E62C:
|
|
add r0, r4, #8
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233E750
|
|
_0233E63C:
|
|
tst r0, #2
|
|
beq _0233E69C
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, #0x15]
|
|
cmp r1, #0
|
|
beq _0233E668
|
|
bl ov09_0233DB84
|
|
add r0, r4, #8
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233E750
|
|
_0233E668:
|
|
add r0, r4, #8
|
|
mov r1, #1
|
|
bl PlayWindowInputSound
|
|
mov r0, #1
|
|
strb r0, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a5]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #6
|
|
str r1, [r4, #0x1a8]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #5
|
|
str r0, [r4, #0x1a0]
|
|
b _0233E750
|
|
_0233E69C:
|
|
add r0, r4, #8
|
|
bl IsMenuOptionActive
|
|
add r1, sp, #8
|
|
strb r0, [sp, #9]
|
|
str r1, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r2, [sp, #0xc]
|
|
add r3, sp, #9
|
|
add r1, r4, #8
|
|
bl ov09_0233DB90
|
|
cmp r0, #0
|
|
beq _0233E6F8
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a5]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #4
|
|
str r1, [r4, #0x1a8]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #5
|
|
str r0, [r4, #0x1a0]
|
|
b _0233E73C
|
|
_0233E6F8:
|
|
ldrb r0, [sp, #9]
|
|
cmp r0, #0
|
|
beq _0233E73C
|
|
ldr r1, [r4, #4]
|
|
add r0, r4, #8
|
|
ldr r1, [r1, #8]
|
|
bl sub_02032684
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a5]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #4
|
|
str r1, [r4, #0x1a8]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #5
|
|
str r0, [r4, #0x1a0]
|
|
_0233E73C:
|
|
ldrb r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _0233E750
|
|
mov r0, r6
|
|
bl ov09_0233E7F4
|
|
_0233E750:
|
|
ldrsb r0, [r6, #0x10]
|
|
add r1, r4, #8
|
|
bl sub_02028948
|
|
ldr r1, [r4, #4]
|
|
mov r0, #2
|
|
bl ov01_02330E38
|
|
b _0233E7E8
|
|
_0233E76C:
|
|
add r0, r4, #8
|
|
bl sub_02032070
|
|
cmp r0, #0
|
|
bne _0233E7E8
|
|
ldrb r0, [r4, #0x1a5]
|
|
cmp r0, #0
|
|
bne _0233E7A8
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #0x400000
|
|
beq _0233E7A8
|
|
mov r0, r6
|
|
bl ov09_0233E7F4
|
|
mov r0, #8
|
|
str r0, [r4, #0x1a0]
|
|
b _0233E7E8
|
|
_0233E7A8:
|
|
mov r0, #6
|
|
str r0, [r4, #0x1a0]
|
|
_0233E7B0:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl ov01_02330E38
|
|
ldrsb r0, [r6, #0x10]
|
|
bl sub_0202812C
|
|
cmp r0, #0
|
|
beq _0233E7E8
|
|
ldrb r0, [r4, #0x1a5]
|
|
cmp r0, #0
|
|
mvnne r0, #4
|
|
mvneq r0, #3
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #7
|
|
str r0, [r4, #0x1a0]
|
|
_0233E7E8:
|
|
add sp, sp, #0x34
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0233E7F0: .word 0x00000408
|
|
arm_func_end UpdateJukeboxTrackMenu
|
|
|
|
arm_func_start ov09_0233E7F4
|
|
ov09_0233E7F4: ; 0x0233E7F4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x154
|
|
mov sl, r0
|
|
ldr r4, [sl, #0xc]
|
|
add r0, r4, #8
|
|
bl GetPageStart
|
|
mov r5, r0
|
|
add r0, r4, #8
|
|
bl GetNumItemsOnPage
|
|
ldr r2, [r4, #0x100]
|
|
mov fp, r0
|
|
tst r2, #0x200
|
|
ldrne r0, [r4, #0x164]
|
|
ldr r3, [r4, #0x19c]
|
|
addne sb, r0, r5
|
|
add r1, r5, r5, lsl #6
|
|
ldrsb r0, [sl, #0x10]
|
|
add r6, r3, r1, lsl #2
|
|
moveq sb, #0
|
|
bl sub_02027B1C
|
|
add r0, sp, #0x104
|
|
bl InitPreprocessorArgs
|
|
cmp fp, #0
|
|
mov r7, #0
|
|
ble _0233E8EC
|
|
b _0233E8E4
|
|
_0233E85C:
|
|
ldr r0, [r4, #4]
|
|
mov r8, #0x44
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, r5
|
|
moveq r8, #0x45
|
|
beq _0233E88C
|
|
cmp sb, #0
|
|
beq _0233E88C
|
|
ldrb r0, [sb]
|
|
add sb, sb, #1
|
|
tst r0, #2
|
|
movne r8, #0x42
|
|
_0233E88C:
|
|
add r0, r5, #1
|
|
str r0, [sp, #0x128]
|
|
str r6, [sp, #0x13c]
|
|
add r0, sp, #0x104
|
|
str r0, [sp]
|
|
#ifdef JAPAN
|
|
ldr r2, _0234013C ; =0x0000053A
|
|
ldr r3, _0233E914 ; =0x0000C402
|
|
add r0, sp, #4
|
|
mov r1, #0x100
|
|
#else
|
|
ldr r3, _0233E914 ; =0x0000C402
|
|
add r0, sp, #4
|
|
mov r1, #0x100
|
|
mov r2, #0x4f0
|
|
#endif
|
|
bl PreprocessStringFromId
|
|
add r0, r4, #8
|
|
mov r1, r7
|
|
bl GetPageItemYOffset
|
|
str r8, [sp]
|
|
mov r2, r0
|
|
ldrsb r0, [sl, #0x10]
|
|
mov r1, #0xd
|
|
add r3, sp, #4
|
|
bl sub_020263C8
|
|
add r7, r7, #1
|
|
add r5, r5, #1
|
|
add r6, r6, #0x104
|
|
_0233E8E4:
|
|
cmp r7, fp
|
|
blt _0233E85C
|
|
_0233E8EC:
|
|
ldrsb r1, [sl, #0x10]
|
|
add r0, r4, #8
|
|
bl sub_0202A03C
|
|
ldrsb r0, [sl, #0x10]
|
|
bl UpdateWindow
|
|
ldr r1, [r4, #4]
|
|
mov r0, #2
|
|
bl ov01_02330E38
|
|
add sp, sp, #0x154
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
#ifdef JAPAN
|
|
_0234013C: .word 0x0000053A
|
|
#endif
|
|
_0233E914: .word 0x0000C402
|
|
arm_func_end ov09_0233E7F4
|
|
|
|
arm_func_start CreatePlaybackControlsMenu
|
|
CreatePlaybackControlsMenu: ; 0x0233E918
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x3c
|
|
mov sl, r1
|
|
mov sb, r2
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r1, [sp, #0x60]
|
|
mov r2, #0
|
|
b _0233E944
|
|
_0233E93C:
|
|
add r1, r1, #8
|
|
add r2, r2, #1
|
|
_0233E944:
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _0233E93C
|
|
add r0, r2, #1
|
|
add r0, r0, r0, lsl #6
|
|
mov r4, r0, lsl #2
|
|
mov r0, r4
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
str r0, [sp, #0x14]
|
|
mov r0, r4
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
str r0, [sp, #0x10]
|
|
ldr r5, [sp, #0x14]
|
|
mov r6, r0
|
|
ldr r7, [sp, #0x60]
|
|
ldr r4, [sp, #0x64]
|
|
b _0233E9C4
|
|
_0233E990:
|
|
mov r0, r5
|
|
bl GetStringFromFileVeneer
|
|
ldr r1, [r7, #4]
|
|
mov r0, r6
|
|
str r1, [r5, #0x100]
|
|
ldrh r1, [r4]
|
|
add r7, r7, #8
|
|
add r5, r5, #0x104
|
|
bl GetStringFromFileVeneer
|
|
ldr r0, [r4, #4]
|
|
add r4, r4, #8
|
|
str r0, [r6, #0x100]
|
|
add r6, r6, #0x104
|
|
_0233E9C4:
|
|
ldrh r1, [r7]
|
|
cmp r1, #0
|
|
bne _0233E990
|
|
mov r0, #0
|
|
strb r0, [r5]
|
|
strb r0, [r6]
|
|
ldr r1, [r7, #4]
|
|
mov r0, #0x1b4
|
|
str r1, [r5, #0x100]
|
|
ldr r2, [r4, #4]
|
|
mov r1, #8
|
|
str r2, [r6, #0x100]
|
|
bl MemAlloc
|
|
mov r7, r0
|
|
tst sl, #0x20
|
|
ldrne r8, [sb]
|
|
ldr r0, [sp, #0xc]
|
|
mov fp, #0
|
|
str fp, [sp, #0x18]
|
|
mov r1, r0
|
|
ldr r6, [sp, #0x14]
|
|
ldr r5, [sp, #0x10]
|
|
moveq r8, #0
|
|
str r1, [r7, #4]
|
|
bl ov09_0233D9DC
|
|
ldr r0, [sp, #8]
|
|
add r4, sp, #0x1c
|
|
cmp r0, #0
|
|
ldreq r0, _0233EC18 ; =PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS
|
|
orreq sl, sl, #0x300000
|
|
ldmeqia r0, {r0, r1, r2, r3}
|
|
stmeqia r4, {r0, r1, r2, r3}
|
|
ldmneia r0, {r0, r1, r2, r3}
|
|
stmneia r4, {r0, r1, r2, r3}
|
|
ldrne r0, _0233EC1C ; =UpdatePlaybackControlsMenu
|
|
str r7, [sp, #0x28]
|
|
strne r0, [sp, #0x1c]
|
|
ldrb r0, [sp, #0x22]
|
|
cmp r0, #0
|
|
bne _0233EACC
|
|
mov r4, #0
|
|
b _0233EA80
|
|
_0233EA6C:
|
|
mov r0, r6
|
|
bl sub_020265A8
|
|
cmp r0, r4
|
|
movgt r4, r0
|
|
add r6, r6, #0x104
|
|
_0233EA80:
|
|
mov r0, r6
|
|
bl IsEmptyString
|
|
cmp r0, #0
|
|
beq _0233EA6C
|
|
b _0233EAA8
|
|
_0233EA94:
|
|
mov r0, r5
|
|
bl sub_020265A8
|
|
cmp r0, r4
|
|
movgt r4, r0
|
|
add r5, r5, #0x104
|
|
_0233EAA8:
|
|
mov r0, r5
|
|
bl IsEmptyString
|
|
cmp r0, #0
|
|
beq _0233EA94
|
|
mov r0, sl
|
|
mov r1, sb
|
|
add r2, r4, #0x10
|
|
bl sub_02031A5C
|
|
strb r0, [sp, #0x22]
|
|
_0233EACC:
|
|
ldr r4, [sp, #0x14]
|
|
ldr r5, [sp, #0x10]
|
|
and r6, sl, #0x20
|
|
b _0233EB14
|
|
_0233EADC:
|
|
cmp r6, #0
|
|
beq _0233EB00
|
|
ldr r0, [r4, #0x100]
|
|
cmp r0, r8
|
|
ldreq fp, [sp, #0x18]
|
|
beq _0233EB00
|
|
ldr r0, [r5, #0x100]
|
|
cmp r0, r8
|
|
ldreq fp, [sp, #0x18]
|
|
_0233EB00:
|
|
ldr r0, [sp, #0x18]
|
|
add r4, r4, #0x104
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
add r5, r5, #0x104
|
|
_0233EB14:
|
|
mov r0, r4
|
|
bl IsEmptyString
|
|
cmp r0, #0
|
|
beq _0233EADC
|
|
ldrb r0, [sp, #0x23]
|
|
cmp r0, #0
|
|
bne _0233EB48
|
|
add r2, sp, #0x18
|
|
mov r0, sl
|
|
mov r1, sb
|
|
mov r3, r2
|
|
bl CalcMenuHeightDiv8__02031AA4
|
|
strb r0, [sp, #0x23]
|
|
_0233EB48:
|
|
tst sl, #0x200000
|
|
ldrneb r1, [sp, #0x20]
|
|
ldrneb r0, [sp, #0x22]
|
|
subne r0, r1, r0
|
|
strneb r0, [sp, #0x20]
|
|
tst sl, #0x100000
|
|
ldrneb r1, [sp, #0x21]
|
|
ldrneb r0, [sp, #0x23]
|
|
subne r0, r1, r0
|
|
strneb r0, [sp, #0x21]
|
|
ldr r0, _0233EC1C ; =UpdatePlaybackControlsMenu
|
|
cmp sb, #0
|
|
str r0, [r7]
|
|
str sl, [r7, #0x100]
|
|
beq _0233EBA4
|
|
add r5, r7, #0x104
|
|
mov r4, #9
|
|
_0233EB8C:
|
|
ldmia sb!, {r0, r1, r2, r3}
|
|
stmia r5!, {r0, r1, r2, r3}
|
|
subs r4, r4, #1
|
|
bne _0233EB8C
|
|
ldmia sb, {r0, r1}
|
|
stmia r5, {r0, r1}
|
|
_0233EBA4:
|
|
ldr r0, [sp, #0x14]
|
|
str fp, [r7, #0x104]
|
|
str r0, [r7, #0x19c]
|
|
ldr r0, [sp, #0x10]
|
|
mov r2, #0
|
|
str r0, [r7, #0x1a0]
|
|
str r2, [r7, #0x1a4]
|
|
strb r2, [r7, #0x1a8]
|
|
strb r2, [r7, #0x1a9]
|
|
str r2, [r7, #0x1ac]
|
|
strb r2, [r7, #0x1b0]
|
|
add r0, sp, #0x1c
|
|
mov r1, #3
|
|
strb r2, [sp, #0x24]
|
|
bl NewWindowScreenCheck
|
|
add r1, sp, #0x2c
|
|
mov r5, r0
|
|
bl GetWindowRectangle
|
|
ldr r4, [sp, #0x18]
|
|
add r3, sp, #0x2c
|
|
str r4, [sp]
|
|
mov r1, sl
|
|
add r0, r7, #8
|
|
add r2, r7, #0x104
|
|
str r4, [sp, #4]
|
|
bl InitWindowInput
|
|
mov r0, r5
|
|
add sp, sp, #0x3c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0233EC18: .word PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS
|
|
_0233EC1C: .word UpdatePlaybackControlsMenu
|
|
arm_func_end CreatePlaybackControlsMenu
|
|
|
|
arm_func_start ov09_0233EC20
|
|
ov09_0233EC20: ; 0x0233EC20
|
|
stmdb sp!, {r3, lr}
|
|
bl GetWindowContents
|
|
mov r1, #1
|
|
str r1, [r0, #0x1a4]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x1a8]
|
|
strb r1, [r0, #0x1a9]
|
|
str r1, [r0, #0x1ac]
|
|
ldr r1, [r0, #0x100]
|
|
bic r1, r1, #0x800000
|
|
str r1, [r0, #0x100]
|
|
add r0, r0, #8
|
|
bl sub_02032984
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov09_0233EC20
|
|
|
|
arm_func_start ClosePlaybackControlsMenu
|
|
ClosePlaybackControlsMenu: ; 0x0233EC58
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl GetWindowContents
|
|
mov r4, r0
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl ov01_02330E38
|
|
ldr r0, [r4, #0x19c]
|
|
bl MemFree
|
|
ldr r0, [r4, #0x1a0]
|
|
bl MemFree
|
|
mov r0, r4
|
|
bl MemFree
|
|
mov r0, r5
|
|
bl DeleteWindow
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ClosePlaybackControlsMenu
|
|
|
|
arm_func_start ov09_0233EC98
|
|
ov09_0233EC98: ; 0x0233EC98
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl GetWindowContents
|
|
mov r4, r0
|
|
ldr r0, [r4, #0x1a4]
|
|
cmp r0, #3
|
|
cmpne r0, #4
|
|
cmpne r0, #8
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #1
|
|
mov r2, #0
|
|
strb r0, [r4, #0x1a8]
|
|
strb r2, [r4, #0x1a9]
|
|
mov r0, r5
|
|
sub r1, r2, #4
|
|
str r2, [r4, #0x1ac]
|
|
bl sub_0202830C
|
|
mov r0, r5
|
|
add r1, r4, #8
|
|
bl sub_02028948
|
|
mov r0, #5
|
|
str r0, [r4, #0x1a4]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ov09_0233EC98
|
|
|
|
arm_func_start IsPlaybackControlsMenuActive
|
|
IsPlaybackControlsMenuActive: ; 0x0233ECFC
|
|
stmdb sp!, {r3, lr}
|
|
bl GetWindowContents
|
|
ldr r0, [r0, #0x1a4]
|
|
cmp r0, #7
|
|
cmpne r0, #8
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end IsPlaybackControlsMenuActive
|
|
|
|
arm_func_start ov09_0233ED1C
|
|
ov09_0233ED1C: ; 0x0233ED1C
|
|
stmdb sp!, {r4, lr}
|
|
bl GetWindowContents
|
|
ldrb r1, [r0, #0x1a8]
|
|
cmp r1, #0
|
|
beq _0233ED7C
|
|
ldr r1, [r0, #4]
|
|
ldrb r1, [r1, #0x14]
|
|
cmp r1, #0
|
|
ldrne r4, [r0, #0x1a0]
|
|
ldrb r1, [r0, #0x1a9]
|
|
ldreq r4, [r0, #0x19c]
|
|
add r0, r0, #8
|
|
cmp r1, #0
|
|
beq _0233ED68
|
|
bl GetTotalNumMenuItems
|
|
add r0, r0, r0, lsl #6
|
|
add r0, r4, r0, lsl #2
|
|
ldr r0, [r0, #0x100]
|
|
ldmia sp!, {r4, pc}
|
|
_0233ED68:
|
|
bl GetSelectedMenuItemIdx
|
|
add r0, r0, r0, lsl #6
|
|
add r0, r4, r0, lsl #2
|
|
ldr r0, [r0, #0x100]
|
|
ldmia sp!, {r4, pc}
|
|
_0233ED7C:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end ov09_0233ED1C
|
|
|
|
arm_func_start UpdatePlaybackControlsMenu
|
|
UpdatePlaybackControlsMenu: ; 0x0233ED84
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x34
|
|
mov r6, r0
|
|
ldr r4, [r6, #0xc]
|
|
ldr r0, [r4, #0x1a4]
|
|
cmp r0, #6
|
|
addls pc, pc, r0, lsl #2
|
|
b _0233F12C
|
|
_0233EDA4: ; jump table
|
|
b _0233EDC0 ; case 0
|
|
b _0233EDD8 ; case 1
|
|
b _0233EDEC ; case 2
|
|
b _0233EE4C ; case 3
|
|
b _0233F094 ; case 4
|
|
b _0233F0A4 ; case 5
|
|
b _0233F0F4 ; case 6
|
|
_0233EDC0:
|
|
ldrsb r0, [r6, #0x10]
|
|
bl sub_0202810C
|
|
cmp r0, #0
|
|
beq _0233F12C
|
|
mov r0, #2
|
|
str r0, [r4, #0x1a4]
|
|
_0233EDD8:
|
|
ldr r0, [r4, #0x1a4]
|
|
cmp r0, #1
|
|
moveq r0, #2
|
|
streq r0, [r4, #0x1a4]
|
|
beq _0233F12C
|
|
_0233EDEC:
|
|
mov r0, r6
|
|
bl ov09_0233F138
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #0x800000
|
|
beq _0233EE28
|
|
mov r0, #8
|
|
str r0, [r4, #0x1a4]
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a8]
|
|
strb r0, [r4, #0x1a9]
|
|
str r0, [r4, #0x1ac]
|
|
sub r0, r0, #4
|
|
str r0, [r6, #0xb8]
|
|
b _0233F12C
|
|
_0233EE28:
|
|
mov r1, #3
|
|
mov r0, #0
|
|
str r1, [r4, #0x1a4]
|
|
strb r0, [r4, #0x1a8]
|
|
strb r0, [r4, #0x1a9]
|
|
str r0, [r4, #0x1ac]
|
|
sub r0, r0, #1
|
|
str r0, [r6, #0xb8]
|
|
b _0233F12C
|
|
_0233EE4C:
|
|
bl sub_02003B5C
|
|
cmp r0, #0
|
|
moveq r3, #1
|
|
movne r3, #0
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x10
|
|
add r0, r4, #8
|
|
and r3, r3, #0xff
|
|
bl sub_02031C98
|
|
ldr r1, [sp, #0xc]
|
|
mov r5, r0
|
|
cmp r1, #0
|
|
bne _0233EECC
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #1
|
|
beq _0233EECC
|
|
mov r3, #0
|
|
ldr r2, _0233F134 ; =0x00000408
|
|
add r1, sp, #0x10
|
|
str r3, [sp]
|
|
mov ip, #1
|
|
add r0, r4, #8
|
|
str ip, [sp, #4]
|
|
bl sub_02032160
|
|
movs r1, r0
|
|
bmi _0233EECC
|
|
add r0, r4, #8
|
|
bl sub_02032684
|
|
ldr r0, [sp, #0xc]
|
|
mov r5, #1
|
|
orr r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
_0233EECC:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0233EEEC
|
|
add r1, sp, #0xc
|
|
add r2, sp, #0x10
|
|
add r0, r4, #8
|
|
bl sub_02033758
|
|
orr r5, r5, r0
|
|
_0233EEEC:
|
|
add r0, r4, #8
|
|
bl GetSelectedMenuItemIdx
|
|
mov r2, r0
|
|
ldr r1, [sp, #0xc]
|
|
add r0, r4, #8
|
|
mov r3, #0
|
|
bl sub_020323F8
|
|
orrs r0, r5, r0
|
|
beq _0233EF18
|
|
mov r0, r6
|
|
bl ov09_0233F138
|
|
_0233EF18:
|
|
ldr r2, [sp, #0xc]
|
|
tst r2, #1
|
|
beq _0233EFBC
|
|
add r0, r4, #8
|
|
bl GetSelectedMenuItemIdx
|
|
ldr r2, [r4, #4]
|
|
ldrb r1, [r2, #0x15]
|
|
cmp r1, #0
|
|
cmpne r0, #3
|
|
beq _0233EF58
|
|
mov r0, r2
|
|
bl ov09_0233DB84
|
|
add r0, r4, #8
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233F078
|
|
_0233EF58:
|
|
add r0, r4, #8
|
|
bl IsMenuOptionActive
|
|
cmp r0, #0
|
|
beq _0233EFAC
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #0x80000000
|
|
bne _0233EF80
|
|
add r0, r4, #8
|
|
mov r1, #0
|
|
bl PlayWindowInputSound
|
|
_0233EF80:
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a8]
|
|
strb r0, [r4, #0x1a9]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #4
|
|
str r1, [r4, #0x1ac]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #4
|
|
str r0, [r4, #0x1a4]
|
|
b _0233F078
|
|
_0233EFAC:
|
|
add r0, r4, #8
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233F078
|
|
_0233EFBC:
|
|
tst r2, #2
|
|
beq _0233F01C
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, #0x15]
|
|
cmp r1, #0
|
|
beq _0233EFE8
|
|
bl ov09_0233DB84
|
|
add r0, r4, #8
|
|
mov r1, #2
|
|
bl PlayWindowInputSound
|
|
b _0233F078
|
|
_0233EFE8:
|
|
add r0, r4, #8
|
|
mov r1, #1
|
|
bl PlayWindowInputSound
|
|
mov r0, #1
|
|
strb r0, [r4, #0x1a8]
|
|
strb r0, [r4, #0x1a9]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #6
|
|
str r1, [r4, #0x1ac]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #4
|
|
str r0, [r4, #0x1a4]
|
|
b _0233F078
|
|
_0233F01C:
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
add r1, r4, #8
|
|
mov r3, #0
|
|
bl ov09_0233DB90
|
|
cmp r0, #0
|
|
beq _0233F064
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x1a8]
|
|
strb r0, [r4, #0x1a9]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r0, #4
|
|
str r1, [r4, #0x1ac]
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #4
|
|
str r0, [r4, #0x1a4]
|
|
_0233F064:
|
|
ldrb r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _0233F078
|
|
mov r0, r6
|
|
bl ov09_0233F138
|
|
_0233F078:
|
|
ldrsb r0, [r6, #0x10]
|
|
add r1, r4, #8
|
|
bl sub_02028948
|
|
ldr r1, [r4, #4]
|
|
mov r0, #3
|
|
bl ov01_02330E38
|
|
b _0233F12C
|
|
_0233F094:
|
|
add r0, r4, #8
|
|
bl sub_02032070
|
|
cmp r0, #0
|
|
bne _0233F12C
|
|
_0233F0A4:
|
|
ldrb r0, [r4, #0x1a9]
|
|
cmp r0, #0
|
|
bne _0233F0D8
|
|
ldr r0, [r4, #0x100]
|
|
tst r0, #0x400000
|
|
beq _0233F0EC
|
|
mov r0, r6
|
|
bl ov09_0233F138
|
|
mvn r0, #3
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #8
|
|
str r0, [r4, #0x1a4]
|
|
b _0233F12C
|
|
_0233F0D8:
|
|
ldrb r0, [r4, #0x1b0]
|
|
cmp r0, #0
|
|
movne r0, #8
|
|
strne r0, [r4, #0x1a4]
|
|
bne _0233F12C
|
|
_0233F0EC:
|
|
mov r0, #6
|
|
str r0, [r4, #0x1a4]
|
|
_0233F0F4:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl ov01_02330E38
|
|
ldrsb r0, [r6, #0x10]
|
|
bl sub_0202812C
|
|
cmp r0, #0
|
|
beq _0233F12C
|
|
ldrb r0, [r4, #0x1a9]
|
|
cmp r0, #0
|
|
mvnne r0, #4
|
|
mvneq r0, #3
|
|
str r0, [r6, #0xb8]
|
|
mov r0, #7
|
|
str r0, [r4, #0x1a4]
|
|
_0233F12C:
|
|
add sp, sp, #0x34
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0233F134: .word 0x00000408
|
|
arm_func_end UpdatePlaybackControlsMenu
|
|
|
|
arm_func_start ov09_0233F138
|
|
ov09_0233F138: ; 0x0233F138
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, r0
|
|
ldr r4, [sl, #0xc]
|
|
mov r7, #0
|
|
ldr r0, [r4, #0x100]
|
|
ldr r5, [r4, #0x19c]
|
|
tst r0, #0x200
|
|
ldrne r8, [r4, #0x164]
|
|
ldrsb r0, [sl, #0x10]
|
|
ldr r6, [r4, #0x1a0]
|
|
moveq r8, #0
|
|
bl sub_02027B1C
|
|
b _0233F1DC
|
|
_0233F16C:
|
|
mov r1, #0
|
|
cmp r8, #0
|
|
beq _0233F188
|
|
ldrb r0, [r8]
|
|
add r8, r8, #1
|
|
tst r0, #2
|
|
movne r1, #1
|
|
_0233F188:
|
|
ldr r0, [r4, #4]
|
|
ldrb r0, [r0, #0x14]
|
|
cmp r0, #0
|
|
movne fp, r6
|
|
moveq fp, r5
|
|
cmp r1, #0
|
|
movne sb, #0x42
|
|
moveq sb, #0x44
|
|
mov r1, r7
|
|
add r0, r4, #8
|
|
bl GetPageItemYOffset
|
|
and r1, sb, #0xff
|
|
str r1, [sp]
|
|
mov r2, r0
|
|
ldrsb r0, [sl, #0x10]
|
|
mov r3, fp
|
|
mov r1, #0xd
|
|
bl sub_020263C8
|
|
add r7, r7, #1
|
|
add r5, r5, #0x104
|
|
add r6, r6, #0x104
|
|
_0233F1DC:
|
|
mov r0, r5
|
|
bl IsEmptyString
|
|
cmp r0, #0
|
|
beq _0233F16C
|
|
ldrsb r1, [sl, #0x10]
|
|
add r0, r4, #8
|
|
bl sub_0202A03C
|
|
ldrsb r0, [sl, #0x10]
|
|
bl UpdateWindow
|
|
ldr r1, [r4, #4]
|
|
mov r0, #3
|
|
bl ov01_02330E38
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end ov09_0233F138
|
|
|
|
arm_func_start CreateInputLockBox
|
|
CreateInputLockBox: ; 0x0233F210
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x28
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r0, #0x2b0
|
|
mov r1, #8
|
|
mov r5, r2
|
|
mov r8, r3
|
|
bl MemAlloc
|
|
mov r4, r0
|
|
ldrh r1, [sp, #0x40]
|
|
str r8, [r4, #4]
|
|
add r0, r4, #0x100
|
|
strh r1, [r0, #0xa0]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldrh r2, [r0, #0xa0]
|
|
ldr r3, _0233F3B4 ; =0x0000C402
|
|
add r0, r4, #0x1a8
|
|
mov r1, #0x100
|
|
bl PreprocessStringFromId
|
|
add r0, r4, #0x1a8
|
|
bl sub_020265A8
|
|
cmp r7, #0
|
|
mov ip, r0
|
|
ldreq r0, _0233F3B8 ; =INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS
|
|
str ip, [r4, #0x1a4]
|
|
addeq r7, sp, #0x18
|
|
ldmeqia r0, {r0, r1, r2, r3}
|
|
stmeqia r7, {r0, r1, r2, r3}
|
|
addne lr, sp, #0x18
|
|
ldmneia r7, {r0, r1, r2, r3}
|
|
stmneia lr, {r0, r1, r2, r3}
|
|
ldrne r0, _0233F3BC ; =UpdateInputLockBox
|
|
str r4, [sp, #0x24]
|
|
strne r0, [sp, #0x18]
|
|
ldrb r0, [sp, #0x1e]
|
|
cmp r0, #0
|
|
addeq r1, ip, #7
|
|
moveq r0, r1, asr #2
|
|
addeq r0, r1, r0, lsr #29
|
|
moveq r0, r0, asr #3
|
|
streqb r0, [sp, #0x1e]
|
|
ldrb r0, [sp, #0x1f]
|
|
cmp r0, #0
|
|
moveq r0, #2
|
|
streqb r0, [sp, #0x1f]
|
|
tst r6, #0x200000
|
|
ldrneb r1, [sp, #0x1c]
|
|
ldrneb r0, [sp, #0x1e]
|
|
subne r0, r1, r0
|
|
strneb r0, [sp, #0x1c]
|
|
tst r6, #0x100000
|
|
ldrneb r1, [sp, #0x1d]
|
|
ldrneb r0, [sp, #0x1f]
|
|
subne r0, r1, r0
|
|
strneb r0, [sp, #0x1d]
|
|
ldrb r1, [sp, #0x1e]
|
|
ldr r0, [r4, #0x1a4]
|
|
rsb r0, r0, r1, lsl #3
|
|
add r0, r0, r0, lsr #31
|
|
mov r0, r0, asr #1
|
|
str r0, [r4, #0x2ac]
|
|
ldrb r0, [sp, #0x1f]
|
|
mov r0, r0, lsl #3
|
|
sub r0, r0, #0xc
|
|
add r0, r0, r0, lsr #31
|
|
mov r0, r0, asr #1
|
|
str r0, [r4, #0x2a8]
|
|
ldr r0, [r4, #0x2ac]
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
strlt r0, [r4, #0x2ac]
|
|
ldr r0, _0233F3BC ; =UpdateInputLockBox
|
|
cmp r5, #0
|
|
str r0, [r4]
|
|
str r6, [r4, #0x100]
|
|
beq _0233F368
|
|
add ip, r4, #0x104
|
|
mov r7, #9
|
|
_0233F350:
|
|
ldmia r5!, {r0, r1, r2, r3}
|
|
stmia ip!, {r0, r1, r2, r3}
|
|
subs r7, r7, #1
|
|
bne _0233F350
|
|
ldmia r5, {r0, r1}
|
|
stmia ip, {r0, r1}
|
|
_0233F368:
|
|
mov r2, #0
|
|
add r0, sp, #0x18
|
|
mov r1, #3
|
|
str r2, [r4, #0x19c]
|
|
bl NewWindowScreenCheck
|
|
add r1, sp, #8
|
|
mov r7, r0
|
|
bl GetWindowRectangle
|
|
mov r5, #1
|
|
str r5, [sp]
|
|
add r3, sp, #8
|
|
mov r1, r6
|
|
add r0, r4, #8
|
|
add r2, r4, #0x104
|
|
str r5, [sp, #4]
|
|
bl InitWindowInput
|
|
mov r0, r7
|
|
add sp, sp, #0x28
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0233F3B4: .word 0x0000C402
|
|
_0233F3B8: .word INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS
|
|
_0233F3BC: .word UpdateInputLockBox
|
|
arm_func_end CreateInputLockBox
|
|
|
|
arm_func_start CloseInputLockBox
|
|
CloseInputLockBox: ; 0x0233F3C0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl GetWindowContents
|
|
bl MemFree
|
|
mov r0, r4
|
|
bl DeleteWindow
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end CloseInputLockBox
|
|
|
|
arm_func_start IsInputLockBoxActive
|
|
IsInputLockBoxActive: ; 0x0233F3DC
|
|
stmdb sp!, {r3, lr}
|
|
bl GetWindowContents
|
|
ldr r0, [r0, #0x19c]
|
|
cmp r0, #4
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
and r0, r0, #0xff
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end IsInputLockBoxActive
|
|
|
|
arm_func_start UpdateInputLockBox
|
|
UpdateInputLockBox: ; 0x0233F3FC
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x2c
|
|
mov r5, r0
|
|
ldr r4, [r5, #0xc]
|
|
ldr r0, [r4, #0x19c]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0233F564
|
|
_0233F41C: ; jump table
|
|
b _0233F42C ; case 0
|
|
b _0233F444 ; case 1
|
|
b _0233F48C ; case 2
|
|
b _0233F548 ; case 3
|
|
_0233F42C:
|
|
ldrsb r0, [r5, #0x10]
|
|
bl sub_0202810C
|
|
cmp r0, #0
|
|
beq _0233F564
|
|
mov r0, #1
|
|
str r0, [r4, #0x19c]
|
|
_0233F444:
|
|
ldrsb r0, [r5, #0x10]
|
|
ldr r6, [r5, #0xc]
|
|
bl sub_02027B1C
|
|
ldrsb r0, [r5, #0x10]
|
|
ldr r1, [r6, #0x2ac]
|
|
ldr r2, [r6, #0x2a8]
|
|
add r3, r6, #0x1a8
|
|
bl DrawTextInWindow
|
|
ldrsb r0, [r5, #0x10]
|
|
bl UpdateWindow
|
|
ldr r1, [r6, #4]
|
|
mov r0, #1
|
|
bl ov01_02330E38
|
|
mov r0, #2
|
|
str r0, [r4, #0x19c]
|
|
sub r0, r0, #3
|
|
str r0, [r5, #0xb8]
|
|
b _0233F564
|
|
_0233F48C:
|
|
bl sub_02003B5C
|
|
cmp r0, #0
|
|
#ifdef EUROPE
|
|
add r0, sp, #8
|
|
beq _0233FC28
|
|
mov r5, #0
|
|
bl sub_02006BFC
|
|
b _0233F4AC
|
|
_0233FC28:
|
|
ldr r1, [r4, #0x100]
|
|
#else
|
|
movne r5, #0
|
|
bne _0233F4AC
|
|
ldr r1, [r4, #0x100]
|
|
add r0, sp, #8
|
|
#endif
|
|
bl sub_02031914
|
|
mov r5, r0
|
|
_0233F4AC:
|
|
tst r5, #0xf3
|
|
beq _0233F4CC
|
|
ldr r0, [r4, #4]
|
|
bl ov09_0233DB84
|
|
ldr r0, [r4, #0x100]
|
|
mov r1, #2
|
|
bl sub_02031A3C
|
|
b _0233F538
|
|
_0233F4CC:
|
|
tst r5, #0x100
|
|
beq _0233F4EC
|
|
ldr r0, [r4, #0x100]
|
|
mov r1, #0
|
|
bl sub_02031A3C
|
|
mov r0, #3
|
|
str r0, [r4, #0x19c]
|
|
b _0233F538
|
|
_0233F4EC:
|
|
add r0, sp, #8
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bl sub_02006C8C
|
|
cmp r0, #0
|
|
beq _0233F51C
|
|
ldr r0, [r4, #0x100]
|
|
mov r1, #2
|
|
bl sub_02031A3C
|
|
ldr r0, [r4, #4]
|
|
bl ov09_0233DB84
|
|
b _0233F538
|
|
_0233F51C:
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
mov r2, r5
|
|
add r1, r4, #8
|
|
mov r3, #0
|
|
bl ov09_0233DB90
|
|
_0233F538:
|
|
ldr r1, [r4, #4]
|
|
mov r0, #1
|
|
bl ov01_02330E38
|
|
b _0233F564
|
|
_0233F548:
|
|
ldrsb r0, [r5, #0x10]
|
|
bl sub_0202812C
|
|
cmp r0, #0
|
|
mvnne r0, #4
|
|
strne r0, [r5, #0xb8]
|
|
movne r0, #4
|
|
strne r0, [r4, #0x19c]
|
|
_0233F564:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
arm_func_end UpdateInputLockBox
|
|
; 0x0233F56C
|
|
|
|
.rodata
|
|
.global ov09_0233F56C
|
|
ov09_0233F56C:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0C, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov09_0233F57C
|
|
ov09_0233F57C:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov09_0233F58C
|
|
ov09_0233F58C:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1C, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov09_0233F59C
|
|
ov09_0233F59C:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x1C, 0x02, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov09_0233F5AC
|
|
ov09_0233F5AC:
|
|
#ifdef JAPAN
|
|
#define OV09_DATA_OFFSET 0x4A
|
|
#else
|
|
#define OV09_DATA_OFFSET 0
|
|
#endif
|
|
.word 0x4F3 + OV09_DATA_OFFSET
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
.word 0x4F5 + OV09_DATA_OFFSET
|
|
.byte 0x04, 0x00, 0x00, 0x00
|
|
.word 0x4F6 + OV09_DATA_OFFSET
|
|
.byte 0x05, 0x00, 0x00, 0x00
|
|
.word 0x4F7 + OV09_DATA_OFFSET
|
|
.byte 0x06, 0x00, 0x00, 0x00
|
|
.word 0x4F8 + OV09_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x4F9 + OV09_DATA_OFFSET
|
|
.byte 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.global ov09_0233F5E4
|
|
ov09_0233F5E4:
|
|
.word 0x4F4 + OV09_DATA_OFFSET
|
|
.byte 0x03, 0x00, 0x00, 0x00
|
|
.word 0x4F5 + OV09_DATA_OFFSET
|
|
.byte 0x04, 0x00, 0x00, 0x00
|
|
.word 0x4F6 + OV09_DATA_OFFSET
|
|
.byte 0x05, 0x00, 0x00, 0x00
|
|
.word 0x4F7 + OV09_DATA_OFFSET
|
|
.byte 0x06, 0x00, 0x00, 0x00
|
|
.word 0x4F8 + OV09_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x4F9 + OV09_DATA_OFFSET
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.global ov09_0233F61C
|
|
ov09_0233F61C:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x6C, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00
|
|
.byte 0x75, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov09_0233F664
|
|
ov09_0233F664:
|
|
.byte 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x45, 0x00
|
|
.byte 0x15, 0x00, 0x0E, 0x00, 0x82, 0x00, 0x07, 0x00, 0x49, 0x00, 0x46, 0x00, 0x08, 0x00, 0x16, 0x00
|
|
.byte 0x05, 0x00, 0x09, 0x00, 0x83, 0x00, 0x4A, 0x00, 0x4C, 0x00, 0x17, 0x00, 0x0F, 0x00, 0x4E, 0x00
|
|
.byte 0x04, 0x00, 0x0D, 0x00, 0x4F, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x86, 0x00, 0x9F, 0x00, 0xA0, 0x00
|
|
.byte 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00
|
|
.byte 0x21, 0x00, 0x0B, 0x00, 0x85, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00
|
|
.byte 0x48, 0x00, 0x50, 0x00, 0x51, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00
|
|
.byte 0x2C, 0x00, 0x4B, 0x00, 0x3D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x11, 0x00
|
|
.byte 0x4D, 0x00, 0x52, 0x00, 0x53, 0x00, 0x32, 0x00, 0x33, 0x00, 0x6C, 0x00, 0x84, 0x00, 0x10, 0x00
|
|
.byte 0x54, 0x00, 0x55, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x56, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00
|
|
.byte 0x5B, 0x00, 0x34, 0x00, 0x0A, 0x00, 0xB1, 0x00, 0x9B, 0x00, 0x5F, 0x00, 0x9C, 0x00, 0x61, 0x00
|
|
.byte 0x9D, 0x00, 0x9E, 0x00, 0x35, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x12, 0x00, 0x39, 0x00
|
|
.byte 0x3A, 0x00, 0x3B, 0x00, 0x7B, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x37, 0x00, 0x2D, 0x00, 0x91, 0x00
|
|
.byte 0x03, 0x00, 0x81, 0x00, 0x87, 0x00, 0x88, 0x00, 0x89, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8A, 0x00
|
|
.byte 0x5E, 0x00, 0xB0, 0x00, 0x92, 0x00, 0x93, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0x62, 0x00
|
|
.byte 0x63, 0x00, 0x8C, 0x00, 0xA6, 0x00, 0x60, 0x00, 0x8B, 0x00, 0xA1, 0x00, 0x8F, 0x00, 0x90, 0x00
|
|
.byte 0xA5, 0x00, 0xA7, 0x00, 0x94, 0x00, 0x95, 0x00, 0x96, 0x00, 0x97, 0x00, 0xA8, 0x00, 0x98, 0x00
|
|
.byte 0xA9, 0x00, 0x99, 0x00, 0x9A, 0x00, 0xAA, 0x00, 0xAB, 0x00, 0xAE, 0x00, 0xAC, 0x00, 0xAF, 0x00
|
|
.byte 0xAD, 0x00, 0x00, 0x00
|
|
.global ov09_0233F780
|
|
ov09_0233F780:
|
|
.byte 0x42, 0x41, 0x43, 0x4B, 0x2F, 0x73, 0x31, 0x38, 0x70, 0x30, 0x32, 0x61
|
|
.byte 0x2E, 0x62, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00
|
|
.global JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS
|
|
JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS:
|
|
.word UpdateJukeboxTrackMenu
|
|
.byte 0x1E, 0x0F, 0x00, 0x00
|
|
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS
|
|
PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS:
|
|
.word UpdatePlaybackControlsMenu
|
|
.byte 0x1E, 0x0F, 0x00, 0x00
|
|
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS
|
|
INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS:
|
|
.word UpdateInputLockBox
|
|
.byte 0x0A, 0x08, 0x0C, 0x02
|
|
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.data
|
|
.global ov09_0233F7E0
|
|
ov09_0233F7E0:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|