mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 18:02:16 +00:00
non matching sub_8063DCC, decompile sub_80641B0
This commit is contained in:
1 parent
61ee717b00
commit
fccc22f6b8
4 files changed
+657
-673
No files matched your search
Whitespace-only changes.
@@ -0,0 +1,498 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
.text
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x40
|
||||
mov sb, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
str r1, [sp, #0x20]
|
||||
ldr r0, _08064008 @ =0x0000035B
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
str r0, [sp, #0x24]
|
||||
movs r0, #0xf9
|
||||
lsls r0, r0, #2
|
||||
add r0, sb
|
||||
ldr r6, _0806400C @ =0x00000414
|
||||
add r6, sb
|
||||
ldr r1, _08064010 @ =0x00000594
|
||||
add r1, sb
|
||||
mov sl, r1
|
||||
ldr r2, _08064014 @ =0x00000654
|
||||
add r2, sb
|
||||
str r2, [sp, #0x28]
|
||||
ldr r3, [sp, #0x24]
|
||||
lsls r4, r3, #3
|
||||
ldr r1, _08064018 @ =gUnknown_080D95E8
|
||||
adds r4, r4, r1
|
||||
ldrh r2, [r4, #4]
|
||||
ldrh r3, [r4]
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #6
|
||||
str r1, [sp]
|
||||
movs r5, #0
|
||||
str r5, [sp, #4]
|
||||
movs r1, #0xf
|
||||
str r1, [sp, #8]
|
||||
str r1, [sp, #0xc]
|
||||
ldrb r1, [r4, #2]
|
||||
str r1, [sp, #0x10]
|
||||
str r5, [sp, #0x14]
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
movs r1, #0x1e
|
||||
str r1, [sp, #0x2c]
|
||||
ldr r2, [sp, #0x24]
|
||||
lsls r2, r2, #6
|
||||
str r2, [sp, #0x34]
|
||||
ldr r3, [sp, #0x20]
|
||||
lsls r0, r3, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #0x38]
|
||||
_08063E3C:
|
||||
movs r0, #0xd7
|
||||
lsls r0, r0, #2
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
mov r2, r8
|
||||
lsls r1, r2, #0x10
|
||||
cmp r0, #0
|
||||
bne _08063E56
|
||||
asrs r0, r1, #0x10
|
||||
ldr r3, [sp, #0x20]
|
||||
lsls r5, r3, #0x10
|
||||
cmp r0, #5
|
||||
beq _08063EBA
|
||||
_08063E56:
|
||||
asrs r2, r1, #0x10
|
||||
lsls r0, r2, #3
|
||||
ldr r1, _0806401C @ =gUnknown_080D9618
|
||||
adds r0, r0, r1
|
||||
ldr r3, [sp, #0x34]
|
||||
adds r1, r3, r0
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #3
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
movs r7, #0x28
|
||||
cmp r0, r2
|
||||
bne _08063E76
|
||||
movs r7, #0x20
|
||||
_08063E76:
|
||||
ldr r0, [sp, #0x20]
|
||||
lsls r5, r0, #0x10
|
||||
ldr r3, [sp, #0x38]
|
||||
cmp r3, #1
|
||||
bne _08063E86
|
||||
cmp r2, #0
|
||||
bne _08063E86
|
||||
ldr r7, _08064020 @ =0x0000FF48
|
||||
_08063E86:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
lsls r0, r7, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [sp, #0x2c]
|
||||
lsls r4, r0, #0x10
|
||||
asrs r4, r4, #0x10
|
||||
str r4, [sp, #8]
|
||||
movs r0, #0xd
|
||||
str r0, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
movs r0, #0
|
||||
str r0, [sp, #0x14]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
adds r4, #0xf
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
str r4, [sp, #0x2c]
|
||||
_08063EBA:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #0x10
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #9
|
||||
adds r0, r0, r2
|
||||
adds r6, #0x30
|
||||
lsrs r3, r0, #0x10
|
||||
mov r8, r3
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #0x30]
|
||||
cmp r0, #7
|
||||
ble _08063E3C
|
||||
movs r6, #0xf0
|
||||
lsls r6, r6, #3
|
||||
add r6, sb
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r1, #0xa0
|
||||
cmp r0, #0
|
||||
bne _08063EE4
|
||||
movs r1, #0x98
|
||||
_08063EE4:
|
||||
adds r7, r1, #0
|
||||
asrs r5, r5, #0x10
|
||||
str r5, [sp, #0x3c]
|
||||
cmp r5, #1
|
||||
bne _08063EF0
|
||||
ldr r7, _08064024 @ =0x0000FFC0
|
||||
_08063EF0:
|
||||
ldr r3, _08064028 @ =0x000003BA
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
lsls r0, r7, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #4]
|
||||
movs r0, #0x1e
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0xc
|
||||
str r0, [sp, #0xc]
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
str r1, [sp, #0x10]
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r2, #0x12
|
||||
bl sub_806A568
|
||||
movs r2, #0x30
|
||||
add sl, r2
|
||||
ldr r3, [sp, #0x24]
|
||||
lsls r5, r3, #4
|
||||
ldr r0, _0806402C @ =0x00000359
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08064030 @ =gUnknown_080D9798
|
||||
adds r0, r0, r1
|
||||
adds r1, r5, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r4, #0xa0
|
||||
cmp r0, #1
|
||||
bne _08063F38
|
||||
movs r4, #0x98
|
||||
_08063F38:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
movs r0, #0x2d
|
||||
str r0, [sp, #8]
|
||||
movs r7, #0xa
|
||||
str r7, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r2, #0x30
|
||||
add sl, r2
|
||||
ldr r0, _08064034 @ =0x0000035A
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08064038 @ =gUnknown_080D97F8
|
||||
adds r0, r0, r1
|
||||
adds r1, r5, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r4, #0xa0
|
||||
cmp r0, #2
|
||||
bne _08063F7A
|
||||
movs r4, #0x98
|
||||
_08063F7A:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
movs r0, #0x3c
|
||||
str r0, [sp, #8]
|
||||
str r7, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r2, #0x30
|
||||
add sl, r2
|
||||
ldr r3, [sp, #0x24]
|
||||
lsls r1, r3, #3
|
||||
ldr r0, _0806403C @ =gUnknown_080D9858
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r4, #0xa0
|
||||
cmp r0, #3
|
||||
bne _08063FB4
|
||||
movs r4, #0x98
|
||||
_08063FB4:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
movs r0, #0x4b
|
||||
str r0, [sp, #8]
|
||||
str r7, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r1, #0xab
|
||||
cmp r0, #0
|
||||
bne _08063FE2
|
||||
movs r1, #0xa3
|
||||
_08063FE2:
|
||||
adds r7, r1, #0
|
||||
ldr r2, [sp, #0x3c]
|
||||
cmp r2, #1
|
||||
bne _08063FF2
|
||||
ldr r3, [sp, #0x30]
|
||||
cmp r3, #0
|
||||
bne _08063FF2
|
||||
ldr r7, _08064040 @ =0x0000FFCB
|
||||
_08063FF2:
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
movs r1, #0x26
|
||||
str r1, [sp, #0x2c]
|
||||
mov sl, r0
|
||||
_08063FFC:
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
beq _08064044
|
||||
movs r1, #0x11
|
||||
b _0806404E
|
||||
.align 2, 0
|
||||
_08064008: .4byte 0x0000035B
|
||||
_0806400C: .4byte 0x00000414
|
||||
_08064010: .4byte 0x00000594
|
||||
_08064014: .4byte 0x00000654
|
||||
_08064018: .4byte gUnknown_080D95E8
|
||||
_0806401C: .4byte gUnknown_080D9618
|
||||
_08064020: .4byte 0x0000FF48
|
||||
_08064024: .4byte 0x0000FFC0
|
||||
_08064028: .4byte 0x000003BA
|
||||
_0806402C: .4byte 0x00000359
|
||||
_08064030: .4byte gUnknown_080D9798
|
||||
_08064034: .4byte 0x0000035A
|
||||
_08064038: .4byte gUnknown_080D97F8
|
||||
_0806403C: .4byte gUnknown_080D9858
|
||||
_08064040: .4byte 0x0000FFCB
|
||||
_08064044:
|
||||
mov r3, r8
|
||||
lsls r0, r3, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
add r0, sb
|
||||
ldrh r1, [r0]
|
||||
_0806404E:
|
||||
ldr r0, _080640FC @ =0x0000FFFF
|
||||
cmp r1, r0
|
||||
bne _0806405A
|
||||
movs r1, #0x11
|
||||
movs r0, #1
|
||||
mov sl, r0
|
||||
_0806405A:
|
||||
add r0, sp, #0x18
|
||||
bl sub_806B908
|
||||
ldr r4, [sp, #0x18]
|
||||
ldr r5, [sp, #0x1c]
|
||||
lsls r3, r5, #0x10
|
||||
lsrs r3, r3, #0x10
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
lsls r0, r7, #0x10
|
||||
asrs r6, r0, #0x10
|
||||
str r6, [sp, #4]
|
||||
ldr r1, [sp, #0x2c]
|
||||
lsls r0, r1, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0xa
|
||||
str r0, [sp, #0xc]
|
||||
lsrs r0, r5, #0x10
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
str r0, [sp, #0x10]
|
||||
movs r0, #0
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [sp, #0x28]
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_806A568
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #3
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
movs r1, #8
|
||||
cmp r0, #0
|
||||
bne _080640AA
|
||||
movs r1, #7
|
||||
_080640AA:
|
||||
ldr r0, [sp, #0x28]
|
||||
adds r0, #0x25
|
||||
strb r1, [r0]
|
||||
mov r2, r8
|
||||
lsls r1, r2, #0x10
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #9
|
||||
adds r1, r1, r3
|
||||
ldr r0, [sp, #0x28]
|
||||
adds r0, #0x30
|
||||
str r0, [sp, #0x28]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0xa
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r7, r0, #0x10
|
||||
lsrs r2, r1, #0x10
|
||||
mov r8, r2
|
||||
asrs r1, r1, #0x10
|
||||
cmp r1, #5
|
||||
ble _08063FFC
|
||||
movs r3, #0
|
||||
mov r8, r3
|
||||
movs r5, #0xf0
|
||||
lsls r5, r5, #3
|
||||
add r5, sb
|
||||
movs r7, #0
|
||||
movs r6, #1
|
||||
ldr r4, _08064100 @ =0x000005B9
|
||||
add r4, sb
|
||||
ldr r3, _08064104 @ =0x00000439
|
||||
add r3, sb
|
||||
_080640E8:
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
mov r2, r8
|
||||
lsls r1, r2, #0x10
|
||||
asrs r2, r1, #0x10
|
||||
cmp r0, r2
|
||||
bne _08064108
|
||||
strb r7, [r3]
|
||||
b _0806410A
|
||||
.align 2, 0
|
||||
_080640FC: .4byte 0x0000FFFF
|
||||
_08064100: .4byte 0x000005B9
|
||||
_08064104: .4byte 0x00000439
|
||||
_08064108:
|
||||
strb r6, [r3]
|
||||
_0806410A:
|
||||
adds r3, #0x30
|
||||
asrs r2, r1, #0x10
|
||||
cmp r2, #3
|
||||
bgt _08064122
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, r2
|
||||
bne _0806411E
|
||||
strb r7, [r4]
|
||||
b _08064120
|
||||
_0806411E:
|
||||
strb r6, [r4]
|
||||
_08064120:
|
||||
adds r4, #0x30
|
||||
_08064122:
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #9
|
||||
adds r0, r1, r2
|
||||
lsrs r1, r0, #0x10
|
||||
mov r8, r1
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #7
|
||||
ble _080640E8
|
||||
movs r6, #0
|
||||
movs r4, #0xf1
|
||||
lsls r4, r4, #2
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
str r6, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
movs r0, #1
|
||||
str r0, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
subs r4, #1
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
movs r0, #0xc
|
||||
str r0, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
movs r0, #0xd
|
||||
str r0, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
add sp, #0x40
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
||||
.syntax divided
|
||||
-665
@@ -7,671 +7,6 @@
|
||||
@; Unlikely to all be profile but a large section
|
||||
@; but a large section seems to relate to it
|
||||
|
||||
thumb_func_start sub_8063DCC
|
||||
sub_8063DCC: @ 0x08063DCC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x40
|
||||
mov sb, r0
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
str r1, [sp, #0x20]
|
||||
ldr r0, _08064008 @ =0x0000035B
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
str r0, [sp, #0x24]
|
||||
movs r0, #0xf9
|
||||
lsls r0, r0, #2
|
||||
add r0, sb
|
||||
ldr r6, _0806400C @ =0x00000414
|
||||
add r6, sb
|
||||
ldr r1, _08064010 @ =0x00000594
|
||||
add r1, sb
|
||||
mov sl, r1
|
||||
ldr r2, _08064014 @ =0x00000654
|
||||
add r2, sb
|
||||
str r2, [sp, #0x28]
|
||||
ldr r3, [sp, #0x24]
|
||||
lsls r4, r3, #3
|
||||
ldr r1, _08064018 @ =gUnknown_080D95E8
|
||||
adds r4, r4, r1
|
||||
ldrh r2, [r4, #4]
|
||||
ldrh r3, [r4]
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #6
|
||||
str r1, [sp]
|
||||
movs r5, #0
|
||||
str r5, [sp, #4]
|
||||
movs r1, #0xf
|
||||
str r1, [sp, #8]
|
||||
str r1, [sp, #0xc]
|
||||
ldrb r1, [r4, #2]
|
||||
str r1, [sp, #0x10]
|
||||
str r5, [sp, #0x14]
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
movs r1, #0x1e
|
||||
str r1, [sp, #0x2c]
|
||||
ldr r2, [sp, #0x24]
|
||||
lsls r2, r2, #6
|
||||
str r2, [sp, #0x34]
|
||||
ldr r3, [sp, #0x20]
|
||||
lsls r0, r3, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #0x38]
|
||||
_08063E3C:
|
||||
movs r0, #0xd7
|
||||
lsls r0, r0, #2
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
mov r2, r8
|
||||
lsls r1, r2, #0x10
|
||||
cmp r0, #0
|
||||
bne _08063E56
|
||||
asrs r0, r1, #0x10
|
||||
ldr r3, [sp, #0x20]
|
||||
lsls r5, r3, #0x10
|
||||
cmp r0, #5
|
||||
beq _08063EBA
|
||||
_08063E56:
|
||||
asrs r2, r1, #0x10
|
||||
lsls r0, r2, #3
|
||||
ldr r1, _0806401C @ =gUnknown_080D9618
|
||||
adds r0, r0, r1
|
||||
ldr r3, [sp, #0x34]
|
||||
adds r1, r3, r0
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #3
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
movs r7, #0x28
|
||||
cmp r0, r2
|
||||
bne _08063E76
|
||||
movs r7, #0x20
|
||||
_08063E76:
|
||||
ldr r0, [sp, #0x20]
|
||||
lsls r5, r0, #0x10
|
||||
ldr r3, [sp, #0x38]
|
||||
cmp r3, #1
|
||||
bne _08063E86
|
||||
cmp r2, #0
|
||||
bne _08063E86
|
||||
ldr r7, _08064020 @ =0x0000FF48
|
||||
_08063E86:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
lsls r0, r7, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [sp, #0x2c]
|
||||
lsls r4, r0, #0x10
|
||||
asrs r4, r4, #0x10
|
||||
str r4, [sp, #8]
|
||||
movs r0, #0xd
|
||||
str r0, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
movs r0, #0
|
||||
str r0, [sp, #0x14]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
adds r4, #0xf
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
str r4, [sp, #0x2c]
|
||||
_08063EBA:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #0x10
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #9
|
||||
adds r0, r0, r2
|
||||
adds r6, #0x30
|
||||
lsrs r3, r0, #0x10
|
||||
mov r8, r3
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #0x30]
|
||||
cmp r0, #7
|
||||
ble _08063E3C
|
||||
movs r6, #0xf0
|
||||
lsls r6, r6, #3
|
||||
add r6, sb
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r1, #0xa0
|
||||
cmp r0, #0
|
||||
bne _08063EE4
|
||||
movs r1, #0x98
|
||||
_08063EE4:
|
||||
adds r7, r1, #0
|
||||
asrs r5, r5, #0x10
|
||||
str r5, [sp, #0x3c]
|
||||
cmp r5, #1
|
||||
bne _08063EF0
|
||||
ldr r7, _08064024 @ =0x0000FFC0
|
||||
_08063EF0:
|
||||
ldr r3, _08064028 @ =0x000003BA
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
lsls r0, r7, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #4]
|
||||
movs r0, #0x1e
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0xc
|
||||
str r0, [sp, #0xc]
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
str r1, [sp, #0x10]
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r2, #0x12
|
||||
bl sub_806A568
|
||||
movs r2, #0x30
|
||||
add sl, r2
|
||||
ldr r3, [sp, #0x24]
|
||||
lsls r5, r3, #4
|
||||
ldr r0, _0806402C @ =0x00000359
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08064030 @ =gUnknown_080D9798
|
||||
adds r0, r0, r1
|
||||
adds r1, r5, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r4, #0xa0
|
||||
cmp r0, #1
|
||||
bne _08063F38
|
||||
movs r4, #0x98
|
||||
_08063F38:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
movs r0, #0x2d
|
||||
str r0, [sp, #8]
|
||||
movs r7, #0xa
|
||||
str r7, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r2, #0x30
|
||||
add sl, r2
|
||||
ldr r0, _08064034 @ =0x0000035A
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08064038 @ =gUnknown_080D97F8
|
||||
adds r0, r0, r1
|
||||
adds r1, r5, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r4, #0xa0
|
||||
cmp r0, #2
|
||||
bne _08063F7A
|
||||
movs r4, #0x98
|
||||
_08063F7A:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
movs r0, #0x3c
|
||||
str r0, [sp, #8]
|
||||
str r7, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r2, #0x30
|
||||
add sl, r2
|
||||
ldr r3, [sp, #0x24]
|
||||
lsls r1, r3, #3
|
||||
ldr r0, _0806403C @ =gUnknown_080D9858
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r4, #0xa0
|
||||
cmp r0, #3
|
||||
bne _08063FB4
|
||||
movs r4, #0x98
|
||||
_08063FB4:
|
||||
ldrh r2, [r1, #4]
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
str r4, [sp, #4]
|
||||
movs r0, #0x4b
|
||||
str r0, [sp, #8]
|
||||
str r7, [sp, #0xc]
|
||||
ldrb r0, [r1, #2]
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, r8
|
||||
str r1, [sp, #0x14]
|
||||
mov r0, sl
|
||||
movs r1, #0
|
||||
bl sub_806A568
|
||||
movs r0, #0
|
||||
ldrsb r0, [r6, r0]
|
||||
movs r1, #0xab
|
||||
cmp r0, #0
|
||||
bne _08063FE2
|
||||
movs r1, #0xa3
|
||||
_08063FE2:
|
||||
adds r7, r1, #0
|
||||
ldr r2, [sp, #0x3c]
|
||||
cmp r2, #1
|
||||
bne _08063FF2
|
||||
ldr r3, [sp, #0x30]
|
||||
cmp r3, #0
|
||||
bne _08063FF2
|
||||
ldr r7, _08064040 @ =0x0000FFCB
|
||||
_08063FF2:
|
||||
movs r0, #0
|
||||
mov r8, r0
|
||||
movs r1, #0x26
|
||||
str r1, [sp, #0x2c]
|
||||
mov sl, r0
|
||||
_08063FFC:
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
beq _08064044
|
||||
movs r1, #0x11
|
||||
b _0806404E
|
||||
.align 2, 0
|
||||
_08064008: .4byte 0x0000035B
|
||||
_0806400C: .4byte 0x00000414
|
||||
_08064010: .4byte 0x00000594
|
||||
_08064014: .4byte 0x00000654
|
||||
_08064018: .4byte gUnknown_080D95E8
|
||||
_0806401C: .4byte gUnknown_080D9618
|
||||
_08064020: .4byte 0x0000FF48
|
||||
_08064024: .4byte 0x0000FFC0
|
||||
_08064028: .4byte 0x000003BA
|
||||
_0806402C: .4byte 0x00000359
|
||||
_08064030: .4byte gUnknown_080D9798
|
||||
_08064034: .4byte 0x0000035A
|
||||
_08064038: .4byte gUnknown_080D97F8
|
||||
_0806403C: .4byte gUnknown_080D9858
|
||||
_08064040: .4byte 0x0000FFCB
|
||||
_08064044:
|
||||
mov r3, r8
|
||||
lsls r0, r3, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
add r0, sb
|
||||
ldrh r1, [r0]
|
||||
_0806404E:
|
||||
ldr r0, _080640FC @ =0x0000FFFF
|
||||
cmp r1, r0
|
||||
bne _0806405A
|
||||
movs r1, #0x11
|
||||
movs r0, #1
|
||||
mov sl, r0
|
||||
_0806405A:
|
||||
add r0, sp, #0x18
|
||||
bl sub_806B908
|
||||
ldr r4, [sp, #0x18]
|
||||
ldr r5, [sp, #0x1c]
|
||||
lsls r3, r5, #0x10
|
||||
lsrs r3, r3, #0x10
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
str r0, [sp]
|
||||
lsls r0, r7, #0x10
|
||||
asrs r6, r0, #0x10
|
||||
str r6, [sp, #4]
|
||||
ldr r1, [sp, #0x2c]
|
||||
lsls r0, r1, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
str r0, [sp, #8]
|
||||
movs r0, #0xa
|
||||
str r0, [sp, #0xc]
|
||||
lsrs r0, r5, #0x10
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
str r0, [sp, #0x10]
|
||||
movs r0, #0
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [sp, #0x28]
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_806A568
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #3
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
movs r1, #8
|
||||
cmp r0, #0
|
||||
bne _080640AA
|
||||
movs r1, #7
|
||||
_080640AA:
|
||||
ldr r0, [sp, #0x28]
|
||||
adds r0, #0x25
|
||||
strb r1, [r0]
|
||||
mov r2, r8
|
||||
lsls r1, r2, #0x10
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #9
|
||||
adds r1, r1, r3
|
||||
ldr r0, [sp, #0x28]
|
||||
adds r0, #0x30
|
||||
str r0, [sp, #0x28]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0xa
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r7, r0, #0x10
|
||||
lsrs r2, r1, #0x10
|
||||
mov r8, r2
|
||||
asrs r1, r1, #0x10
|
||||
cmp r1, #5
|
||||
ble _08063FFC
|
||||
movs r3, #0
|
||||
mov r8, r3
|
||||
movs r5, #0xf0
|
||||
lsls r5, r5, #3
|
||||
add r5, sb
|
||||
movs r7, #0
|
||||
movs r6, #1
|
||||
ldr r4, _08064100 @ =0x000005B9
|
||||
add r4, sb
|
||||
ldr r3, _08064104 @ =0x00000439
|
||||
add r3, sb
|
||||
_080640E8:
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
mov r2, r8
|
||||
lsls r1, r2, #0x10
|
||||
asrs r2, r1, #0x10
|
||||
cmp r0, r2
|
||||
bne _08064108
|
||||
strb r7, [r3]
|
||||
b _0806410A
|
||||
.align 2, 0
|
||||
_080640FC: .4byte 0x0000FFFF
|
||||
_08064100: .4byte 0x000005B9
|
||||
_08064104: .4byte 0x00000439
|
||||
_08064108:
|
||||
strb r6, [r3]
|
||||
_0806410A:
|
||||
adds r3, #0x30
|
||||
asrs r2, r1, #0x10
|
||||
cmp r2, #3
|
||||
bgt _08064122
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, r2
|
||||
bne _0806411E
|
||||
strb r7, [r4]
|
||||
b _08064120
|
||||
_0806411E:
|
||||
strb r6, [r4]
|
||||
_08064120:
|
||||
adds r4, #0x30
|
||||
_08064122:
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #9
|
||||
adds r0, r1, r2
|
||||
lsrs r1, r0, #0x10
|
||||
mov r8, r1
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #7
|
||||
ble _080640E8
|
||||
movs r6, #0
|
||||
movs r4, #0xf1
|
||||
lsls r4, r4, #2
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
str r6, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
movs r0, #1
|
||||
str r0, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
subs r4, #1
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
movs r0, #0xc
|
||||
str r0, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
str r6, [sp]
|
||||
str r6, [sp, #4]
|
||||
str r6, [sp, #8]
|
||||
str r6, [sp, #0xc]
|
||||
movs r0, #0xd
|
||||
str r0, [sp, #0x10]
|
||||
str r6, [sp, #0x14]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_806A568
|
||||
add sp, #0x40
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
||||
thumb_func_start sub_80641B0
|
||||
sub_80641B0: @ 0x080641B0
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _080641EC @ =gCurTask
|
||||
ldr r0, [r0]
|
||||
ldrh r4, [r0, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x12
|
||||
adds r5, r4, r0
|
||||
bl sub_80649A4
|
||||
ldr r0, _080641F0 @ =gPressedKeys
|
||||
ldrh r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806421A
|
||||
movs r0, #0x6a
|
||||
bl m4aSongNumStart
|
||||
ldr r1, _080641F4 @ =gUnknown_03000780
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #5
|
||||
beq _08064208
|
||||
cmp r0, #5
|
||||
bgt _080641F8
|
||||
cmp r0, #3
|
||||
beq _08064202
|
||||
b _08064214
|
||||
.align 2, 0
|
||||
_080641EC: .4byte gCurTask
|
||||
_080641F0: .4byte gPressedKeys
|
||||
_080641F4: .4byte gUnknown_03000780
|
||||
_080641F8:
|
||||
cmp r0, #6
|
||||
beq _0806420E
|
||||
cmp r0, #7
|
||||
beq _0806422C
|
||||
b _08064214
|
||||
_08064202:
|
||||
bl sub_806A8EC
|
||||
b _080642F0
|
||||
_08064208:
|
||||
bl sub_806A99C
|
||||
b _080642F0
|
||||
_0806420E:
|
||||
bl sub_806AA4C
|
||||
b _080642F0
|
||||
_08064214:
|
||||
bl sub_806A814
|
||||
b _080642F0
|
||||
_0806421A:
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
beq _08064232
|
||||
movs r0, #0x6b
|
||||
bl m4aSongNumStart
|
||||
_0806422C:
|
||||
bl sub_806ACF0
|
||||
b _080642F0
|
||||
_08064232:
|
||||
ldr r0, _08064260 @ =gRepeatedKeys
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806428C
|
||||
movs r0, #0x6c
|
||||
bl m4aSongNumStart
|
||||
ldr r3, _08064264 @ =gUnknown_03000780
|
||||
adds r2, r4, r3
|
||||
ldrb r0, [r2]
|
||||
adds r3, #1
|
||||
adds r1, r4, r3
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #6
|
||||
ble _08064268
|
||||
strb r6, [r2]
|
||||
b _0806426C
|
||||
.align 2, 0
|
||||
_08064260: .4byte gRepeatedKeys
|
||||
_08064264: .4byte gUnknown_03000780
|
||||
_08064268:
|
||||
adds r0, r1, #1
|
||||
strb r0, [r2]
|
||||
_0806426C:
|
||||
movs r1, #0xd7
|
||||
lsls r1, r1, #2
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080642E0
|
||||
movs r3, #0xf0
|
||||
lsls r3, r3, #3
|
||||
adds r1, r5, r3
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #5
|
||||
bne _080642E0
|
||||
adds r0, r2, #1
|
||||
b _080642DE
|
||||
_0806428C:
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080642F0
|
||||
movs r0, #0x6c
|
||||
bl m4aSongNumStart
|
||||
ldr r1, _080642B4 @ =gUnknown_03000780
|
||||
adds r2, r4, r1
|
||||
ldrb r0, [r2]
|
||||
ldr r3, _080642B8 @ =gUnknown_03000781
|
||||
adds r1, r4, r3
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0
|
||||
bgt _080642BC
|
||||
movs r0, #7
|
||||
b _080642BE
|
||||
.align 2, 0
|
||||
_080642B4: .4byte gUnknown_03000780
|
||||
_080642B8: .4byte gUnknown_03000781
|
||||
_080642BC:
|
||||
subs r0, r1, #1
|
||||
_080642BE:
|
||||
strb r0, [r2]
|
||||
movs r1, #0xd7
|
||||
lsls r1, r1, #2
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080642E0
|
||||
movs r3, #0xf0
|
||||
lsls r3, r3, #3
|
||||
adds r1, r5, r3
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #5
|
||||
bne _080642E0
|
||||
subs r0, r2, #1
|
||||
_080642DE:
|
||||
strb r0, [r1]
|
||||
_080642E0:
|
||||
ldr r0, _080642F8 @ =0x00000783
|
||||
adds r1, r5, r0
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
ldr r0, _080642FC @ =gCurTask
|
||||
ldr r1, [r0]
|
||||
ldr r0, _08064300 @ =sub_8064304
|
||||
str r0, [r1, #8]
|
||||
_080642F0:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080642F8: .4byte 0x00000783
|
||||
_080642FC: .4byte gCurTask
|
||||
_08064300: .4byte sub_8064304
|
||||
|
||||
thumb_func_start sub_8064304
|
||||
sub_8064304: @ 0x08064304
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
||||
+159
-8
@@ -400,20 +400,37 @@ struct UNK_080D95E8 {
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
struct UNK_806B908 {
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
extern const struct UNK_080D95E8 gUnknown_080D95E8[6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D9618[8][6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D9798[2][6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D97F8[2][6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D9618[8 * 6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D9798[2 * 6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D97F8[2 * 6];
|
||||
extern const struct UNK_080D95E8 gUnknown_080D9858[6];
|
||||
|
||||
extern void sub_806A568(struct UNK_0808B3FC_UNK240*, s32, u16, u16, u32, u16, u16, u32, u8, u8);
|
||||
extern void sub_806B908(struct UNK_806B908*, u16);
|
||||
|
||||
#ifndef NON_MATCHING
|
||||
ASM_FUNC("asm/non_matching/sub_8063DCC.inc", void sub_8063DCC(struct UNK_8063730* optionsScreen, u16 p2))
|
||||
#else
|
||||
// https://decomp.me/scratch/EzQR3
|
||||
void sub_8063DCC(struct UNK_8063730* optionsScreen, u16 p2) {
|
||||
s32 i;
|
||||
u16 itemPos;
|
||||
u16 otherPos;
|
||||
|
||||
u16 var4;
|
||||
s16 temp0;
|
||||
u32 bVar1;
|
||||
|
||||
struct UNK_806B908 local48;
|
||||
struct UNK_0808B3FC_UNK240* option414;
|
||||
struct UNK_0808B3FC_UNK240* option594;
|
||||
|
||||
|
||||
u8 language = optionsScreen->unk35B;
|
||||
struct UNK_0808B3FC_UNK240* options414 = optionsScreen->unk414;
|
||||
struct UNK_0808B3FC_UNK240* options594 = optionsScreen->unk594;
|
||||
@@ -437,7 +454,7 @@ void sub_8063DCC(struct UNK_8063730* optionsScreen, u16 p2) {
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (optionsScreen->unk35C || i != 5) {
|
||||
itemText = &gUnknown_080D9618[i][language];
|
||||
itemText = &gUnknown_080D9618[i + language];
|
||||
temp0 = 0x28;
|
||||
|
||||
if (optionsScreen->unk780 == i) {
|
||||
@@ -485,7 +502,7 @@ void sub_8063DCC(struct UNK_8063730* optionsScreen, u16 p2) {
|
||||
0
|
||||
);
|
||||
|
||||
itemText = &gUnknown_080D9798[optionsScreen->unk359][language];
|
||||
itemText = &gUnknown_080D9798[optionsScreen->unk359 + language];
|
||||
temp0 = 0xA0;
|
||||
if (optionsScreen->unk780 == 1) {
|
||||
temp0 = 0x98;
|
||||
@@ -504,7 +521,7 @@ void sub_8063DCC(struct UNK_8063730* optionsScreen, u16 p2) {
|
||||
0
|
||||
);
|
||||
|
||||
itemText = &gUnknown_080D97F8[optionsScreen->unk35A][language];
|
||||
itemText = &gUnknown_080D97F8[optionsScreen->unk35A + language];
|
||||
temp0 = 0xA0;
|
||||
if (optionsScreen->unk780 == 2) {
|
||||
temp0 = 0x98;
|
||||
@@ -552,5 +569,139 @@ void sub_8063DCC(struct UNK_8063730* optionsScreen, u16 p2) {
|
||||
otherPos = 0xFFCB;
|
||||
}
|
||||
|
||||
|
||||
bVar1 = 0;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (bVar1) {
|
||||
var4 = 0x11;
|
||||
} else {
|
||||
var4 = optionsScreen->unk0.unk0[i];
|
||||
}
|
||||
|
||||
if (var4 == 0xFFFF) {
|
||||
var4 = 0x11;
|
||||
bVar1 = 1;
|
||||
}
|
||||
|
||||
sub_806B908(&local48, var4);
|
||||
sub_806A568(
|
||||
&options654[i],
|
||||
0,
|
||||
local48.unk0,
|
||||
local48.unk4 & 0xFFFF,
|
||||
0x3000,
|
||||
otherPos,
|
||||
0x26,
|
||||
10,
|
||||
local48.unk4 >> 0x10 & 0xFF,
|
||||
0
|
||||
);
|
||||
|
||||
options654[i].unk25 = optionsScreen->unk780 == 0 ? 7 : 8;
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (optionsScreen->unk780 == i) {
|
||||
optionsScreen->unk414[i].unk25 = 0;
|
||||
} else {
|
||||
optionsScreen->unk414[i].unk25 = 1;
|
||||
}
|
||||
|
||||
if (i < 4) {
|
||||
|
||||
if (optionsScreen->unk780 == i) {
|
||||
optionsScreen->unk594[i].unk25 = 0;
|
||||
} else {
|
||||
optionsScreen->unk594[i].unk25 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
sub_806A568(0,0,0,0x3c4,0,0,0,0,0,0);
|
||||
sub_806A568(0,0,0,0x3c4,0,0,0,0,1,0);
|
||||
sub_806A568(0,0,0,0x3c3,0,0,0,0,0xc,0);
|
||||
sub_806A568(0,0,0,0x3c3,0,0,0,0,0xd,0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
void sub_80649A4(void);
|
||||
void sub_806A99C(void);
|
||||
void sub_806A8EC(void);
|
||||
void sub_806AA4C(void);
|
||||
void sub_806ACF0(void);
|
||||
void sub_806A814(void);
|
||||
void sub_8064304(void);
|
||||
|
||||
void sub_80641B0() {
|
||||
struct UNK_8063730* optionsScreen = TaskGetStructPtr(gCurTask, optionsScreen);
|
||||
|
||||
sub_80649A4();
|
||||
|
||||
if (gPressedKeys & A_BUTTON) {
|
||||
m4aSongNumStart(SE_SELECT);
|
||||
switch(optionsScreen->unk780) {
|
||||
case 3:
|
||||
sub_806A8EC();
|
||||
return;
|
||||
case 5:
|
||||
sub_806A99C();
|
||||
return;
|
||||
case 6:
|
||||
sub_806AA4C();
|
||||
return;
|
||||
case 7:
|
||||
sub_806ACF0();
|
||||
return;
|
||||
default:
|
||||
sub_806A814();
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (gPressedKeys & B_BUTTON) {
|
||||
m4aSongNumStart(SE_RETURN);
|
||||
sub_806ACF0();
|
||||
return;
|
||||
}
|
||||
|
||||
if (gRepeatedKeys & DPAD_DOWN) {
|
||||
m4aSongNumStart(SE_MENU_CURSOR_MOVE);
|
||||
optionsScreen->unk781 = optionsScreen->unk780;
|
||||
|
||||
if (optionsScreen->unk780 > 6) {
|
||||
optionsScreen->unk780 = 0;
|
||||
} else {
|
||||
optionsScreen->unk780++;
|
||||
}
|
||||
|
||||
if (optionsScreen->unk35C == 0 && optionsScreen->unk780 == 5) {
|
||||
optionsScreen->unk780++;
|
||||
}
|
||||
optionsScreen->unk783 = 0;
|
||||
gCurTask->main = sub_8064304;
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if (gRepeatedKeys & DPAD_UP) {
|
||||
m4aSongNumStart(SE_MENU_CURSOR_MOVE);
|
||||
|
||||
optionsScreen->unk781 = optionsScreen->unk780;
|
||||
if (optionsScreen->unk780 < 1) {
|
||||
optionsScreen->unk780 = 7;
|
||||
} else {
|
||||
optionsScreen->unk780--;
|
||||
}
|
||||
|
||||
if (optionsScreen->unk35C == 0 && optionsScreen->unk780 == 5) {
|
||||
optionsScreen->unk780--;
|
||||
}
|
||||
|
||||
optionsScreen->unk783 = 0;
|
||||
gCurTask->main = sub_8064304;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user